들어가며
벌써 텔레칩스 임베디드 스쿨 3기를 진행한 지 한 달이 되었다. 그래서 지금까지 배운 내용들에 대해 간단히 정리를 하면서 회고를 남겨보려고 한다! 여기에 함께 지원해보려는 다음 기수의 사람들에게도 도움이 될 수 있겠지.
ㅤ
우선 나의 백그라운드부터
나는 소프트웨어학부(소위 컴공)를 모두 수료하면서 컴퓨터 공학적인 지식 기초를 탄탄히 쌓아왔고, 앱개발을 희망하면서 거의 3년 정도 iOS, Flutter, RN 을 학습하면서 배워왔다. 곁들여서 졸업을 위해 Flutter 기업 인턴십도 한 학기 진행했다.
ㅤ
군대에 있을 때에도 컴퓨터구조 원서를 처음부터 거의 끝까지 꼼꼼히 읽고 (MIPS 프로그래밍은 못했지만) 150페이지 가량의 노트필기를 남기며 내용들을 정리하고 나름 체계적으로 지식을 쌓으려고 노력했다. 전공 자체에 흥미가 있기도 하고, 지식을 받아들이는데에 큰 어려움이 없어 4점대의 학점으로 졸업을 할 수 있다. 다만 내가 이런 로우레벨을 할 줄 몰랐고, 당연히 앱개발 분야로 진출할 줄 알았기에 인터페이스, 영상처리 같은 애플리케이션 레벨의 전공과목들 위주로 들었다. 그래서 리눅스, 임베디드 시스템 같은 분야에 대해서는 진짜 하나도 강의를 챙겨듣지 않은 맹꽁이 상태이다.
ㅤ
알고리즘도 꽤나 준비를 했었다. 역시나 군대에 있던 시절 C++ 알고리즘 책으로 손코딩을 하면서 책을 절반정도 독파했었고, 덕분에 프로그래밍적 사고력을 갖출 수 있었다고 생각한다. 학교 졸업요건이였던 코테를 위해 간단히 3주정도 파이썬을 공부해서 코테를 1차에 통과할 수 있을 정도였고, 가물가물하기는 하지만 지금은 백준 골드2-3 정도 레벨의 문제는 고민고민하면 풀어낼 수 있는 실력을 갖추고 있다.

ㅤ
그 외에도 가장 최근에는 Flutter 앱개발을 가지고 3달 정도 입문자 대상 강의를 하기도 했고, AI 관련 활동을 하기도 했어서, 꽤나 부지런하게 살아왔다고 생각한다. 이런 백그라운드를 가진 나는 현재 텔레칩스 임베디드 스쿨을 어떻게 생각하고 있는지에 대해, 향후 계획에 대해 한 번 남겨보려고 한다.
(맥주 한 캔 마신건 안비밀)
ㅤ
주변 사람들은 어떤가?
우선 함께 텔레칩스 임베디드 스쿨 교육을 듣는 사람들은 대부분 전자과 출신이다. 30명 중에서 내가 생각할 때 순혈 컴공 출신은 한 6-7명 정도가 있는 것 같고, 나머지는 거의 전자전기공학을 전공한 사람들 같다. 같이 다니면서 이것저것 물어보면, 퓨어 순혈 임베디드를 해온 사람은 한 2-3명 정도이고 나머지는 임베디드를 시작하려고 여기에 온 사람들이 많다고 느꼈다. 물론 나도 그 중 하나이고. 또 경력으로 보자면 일을 하다가 온 1년차 급 + 대학교 졸업반 + 취준러 정도가 섞여있다. 아무래도 취준을 위한 교육이자 취업 연계가 되어있는 교육이다 보니 놀자판보다는 같이 으쌰으쌰 열심히 해보자 분위기가 있는 것 같다. 다들 늦게까지 남아서 공부하거나 스터디를 꾸리는 것을 보면 꽤나 좋은 집단에 속한 느낌이다.
ㅤ
내가 생각했던 것보다 사람들이 코딩을 잘 하지 못하고 있다. 아무래도 전전 쪽 사람들이라 그런지 개발 자체를 많이 경험해보지 못해서 그런 것 같다. 같이 공부하면서 코드 작성하는 방법을 알려주거나 함께 프로젝트를 할 때 방향성을 잘못 짚어서 크게 경로를 이탈하는 케이스가 종종 있긴 했지만, 이게 다 해본 적 없는 분야를 너무 빠른 시간 내에 습득하려고 해서 발생한 문제라고 생각한다. 다들 C언어로 이제 개발을 해야 할텐데, 빨리 개발 실력을 키웠으면 하는 바람이 있다. (좀 답답하긴 함.. 근데 이건 내가 전공자라 너무 익숙한 영역이라 그럴 듯. 이제 회로 쪽 수업 실습 들어가면 내가 저 사람들 포지션이 될 것 같아서 열심히 도움 주는 중 ㅋㅋㅋ)
ㅤ
애플 개발자 아카데미 출신도 한 명 봤다! 3기 수료생이라고 했다. 동문 파워가 또 이렇게 ㅋㅋ 세상 참 좁아.
ㅤ
지금까지 뭘 배웠나?
3주간 C언어에 대해서 배우고, 그 다음 2주간 자료구조와 알고리즘에 대해 배웠다. 사실 배웠다기보다는 ‘꼼꼼히 짚었다’ 정도가 조금 더 적절한 표현일지도 모르겠다.
ㅤ
C언어
C언어 3주에서는 C를 이용한 프로그램 작성 방법이나 기법, 구조 잡는 방법 보다는 문법 자체에 대해 꼼꼼하게 학습했다. C 같은 올드스쿨 언어에서의 배열, 포인터, Const, 비트 연산, 자료형은 어떻게 처리되는가 같은 기초 지식들을 위주로 학습했다. 사실 나는 테크닉 적인 것들을 배울 수 있기를 기대했는데, 같이 공부하는 피어들이 printf 도 잘 사용하지 못하는 수준이였기에 요런 부분들은 수업을 들을 수 없어 아쉬웠다. 다만 C언어 기초에 대해서는 탄탄하게 배워나갔다고 생각한다. (거의 7년 전이긴 하지만) 전공 수업 때 들었던 내용들보다 훨씬 깊이있게 C언어를 다루는 방법들에 대해 배우고 익혔다.
ㅤ
2주간의 C언어 학습을 마치고 그 다음 1주 간은 ALLEGRO 라는 라이브러리를 활용해서 C언어로 간단한 게임을 만드는 프로젝트를 4인 1조로 진행했다.
ㅤ
내가 모티브로 들고온 게임은 구글 고양이 게임.

ㅤ
그리고 우리 팀에서 만든 게임. 공격은 투사체로 날아가고, 콜리전의 발생으로 피해를 입힌다.

ㅤ
터치 제스쳐 대신에 이렇게 방향키 입력으로 공격하는 방식으로 게임을 구현하였다. 팀원들이 3명이 아무래도 C언어는 커녕 제대로 코드를 작성해본 적이 없는 사람들이라서 개발하는 방법과 과정을 알려주려고 나름 내가 생각했던 것들 중 “많은 많은 많은 많은 많은 것” 들을 포기했다. 그런데 2주 정도 지난 지금 생각해보면 어차피 그냥 다 내가 담당해서 하면 되는거였는데, 굳이 이걸 포기할 필요가 없었던 것 같다.
ㅤ
키보드 입력 말고 마우스 클릭 드래그 제스쳐에 대한 로직을 작성해서 실제로 고양이 게임의 입력 방식을 구현해보기도 하고, 깃 PR 을 적극적으로 활용해서 게임을 만들고, 더 엄격하게 파일과 코드의 책임을 분리하면서 내가 배울 수 있는 것들을 너무나도 많이 포기했다는 생각이 든다. 나도 여기에 배우러 온 건데, 그냥 너무 남들에게 기회를 나눠주고 나는 시간만 쓰는 노동만 한 감이 없지않아 있다고 생각된다.
ㅤ
혹시 다음에 또 비슷하게 프로젝트를 하게 된다면 조금 더 욕심낼 것. 내가 챙길 수 있는 것들을 챙길 것. 시간 아깝다는 후회가 들지 않도록 노력할 것. 이게 내가 이 프로젝트를 통해 얻은 레슨드 런이라고 본다.
ㅤ
물론 아예 너무나도 기초적인 것들만 한 건 아니다. 팀원들에게 업무를 분담하고 깃으로 코드를 관리하면서 변경사항을 내가 머지하면서 교통관리도 했고, C언어 프로젝트에서 계층을 나누고 유지보수성을 끌어올리기 위한 다양한 전략들을 시도하려고 했고, 어느정도 적용을 했다고 생각한다. 아래 이미지처럼 각 파일의 코드가 담당하는 책임을 분리하면서 모듈간의 의존성을 최대한 분리하려고 노력했고, 단순 전역 변수로 뿌리기보다는 getter, setter를 활용한 데이터의 은닉 등의 테크닉을 적용해보려고 했다.


ㅤ
다만 모든 코드를 main.c 에서 작성하는 팀원, 변경해야 한다고 내가 미리 말했음에도 자기만의 타입을 정의하고 로직을 작성해서 코드를 다 새로 작성하게 만든 팀원, 회의에 집중하지 않는 팀원, 파일 인코딩 문제 등 다양한 이슈로 내가 하고싶은 것들을 거의 하지 못했던 게 너무너무 아쉽다. 마지막 날에는 밤새 팀원들의 코드에서 계층 별로 코드를 분리하고 개선하느라 1시간만 자고 거의 밤새면서 작업을 했는데도 시간이 모자랐다. 근데, 팀원들도 열심히 하려고 했는데 실력이 아직 부족했던 거라서 뭐,, 아쉽긴 해도 원망하는 마음이 들지는 않는다. 같이 주말에 강남 카페에 모여서 작업도 하고 했었으니깐. 나는 이만큼 했으면 팀원이 발표를 좀 해줬으면 했는데, 발표 한 시간 전에 갑자기 내가 발표까지 맡게됐던 건 좀 불만이 들긴 했다. 가뜩이나 한 시간 밖에 못자서 피곤한 상태였는데 발표까지 내가 담당하라니..
ㅤ
자료구조와 알고리즘
자료구조와 알고리즘은 전공에서 1년 동안 배우는 2가지 핵심 전공필수 과목들인데, 이걸 2주만에 어떻게 합쳐서 배우지? 라는 생각이 들었는데, 정말정말 핵심만 짚고 넘어갔다. 사실상 알고리즘 문제풀이를 할 수 있도록 같이 걸음마를 떼준 정도였다.
ㅤ
다음 토픽들을 주로 다뤘다.
- 반복문 활용해서 입출력 하는 방법
- 재귀를 통한 백트래킹
- DFS, BFS를 활용한 그래프 순회
- Queue, Binary Tree 구현하기
- Binary Search 이란
ㅤ
이전에 알고리즘 문제풀이를 했던 것들이 크게 도움이 되었던 파트. 시험 문제 5문제 중에서 3문제는 쉽게 풀어냈고, 한 문제는 시간이 좀 걸렸지만 다행히 $O(n^2)$ 에서 $O(n)$ 문제 풀이로 전환해 시간 초과를 해결했다. 마지막 한 문제는 문제 이해를 잘 못해서 (나의 집중력 때문이겠지) 시험 끝나고 3분만에 바로 풀었다. 시험 시간동안 찾아낼 것이지… ㅋㅋㅋ
ㅤ
그래서 내가 따로 공부하고 있는 것들 + 할 것들
일단 내가 HW, 보드 지식이 매우매우 모자란 상태이므로, 이걸 보완하기 위해서 “OJTube 의 고추건조기 강의”를 스터디를 꾸려서 현재 유튜브에서 수강하고 있다. 한 40~50시간 정도 되는데, 추석 전까지 모두 듣는게 목표. 여기에서 STM 보드를 활용해서 뭔가 개발하고 활용하는 방법을 파악하는게 나의 목표이다.
ㅤ
곁들여서, 실제 임베디드 개발의 프로세스에 대해 파악하기 위해서 페스트캠퍼스에서 그라운드임베디드의 임베디드 강의도 혼자서 듣고있다. 강의 공개가 차츰차츰 되기에 이 강의는 완전 빡빡하게 강의를 수강하고 있지는 않은데, 아트메가 사용 방법 + 전체 개발 프로세스 파악을 위해서는 꼭 들어야 하는 강의라고 생각되었다.
ㅤ
자료구조 도서를 나눠준 것에서 내가 약한 부분 (레드블랙트리는 학부 때 배운 적이 없다…! 헉쓰 / 퀵소트의 내부 구현을 이번에 처음 알았다) 들을 위주로 빠르게 학습을 하고있다. 다행인 점은 내가 자료구조 지식이 그리 부족하지 않아서 빠르게 마무리가 가능하다는 것 ㅎㅎ. 여기에 시간 너무 들이지 말고 핵심 자료구조 위주로 빠르게 쳐내려고 공부하고 있다.
ㅤ
결국 C언어, C++ 을 활용한 알고리즘 문제풀이는 언제 어디에서나 중요하다고 생각이 들어서, C++ 알고리즘 문제풀이를 다시 시작해서 진행할 예정이다. 기존에 꾸려진 스터디에 들어갈수도 있고, 나 혼자서 진행할 수도 있겠지만, 군대 때 보던 알고리즘 트레이닝 책을 다시 한 번 펼쳐서 재활치료 + 더 멀리 나아가기 를 한 번 해보려고 한다.
ㅤ
C언어 테크닉을 익히고 좋은 코딩 컨벤션을 적용해보려고 현재 MISRA-C 2012 코딩룰을 읽으면서 정리하고 있다. 확실히 어떤 코드를 작성해야 하는지 디테일을 엿볼 수 있어서 좋은 것 같다. (근데 좀 지엽적인 내용들이 많아서 이걸 계속 하는게 맞나 생각이 들긴 함 ㅋㅋ) 그래도 프로페셔널한 C 코드를 작성하는 방법에 대해서 많이 배우고 있고, C언어의 디테일을 배우고 있어서 완전 도움이 안된다는 또 아니긴 하다. (C언어에도 4가지 암시적인 namespace가 존재한다 / 프로페셔널한 타입 관리르 위해서 어떻게 해야하는가? 등을 익히고 있다) 미쓰라 룰을 계속 보면서 이후 임베디드 인강의 프로젝트에 적용을 해보면 내가 잘 하고 있었다는 걸 느낄 수 있지 않을까 기대하고 있다. (제발 잘 하고 있다고 말해줘!!!)
ㅤ
다음달에 하는 것
다음 한 달 간은 파이썬을 배운다. 파이썬과 판다스 데이터 분석, ML 기초를 배우게 된다는데,,, 도대체 어떤걸 배우는지, 이걸 왜 배우는지, 임베디드에서 이걸 배우는게 의미가 있는지 등 다양한 의문이 있다. 우선 배워봐야 알겠지만, 이거 배우는 동안은 그냥 C언어나 C++로 알고리즘, 자료구조 위주로 계속 공부를 할 것 같다. 파이썬 프로젝트도 하나 있다던데,,, (왜요…?)
ㅤ
앞으로 할 것
앞으로 배워야 할 것들은 정말 정말 많다.
GPIO → 인터럽트와 NVIC → Timer → UART → ADC → I2C/SPI → CAN 통신, AUTOSAR, RTOS, A-SPICE, Watchdog 같은 커리큘럼을 생각하고 있는데, 인생을 확실히 열심히 살아야겠다는 생각이 막막 들고있다. 시간이 참 모자라네… 노는 시간도 좀 줄여야겠네.
ㅤ
운동도 열심히 하고있따!
크로스핏 3개월 재등록을 했다. 어차피 아침에 운동하고 교육 가면 수업에 딱 5분 늦게 도착할 수 있어서 지각 안하고 수업을 들을 수 있다 (?) ㅋㅋㅋ
ㅤ
그래서 꾸준히 다시 운동을 좀 나가면서 체력을 기르고 + 자존감도 좀 채우고 하려고 계획하고 있다. 얼마나 이 기세를 몰아갈 수 있을진 모르겠지만, 이제는 날씨가 그렇게 덥지 않아서 할 수 있을 것 같다 (고 나를 믿는다)
ㅤ
이번 한 달도 잘 살았고, 다음 한 달도 잘 살아보자!
ㅤ
'TIL' 카테고리의 다른 글
| [250923] Day 43 - 감기조심하세요 (1) | 2025.09.24 |
|---|---|
| [250922] Day 42 - 신호및시스템 시작 (0) | 2025.09.23 |
| [250909] Day 30 - 어셈블리를 까보자. (0) | 2025.09.10 |
| [250905] Day 26 - 죽이고싶은 BFS 문제와의 10선 (0) | 2025.09.10 |
| [250903] Day 24 - 임베디드 스터디 ON (0) | 2025.09.04 |