이번주 목표
- C 언어 학습 (포인터, 이중포인터 마스터)
- 기초 익히기 및 코드업 기초예제 10문제 -
- Linked List
C 언어를 처음 접하는 것이기에, 이번주는 C 언어 익히기에 집중하는 것을 목표로 하였다. 달성률은 ... 흠 60% 정도 되지 않을까 싶다. 그래도 기반이 있으면 구현은 가능하다고 생각했는데, 아예 0부터 구현하라고 하면 막막할 것 같다 !
시도한 접근 방식
C 언어 공부 방식
먼저 AI 를 통해 C 언어에서 가장 기초가 되는 지식을 알려달라고 하여 학습하였다. 그리고 code up 기초 예제 몇 문제를 풀었다.
코드업
코드업은 프로그래밍을 배우고 싶은 사람들을 위한 온라인 학습 플랫폼입니다.
codeup.kr
포인터까지 학습 후, Linked List 문제를 5번까지 풀었다. 6번부터 이중 포인터가 나와서, 6번 문제를 풀기 전에 이중 포인터에 대해 학습했다.
문제를 풀 때는 최대한 노트에 적어서 생각하려고 노력했다. 처음에는 AI 에게 도와달라고 했었는데, AI 가 알려주는대로 따라갔고, 갑자기 AI 가 합치라고 해서 합쳤더니 풀었다. 나는 이해를 못했는데 풀어버린 상황이 와서 나의 성장에 도움이 안 된 것 같아 당황스러웠다. 나중에는 아예 감조차 안 오면 AI 보다는 동료에게 어떤 식으로 접근해야할지 알려달라고 도움을 요청했다.
동료에게 내가 풀고 싶다고 재귀를 연결하는 최소한의 힌트만 달라고 했다. 거기에 살을 붙여 스스로 깨달았다. (아마도)

이번주에는 문제를 한문제씩이라도 더 풀려고 1시간씩 남아서 거의 12시쯤 퇴근했다.
CSAPP
내용이 너무 어렵고 많아서 책으로는 도저히 익힐 수 없을 것 같았다. C 언어에 대해 공부하는 시간을 늘리면서, 반대로 책을 읽을 수 있는 시간은 줄어들었다. 어셈블리어 문법이 아닌, C 언어와 연관지어 이해하라고 했다. 일단 AI 로 1차로 요약하고, 진짜 중요한 내용만 쉽게 바꿔달라고 하였다. 그러니까 조금 흐름이 이해가 되었다.
책의 내용이 많이 어렵습니다. ‘어셈블리 언어를 공부한다’는 느낌보다는 C언어 주요 문법이 어셈블리로 변환되는 과정, 이렇게 변환된 어셈블리 코드를 컴퓨터가 실행하는 과정을 이해한다는 관점으로 접근해 보세요.
중요한 부분을 교차 검증하기 위해 정글에서 나눠준 자료를 함께 확인했다. 하루에 1시간 ~ 1시간 반 정도 투자하였다.
문제와 해결 과정
- C 언어에 대해 나름 문제 풀 정도로 알고있다고 생각했는데, 퀴즈를 보고 나니 배열과 malloc 에 대해 모르고 있다는 것을 알았다. 조금 많이 충격적이었다.
- 이중 포인터에 대해 매우 어려웠었는데 동료의 강의로 감을 조금이나마 잡았다. 하지만 응용문제가 또 나오면 너무 어렵다 ..
- -> 에 자꾸 * 를 하나 더 붙이는 등 구조체에 대해 조금 어려워하고 있는 것 같다.
- 변수의 초기화에 대해 혼란스러웠다.
새롭게 배운 점
C 언어는 자바와 비슷한 점이 꽤 있지만, 메모리를 다룬다는 측면에서 매우 다르다. 목요일에 진행한 주간 발표에서 초기화되지 않은 포인터가 일으킬 수 있는 문제에 대해 정리했다.
초기화되지 않은 포인터
C 언어는 초기화에 드는 비용까지 아끼고자 메모리 관리를 전적으로 개발자에게 맡긴다. 때문에 변수를 생성해도 메모리가 자동으로 초기화되지 않아, 이곳에 이전에 호출됐던 다른 무언가들이 쓰다 남긴 값이 그대로 있다. 쓰레기 값들이 그대로 들어있는 것이다.
이 메모리에 실제 값을 초기화 하지 않고 접근하게 되면 두가지 상황이 발생할 수 있다.
- segmentation fault
- 어쩌다 유효한 주소값이 되어 엉뚱한 곳에서 문제 발생
그래서 이미 있는 값의 주소를 저장하거나, 새로운 값을 만들어 그 주소를 바로 저장해야 한다. 또는 컴파일 도구를 사용하여 미연에 방지한다. 이 도구는 초기화 안 된 변수 사용을 경고로 잡아주는 역할을 해준다.
다음 주 계획
이번주에는 TIL 을 많이 못 썼어서, 일요일에 최대한 다 정리해놓고 밀린 문제도 풀 것이다.
다음주에는 당일에 바로바로 TIL 을 정리하고, 코치님의 조언대로 AI 사용을 최소화하고 오래걸리더라도 천천히 보자는 마음을 가지고 갈 것이다. 추가로, 저번주에 헷갈렸던 내용도 다 같이 꼼꼼하게 짚고 넘어갈 예정이다.
++ 힐링타임 (스트레스 관리)
나만의 정글 힐링 타임으로 요즘 밀크티 or 차 우려먹기를 하고 있다. 주변에도 나눠주면서 마시고 있는데, 맛있다고 하면 너무 너무 뿌듯하다 ~~! 그리고 내가 만드는데도 생각보다 맛있어서 스트레스가 확실히 내려간다. 오전에 우려놓고, 오후에 마시는데 마시면 너무 기분이 좋아진다.
(찍어놓은 사진이 없네 ..)