In June

2024. 6. 2. 20:16크래프톤 정글 5기/에세이


 

시간이 너무 빠르다.

 

0주차 프로젝트를 마치고, 회식을 한 이후 에세이를 작성했는데 벌써 2개월이 지났다.


이후 3주간 알고리즘 문제 풀이를 통해 다양한 유형의 알고리즘 문제를 접하고, 코딩테스트 대비를 어떻게 해야할 지 감을 잡을 수 있었다.

 

문제 풀이 초기에는 다른 교육생들과의 문제 풀이 속도 차이때문에 조급했었고 마음도 시야도 좁아졌다.

문제 풀이에 투자한 시간이 각자 다르니 속도에 차이가 나는 건 당연한 일이지만,

특정 집단에서 나의 기여도가 평균 이하라는 걸 자각하는 건 깊은 압박감과 불쾌감을 느끼게 만들었다.

 

나만의 속도를 유지하는 게 중요하다는 걸 (다시)깨닫고 나서야 다른 교육생의 창의적인 풀이를 보고 감탄할 수 있게 됐던 기간이였다.

앞으로의 과정에서 다른 교육생과 나의 속도 차이를 인정하되, 최대한 효율적인 방법으로 속도를 올리는걸 목표로 삼게 됐다.


이후 4주간 C언어로 다양한 구현 과제를 겪으며, C언어 문법에 익숙해지는 시간 (특히 포인터 개념)을 가졌다.

 

1. Data-Structures

-> Linked list + Stack & Queue + Binary Tree + Binary Search Tree

2. RB-Tree lab
3. Malloc lab
4. Web-proxy lab

 

그래도 전공수업 때 C언어를 몇번 다뤄봤으니 할만하지 않을까? 라고 생각했지만 절대 아니였다 ㅋㅋ

 

Data-Structures 구현을 하며 구조체, 포인터, C언어 사용에 약간정도는 익숙해질 수 있었다.

RB-Tree lab 구현에서는 자료구조에서의 삽입/삭제 동작의 차이에 대해 공부한 게 기억에 남는다.

Malloc lab 구현부터 효율적인 동작에 대해 고민해야 된다는 걸 알게 되었고, 코드를 점수화 할 수 있어서 흥미로웠다.

Web-proxy lab 구현에서는 추상화라는 개념을 약간이나마 더 이해한 것 같았다.

 

특히 Web-proxy lab 구현을 하며 malloc(), mmap() 동작의 차이에 대해 고민하며,

책에 소개된 가상 메모리 영역의 구분과 동작들이 필요에 의해 그렇게 설정된 것임을 깨달았고, 무조건 그런 형태를 취하고 있다는 생각의 한계를 두는 건 좋지 않겠다고 느꼈다.


이후 3주간 Pintos Project 1, 2를 진행하며 OS와 추상화에 대한 이해도가 약간 더 증가한 것 같다.

또한 명확한 next step이 주어지지 않은 상황에서, 문제 해결을 위해 본인의 선택으로 다음 단계를 설정하는 경험이 의미있었다.

 

pintOS는 [기본적인 동작까지 구현 -> 해당 동작에서의 한계 이해 -> 발전된 동작의 필요성 -> 발전된 동작의 구현] 단계로 진행됐다.

'지금도 기본적인 컴퓨터 동작 방식의 발전이 계속 이루어지고 있나?' 같은 생각이 들기도 했고, 

'크래프톤 정글이 강조하는 기본기가, 이러한 컴퓨터 내부적 동작 방식과 구조를 이해하는걸 말한건가?' 라는 생각이 들었던 기간이다.


컴퓨터 프로그래밍을 처음으로 배우는 환경이 크래프톤 정글 프로그램이여서 나는 좋은 것 같다.

다양한 사고방식의 사람과 1주일 간 같은 목표를 가지고 활동을 하는 것도 의미가 있었다. 

 

남은 기간도 많은 걸 배워야겠다.

'크래프톤 정글 5기 > 에세이' 카테고리의 다른 글

크래프톤 정글을 시작하며  (0) 2024.03.22