KRAFTON JUNGLE 4주차 회고

KRAFTON JUNGLE 4주차 회고

0주차

3/10일에 입소를 해서 바로 미니프로젝트를 만들었다. 기간은 13일 목요일까지 처음보는 2명의 팀원들과 함께했다. 두분모두 전공자였는데 프론트엔드 경력이 있으셔서 그런지 개발속도도 빠르게 진행되었다. 한분은 프로젝트 경험이 많아서 형상도구(git)활용을 엄청 잘했다. 나는 대학교때 git을 활용을 많이 해보지않아 너무 어려웠다. 프로젝트 주제는 정글주변의 맛집 지도를 만드는 것 이였다. 정글구성원들이 직접 평가를 하며 순위도 매길 수 있게 기획해보았다. 첫 프로젝트이며 기간도 짧아 개인적으로 아쉬운부분이 많은 프로젝트였다. 한편으론 들어오자마자 있었던 큰 과제가 끝난 것 같아 후련했다.

1주차

이제 시작이였다. 정글은 코치가 1대1로 코칭해주지 않는다. 가이드를 제시해 줄 뿐 정글을 헤쳐나가는건 내 몫이다. 금주의 공부 키워드는 배열, 문자열, 반복문과 재귀함수등이 있었다. 오늘은 공부를 시작하는 첫날이라 정글에서 제시해준 백준 문제들을 먼저 풀어보았다. (입출력/조건문/반복문/배열/함수/문자열/수학/재귀함수/정렬/완전 탐색)

근데 학교에서 배운건 C언어이기도 했고 최근 python은 정글 입학시험 문제에서 본 것 뿐이라 정신없이 검색하며 문제를 풀었다.. 아래는 공부한 흔적인데 사실상 정리도 깔끔하게 되어있지 않다. 노트정리를 눈에 들어오게 공부도 해야겠다. (현재 옵시디언을 눈여겨보고있는 중 이다.) map함수 아스키코드 파이썬이 c언어나 자바보다 쉽다고 알려져있지만 나는 대학교 때 c로 개발공부를 접해 어색했다. 더욱 공부가 필요해 보이고 내가 공부한걸 복습하기 위한 정리방법도 필요하다.

또한 시간 복잡도와 공간 복잡도에 대해서 배웠고 이걸 BigO로 어떻게 표현되는지에 대해서도 배웠다. 정렬 알고리즘에 대해서 많이 배우게 되는 한주였는데, 버블/단순 선택/단순 삽입/이진 삽입/셸/퀵/병합/힙 정렬에 대해서 배웠다.

첫주여서 그런지 조금 만만하게 생각했던 점이 있다. 하지만 목요일날에 봤던 시험을 만족스럽게 보지 못해서 반성하는 계기가 되었다.

2주차

첫주차에서 반성하는 계기를 통해서 2주차때는 조금 더 열심히 해보고자 하였다. 먼저 팀원들과의 코어타임을 조금 더 도움되게 바꾸기 위해 첫주차에서 어떻게 진행했는지 물어보았고 좋은 것들을 채택해 진행하기로 했다. 덕분에 매 코어타임이 모두에게 도움되는 시간이었고 이후부터 어떻게 공부할지, 그리고 어떻게 함께 지식을 공유해야 할지 배우게 되었다.

2주차에서 알고리즘 같은 경우 이분 탐색/분할 정복/스택/큐/우선순위 큐에 대해 배우게 되었는데, 지금 생각해보면 이때 열심히 공부했던 것이 빛을 발하게 된것 같다. 현재 C 언어에서 스택과 큐를 사용해 함수 구현하고 있는데, 2주차때 배웠던 내용들이 알고리즘의 중추였다고 느낀다. 여러 알고리즘이 있지만, 특히 스택과 큐, 그리고 우선순위 큐가 지금으로써 도움이 많이 된다.

Computer System 같은 경우 캐시 / 가상 메모리의 계층 / 운영체제의 대략적인 역할을 배우게 되었다. 스택 같은 경우 위에서 아래로, 큐 같은 경우 아래에서 위로 저장이 된다고 배웠고 이게 서로 만난다면 충돌이 날 수도 있으니 주의하라고 한점도 기억이 난다.

3주차

2주차에서 나름 공부를 잘했다고 느꼈고 이 느낀점 때문에 3주차에서는 조금 더 열심히 해볼 계기가 되었다. 첫날부터 리뷰할 시간 없이 코어타임을 저녁때 가지기로 했고, 이때 Computer System을 다루기로 했다. 짧은 시간이었지만, 집중력을 통해 인스트럭션들의 병렬성쓰레드의 동시성에 대해 설명할 수 있었고 이때 한 조원의 호기심으로 인해 Computer System 관하여 오래 논의를 나누었다.

그리고 알고리즘 관하여서는 처음으로 그래프(vetex, edge, node, arc)에 대해서 배우고 BFS, DFS, 위상정렬, 최단거리, 사이클 탐지, 최소 신장 트리, 자기 균형 이진 탐색 트리까지 많은 알고리즘을 할당 받아서 3주차도 집중을 놓치지 않고 모두 공부하였고, 물론 쉽진 않았다. 다행히도 다 할 수 있었단 것에 내 자신에게 고맙게 느끼는 한 주였다. 그리고 3주차에서는 다루는 내용도 많았지만, 중간 중간 팀원들이 새로운 지식을 알려줘서 더 발전하게 되는 한 주였다. 팀원들한테 고마움을 느낀다.

4주차

Python을 통해 알고리즘을 배우는 마지막 주 4주차에서는 많은 것을 얻어간것 같다. 알고리즘을 많이 배우진 않았지만, Computer System쪽에서 지식을 많이 얻게 되는 한 주였다. Computer Systems A Programmer’s Perspective 책 3장 전체를 다 보라는 과제가 있었고 아쉽게도 다 보진 못했지만, 레지스터에서 어떻게 인수를 저장하고 또 메모리에서 값을 받아오는 행위의 세부적인걸 알게 되었다.

알고리즘으로는 동적 프로그래밍과 그리디 알고리즘을 배웠다. 이상한게 2차원 배열의 움직임을 구현하는 것은 나에게 굉장히 어려웠는데, 시간이 해결을 해준건지 시험에서 나온 DP문제를 2차원 배열과 DPS 방식으로 풀게 되었다. 물론 백준 시간 초과가 나오게 되면서 문제를 풀었다고 할 수 없긴 했지만, 그래도 꾸준히 공부를 해왔던 것에 보람을 느끼게 되었다. 앞으로 난관을 마주하게 되더라도 이런 경험에서 나왔듯이 시간이 해결해줄 것이라고 믿고 앞으로 나아갈것 같다.


© 2022 JeongHwan Yun.