1. 강의 소개와 나의 목표
COMP2200(C 언매니지드 프로그래밍) 강의는 C 언어를 기반으로 메모리 관리, 포인터, 하드웨어와 소프트웨어의 상호작용 구조까지 심도 있게 다루는 과정이며
언매니지드 언어 특유의 저수준 제어 능력을 키우고, 시스템 레벨 프로그래밍에 대한 이해를 넓히는 데 초점을 맞추고 있다
나는 이 강의를 통해 단순히 문법을 익히는 것을 넘어, 메모리 관리 능력, 하드웨어 동작 원리, 그리고 효율적이고 성능 최적화된 코드를 작성할 수 있는 기반 지식을 쌓고자 했다
특히 C#과 Unity를 주로 다루던 기존 경험에 더해, 저수준 언어를 공부함으로서 메모리에 대한 높은 이해도를 갖추는 것이 앞으로의 성장에 필수적이라고 판단했다
구체적인 학습 계획은 다음과 같았다
- 매주 핵심 내용을 글로 정리하기
단순한 암기가 아니라, 내 언어로 다시 설명할 수 있을 정도로 깊이 있게 이해하는 것을 목표로 삼았다 - 궁금한 기술을 리서치하여 체계적으로 지식 쌓기
수업 중 등장하는 기술적 키워드나 관련 시스템 지식을 별도로 조사하고 정리하여 이해의 폭을 확장하고자 했다 - 복습을 철저히 하여 배운 지식을 단단히 기억하기
학습 후 바로 복습하여, 모호했던 부분을 명확히 하고 장기 기억으로 정착시키는 것을 목표로 했다
2. 실제 수강 경험
강의는 기본 문법 → 포인터 → 메모리 구조 → 자료구조 → 고급 기능 순으로 학습이 진행됐고(링크의 커리큘럼을 확인하자)
모든 단계에 걸쳐 실습과 과제가 밀도 높게 연결되어 있었다
내가 느낀 난이도
초반 기본 문법은 순조롭게 따라갈 수 있었지만, 포인터와 메모리 연산 파트부터는 훨씬 더 높은 집중력과 깊은 사고가 필요했다
특히 동적 메모리 할당, 포인터의 포인터, void 포인터 등을 다룰 때는 단순히 개념을 아는 것과 실제로 문제를 해결하는 것 사이에 큰 차이가 있다는 것을 체감했다
반복적인 디버깅과 오류 수정 과정을 통해, 한 줄 한 줄의 메모리 흐름을 정확히 추적하는 훈련이 되었다
과제와 실습을 통한 성장
강의를 듣는 것만으로는 절대 체득할 수 없는 부분들이 있었다
이를 보완하기 위해 커리큘럼은 실습과 과제를 통해 개념을 직접 적용하고 검증하는 과정을 촘촘하게 설계해두었다
실제 코드를 작성하고 디버깅하는 과정을 통해
- 어떻게 이론이 코드로 구체화되는지,
- 어디서 메모리 누수가 발생할 수 있는지,
- 어떤 상황에서 포인터 사용이 위험해질 수 있는지,
직접 몸으로 부딪히며 학습할 수 있었다
특히 자료구조와 동적 메모리를 직접 관리해보는 과정은 C 언어 특유의 메모리 제어와 자료구조의 내부 동작을 동시에 이해할 수 있었던 점은 큰 성장의 기회였다
이 과정은 단순한 코딩 실습이 아니라, 컴퓨터가 동작하는 근본 원리를 직접 다루는 경험이었다고 느낀다
과제 3: 새벽의 디버깅과 깊은 배움
과제 3을 수행하는 과정에서 인상깊었던 경험을 했다
당시 과제 마감이 얼마 남지 않은 긴박한 상황에서, 표면적으로는 출력 결과가 정답과 일치했지만 테스트를 통과하지 못하는 문제에 부딪혔다
문제를 파악하기 위해 밤늦게까지 코드를 수정하고 디버깅을 진행했지만, 보이지 않는 메모리 누수와 출력 포맷 차이를 명확히 찾아내기는 쉽지 않았다
답답함 속에서 새벽에 질문을 남겼고, 다행히도 예상보다 빠르게 답변을 받을 수 있었다
조교님의 친절하고 체계적인 설명 덕분에 문제의 본질을 정확히 짚을 수 있었다
특히 이 과정에서 다음과 같은 점을 깊게 생각할 수 있었다
- 메모리 관리의 디테일
단순히 메모리를 할당하는 것만큼이나, 할당된 메모리를 정확한 시점에 모두 해제하는 것이 필수적이라는 사실
특히 함수 내부에서 메모리를 동적으로 할당하는 경우, 실수하지 않기 위해 설계 단계부터 메모리의 생애주기를 철저히 관리해야 함을 깨달았다 - 출력 포맷의 엄밀성
눈으로 봤을 때 같아 보여도, 실제로는 보이지 않는 개행 문자나 공백 한 줄이 결과를 달라지게 만든다는 사실
프로그램은 겉보기 결과만이 아니라 내부 데이터까지 정확하게 통제해야 한다는 점을 실감했다
또한 이번 경험은 단순히 기술적 깨달음을 넘어, 개발자로서의 태도까지 돌아보게 만들었다
- 마감에 쫓기는 순간에도 차분히 문제를 분석하고 본질을 찾아야 한다는 것
- 타인에게 도움을 받는 것이 얼마나 큰 힘이 되는지를 깨달았고, 언젠가 나도 누군가에게 그런 도움이 되어야 한다는 것
특히 새벽 늦게 받은 친절한 답변은, 단순한 문제 해결을 넘어 지치지 않고 계속 도전할 수 있는 힘을 줬다
이 기억은 앞으로 내가 다른 사람과 함께 성장할 때 도움을 주고받는 문화의 소중함을 잊지 않게 해줄 것이다
3. 계획에 대한 회고
핵심 내용 글 정리
매주 강의에서 배운 내용을 글로 정리했다
단순히 "배웠다"는 것에 그치지 않고, 내 언어로 다시 설명할 수 있다는 자신감을 얻는 과정이었다
정리하는 동안 모호했던 부분이 명확해지고, 생각 없이 넘겼던 개념들을 스스로 질문하고 답하는 힘이 길러졌다
기술 리서치
강의 중 등장한 LLVM, 메모리 정렬, IEEE754 부동소수점 표준 같은 개념들은 따로 시간을 들여 추가 리서치를 진행했다
프로그래밍에 대해 아무것도 모르던 시절에 배웠던 개념들을 다시 새롭게 바라볼 수 있었던 경험이었다
과거에는 단순히 외워 넘겼던 내용들이, 이제는 '왜 그렇게 설계되었는지'까지 이해할 수 있게 된 느낌이었다
이 과정은 C 언어를 넘어서 시스템 프로그래밍과 컴파일러 분야에 대한 관심으로 확장되는 계기가 되었고, 앞으로 이 배움을 모두 포스팅으로 정리하여 지식을 더욱 단단히 다질 계획이다
체계적인 복습
매주 복습을 꾸준히 실천했다
복습할 때마다 처음 강의를 들을 때 놓쳤던 세부사항들을 다시 채워 넣을 수 있었고, 모호했던 이해가 점차 구체적이고 선명하게 다듬어졌다
그 결과 실습 문제를 해결하는 속도와 정확도가 수업 후반으로 갈수록 눈에 띄게 향상되는 것을 체감할 수 있었다
4. 결과와 배운 것
이번 수강을 통해 가장 크게 얻은 성과는 세 가지다.
- C 언어 특유의 포인터와 메모리 관리 방식을 확실히 체득했다
단순한 사용법을 넘어, 메모리의 생애주기를 설계 단계부터 신경 쓰는 사고방식이 몸에 배었다 - 자료구조를 복습하고 직접 구현하며 기본기와 설계 능력이 강화됐다
단순히 동작하는 코드를 넘어, 메모리 사용과 구조 설계를 고려하며 프로그래밍하는 습관이 생겼다 - 매니지드 언어(C#)만 다루던 시절보다 한층 하드웨어 친화적인 사고방식을 갖추게 됐다
프로그램이 하드웨어와 어떻게 상호작용하는지, 시스템의 관점에서 바라보는 시야가 넓어졌다
이러한 변화들은 단순한 문법 학습을 넘어, 개발자로서의 사고방식 자체를 한 단계 끌어올려준 값진 경험이었다
5. 아쉬웠던 점과 다음 목표
아쉬웠던 점
커리큘럼의 방대함
과정이 워낙 방대하고 깊이 있는 내용을 다루다 보니, 일부 주제는 충분히 소화하지 못하고 넘어가야 했던 아쉬움이 있었다
따라서 얕게 공부해야 했던 내용은 별도로 추가 학습이 필요하다고 느꼈다
C 언어 활용 기회의 한정성
현실적으로 임베디드나 시스템 프로그래밍을 직접 다루지 않는 이상, C 언어를 주력 언어로 사용할 기회가 많지 않다는 점이 고민이 되었다
시간이 지나면서 이 지식이 잊혀지지 않도록, 자료구조와 알고리즘을 꾸준히 C로 구현해보거나 알고리즘 문제 풀이등을 수행해야겠다
개인적 사정으로 인한 학습 공백
마지막 2~3주 동안은 개인적인 일정으로 인해 학습 집중도가 떨어진 것도 아쉬운 부분이다
하루 16시간씩 일하는 강행군 속에서, 휴식과 학습 중 하나를 선택해야 했고, 결국 수액 치료를 받을 정도로 몸 상태가 악화되면서 휴식을 택할 수밖에 없었다
결과적으로 마무리를 온전히 하지 못한 점이 아쉽다
다음 목표
기본적인 Stack, Queue, Map, Set등의 자료구조들 및 AVL 트리, 행동 트리 등 더 복잡한 자료구조들을 C 언어로 직접 구현해볼 계획이다
이후에는 C++로 자연스럽게 넘어가고 언리얼 엔진 기술 습득까지 이어가는 것이 목표이다
6. 마무리
이번 COMP2200 수강은 단순한 기술 습득이 아니었다
'끝까지 해내는 힘', '문제를 직면하고 해결하는 힘', 그리고 '배움의 깊이를 스스로 만들어가는 태도'를 기르는 소중한 훈련이었다
앞으로 AI가 점점 프로그래밍 생산성을 높이는 시대가 오겠지만, 기본기를 튼튼히 다진 개발자만이 기술 변화 속에서도 흔들리지 않을 것이라고 믿는다
그렇기 때문에 이번에 쌓은 기반 지식은 단순히 지금을 위한 것이 아니라, 미래에도 나를 지탱해줄 든든한 자산이 될 것이다
한 분기동안 함께하신 모든 분들 감사했고 좋은 강의를 만들어주신 포큐님께 감사하다
'참여 후기' 카테고리의 다른 글
Unite Seoul 2025 후기 (0) | 2025.04.27 |
---|---|
우아한 스터디 '대규모 시스템 설계 2'를 마치고 (2) | 2024.09.21 |