본문 바로가기
정글/TIL

[크래프톤 정글] 59일 - Pintos 1주차 끝!

by 위대한초밥V 2023. 6. 2.
오늘 한 일 👩‍💻
- Pintos Project1 주간 발표
- 알고리즘 문제 풀이(P9996 - 한국이 그리울 땐 서버에 접속하지)
- 협력사 채용 설명회(당근마켓)

주간 발표

pintos 주차부터는 매주 코드 리뷰 방식이 아닌 주간발표로 진행된다. 

전날에 모든 팀이 마지막까지 발표 자료를 만드느라 반 분위기가 무척 뜨거웠다🔥

우리 팀은 과제 설명과 경험했던 트러블슈팅 위주로 발표를 진행했다. 

 

좋았던 점보다 아쉬웠던 점이 먼저 떠오르는데...

  • 발표 시간을 고려해 발표 준비할 것
  • 전날 컨디션을 조절해서 맑은 정신 상태로 발표할 것
  • 발표 준비 시간을 줄이기 위해 미리 발생한 내용을 정리할 것
  • 과제를 할 때, 고민하는 시간을 늘릴 것

이 정도인 것 같다. 다음 주차에는 이를 잘 반영해서 진행하고 싶다. 

 

더불어 이번 주차 진행하며 느낀 것들을 함께 회고한다. 

좋았던 점은 과제 자체와 내용이 재미있었다.

Pintos라는 말로만 듣던 것을 이곳에서 직접 할 수 있다는 것도 좋았고, 큰 규모의 코드를 만져보는 것도 쉽게 할 수 없는 경험이기에 유익했다. 이 과정에서 이전에 연구실에서 여러 오픈소스를 사용해보면서 뜯어봤던 게 도움이 되었던 것 같다. 

 

또 git/github을 적극 사용하였다. 

이 부분은 지난주 팀🎶 때부터 시작되었는데, 가장 유익했던 것은 작업 단위로 issue를 올리는 것이다. 생성된 issue를 커밋 단위마다 연결해서 사용할 수도 있고, 진행 상황을 issue에 업데이트하는 습관을 지니기 위해 노력하다 보니 내용을 기록하는 습관이 생겼다.

 

아쉬웠던 점은 정말 많은데...

  • 할 일이 너무 방대했다. 개념도 알아야 하고, 구현도 잘해야 하고, 코드가 왜 이런지도 이해하고 싶고 진행하다 보면 그렇게 된다. 그러다보니 하루가 끝났을 때 뭐했지? 하는 생각과 제대로 지식이 습득되었나 하는 의문점이 들었다. 
    • 지금 드는 생각은 이 고민은 매일 기록하는 것이다. 뭐라도 했다는 것을 남겨야 아쉬움이 해소될 것 같다.
  • 팀 활동을 잘하지 못했다. 이번 주차는 팀 활동이 많아지는 시기라고 했는데, 우리 팀은 함께 있는 시간은 많았으나 함께 고민을 나누는 시간이 부족했다. 가장 큰 이유는 서로의 진도 차이다. 나는 개념을 이해하는 데 시간이 걸리고 이후에 코드를 작성하는 타입이라면, 다른 팀원을 그렇지 않았다. 그러다 보니 항상 다른 팀원이 구현의 면에서 한발 앞서 있었고 함께 해결한 부분은 트러블 슈팅이 주가 되었다. 
    • 팀원과 함께 이야기한 결과! 나의 니즈도 내용을 최대한 구현하는 것이기 때문에 내가 이론에 시간을 좀더 줄이고, 속도를 내어 구현하면서 이해하는 방식으로 2번째 과제를 수행하기로 나누었다. 더불어 이번에는 함께 페어프로그래밍을 하면서 서로 의견을 적극적으로 나눠보기로 하였다. 
      +) 페어프로그래밍 분위기를 이해할 수 있는 글! https://tech.kakao.com/2021/12/01/pair-programming/
    • 더불어 시간을 좀더 밀도 있게 사용하는 것도 필요하다. 

알고리즘

https://www.acmicpc.net/problem/9996

 

9996번: 한국이 그리울 땐 서버에 접속하지

총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다.

www.acmicpc.net

정답비율이 26%라서 긴장했는데, 문제가 술술 풀렸다.

근데 멍청한 실수를 했다..😤

두번째 패턴이 같은지 확인할 때, 인자에 i를 빼야하는데, 계속 -1만 빼고 있었던 것이다... 실수를 줄이자.

 

협력사 채용 설명회(당근 마켓🥕)

당근마켓의 회사 소개를 들었다.

어떤 문화, 어떤 사람들이 일하는지 알 수 있었다.

일단 확실한 부분은 이곳의 사람들과 함께 일하면 재미있을 것 같다. 일단 면접관들로부터 지원자가 더 뛰어난 부분이 있음을 만장일치로 통과해야 합격한다는 것부터 말이다. 

 

자율과 책임을 강조하는 것도 인상깊었다. 이전에 읽었던 넷플릭스 규칙없음이라는 책이 여러 번 떠올랐는데 신뢰에서 나온다는 게 참 신기하다. 통제안에 두면 해결되는 것이 많을 것이라 생각했는데, 또 어떻게 생각해보면 통제는 또 새로운 통제를 만들기도 한다.

 

더불어 문제가 있을 때, 이것을 해결하는 프로덕트를 만들고 이를 꾸준히 운영해본 사람을 인상 깊게 본다고 한다.

돌이켜보니 오! 이것 한번 해보면 재미있을 것 같은데~ 한 것들은 여러 개 있었던 것 같은데 그것을 실천으로 옮기는 것은 쉽지 않았다. 

나도 작은 것부터라도 만들어보는 습관을 지녀야겠다.

 

프리온보딩 백엔드 챌린지 6월

2주 동안 진행되는 프리온보딩 백엔드 챌린지를 지원했다.

상세 커리큘럼은 다음과 같다.

더보기
Week 1-1
 
Java의 정의와 동작 방식에 대해 살펴봅니다.

Java, JRE, JDK, JVM, AOT, JIT, Java Bytecode, Code cache, ByteBuddy

  • Java의 구성요소와 동작 방식
  • 클래스 로더와 클래스 로딩
  • Java 바이트코드와 코드 캐시
  • 바이트코드를 컴파일하는 AOT, JIT 컴파일러
  • [아하!모먼트] '내가' 수행 업무와 성과를 따로 기록하는 이유는?

Week 1-2

JVM의 정의와 구조, 메모리 대해 살펴봅니다.

JVM, JMM(Java Memory Model), Memory Leak, Thread dump, Heap dump

  • JVM과 메모리 구조
  • Java 메모리 모델과 메모리 누수
  • 스레드덤프를 통한 스레드의 상태 정보 확인
  • 힙덤프를 통한 힙 메모리 확인
  • [아하!모먼트] '내가' 채용 공고를 볼 때 중요하게 보는 항목은?

Week 2-1 

GC(Garbage Collection)의 정의와 Java GC 알고리즘에 대해 살펴봅니다.

SerialGC, Parallel GC, CMS GC, G1 GC, Shenandoah GC, ZGC, Epsilon GC

  • 가비지 컬렉션의 정의와 가비지 컬렉터가 처리하는 Heap 영역
  • Heap 영역을 제외한 GC 처리 영역
  • Java에서 지원하는 GC 알고리즘
  • [아하!모먼트] '내가' 생각하는 스터디의 핵심 요소와 선호하는 진행 방식은?

Week 2-2

동시성 처리를 위한 스레드 동기화에 대해 살펴봅니다.

Thread Synchronization, Semaphore, Mutex, volatile, synchronized, CAS, java.util.concurrent package, Virtual Thread

  • 스레드 동기화와 동시성
  • 멀티 스레드 환경에서 발생하는 스레드 동기화 문제
  • Java에서 스레드 동기화를 위해 제공하는 기능
  • JDK 19에 추가된 가상 스레드
  • [아하!모먼트] '내가' 코드 리뷰 문화 도입과 개선을 위해 시도한 방법

백엔드 개발자를 지망하기도 하고, 평소에 공부하고 싶었던 부분을 강의로 접할 수 있어 기대된다. 더불어 현재 교육과정과 연관되어 있다는 점도 마음에 든다. 당장 다음 주부터 시작인데 한번 잘 해보겠다!

 

내일 할 일 📝
- 알고리즘 문제풀고 오답(블루반 ㅈㅇ테스트)
- 2주차 과제 이해
- 1주차 내용 블로그 업로드
반응형