Computer Science
탄탄한 기반 실력을 위한
전공과 이론 지식 모음
Today I Learned!
배웠으면 기록을 해야지
TIL 사진
Flutter 사진
Flutter로 모바일까지
거꾸로캠퍼스 코딩랩 Flutter 앱개발 강사
스파르타코딩클럽 즉문즉답 튜터
카카오테크캠퍼스 3기 학습코치
프로필 사진
박성민
임베디드 세계에
발을 들인 박치기 공룡
임베디드 사진
EMBEDDED SYSTEM
임베디드 SW와 HW, 이론부터 실전까지
ALGORITHM
알고리즘 해결 전략 기록
🎓
CAU 소프트웨어학부
텔레칩스 차량용 임베디드 스쿨 3기
애플 개발자 아카데미 1기
깃허브 사진
GitHub
프로젝트 모아보기
Instagram
인스타그램 사진

TIL

[260218] 텔레칩스 임베디드 스쿨 1000시간 종료와 회고, 리뷰

sm_amoled 2026. 2. 18. 22:02

블로그 글 정리하면서 내가 이때까지 썼던 글들을 한 번 쭉 훑어보려고 보다가 텔레칩스 4기 지원을 위해서 내 블로그를 찾아본 사람들이 몇몇 있는 것 같아서, 요약해둡니다. 비록 5기가 마지막 기수이지만, 다음 기수에도 도움이 될 수 있으니 적어둬요.

  • 이 교육에서는 (특히 임베디드 파트부터) 지식을 주입해주지 않음. 내가 모르는걸 찾아보면서 공부하고 정리해야함. 임베디드 세계에서 혼자서 자립하는 방법과 힘을 배울 수 있음. 덕분에 박치기 하면서 찾아내는 맛이 있음. → 난 이전 앱개발을 이렇게 배워왔어서 너무 좋았는데, 이제껏 주입식으로만 공부해온 사람은 힘들지도.
  • 하드웨어 잘알보다는 소프트웨어 잘알이 유리함. 여기는 소프트웨어, 특히 BSP가 메인인 회사임. 어쩌면 회사에서도 하드웨어를 잘하는 사람에게는 크게 관심이 없을 수 있겠다는 생각이 들었음. → 프로젝트 할 때 소프트웨어를 잘 깎자. 개인적으로 하드웨어도 알면서 소프트웨어를 잘 치는 사람만큼 무서운게 없다고 생각한다. 난 전자 지식이 없어서 여기 파트를 힘들었음.
  • 자기가 하는 만큼 가져가는 과정이라고 생각이 든다. 6개월이 끝났을 때 자동으로 포트폴리오에 프로젝트가 한 줄 생긴다. 다만, 여기에 어떤 내용을 담을지는 자신이 욕심내는 만큼 담을 수 있다. 반드시 욕심내자. → 미리 채용 공고와 지원할 직무를 보고 프로젝트에 들어가자. 나는 시야가 좁았던 터라 이걸 못했던게 너무너무 후회된다. 
  • 추가로 내가 취업할 때 어필하고 싶은건 스터디를 만들어서 운영하자.자신의 강점과 약점을 빠르게 판단하고 어떤걸 내세울지 정하자. 난 이걸 2차 프로젝트까지 질질 끌면서 고민하다가 이번 프로젝트에서 내 강점들을 많이 보여주도록 Task를 잡지 못해 아쉬웠다.
  • 추천하냐고 묻는다면 난 너무나도 강추한다. 반년이라는 시간동안 같은 목표를 향해 매일 출석해서 사람들과 낮밤으로 공부할 수 있는 환경은 많지 않다. 심지어 2달 동안 하나의 주제에만 몰두해서 모두가 프로젝트를 진행하는건 졸업 프로젝트에서도 경험하지 못한다. 대신, 힘들게 공부하고 최대한 많이 담으려고 욕심내자.

제가 텔레칩스 인턴 합격해서 여러분 한 번 만나볼 수 있으면 좋겠습니다. 

정직원 전환까지 성공해서 여러분 한 번 만나볼 수 있으면 좋겠습니다!!


들어가며

짧다면 짧았고 길다면 길었던 6개월, 1000시간의 텔레칩스 임베디드 스쿨 3기 교육 기간이 끝났다. 정말 마지막 2달은 너무너무 힘들었고 다시 이런 프로젝트 식으로 진행되는 무언가를 하기 싫다는 생각이 들면서도, 이런 생각이 드는 걸 보면 참 열심히 최선을 다해서 잘 해냈구나, 기특하다는 생각이 들어서 나름 만족스럽다. 고3때나 캡스톤 프로젝트 때도 이렇게 열심히 하지 않았던 것 같은데. 이 분야가 나한테 잘 맞고 재미있는 분야인가보오.

덕분에 이제 임베디드 개발자 포지션으로 여기저기 지원해볼 수 있는 이력이 생겼으니 마음에 든다. 아직 내가 쓸만하다는걸 보여주기에는 많이 부족하긴 한데, (정확히는 이력서에 필요한 내용들을 너무너무 늦게 알아버렸음. 그래서 그런 것들을 챙기면서 프로젝트를 진행하지 못했음 ㅜㅜ) 앞으로 또 취준하면서 채워나가야 하는 방향을 알게되었고, 어떻게 해쳐나가는지 알게되었으니 다행인 일이지.

생각보다 3기 1달, 2달 차에 대한 회고 글에 사람들이 많이 관심이 있었던 것 같아서, 지난 6개월에 대한 총평과 텔레칩스 임베디드 스쿨에서의 교육에 대한 리뷰와 회고를 진행해보려고 한다. 뭐, 공식적인 리뷰도 아니고 개인적인 회고이니 관심있는 분들이라면 알아서 확인하시길.

신청 전, 텔레칩스 임베디드 스쿨을 신청한 이유?

이전에 플러터 강사 활동을 마치고 딱 1주일만 쉬었다가 앱개발 분야로 취준을 시작하려고 했다. 그때까지만 해도 프로젝트 하나를 2번의 리펙토링으로 싹 갈아엎으면서 Git에 [ +120,000 / -100,000 ] 줄의 코드를 수정했던 이력이 있고, 플러터로 나름 강의도 했고 인턴쉽도 했었고, 취준할 때 쓸 돈도 모았으니 이제 본격 취준모드로 들어갈 준비가 되었다고 생각했다. 그리고 강사일이 끝난지 이틀째 되는 일요일에 갑자기 아빠한테서 전화가 왔다. 임베디드 대학원을 간다면 학비를 지원해주겠다는 것. 사실 우리 아빠의 말은 항상 옳았다. (대개 5년 정도가 지나면 결국 아빠의 말이 옳았다는게 항상 증명되어왔다. 처음 컴공으로 입학할때도 ‘굳이 컴공 가지말고 전자과나 기계가서 코딩만 배우면 둘 다 할 수 있는데, 왜 컴공가냐’ 라는 말을 했었는데, 그러고 몇 년 지나서 비전공자 개발자가 엄청 떠올랐다. 지금까지도) 아빠가 아무런 맥락 없이 이 말을 꺼낸건 아닐거니깐 이번 아빠의 전언을 또 놓칠수는 없다는 생각이 들었고, 그래서 앱개발 이력은 접어두고 임베디드 개발로 방향을 틀겠노라 그날 다짐했다. 임베디드 관련 전공 수업 (IoT, 내장형 시스템 설계, 리눅스 등)이나 활동은 하나도 한 적이 없었지만, 이땐 내가 모두 잘 해낼 수 있을거란 자신감이 있었다.

곧바로 임베디드 관련 대학원을 쭉 스캔했다. 사실 이 시점에 나의 생각은 “AI의 발전에 직업 수명이 짧아지지 않으려면 최대한 하드웨어랑 가까이 붙어야한다” 라는 생각이였고, 그래서 하드웨어에 깊숙히 연관된 분야를 찾아보고자 했다. 놀랍게도 내가 2학년 때 고려대학교에 학점교류를 신청해서 들었던 (실수로 잘못 신청했지만 무를 수 없었던) 4학년 영어 전공과목인 ‘컴퓨터시스템설계’의 담당 교수님이 임베디드 대학원을 운영중이셨다. 심지어 하드웨어와 가까운 FPGA 랩실이였다. 오호라. 이거다 싶었다. 6년 전에 들었던 수업에서 이 교수님에 대한 기억이 너무너무 좋기도 했고 (내 대학시절에 들었던 최고의 강의였음) 하드웨어와 가까운 임베디드 분야이니 이걸 놓칠 수는 없었다. 그래서 바로 커피챗 가능하냐고 연락을 때렸다. 결과는 Nope. 내가 가지고 있는 임베디드 관련 이력이 하나도 없어서 면담하기에도 뭣하다는 것. 맞는 말이다 싶었다. 다른 학교들도 괜찮은 랩실이 있을지 쭉 스캔을 해두고 고려대 랩실에 처음으로 메일을 보냈던 상태였는데, 임베디드 관련해서 프로젝트나 활동이 하나도 없어서 반려했다는 답변을 들으니 다른 랩실도 동일한 시선으로 나를 볼 것이라는 생각이 들었다.

그래서 임베디드 관련 공부나 프로젝트 경험을 만들어야겠다는 생각이 들었다. 먼저 인터넷 강의를 쭉 살펴봤다. 유튜브에 올라온 임베디드 강의와 인프런, 패스트캠퍼스테 있는 강의, Udemy에 있는 강의들을 모두 싹 긁어모아서 확인했다. 그 중에서 유튜브에 어떤 교수님이 올려주신 강의와 패스트캠퍼스의 임베디드 프로젝트 강의, 그리고 Udemy 강의를 들으면 프로젝트를 만드는데 도움이 될 것이라 생각했다. 그러다가 혹시 웹앱의 부트캠프같은게 임베디드 세계에도 있는지 궁금해져서 검색을 해봤다. 여기에는 막 네이버, 배민 등에서 하는 소위 ‘1티어’라고 불리는 부트캠프는 없지만 이름 대면 아는 교육이 몇 개가 있었다. 텔레칩스 임베디드 스쿨도 그 중 하나였다. 텔레칩스 임베디드 스쿨에 대한 자세한 후기는 없었지만, 국비로 진행되기 때문에 일단 돈이 굳는다는 점, 그리고 여기에서라면 프로젝트 경험을 쌓을 수 있겠다는 생각에 바로 신청할 준비를 했다. 웃긴건, 내 기억에 이거 공고 마감일이 7월 20일이였는데, 공고를 내가 본 날이 19일이였다. 그래서 바로 그 날에 모바일로 취준할 때 쓰려고 했던 포트폴리오랑 이력서를 살짝 바꿔서 준비하고 자기소개서를 작성하고 신청을 갈겼다. 그게 텔레칩스 임베디드 스쿨을 선택한 이유 전부였다. 지금 당장 신청할 수 있는 교육이라서 ㅋㅋㅋㅋ.

그러고 여기에 붙든 떨어지든 나는 임베디드 개발을 이제 공부해야겠다고 생각했었기에 강의랑 아두이노, STM 407 보드를 주문해두고 유튜브로 임베디드 관련 강의를 듣고있었다. 그리고 갑자기 서류에 붙었으니 면접을 보라는 연락이 왔고, 감사하게도 면접을 보고 교육을 들을 수 있는 기회를 차지할 수 있었다.

여담으로, 선발 과정 관여하셨던 라파 담당님께 여쭤보니 서류 경쟁률은 대략 6:1 정도였고, 서류는 3배수 정도로 합격했다고 하셨던 것 같다. 정확하지 않음. 틀릴 수 있음.

0개월차, 오리엔테이션과 텔레칩스 판교 사옥 방문기

내가 신청한 교육의 정식 명칭은 ‘텔레칩스 차량용 반도체 임베디드 스쿨’ 이였다. 그렇다. 이건 차량에 들어가는 임베디드에 대한 과정이였다.

위에서 말한 것처럼, 나는 텔레칩스 임베디드 스쿨 교육을 신청한게 딱히 “텔레칩스”라는 회사에 관심이 있어서도 아니였고, “차량용 반도체”에 관심이 있어서도 아니였다. 그저 나에게는 ‘임베디드 프로젝트 경험을 쌓아서 대학원에 진학하겠다’는 생각 뿐이였다. 그런 고로 이 회사가 어떤 회사인지에 대해서도 크게 관심이 없었다. 뽑아주신 것에 감사할 다름이였다.

그리고 며칠 지나서, 회사에서 교육 시작 이전에 OT를 할 예정이니 판교에 있는 텔레칩스 건물에 오라는 연락을 받았다. 그리고 깜짝 놀랐다. 나는 구로나 가디, 그리고 다른 조그마한 회사들처럼 큰 창업센터같은 건물에서 2-3개 층을 빌려서 쓰는 회사일 거라고 생각했는데, 텔레칩스 사옥이 있다는 것. 그리고 이 건물이 13층 짜리라는 것. 오마이갓. 텔레칩스 라는 회사에 이때까지만 해도 관심이 없었던 나에겐 너무 충격이였다. 나중에 알고보니, 다른 사람들은 텔레칩스에 대해서 잘 알고있었고, 텔레칩스가 뭐하는 회사인지도 모르고 이 교육에 신청한 나를 되려 의아한 눈으로 쳐다봤다 ㅋㅋ.

이 회사가 어떤 회사인지, 어떤 일을 하고 있는지에 대해서 OT 때 설명을 해주셨는데, 사실 반도 못알아들었다. 임베디드 분야의 용어들을 내가 하나도 몰랐던 때라 이해하기도 어려웠고, 그게 왜 중요한지에 대해서도 모르고 있었던 때라서. 기억을 되짚어봤을 땐 ‘BSP’가 중요하다고 했던건 기억이 난다. 그걸 프로젝트 시작 전에 못떠올렸던게 나의 패인이긴 해. 무튼 글로벌 비즈니스를 하고 있는 생각보다 규모있는 회사라는걸 OT에 와서야 알게되었다. 우리아빠도 이미 이 회사에 대해서 알고있었다. 역시 전자칩 비즈니스맨. 아빠의 기억에는 옛날에는 전화기 파는 되게 작은 회사였던 것 같은데, 지금은 자동차 부품을 하고있고 그 사이에 규모있는 회사로 커있다는게 신기하다고 했다.

회사 건물의 가장 윗층에서 시작해서 아래로 내려가면서 업무 공간과 휴식 공간 등을 쭉 구경했다. 뭔진 모르겠지만, 일하고 계신 분들의 책상에는 A4-B5 종이 정도 크기가 되는 개발 보드가 4-5개씩 쌓여있었고, 모니터에는 코드가 줄줄 작성되어있는게 확실히 엄청난 실무를 하고 계신 것 같았다. 과연… 보드를 가져다놓고 뭔가 작업을 한다면 하드웨어에 대해서도 좀 더 빠삭하게 공부할 필요가 있겠다고 느낀 시점이였다.

그렇게 땀 뻘뻘 나는 여름에 텔레칩스 스쿨 교육이 시작되었다.

1개월차, 오랜만이야 C언어

첫 번째 한 달 중 3주 동안은 C언어에 대해서 배우고, 남은 1주에 C언어를 이용한 게임 프로젝트를 진행했다. C언어를 거의 컴공 입학하고 배운 다음에 쓴 적이 없기 때문에 7년만에 C언어를 다시 다뤄봤던 것 같다. 넘 오랜만. 기본적인 문법들과 포인터까지는 기억이 새록새록 나면서 공부를 했었는데, 그 뒤에 나오는 심화 키워드들은 확실히 내가 잘 모르는 것들이 많다고 느끼게 해줬다. static, extern, volatile 같은 키워드들도 있었고, union 이라거나 type, enum, 포인터를 하드하게 다루는 내용들은 확실히 좀 낯설었다. 추상화와 모듈화의 개념을 모를 때 배웠던 C언어와 알 때 보이는 C언어가 확실히 다른 느낌. 여러 파일로 분리해서 C 코드를 작성했던 적도 별로 없었고, 책임을 나누면서 개발하지도 않았던 터라 그랬지 않을까. 무튼 포인터와 갖가지 C언어의 기능에 대해서 첫 3주동안 열심히 팠다.

물론 나는 이미 이 내용들이 어느정도 익숙했던 터라, 임베디드 세계에서 사용하는 C언어 코딩 컨벤션 같은게 있는지 미리 찾아보고 거기에 맞게 작성해보려고 했다. 그 중에서 내가 선택한 것은 MISRA-C 라는 안전 표준 컨벤션. 여기에 어떤 내용들이 있는지에 대해서 따로 번역 및 정리해보면서 왜 이 내용들이 중요한지에 대해서 파악해나가고 있었다. 나중에 정리가 되면 이 내용들도 한 번 정리해서 블로그에 올려봐야지. (저작권 이슈가 있을지도…?)

이 문서를 쭉 찬찬히 읽어나가다보니 내가 모르던 C언어의 딥한 기능들도 몇가지 마주칠 수 있었다. restrict 라는 녀석이 있다고 한다. 요런건 진짜 최적화의 영역이고, 라이브러리의 소스 함수들을 뜯어볼 때 간간히 마주칠 수 있는 녀석들이라서 어떤 의미인지 알고 넘어가는게 좋을 것 같긴 했다. 이런게 나올 때 마다 뭔가 모르게 뿌듯하고 내가 성장하는 것 같고, 그런 느낌이 들었다.

그리고 게임 프로젝트 1주일 동안은 알레그로 라는 라이브러리를 이용해서 게임을 만드는 프로젝트를 진행했다. 4명이 팀이되어서 게임을 개발하는데, 무려 C언어로 작성하는 무시무시한 프로젝트였다. 사실 C언어로 GUI 프로그램도 잘 짜본적이 없는데 게임 프로젝트라고…? 라는 생각을 했는데, 기존에 제공되는 데모 프로그램을 수정해서 만드는 방식이라 그렇게 어렵게 진행되지는 않았다. 그 뭐랄까, 기존 프로그램을 분석해서 구조를 수정하고 우리 입맛에 맞게 바꾸기? 방식으로 진행되었다. 프레임워크를 사용하듯이 쓰면 되는거였는데, 나는 이렇게 작성하는 방식이 되게 익숙해서 그냥 슥삭 진행해버리면 되었는데, 다른 팀원들은 전자과 출신이라 C언어 자체도 낯선데, main() 부터 직접 작성하는 방식만 하다가 갑자기 몇 백줄의 코드가 이미 작성되어있는 곳에다가 자기 코드를 써넣는 게 되게 어렵게 느끼는 것으로 보였다.

그래서 어떤식으로 개발을 해나가야하는지에 대해서 가이드라인을 팀원들에게 제공하려고 노력했다. 모듈 별로 책임을 분리해야 한다. XX의 역할을 하는 코드는 파일 별로 분리해야한다. 관련 없는 코드는 분리해야한다. 함수를 보면 어떤 역할을 수행하는지 눈에 들어오도록 함수로 분리해야한다. 되게 많은 이야기를 해줬는데, 매번 팀원들이 가져오는 코드는 main.c 안에 있는 while(true) 안에서 반복되는 코드였다. (대충 이마 탁 치는 GIF) Git으로 코드 관리하는 방법도 간단하게 알려줬는데, 이 타이밍에 요긴하게 써먹었다가 한 달 지나니 팀원들이 이거 쓰는 법 다 까먹긴 하더라 ㅋㅋㅋ (ㅠㅠ)

덕분에 MISRA 같은 코딩 컨벤션들을 막 적용해보지 못했고, 하고싶었던 것들을 많이 해보지는 못했던 아쉬움 가득한 프로젝트였다.

2개월차, 반가운 알고리즘과 쌩뚱맞은 파이썬

2번째 달에는 C언어로 알고리즘 구현과 파이썬으로 하는 데이터 분석을 배웠다. 사실 알고리즘까지는 필요하다고 생각했는데, 파이썬은 도대체 왜…? 라는 생각을 했다. (지금까지도 한 7:3으로 왜 배웠지:필요했지 라고 생각하고 있다.)

알고리즘은 예전에 공부를 한 적이 있기 때문에 사실 그렇게 어렵지는 않았다. 어렵다기 보다는 그냥 내가 배웠던 것들을 다시 끄집어내는 것만으로 충분했다. 사실 C언어 구현 능력도 없는 사람들이 모여서 2-3주만에 알고리즘을 배워봤자 얼마나 멀리까지 갈 수 있겠나. 나는 사실 재귀, BFS, DFS 를 다루는 걸 보고 놀랬다. 과연 3주만에 여기까지 자력으로 따라올 수 있는 사람이 있을까! 정도의 생각이 들었다. 난 그래도 군대에 있을 때 알고리즘 문제풀이를 미리 해뒀어서 다행이지 (심지어 컴퓨터없이 손코딩으로 공부했다. 이게 챗GPT 이전의 세대지).

텔레칩스 임베디드 스쿨은 다른 교육이랑 다르게 코딩테스트를 안보고 선발했기 때문에 이런 구현 능력이나 코드 설계 능력이 없는 사람들이 많아서 특히나 다들 더 어려워했던 것 같다. 컴공보다 전자과가 더 많기도 했으니. 코테를 보고 인원을 선발했더라면 프로젝트가 더 수월했을지도 모르겠다는 생각이 자꾸만 드는건 기분탓이겠지..?

교육이 끝난 지금 생각해보면 결국 코드를 잘 짜는 사람들이 많이 유리한 과정이였던 것 같다. 나는 어쨌든 임베디드니깐 하드웨어 지식이 많은 사람들이 결국 승리할거라고 생각했는데, 그보다는 코드를 잘 짜는 사람들에게 더 유리하지 않았다. 그렇다고 객체지향 설계나 아키텍처 설계 수준의 능력까지는 필요없었고, 그냥 C 프로그램 정도를 수월하게 짤 수 있는 사람이면 충분했던 것 같다.

그렇게 약 3주간의 알고리즘 공부를 끝마치고 (문제도 아주 평이하게 나왔던 것 같다. 문제 해석을 잘못해서 하나 틀린 것 빼고는 말이지) 그 다음에는 파이썬 과정에 들어갔다. 파이썬 타임에서는 그냥 기본적인 붓꽃 데이터, 타이타닉 데이터 같은걸로 분석하는 방법에 대해서 배우는 과정이 있었는데, 정확히는 데이터 분석을 하는 방법을 배운다기 보다는, 파이썬이라는 언어와 넘파이와 판다스 같은 툴을 다루는 방법에 대해서 수업을 진행했다.

파이썬을 배우던 당시와 교육 과정이 종료된 지금 시점에서 생각해본다면 파이썬을 배운 의의는 아마 요런 것들 아니였을까?

  • C 말고 다른 언어를 배우는 것에 대해서 거부감을 줄이기 (심지어 패러다임이 다른 인터프리터 언어임)
  • 패키지의 개념을 알려주기. (리눅스나 다른 개발 단계로 올라가면 외부 패키지를 설치해서 사용하는 과정들을 미리 맛보여주기)
  • C 처럼 모든 것을 알고 개발하는게 아니라, 도큐먼트를 보면서 개발하는 방법 맛보기 (넘파이, 판다스 같은걸 사용할 때 사용방법을 외워서 하는게 아니라 다큐먼트를 보고 개발하도록 문서 읽기를 함께 진행했다.)

그리고 경기과기대에 자동차 분해 실습을 다녀왔다. 현장감 있는 후기를 위해서, 이전에 작성했던 회고글의 내용을 잠시 인용해오겠다.

 

그런데 이 때 내가 특히 충격먹었던 건, 전기자동차에 들어가는 회로에 대해서 나는 아는게 정말 하나도 없는데 같이 수업을 듣던 피어들은 “당연한거지” 라는 느낌으로 수업을 듣는다는 인상을 받았다는 것이다. 나는 코일이라는게 회로에 기본 부품으로 들어간다는 걸 오늘 처음 안 것 같은데,,, 기본 소자도 모르거니와 이미 모듈화된 모터나 릴레이 스위치? 같은 부품들도 나는 하나도 모른다는걸 깨달았다. 그런데 아무리 생각해도 이런게 임베디드에서 프로페셔널하게 개발을 할 때 모르면 안되는 내용들이라고 생각이 들어서 기본 회로 학습에 대한 니즈가 좀 생겼다. 물론 내가 HW 설계 업무를 할거기 때문에 이걸로 시스템을 직접 구성하고 안정성을 평가할 수 있을 정도의 무언가를 할 필요는 없겠지만, 내가 돌리는 시스템의 추상화가 어떻게 되어있는지 정도는 알아야 돈받고 일하는 수준이 될 수 있으리라 믿는다.

그리고 이 시기에 내가 HW나 STM 보드를 만져본 경험이 하나도 없다보니, 준수한 학업성취도를 위해서 나름 공부를 시작했다. 출퇴근하는 시간동안에는 “신호 및 시스템” 강의를 유튜브로 수강했다. 완전히 수학적인 내용이였는데, 이게 결국 내가 Digital Signal Processing을 하기 위해서 필요한 선수과목이라고 생각해서 지식을 쌓아나갔다. 요걸 공부하고 정리하는 과정이 블로그에 작성되어 있는데, 나름 내 노력이였다는걸 알아줬으면 좋겠다. 그러고 신및시 완강 후에 DSP를 공부하기 전에 강사님께 혹시 내가 하드웨어적인 지식을 미리 알아둬야 하는게 얼마나 있을지에 대해서 질문을 드리고 준비를 하려고 했는데, 회사에서 원하는 임베디드 개발을 위해서 이 정도의 지식까지는 알 필요는 없을 것 같고, 기본적인 전기와 회로 이론을 알려주셨다. 샤라웃 투 닥터 문. 그럼에도 나중에 회사에서 일을 하면서 필요하면 이런 DSP 나 전공 지식들을 스스로 좀 공부해보지 않을까 싶다.

그리고 스터디를 하나 만들어서 STM보드를 미리 사용해보고자 했다. 이것도 내가 전혀 모르는 분야라서 미리 준비해둘 필요가 있으리라 생각했고, 유튜브에서 오제이튜브의 강의 영상을 보면서 하나씩 따라해보려고 했다. 내가 샀던 보드는 STMF407 보드였던 것 같은데, 나름 강의 영상이랑 핀맵이나 이러저러한게 달라서, 그대로 따라할 수는 없었기에 이러저러하게 응용하면서 배우는 맛이 있었던 것 같다. 완전히 완성을 못했던게 좀 아쉬운데 (마무리를 할 때 즈음에 프로젝트에 들어가버렸던 것 같다) 그래도 ST IDE를 사용하는 방법도 미리 배우고 여러가지로 도움이 꽤나 많이 되었던 것 같다.

만약 코드 짤 줄 아는 사람이라면 STM32 보드를 먼저 사용해보는 프로젝트를 진행해도 도움이 많이 될 것 같다. 물론 최종 프로젝트 마감 2-3주 전까지 알고리즘 스터디를 하는 팀도 있었던 것 같다. 꾸준히, 열심히 잘 하는 것 같아서 대단하다고 생각이 들었다. 샤라웃 입니다 ^^7

3개월차, 펌웨어 그리고 RTOS와의 만남

그렇게 새로운 강사님(닥터 문)과 함께 드디어 고대하던 펌웨어 수업을 만나게 되었다.

펌웨어 수업은 전체적인 STM 보드의 기본과 GPIO를 다루는 방법 등에 대해서 배웠다. AMBA 버스에 물려있는 내부 페리퍼럴들에 대해서 배우고, 이를 어떻게 제어해야하는지, ST IDE에서 제공하는 여러 옵션들이 어떤 의미인지에 대해서 넓게 배웠다. 이전 스터디에서 배웠던 내용들이 나오긴 했는데, 이건 정말 ‘간단한’ 예제 수준이였다. 단순히 모듈이랑 통신하면서 데이터를 가져오기 위해서 사용하는건 엄청 쉽게 ‘딸깍’으로 해결되는 부분들이였는데, 그래서 ‘딸깍을 하면 어떤 일들이 일어나는가’를 배우는게 수업의 목적이였다.

그 과정에서 내가 참고해야하는 자료는 ARM, ST의 공식문서들이였다. 영어로 된 공식문서를 보고 개발하는건 이미 iOS 개발과 플러터 개발을 하면서 배운 방식이라 크게 어렵지 않았다. 대신 뭔가 이 개발 보드 자체에 익숙하지 않아서 어려움이 있었다. 마법같은 일들이 일어나는데에 $ms$, $\mu s$ 단위의 시간이 걸린다거나. 하드웨어 (솔더 브릿지) 이슈도 함께 확인하면서 문서를 읽어야 한다던가. 그런 부분들이 낯설면서도 너무 재미있었다.

펌웨어에 대해서 배우고 나서, freeRTOS 에 대해서도 배웠다. 이 freeRTOS가 가지고 있는 커널이 어떻게 동작하는지, 그리고 그 아래에서 어떤 식으로 Task들을 관리하고 Context Switch로 프로그램을 동작시키는지에 대해서 배웠다. 정확히는 “이런 것들이 있으니 어떻게 동작하는지 한 번 찾아봐라! 그리고 정리하고 공유해보자!”의 느낌으로 수업이 진행되었다. 이전 애플 개발자 아카데미에서 했던 방식처럼 방목형으로 풀어두고 배우는 방식이 처음엔 사실 맘에 들지 않았다. 나는 그냥 강의식으로 해서 지식을 주입당하고 싶다고!!! 그치만 역시나, 이렇게 하니 배우는게 정말 많긴 했다. 뭐랄까,, 스스로에게 질문하고 답을 찾으면서 배우는 방식이라고 해야하나? ㅋㅋㅋㅋ

직접 박치기해서 배우고 경험을 얻고, 이걸 텍스트로 정리하면서 배우는게 내가 하던 방식인데, 수업 방식이 이렇게 진행되었던 건 좀 유용했던 것 같다. 심지어 나는 그걸 노션에 정리했다가 블로그에 포스팅까지 한다고. 덕분에 글정리하는 시간도 꽤나 아낄 수 있었던 것 같다. 그럼에도 시간은 글 하나 당 최소 3시간은 더 걸리긴 했지만, 꽤괜. 다른 사람들은 블로그 글까지는 적지 않았지만, 각자 팀 자료 정리 및 아카이빙을 열심히 해뒀다. 분명 이 과정을 듣는 사람이라면 그런 정리 결과를 남기는 방법을 터득하는데에 도움이 될 것이라 본다.

4개월차, 리눅스를 아시나요

그 다음으로 리눅스에 대해 배웠다.

라즈베리파이 위에서 리눅스에 SSH로 접속을 하고, 여기에서 루트파일시스템에 있는 파일 구조에 대해서 파악한다거나, 명령어로 뭔가 수행해본다거나 하는 일들을 먼저 다뤘다. 그 다음에는 리눅스 커널이 하는 일, 시스템콜로 인터럽트를 처리하는 과정, 디바이스트리와 모듈을 활용하는 방법과 커널 빌드 과정까지 배웠다.

만약 텔레칩스에 관심이 있는 사람이라면 이걸 진득하게 파는게 좋아보인다.

이 과정에서 배운 것들이 진짜 프로젝트에서 너무너무 요긴하게 사용되었다. 가능한 디바이스트리, 드라이버 코드, U-Boot 부팅과정이랑 커널 관련된 내용들은 자세하게 공부하고 깊이있게 정리해두는게 좋았겠다는 후회가 든다. 나는 프로젝트에서 이 내용들보다 하드웨어와 관련된 부분들이 더 중요할 거라고 생각했는데, 그보다는 리눅스와 코드를 잘 다루는 방법이 좀 더 중요했던 것 같다.

만약 이번에 텔레칩스 인턴쉽으로 선발되지 못한다면 라즈베리파이 같은 리눅스가 올라가는 개발 보드를 하나 구매하고, 여기에 리눅스 커널을 빌드해서 올려보거나, 디바이스 드라이버를 하나 잡고 소스코드를 열어보면서 어떤 구조로 되어있나 살펴보기, 드라이버를 직접 만들어서 디바이스 트리에 추가하기 같은 것들을 시도해볼 것 같다. 아마 앞으로도 임베디드 개발자 중에서 BSP 같은 리눅스 관련 직군에서 일을 하게 된다면 이런 능력이 정말 중요하게 보일 것 같다.

개인적으로 내 스스로에게 아쉬운 점은, 여기 리눅스를 공부할 때 리눅스가 중요하다는 것을 미리 파악하지 못했다는 것. 만약 내가 채용공고 들을 조금 더 살펴봤더라면, 그리고 텔레칩스에서 어떤 거에 관심이 있어하는지를 미리 좀 파악을 해뒀더라면 어떨까 싶다. 그러면 이 시간에 리눅스에 조금 더 시간을 투자하고 이걸 발표랑 면접 때 좀 더 어필을 할 수 있었을텐데… 라는 아쉬움이 좀 있다.

지난 4개월간의 교육 끝에, 내가 강의실 내에서 성적으로는 1등이라는 소식을 접하게 되었다. 꺄륵쿠스투스! 그럼에도 나는 이 시점에 모든 면에서 내가 배울 시간이 적었던 것에 아쉬움을 토로하고 있었다. 커널도 좀 더 뜯어보고싶고, OS로서 리눅스의 역할도 더 찾아보고 싶었고, 디바이스 드라이버 모듈을 직접 하나 구현해본다거나 구조를 분석해보고 싶기도 했고, 리눅스 프로그램 하나 정도는 좀 작성해보고 싶고. 많은 것들을 해내보고 싶었는데 시간 제약상 그러지 못했던게 너무 아쉬웠다. 무엇보다 리눅스가 제일 재밌긴 했다. 상위 소프트웨어라서 그런가. 원래는 이 교육고정을 들으면서 내가 가능한 하드웨어 가까운 레벨로 내려가는게 목표였는데, 지금까지 잘 해왔던 상위 소프트웨어의 경험을 버리는게 아깝기도 했고 전기가 디지털이 아니라 아날로그라는 것을 문득 마주친 순간 “아, 이건 내 영역이 아닐지도 모르겠다” 라는 생각이 들었다. 난 그냥 전기가 통하면 1, 안통하면 0이라고 생각하고 있었는데, 전선과 레지스터에 전기가 충전되는 시간이 있으니 그걸 기다려줘야한다는 것. 아… 전기가… 충전돼서 칸 하나를 채워…? 저항이 높으면 그 시간이 길어져서 통신이 정해준 속도로 안될 수 있어…? 아주 섬뜩한 순간이였다. ㅋㅋㅋㅋㅋ. 그리고 이런 펌웨어나 하드웨어 단 보다는 그래도 리눅스를 가지고 노는 BSP 계층이 조금 더 수요가 있으니깐.

5개월차, 1차 프로젝트의 시작

드디어 1차 프로젝트가 시작되었다. 재밌는건, 팀 구성 자체를 우리가 진행할 수 있었다. 대신 A, B, C 등급으로 나뉘어있는 인원들을 적절하게 배분해서 팀원들을 선발해야했다. 이걸 결정하는 권한 자체는 팀장들에게 있었는데 운 좋게도 내가 팀장 라인에 속했다. 하필 내가 예비군 훈련으로 자리를 비운 동안에 팀원 선발하는 날이 있어서 팀 구성이 내 마음에 안들게 짜질까봐 조마조마했다. 다행히도 딱 시간이 나서 DM으로 참여할 수 있을 때 팀 선발을 한다고 해서 너무 다행히도 원격으로 참여할 수 있었다. 아주 민주적이고 합리적인 절차를 거쳐서 5-6명의 인원을 선발했고, 우리팀은 내가 생각할 때 아주 옹골찬 5명을 모을 수 있었다. 프로젝트 주제로는 RAPA 사이트에서도 볼 수 있었던 5가지 주제가 제시되었고, 그 중에서 하나씩 골라서 팀 주제를 구체화 해야했다.

우리에게 할당된 주제는 IoT 였다. 고민을 해봐도 근데 IoT로 뭔가 할 수 있는 내용이 거의 없었던 것 같았다. 단순히 차량 내 인포테인먼트의 구성 같은건 너무 흔한 주제인 것 같고 (인포테인먼트가 주제인 팀도 따로 있었음) 뭔가 차량 내에서 IoT를 사용하는 것처럼 무선으로 통신하는 장치를 만들자니 ‘굳이 차량 내에서 무선으로 할 일이 있나…?’ 라는 생각이 들었다. 그래서 아예 차량 하나하나를 노드로 사용하는 IoT 환경을 떠올렸고, 차량 간 통신(V2X)를 우리의 메인 주제로 잡게되었다.

1차 프로젝트에서는 라즈베리파이와 STM32 보드를 사용해서 개발을 해야했다. 몇 가지 조건이 있었는데 펌웨어, RTOS, 리눅스를 반드시 사용할 것. AI가 포함된 기능을 반드시 탑재할 것 등이 있었다. 물론 이런 것들을 포함시킨 구조를 잡는건 자신있었지. 내게 힘들었던 건 이걸 어떤 팀원들에게 작업을 배분하냐, 프로젝트를 어떻게 이끌 것인가였다. 어쨌든 우리 프로젝트는 2차까지 이어져야하니, 1차 프로젝트에서 내가 생각했던 목표는 “최대한 많이 배우기” 였다. 다른 팀에서는 수업에서 다뤘던 모든 내용을 쭉 나열해두고, 이걸 프로젝트에 한 번씩 써먹어보자! 라는 컨셉으로 접근한 팀도 있었는데, 나는 “내가 못하는 걸 담당해서 한 번 뚫어보기” 를 컨셉으로 잡았다. 물론 이게 썩 괜찮긴 했는데, 개인적으로는 이게 우리 프로젝트가 계속 딜레이되었던 패인이라 생각한다. 이거 하지 말걸… 지금도 계속 후회된다.

프로젝트 과정에서 나는 나름 내가 지금까지 해왔던 많은 것들을 적용해서 프로젝트를 진행하고 싶었다. 그런데 그건 내 욕심이였고, 팀원들이 여기에 맞춰주지 않으니 적용하기가 너무 힘들더라. 물론 하드웨어 같은 영역은 내가 잘 모르는 영역이니 다른 팀원들에게 맡기고 진행하긴 했는데, 모든게 순탄히 진행되지는 않았다. 개인적으로 생각할 때 모든 나사가 삐걱대지 않았나. 그럼에도 이걸 잘 굴려가는게 팀장으로서 나의 역할이라고 생각하고 열심히 조율해내려고 노력했다.

프로젝트 과정에서 내가 담당했던 일들은

  • 매일 2번 스크럼마스터 (Task 현황 파악하고, 막히는 지점 빠르게 공유해서 문제 해결 도와주려고 했음)
  • 문서 작업 필요한거 왁왁 쳐내기 (2차 프로젝트 때에는 팀원들한테 넘기려고 했는데, 바쁘니깐 정작 문서작업 많이 못했음)
  • 문서 기반으로 소프트웨어 구조 짜기 (설계는 다 했는데, 팀원들이 이거 기반으로 짜긴 했지만, 나랑 똑같은 생각으로 코드 구현이 되지는 않았음)
  • RTOS 기반의 센서 보드 코드 구현 (← 나도 핵심적인 로직의 구현을 하고싶었는데, 어쩌다보니 아무도 안하고 남은 잔바리 처리로 간단하게만 구현했음. 시간이 허락했다면 이걸 소프트웨어 적으로 기가막히게 작성해보고 싶었으나 일정 문제로 실패했음 ㅜㅜ. 지금이라도..?)
  • 똥 치우기 (팀 내에서 개발 중에 디버깅 해야할 일이 있으면 내가 찾아가서 해결해줬다. 나는 어떻게 이 코드가 작성되어 있는지도 잘 모르는데 가서 디버깅해서 찾아내고 해결해줬다. 참 다행인 일이야. )
  • 발표 준비와 발표하기

만약 내가 1차 프로젝트를 다시 한다면 다음 내용들을 안할 것 같다.

  • 하드웨어는 최대한 기성품을 사용하기. 소프트웨어 교육과정에서는 여기에 별로 관심을 주지 않는다. 차량 하우징 자체 제작? 굳이 그럴 필요가 있나. 최대한 기성품이나 제품들을 활용하고 결합해서 차량을 만들어서, 하드웨어에 걸리는 시간이나 노력을 최대한 줄인다. 이 시간에 리눅스에 더 깊숙히 들어가자.
  • 각자 하고싶은 것 말고, 각자가 잘하는 것을 할 일로 선택하자. 너무너무 스트레스였다. A를 잘하는 사람이 잘 모르는 영역인 B를 담당하면 일어날 수 있는 최악의 경우를 보게 된 것 같다. B를 하기 싫으니 미뤄두고 A를 하러 가버리면 B는 그냥 계속 버려진 채로 있게 되더라. 결국 내가 맡아서 작업했다. 시간이 좀 있으면 정교하게 설계하고 구현해냈을텐데, 시간이 없으니 그냥 AI 에이전트로 얼른 구현해버리고 그 다음 문제를 또 해결하러 갔다. 이게 너무너무 아쉽다. 그냥 초반부터 내가 담당했으면 더 완성도 있고 확장성 있게 설계하고 구현할 수 있었을텐데. 혹시 다음 기수가 이 내용을 보고있다면 절대 잘하는 것을 담당하자. 결국 못하는건 하기 싫어서 미뤄두게되고, 나중에 똥 치우는 사람이 밀린걸 쳐내야한다. 아니면 하기 싫으면 빨리 말하자.
  • 발표자료나 시연 영상 제작 등, 개발 외적인 툴 다루는 역량을 빨리 파악해두자. 팀 내에서 결과물이 계속 늦게 나와서, 내가 시연 영상을 확인하지 못하고 발표 자료 쪽에만 담당해서 작업을 했다. 나중에 시연영상 확인해보니 정말 참담한 편집본을 가져왔었다. 이건 우리팀 앞에 있을 때에도 이 워딩 그대로 말할 수 있을 것 같다. 정말 참담했다… 왜냐면 발표영상이 거의 3분인데 우리가 만든 차량은 한 15초 정도만 나오고, 나머지는 다 제미나이로 만든 AI 이미지가 들어있어서 뭘 보여주고 싶은지도 모르겠고 머리가 띵했다 정말. 근데 영상을 추출하고 있을 땐 이미 1차 발표자료 제출 마감이 15분이 지난 시간이라 이걸 새로 편집할수도 없고… 강사님께 제출시간 오버해서 내서 죄송하다고 DM 보내드리고 자료를 제출했었다.

나는 여기에서 프로페셔널로 작업하는 방법을 배우고 이걸 프로젝트에도 많이 적용하고 싶었는데, 꼭 우리 팀 뿐만 아니라 같이 강의를 듣는 다른 사람들을 포함해서, 프로페셔널하게 가는 방향에 대해서 별로 욕심이나 뜻이 없는 것처럼 느껴졌었다. 마감 시한을 지키는게 나는 기본 of 기본이고 너무 중요하다고 생각하는데, 별로 그런걸 중요하게 생각하지 않는 것 같아서 좀 의아하긴 했어.

꾸역꾸역 발표를 하고 사실 나는 너무나도 속상했다. 우리팀이 그래도 노력도 많이 했고 시간도 제일 많이 쏟아붇고(제일 야근 많이 한 팀이 우리팀이 아닐까) 개같이 굴렀는데, 결과물을 보여주는 시점에 이렇게 자빠져서 별 노력 안한 것처럼 보이는 결과물을 가져와서 발표를 한다는게 너무 싫었다. 발표 자료도 구성을 알차게 담지 못하고, 수치적인 것들도 많이 못담아서 그냥 “해봤다” 수준의 프로젝트라 발표할 맛도 안났고. 아쉬움이 너무너무 많았는데… 왠걸? 1차 프로젝트 발표에서 1등을 했다. 나는 근데 진짜 이 결과의 너무나도 의아했다. (진심임. 다른 팀들한테 지금도 솔직히 미안하고, 강사님께 왜 우리가 1등이냐고 나중에 물어보고 싶음 ㅋㅋㅋ) 데드라인도 못맞추고, 프로젝트에서 그렇다할 수치적 성과를 뚜렷하게 제시하지도 못했는데.

지금 궁예를 해보자면 아마도 강사님께서 좋게 보셨던 포인트는 요런게 아니였을까 싶다. 매일 해야할 일로 강사님께 프로젝트 일일 보고가 있었는데, 다음 기수가 이걸 보고있다면 참고하자.

  • 우리가 앞으로 해야하는 작업을 모두 노션에다가 Task 티켓으로 만들어두고, 완료했음 체크 → 이게 대쉬보드에서 수치적으로 몇 % 작업했는지 나오도록 하여 보고했음.
  • 스크럼 미팅을 통해서 각자가 어떤 일을 했고, 하고있는지. 어디에서 막혔는지에 대해서 브리핑하고, 이걸 강사님께 보고했음.
  • 나쁘지 않은 주제 선정과 프로젝트 운영.
  • 발표 (사실 다들 내게 발표를 잘하는 편이라고 해주시는데, 전혀 잘하는 편이 아니고 나는 발표가 혐오스럽다 생각하는데 왜 발표로 커버했다고 하는지 잘 모르겠음 ㅋㅋ)

이걸 강사님께서는 좋게 보셨을거라고 생각하고, 최종 발표자료에도 이렇게 장표 하나를 할애해서 이 내용을 담긴 했다.

6개월차, 2차 프로젝트

그렇게 1차 프로젝트가 끝나고 마지막 달이 시작되었다.

여러가지 기능들을 확장해서 야심차게 프로젝트를 시작했지만, 그건 큰 오산이였다. ST 보드와 라즈베리파이로 구현한 프로젝트를 텔레칩스의 TOPST 보드로 포팅을 위해서 넘어야 하는 산이 너무 많았고 거기에 시간이 꽤 많이 걸렸다. 결국 최종 프로젝트에서 좋은 점수를 받은 팀들은 확장을 안하고 1차 프로젝트를 그대로 2차 프로젝트로 옮긴 팀들이였던 것 같다. 우리가 1차 프로젝트 때 앞선 기수들보다 원체 기능적으로 더 멀리까지 시도했어서, 이걸 그냥 2차 프로젝트에서 그대로 구현했어도 되는 볼륨이였을지도 모르겠다.

포팅 과정에서 우리가 봐야했던 내용들은 요런 내용들이 있었다.

  • D3-G 보드의 부팅 과정과 문제 해결
  • Yocto 커스텀 빌드 후 U-Boot 부팅 과정과 문제 해결
  • CAN 활성화를 위한 디바이스 트리 조작과 커널 변경
  • 라즈베리파이에서 사용한 실행 환경의 이전을 위한 패키지 추가 및 빌드

앞서 1차 프로젝트 때 잘하는걸 담당한 게 아니라 자기가 제일 못하는걸 담당했던 터라, 시간이 너무 오래 걸리고 하기 싫다고 미뤄두고 다른거 하러 다닌게 너무 스트레스받아서 팀 회의에서 역할을 바꾸자고 제안을 했다. 하고싶은걸 하는 시간은 내가볼 때 지난 것 같고, 이제 잘하는걸 할 때인 것 같다고. 근데 팀원들은 그냥 하고있던거 하고싶다고 했다. 이때도 이걸 말렸어야 했는데. 막지 못했다. 덕분에 이번에도 미친 작업 질질끌기, 미친 일정 딜레이가 발생하고야 말았다. 사실 팀장으로서 그러면 안되는데, 이제 팀원들을 신뢰할 수 없는 영역에 드러서고 있었다. “맡기느니 차라리 내가하지.” 근데, 이것도 아주 큰 패인이였다.

2차 프로젝트 때 내가 담당했던 건 다음과 같다.

  • 이번에도 회의 진행하기
  • RTOS 센서 시스템 → VCP 보드로 이전하기 (이건 근데 2-3일 밖에 안걸렸음)
  • 네트워크 프로토콜 설계 (마감이 코앞이라 구현할 시간 없어서 2시간만에 설계랑 에이전트로 금방 끝냈음)
  • 무선으로 차량 간 메시지 받으면 화면에 띄우고 스피커에서 출력 내기 (이건 qml이라는 스크립트 언어에 파이썬으로 코드 짜는 부분이라 내가 내 지식으로 할 수 있는 부분이 아니라 에이전트로 빨리 쳐내고 다른 중요한 것들 하고자 했음)
  • AI 보드에 기능 포팅 (3주동안 똥이 눈앞에 있는데 안치우길래 기다려주다가 결국 못참겠어서 2일만에 내가 포팅 끝냄)
  • 영상 편집 (1차 때 하는 걸 보니 팀원들이 하면 또 큰일날 것 같아서 내가 함)
  • 발표자료 만들고 발표하기 (발표자료 만들 때 감을 잘 못잡아서 큰 흐름부터 슬라이드마다 어떤 내용 들어가야 하는지 발표 흐름이랑 언급해야 하는 부분들 내가 다 설계함)
  • 디버깅 (돌아다니면서 안되는 부분 찾아서 계속 해결하고 돌아다님)

한건 많은데, 이 프로젝트에서 핵심적인건 나는 하나도 건드리지 못했다. 그게 너무너무 아쉽다. 그냥 팀원을 못믿겠을 때에도 맡기고 내 미래와 취준을 위해서 중요한걸 하나 가져왔어야 했나 라는 생각이 프로젝트 내내 계속 들었다. 그럼에도 1차 처럼 또 등신같이 발표를 해야하는건 너무너무 싫은데 어떻게 해. 나는 시연 영상 구상도 해야하고 촬영해서 영상 편집도 해야하고 발표 준비도 해야하고 면접 준비도 해야하고, 할게 너무 많은데 팀원들은 별로 신경 쓰지 않고 프로젝트에 임하는 것 같아서 너무 답답했다. 이럴 때 한 마디 할 줄 알아야 하는데, 성격이 실망하면 “내가 하지 뭐” 인 타입이라 그냥 다 내가 했던 것 같다. 그렇다고 남들 가르쳐서 뭔가 시간 내에 결과를 뽑아낼수도 없는 상황이라서. 핵심을 찌르지 못한게 좀 많이 아쉽다. 막판에 급한 마음에 뭐라도 해보려고 디바이스 드라이버 쪽을 건드려서 Yocto 빌드를 하나 해보긴 했는데, 결국에는 이거 다 버리고 리눅스로 떠나버렸던 터라…

만약 2차 프로젝트를 다시 한다면 양보하지 말고 욕심을 조금 더 내서 내가 분명하게 가져갈 수 있는 몫을 챙기려고 했을 것 같다. 다른 팀에서는 팀장들이 다들 중요한 부분 담당해서 구현까지 했던 것 같은데, 나만 이렇게 잡일이랑 똥 치우기만 하느라 중요한 일을 못했던 것 같아서, 다시 생각해도 또 아쉽네 ;ㅅ;

최종 발표와 면접

최종 발표를 위해서 마지막 날, 판교로 날아갔다. 한 8시 30분 쯤에 도착했는데, 다들 8시부터 와서 기다리고 있었다고 한다.

긴장되는 순서를 기다리고 (심지어 마지막 순서였다!!!) 준비해온 발표를 무사히 끝마쳤다. 딱 더도말고 덜도말고 준비해온 만큼만 발표를 진행했던 것 같다. 사실 뭐 거기에서 내가 더 말할 수 있는 것도 없었고, 발표자료 대로 대본을 짰던거라서, 막 떨면서 버벅대지 않아서 다행이지 뭐. 질문도 엄청 날카로운 질문들은 없었는데, 내가 질문에 근사하게 대답하지는 못했던게 좀 아쉽다. UDP와 TCP 중에 UDP를 선택한 기준에 대해서 한 번 말해보라고 했는데, 조금 더 탄탄하게 답변을 준비하지 못했던게 아쉽다. 해당 부분은 내가 아니라 팀원에게 질문에 대한 디펜스를 준비하도록 넘겨준 부분이라 더 그랬던 것 같다 ㅜㅜㅜ 또 칼만 필터를 사용했다고 발표 슬라이드 하나를 할애해서 설명을 했는데, 왜 칼만 필터를 선택했는지에 대해서 칼만 필터의 특성과 다른 필터와의 차이점을 들어서 설명해달라고 요청해주셨다. 여기에 대해서는 그래도 내가 칼만 필터 적용을 위해서 한 번 공부했던 내용이라서 잘 답변을 했던 것 같았다. 발표 당시에는 막 타이트하게 기술적으로 압박이 되는 질문을 하지는 않아 그래도 다행이랄까…

발표 이후에 시상식을 바로 하고, 바로 면접에 들어갔다. 발표는 5명이 한 조가 되어서 들어가고, 조 당 한 50분 정도 진행이 되었던 것 같다. 이 때 우리는 지레 성적순으로 들어갈거라고 생각했는데, 성적 순도 아니고 이름 순도 아니였어서 의아하게 발표 조를 할당받았다. 면접은 막 그렇게 힘들지 않았다. 면접관으로는 HR팀 한 분과, 실무 팀장님들 3분이 참석해주셨다. 나는 기술 질문들이 많이 나올거라고 생각하고 걱정했는데, 기술 질문은 없었고 인성 면접에 가까운 질문들이 더 많았던 것 같다. 프로젝트에서 개인적으로 기술적인거 제외하고 아쉬웠던 점을 하나 들어보라는 질문에 답을 못했는데, 나머지에 대해서는 즉석에서 답변한 것 치고 답을 잘했던 것 같다. 한 번 더 해당 질문에 대해서 답을 할 기회를 주셨는데, 진짜 머릿속에 아무 생각이 안들어서 질문에 대한 답변을 넘겨버렸던게 너무 아쉽다. 면접이 끝날때 즈음 되어서야 “쓴소리를 잘 못하는 편이라서, 프로젝트의 리딩을 잘 못한게 아쉽다”고 말할걸… 이라는 생각이 들었다. 속상하지만, 면접을 많이 안봤던게 여기에서 다 드러난거겠지 뭐 ㅜㅜ ㅋㅋㅋ

그렇게 6개월간의 시원섭섭한 텔레칩스 차량용 반도체 임베디드 스쿨 3기의 종지부를 찍었다! 너무너무 힘들고 너무너무 재미있었던 6개월이였다. 돌아봤을 때 또 한 번 더 하고싶다면 널널하게 살았던거고, 힘들었고 다시는 돌아가고 싶지 않다면 열심히 산거라던데, 이번 텔레칩스 스쿨은 돌아가고 싶지 않은 힘든 순간이였다. 그걸 보면 꽤나 열심히 노력하면서 지냈던 것 같기도 하고. 나름 보람차다 ㅎㅎㅎ. 그래도 끝내주게 재미있긴 했다. 배운 것도 많고, 그만큼 빠르게 모르는 것들도 늘어나고. 새로운 시야가 펼쳐진 반 년이였다.

개인적으로는 이 회사가 생각보다 내가 재미를 느끼는 분야를 다루고 있는 회사이고, 회사 자체도 좋은 회사라는 생각이 들어서 인턴십으로 뽑아주면 너무 좋겠다고 생각하고 있다. 사실 꼭 불러줬으면 좋겠다. 제발, 텔레칩스!!!

이제 뭐하지

2차 프로젝트때 사실 너무너무 힘들었어서 스트레스성 치통도 오고(진짜 누가 뺀찌로 내 어금니를 잡고 흔드는 통증… 이건 찾아보니 진통제도 안듣는 거였더라. 나는 너무 아파서 잠도 못자고 탁센에 타이레놀에 막 쏟아부었었는데…) 머리도 빠지고… 설 연휴동안은 좀 길게 쉬려고 한다.

그 다음에는 프로젝트동안 배웠지만 정리하지 못했던 것들을 이제 정리를 좀 해두려고 한다. 보드와 윈도우 노트북을 모두 반납한 터라 당장 실습을 해보기는 어렵지만, 개념들과 내가 어떤걸 이제 공부해야 할 지에 대해서는 좀 파악이 된 것 같아서 정리를 해볼까 싶다.

만약 텔레칩스 인턴십에 붙는다면 이를 위한 준비와 인턴십에서 또 배우는 것들을 많이 정리하고 잘 해내기 위해서 노력하겠지만, 만에 하나 붙지 못한다면(ㅜㅜㅜ) 취준을 위해 라즈베리파이를 하나 사서 커널 작업들을 많이 실습으로 해볼 것 같다. 특히 리눅스 쪽 작업들이 아직 안해본 것도 많고 궁금한 것도 많아서, 투자를 하지 않을까.

개인적인 재미용 사이드 프로젝트로, 라즈베리파이의 핀맵을 구성하는 사이트도 하나 만들어볼까 싶다. 여러 통신 방식을 선택했을 때 이걸 모두 활성화할 수 있는 pinout을 GUI로 구성해서 확인하고 이미지 등으로 다운로드 할 수 있는 사이트가 있으면 좀 유용하지 않을까? 라는 생각. 나중에 텔레칩스 4기 5기나 다른 라즈베리파이를 쓰는 교육에서 이걸 활용할 수도 있으니깐. 의외로 해외에도 이런 서비스는 유명한게 없는 것 같아서, 꽤나 재미있을 듯?

320x100