9주차 회고
이번주는 개인별 Mini Project 구현과제가 주어졌다. 추석연휴를 앞둔 3일간 프로그램을 개발해 제출하는 과제로, linux기반 client-server구조의 채팅프로그램을 개발을 통해 배운 내용을 점검하는 프로젝트이다.
프로젝트의 목표를 3가지 정하고 그에따른 제약사항을 정했다.
전 직장에서 Task관리 용도로 ClickUp을 사용한 경험을 살려 이번 프로젝트에서는 Notion을 통해 하나씩 기능을 구현해 나갔다.


3일동안 프로젝트를 진행하면서 구조설계와 디버깅에 예상보다 많은 시간이 들었고, 올바른 client-server 역할을 수행하도록 깊게 고민해 볼수 있었다.
새로 배운 내용
- 알고리즘 풀이: stack, 수학 등 응용문제를 풀면서 어려운 문제가 많았다. 다른사람의 풀이를 보면서 새로운 풀이방법을 배워본다. 수학응용 문제를 풀땐 수식을 먼저 작성하고, 프로그램으로 작성하는 습관을 기르자.
- linux, FrameBuffer (mmap): mmap 이라는 linux system call은 memory Mapping의 약자로 linux장치(파일)와 page단위로 메모리를 매핑한다. 처리속도가 빠르고 메모리 낭비가 없어 효율적이다. 예시로 mmap을 사용해 frame buffer drive의 메모리에 접근해 LCD를 제어할 수 있다. 카메라와 연결해서 데이터를 가져오거나 출력시 사용하는 메모리 공유 개념을 알아두자.
- gdb: GNU에서 만든 디버거로 다양한 언어와 아키텍처(arm, x86, IA-64등)를 지원한다. linux환경에서 프로그램 디버깅시 사용해보자.
- miniproject: linux tree명령어, googleTest(단위테스트), Truck Based Development(TBD) git 브랜치 전략, 방어적 프로그래밍 용어가 나왔다. 알아보고 좋은게 있다면 다음 프로젝트때 적용하자.
앞으로 해야할 내용
- 배운내용 복습: 교육의 절반기간이 지나간다. 연휴를 맞아 지금까지 배운 내용을 복습하고 자세하게 알아보는 시간을 갖자.
- 한화비전 지원: 2024 후반기 공개채용에 자소서와 지원서를 제출해야 한다. 시간이 넉넉한 추석연휴를 통해 지원서를 완성해 두자.