3월 31일에 쓰면 좋겠지만 월요일이라서 바쁘다는 핑계로 쓰지 못 할까봐 미리 쓰는 3월 회고
3월에는 개강하고 역시 많은 일들이 있었다.
너무 일을 많이 벌렸나 싶으면서도 또 다 하고 싶었던 일들이니까.. 잘 수습?해봐야겠다
진로와 관련된 목표
전공
1. 졸업 프로젝트
졸업프로젝트로 '한글 SQL 데이터베이스' 만들기 프로젝트를 본격적으로 시작했다.
유튜브 알고리즘 추천으로 우연히 '코딩스키스키' 라는 버튜버 채널을 발견했다.
엔비디아에 다니는 개발자가 버추얼 캐릭터를 만들어 운영하던 유튜브 채널로, 이력서 작성하는 방법, 대학생 때 해두면 좋은 것 등의 영상이 있었는데, 해당 영상에서 오픈 소스를 읽어보면 좋다고 추천한 것 중에 SQLite 가 있었다.
1.0 버전은 소스코드가 1만줄 밖에(?) 안된다고 읽어보기 좋다면서..
(지금은 왜인지 영상을 모두 내렸다.. 내용 진짜 좋았는데..)
그래서 안 그래도 데이터베이스 만들려면 오픈 소스를 읽어봐야겠다고 생각하던 차에 잘됐다 싶어서 SQLite 1.0 버전을 읽어보기로 했다.
근데 SQLite는 소스코드를 다운받는 것부터 쉽지 않았다..
https://www.sqlite.org/download.html
SQLite Download Page
Templates (1) and (2) are used for source-code products. Template (1) is used for generic source-code products and templates (2) is used for source-code products that are generally only useful on unix-like platforms. Template (3) is used for precompiled bi
www.sqlite.org
SQLite 소스코드는 분명 오픈소스인데, Git 이 아니라 Fossil 이라는 처음보는 버전 관리 툴로 관리되고 있었다.
(게다가 fossil은 설치형 프로그램이 아니라 fossil 명령어 실행파일을 다운받고 환경변수에 경로를 등록해서 실행하는 방식이었다..)
다행히 GPT 덕분에 fossil 명령어에 대한 큰 학습없이 1.0 버전 소스코드를 다운 받을 수 있었다.
(혹시 궁금하신 분들은 https://github.com/kckc0608/sqlite-1.0-clone 깃허브에도 클론을 따뒀습니다.)
그리고 매주 졸프 회의하면서 각자 파일을 분담해서 소스코드를 읽기 시작했다.
어느 정도 SQLite 의 큰 구조를 이해한 뒤에는 동일한 파일을 같이 읽어보기로 하고, 다음 주까지 읽으면 어느 정도 구현을 시작할 수 있을 것 같다.
SQLite 오픈 소스를 읽으면서 처음엔 '데이터베이스 오픈 소스니까 DB랑 프언 개념만 알면 되겠지' 라고 생각했는데, 컴퓨터 구조, 운영체제, 자료구조 내용도 많이 등장해서 정말 신기하고.. 또 어려웠다.
크게 구조를 나누면 SQLite 는 SQL를 lemon 이라는 자체 파서 생성기를 이용해 yacc 와 비슷하게 작성된 문법 설명 파일을 해석해 파서를 만들고, 문법을 일정 단계 파싱할 때마다 VDBE (virtual database engine) 에게 동작을 수행하도록 지시한다.
이때 VDBE 가 하는 일은 데이터베이스를 조작하는 자체 instruction set 에서 필요한 명령어를 세팅한다.
(어셈, 컴구에서 봤던 그 instruction set 이 맞다. 각 명령어는 opcode 와 3개의 파라미터로 구성되어있다)
명령어를 실행할 때는 중간 데이터를 스택으로 관리하고 (블록체인에서 공부했던 스택기반 실행엔진 개념이 많이 도움됐다)
실제 파일에 읽고 쓰기 할 때는 GDBM 이라는 데이터베이스를 만드는데 사용하는 DB 시스템을 사용해서 I/O 작업을 처리한다.
(SQLite 3.0 버전에서 gdbm 의존성에서 벗어나 자체 시스템을 갖추었다.)
자세한 내용은 따로 시리즈로 블로그에 정리할 예정이다.
이번 주 회의까지 create, drop, insert, delete, select 문에 대한 기본적인 분석을 마쳤다.
특히 데이터베이스의 핵심이라 그런지 select 문이 너무 복잡해서 한번에 이해하는 게 힘들었기 때문에 제일 기본적인 select * from table 쿼리를 실행하는 과정까지만 따라가서 구현해보고, 나중에 여기에 살을 붙여보기로 했다.
다행히 졸프는 교수님이 졸프에 너무 많이 신경쓰지 않아도 괜찮다고 배려해주셔서 부담없이 각자 가능한 여건 내에서 진도를 나가고 있다.
2. 소프트웨어 공학
처음에는 waterfall, 애자일같은 개발 방법론에 대한 내용만 나와서 지루하다고 생각했는데, 객체지향 개념을 들어가면서 진짜?가 나오기 시작했다.
김영한 스프링 핵심원리 강의에서 공부했던 객체지향 개념이 소공에 그대로 등장해서 반가웠다.
또 소프트웨어 공학 과목에 대해서 같은 밴드 동아리 사람들과 스터디를 하기로 했다.
매주 2시간씩 모여서 강의록을 읽고 있는데, 마침 정처기 실기에도 나오는 내용이니 주기적으로 복습할 수 있어서 좋다.
3. 기계학습심화
처음으로 들어본 인공지능 수업
교수님께서 설명을 너무 잘 해주셔서 이해는 잘 되는데, 공부하다보니 역시 인공지능은 어렵구나.. 그냥 수학이구나.. 하는 생각이 들었다.
몇 년 전만해도 개발과 인공지능은 다른 영역이라고 생각했는데, 이젠 개발자도 인공지능을 모르면 경쟁력이 없는 시대가 된 것 같다.
단순히 인공지능을 서포트 툴로 활용하는 것을 넘어서 인공지능을 서비스의 문제를 해결하는 도구로서 활용할 수 있어야 한다고..
비록 인공지능은 선택하지 않았지만, 개발은 내가 좋다고 선택한 길이니 필요하다면 공부 해야지..ㅠㅠ
4. 컴퓨터 그래픽스
유니티 프로젝트 수업
유니티 공부해보려고 + 장학금 받으려면 15학점 넘겨야 해서 담은 수업이다.
수업에서도 거의 교재를 읽어주시는 느낌이 강하고, 사실 프로그램 사용법은 아무래도 독학이 맞는 것 같다.
지난주에 팀을 짜서 이제 팀플을 시작해야 하는데, 좋은 결과물이 나왔으면 좋겠다.
개발 및 유지보수 경험
1. 큰소리 프로젝트
지금은 공연 예매 기능을 개발하고 있는데, 이번 달에는 1달에 걸쳐서 기획을 마무리했다.
와이어프레임과 플로우 차트를 그리고 디자이너에게 공유하면서 확실히 더 체계적인 시스템이 잡히기 시작했다.
하지만 역시 기획은 전문 기획자가 필요하다는 걸 느꼈다..
현재 디자이너 분들은 기존 사이트 디자인을 수정하는 작업을 해주고 계신데, 이 작업이 마무리되면, 프론트는 디자인 변경을, 백엔드는 예매 기능 개발에 대한 기능 개발에 들어갈 것 같다.
그런데 유지보수 경험을 쌓는다는 것이 참 쉽지 않은 것 같다..
큰소리 (밴드 동아리) 프로젝트의 경우, 학기 중에는 연습실 예약을 목적으로 사용하는 경우가 많이 없다보니 트래픽이 줄어들 수 밖에 없고, 그렇다보니 실사용 과정에 기술적으로 해결해야 하는 문제가 거의 발생하지 않았다.
그래서 프로젝트를 유지하려면 결국 새로운 기능을 개발할 수 밖에 없다는 결론에 다다르게 되는 것 같다.
기존 코드에서는 해결할 만한 문제가 발생하지 않으니 (또는 못 찾았으니), 기획적으로 새로운 문제를 정의해서 다시 해결하는 느낌
2. 지뎃시 개발팀
그리고 지뎃시 개발팀도 비슷한 문제로 고민하고 있다.
프론트도 백엔드도 새로운 멤버들이 합류해서 대대적으로 리뉴얼된 스터디 관리 시스템을 개발했는데, 개발이 어느정도 마무리되고 나니 새로운 기능을 추가적으로 개발하는 등 기존 개발 인력의 리소스를 투입할 곳이 필요해졌다.
그래서 백엔드도 다음주 회의까지 각자 해야한다고 생각하는 것들이나, 기술적으로 해보고 싶은 것들을 고민해오기로 했다.
그리고 스터디 관리 시스템도 역시 학기 중에만 트래픽이 존재하고, 그마저도 트래픽이 매우 많이 발생하는 느낌도 아니다보니, 기술적으로 문제를 해결할 포인트를 찾는 것이 힘든 것 같다.
데이터가 너무 많아서 쿼리를 최적화해야 한다거나, 요청이 너무 많이 와서 시스템을 쪼개 분산 처리해야 한다거나.. 그런 문제가 발생하지 않는다. 그냥 주먹구구식으로 하나에 다 때려박아 막 개발해도 문제가 없으니 기술적으로 성장하기가 힘든 느낌..
대신 팀원과 소통하고, 코드 스타일을 맞추고, 객체지향적인 고민을 하는 등.. 소프트 스킬이 더 늘어나는 느낌이다.
전에 2학년 때 들었던 강연에서는 그렇다보니 사용자 관점에서 고민하고 프로젝트를 개선해봐야 한다는 느낌의 조언을 해주셨던 것 같은데, 기획적으로 다양한 상황을 고려하는 것 외에 기술적인 문제 상황을 찾는 법은 잘 모르겠다..
3. 돌봄다리
2월에 참가했던 MVP 해커톤 팀에서 후속 협업 제안을 받아, 같이 개발했던 큰소리 사람 3명과 함께 합류했다.
처음에는 이것까지하면 너무 바쁠 것 같아서 안하려고 했는데, 가능하면 나도 하고 싶었고, 팀원도 같이 해보자고 해서.. 일단 할 수 있는데까지 해보기로 했다.
그래서 2명의 기획자, 1명의 디자이너, 4명의 개발자로 추가 기능을 이어서 개발하고 있다.
현재는 기존 기획과 디자인을 손보고 있고, 어느 정도 마무리되면 개발팀도 개발을 시작할 것 같다.
기획자 2분이 모두 이대 창업 동아리 회장 출신이시고, 창업 관련 대회에서도 수상하고 캠퍼스 타운 입주까지 하신 상태라, 성공적으로 자리잡아서 실 사용자를 받아 여러가지 문제를 또 해결해보고 싶다.
이 프로젝트는 잘 된다면 교내 프로젝트와 다르게 1년 내내 여러가지 문제와 마주할 수 있지 않을까 기대되기도 한다.
4. 큰 연동 or 활동 참여
소마는 2차 코테에서 탈락하면서 떨어졌다.
조금 복잡한 구현 문제에서 로직 아이디어를 다 생각하고 파이썬으로 구현을 마무리했는데, 계속 에러가 발생했다.
그런데 프로그래머스는 파이썬에서 에러가 나면 에러 위치를 알려주지 않고, 에러 메세지 하나만 띄운다.
원래는 스크립트 언어라서 에러 전에 print 를 찍어두면 에러 직전까지 print가 다 되고 그 다음에 에러가 뜨는데, 그것조차 막아뒀다.
그래서 한창 디버깅하다가 결국 문제를 다 풀지 못 했다.
이 경험 덕분에 프로그래머스 환경에서 문제를 풀어보는 연습을 더 해야겠다고 생각했다.
그리고 뒤에 적겠지만, 네이버 코테를 볼 때 어느 정도 도움을 받았다.
비록 연동은 아니지만, 교내 개발 동아리에서 백엔드 파트 리드를 맡게 되었다.
지뎃시 리드 님이 작년에 내가 작성한 회고를 읽고, 멘토 활동으로 멘토는 무언가를 얻어갈 수 없다는 것을 보고 확실히 커뮤니티 안에서 더 깊이 공부할 수 있는 환경을 조성할 필요성을 느끼셔서 파트 스터디를 기획하셨다고 한다.
파트 리드는 해당 파트의 파트 스터디와 정규 스터디를 운영하게 된다.
먼저 정규 스터디는 누구나 들을 수 있는 스터디로, 부담을 줄이기 위해 지난 학기 스터디 내용을 6주 분량으로 줄여서 기존 녹화 영상을 일부 재활용하고, 압축한 내용은 강의자료를 적절히 합쳐서 새로 영상을 찍어 온라인 과제 스터디로 진행하기로 했다.
정규 스터디 영상과 자료는 이번 주말동안 작업해서 4월 2일 개강과 동시에 6주치 영상과 강의자료가 모두 준비되어 있도록 하는 것이 목표다.
그러면 매주 스터디 공지와 과제 공지만 작성하면 내 할 일은 사실상 끝이다 ^.^
파트 스터디는 파트 멤버로 선발된 사람들과 모여서 진행하는 스터디이다.
파트 스터디에서 내가 다른 사람들에게 무언가를 알려주기에는 나도 딥다이브 해본 경험이 없다보니 부담스러워서 어떻게 해야할 지 고민이 되었는데, 한 가지 아이디어가 떠올랐다.
간단하게 한 줄 요약하자면, 바로 지뎃시 글또를 만드는 것
글또에서 하는 것처럼 각자 나름대로 딥다이브해서 공부하고, 공부한 내용을 블로그에 정리하고, 매주 모여서는 그냥 공부한 거 발표 형식으로 공유하는 활동이라면 블로그는 어차피 쓸 생각이었으니 내가 시간적으로도 신경쓸 부분이 거의 없다고 생각했다.
사실 중학생 이후로 행사나 활동을 기획한 게 처음이라 기획한대로 잘 될 지는 모르겠지만, 직접 어떤 활동을 기획하고 운영하면서 피드백을 들어보는 경험은 분명 소중한 경험으로 남을 것 같다.
처음엔 신청자가 별로 없을 줄 알고 8명 내외로 선발해서 세오스 스터디 하듯이 모두 돌아가면서 공부한 거 발표하고 의견 나누는 정도로 생각했는데, 무려 37명이나 지원자가 들어왔다.
37명 중에서 8명을 뽑는다고 하면 거의 5대 1 경쟁률이니 확실히 백엔드는 관심도가 높구나.. 하는 생각이 들었다.
처음에 지원서를 읽으면서 정말 이 분들과 함께하면 소수로 선발해서 활동했을 때 나도 많이 배우겠다 싶은 분들 10분을 선정했다.
근데 나머지 27명의 지원서를 보면서, 많은 분들이 관심을 가져주셨는데 더 많은 사람들과 함께 할 수 있는 방법이 없을까 고민하다가 조금 운영 계획을 바꿔서 다수 체제로 운영하기로 하고 20 명이 조금 넘는 분들을 선발했다.
다수 체제로 어떻게 운영할 지 고민하면서 글또의 활동 후기글을 여럿 찾아보다가 글또의 큐레이션과 반상회 활동을 적절히 섞어서 운영해보면 좋겠다는 아이디어가 생각났다.
글또도 10기 기준 600명 정도의 다수 회원이 참여하는 활동이다보니 2주마다 많은 글들이 나오고 있다.
그러면 큐레이션 운영진이 이 중에서 읽어보면 좋은 글을 선발해서 매주 추천해준다고 한다.
반상회의 경우, 같은 직군 사람들끼리 모여서 진행하는 오프라인 컨퍼런스 행사다.
컨퍼런스에서 모여서 발표도 듣고 네트워킹도 진행한다.
파트 스터디도 비슷한 느낌으로 매주 모여서 '발표 희망자 -> 투표로 선발한 발표를 들어보고 싶은 글 -> 파트 리드가 선발한 글' 순으로 해서 서로 돌아가며 발표하고 공유하면 다수 체제로도 운영할 수 있지 않을까 생각했다.
취업
상반기 공채가 여럿 올라오고 있는데, 아직은 25년 8월 졸업 예정자 대상 공고가 많아서 지원할 공고는 많지 않았다.
이번 달에는 팀 네이버 신입 공채와 삼성 대학생 인턴 공고에 지원했다.
네이버는 월요일 오전 11시 자소서 마감이라 전날 밤 11시부터 시작해서 새벽 4시까지 자소서를 썼고, 삼성은 오후 5시 마감이라 학교 가는길 + 수업 끝나고 5시까지 자소서를 썼다.
특히 삼성의 경우, 지원 자격으로 어학 성적 (오픽 / 토익 스피킹) 일정 이상 기준이 존재했는데, 이게 없으면 지원이 안되는 줄 알고 급하게 오픽을 땄다. (알고보니 없어도 취득 예정으로 지원한 다음 면접 때 증빙해도 되는 거였다..)
그래서 시험 2일 전에 응시해서 이틀 동안 급하게 공부해서 땄다.
결과는 IM1 이 나왔는데, 삼성 지원 컷은 IL 이었으니 컷을 넘겨서 일단 만족스럽다.
근데 겨우 이틀이었는데도 오픽을 공부하면서 너무 스트레스를 많이 받았다.
시험을 위해 내가 하고 싶지 않은 공부를 억지로 하는 느낌..
그래서 더더욱 어학 성적 없이 개발 경험을 위주로 평가하는 회사에 가고 싶다고 생각했다.
하반기에 본격적으로 공채가 올라오기 전에 미리 포트폴리오와 이력서를 준비해둬야겠다.
네이버는 일단 서류를 지원만 하면 합격시켜주는 건지 월요일 마감 후 목요일에 코테 안내 메일을 받았다.
그 주 토요일에 (이것도 이틀 만에..) 네이버 코테를 봤는데, 알고리즘 3문제, CS 테스트 20문제가 나왔다.
알고리즘 문제 난이도는 브론즈 상위~실버 하위 / 골드 중하위 / 골드 중상위 정도로 예상했다.
각 문제는 모두 서브태스크가 있는 구조라서, 부분점수를 얻어갈 수 있는 구조인데, 마지막 문제는 정해를 모르겠어서 부분점수라도 받는다는 마인드로 완탐 풀이를 제출했다.
네이버 코테를 보기 전에 (코테가 프로그래머스 환경이기도 해서) 프로그래머스에서 ai 추천 문제를 여러개 풀어봤는데, 도움을 많이 받았다. 위에서 적었던 대로 소마 코테에서 했던 경험 덕분에, 네이버는 미리 디버깅 하는 방법도 연습해둬서 디버깅도 수월하게 할 수 있었다.
그 밖에 지원할 수 있던 공고 중에 금융결제원 공고도 있었는데 (학교 선배님도 오셔서 질문도 받아주시고 홍보도 하셨다)
25년 8월 졸업 예정이 아니면, 고등학교 성적정보를 이력서에 적게 되어 있어서 지원을 포기했다.
고등학교 때 내신 성적이 안 좋아서 1학년때부터 정시파로 마음을 잡았던 지라.. 성적이 매우 나빴기 때문이다..ㅎ
(그리고 고등학교 성적은 결제원에서 제공한 계산기로 계산해야 했는데, 3년치 수강 과목 별 성적을 적는게 귀찮았던 것도 있다..)
그래도 성적은 그냥 비워두고라도 지원해볼 걸 그랬나 싶기도 하다.
4월에도 지원할 수 있는 공고에는 틈틈히 지원해봐야겠다.
AI 활용해보기
최근엔 '바이브 코딩' 이라는 말이 등장했다.
나는 뭐 새로운 AI가 나왔나 했는데, ai 와 함께 개발하는 것을 즐기는(?) 접근 방법을 나타내는 신조어 같다.
오늘 본 홍정모님 강의에서도 ai 를 활용해서 RAG 나 LLM을 붙이는 경험, 파인 튜닝할 수 있는 능력이 점점 중요해질 것이라고 말씀하셨다.
점점 채용 공고에서 ai 역량을 요구하는 비중이 늘어날 거라고..
실제로 KT 채용의 경우 테크는 모든 직군 이름에 ai 가 들어가면서 ai 역량을 요구했다.
ai 관련 지식 없이 순수하게 개발만 해왔다면 점점 설 자리가 줄어들겠구나 싶었다.
ai 공부가 점점 피부로 와닿는 생존의 문제가 되어가고 있어서 더 일찍 ai 를 공부해야 했나 하는 생각이 들기도 한다.
그래도 백엔드 경험이 어느 정도 쌓여있으니 ai 만 공부하면 더 경쟁력을 가질 수 있다고 생각하면 또 좋은 것 같다.
어차피 해야하니까 즐겁게 해야지~
2월 회고에서 개발자 유미님이 올리신 RAG 강의를 들어야지 하고 못 들었는데
파트 스터디에서 블로그 정리할 때 RAG를 공부하고 정리해서 올리는 느낌으로 글을 써봐야겠다.
진로 외 목표
1. 구체적인 목표 정하고 자산 관리 관점에서 공부하기
이번 달에는 이루지 못했다. 목표를 정하지도 못했고..
그래서 이걸 적는 김에 노션에다가 한번 정리를 해보려고 하는데 아직 노션이 익숙하지 않은 건지 노션이 지원을 안하는 건지 내가 원하는 기능을 노션에 구현을 못 하겠다.
(특정 날짜의 자산 현황 비중을 도넛 그래프로 보여주고, 각 자산 종류별 증감에 대한 꺾은선 그래프를 그리고 싶은데, 도넛 그래프를 못 그리겠다..)
그냥 간단하게 플러터 같은 걸로 앱을 만들까 싶다.. 답답하네 ^-^
주식의 경우 이번달엔 평가 손익이 10만원 손실이 발생했다.
실현 수익은 지난 회고 글에서 적었던 방법대로 현대차에 스윙 기법으로 투자해서 3000 원 정도 벌었다.
근데 팔고나니까 미국에서 말 잘했다고 10%씩 주가가 올랐더라..
2. 꾸준히 운동하기
아직 PT는 받는 중이다.
이번 달엔 내 일정, PT 쌤 일정 때문에 2주마다 1번씩 받고 있는데, 지금까지 배운 운동을 복습하는 느낌으로 하고 있다.
하체, 어깨, 등, 가슴 운동을 배우거나 복습했는데, 할 때마다 어렵다..
매일 혼자서도 연습해야하는데, (연습하라고 혼나기도 했지만..) 학교에서는 체단실 갈 심적 여유가 없어서 가볍게 팔굽혀 펴기 30개씩이라도 하고 있다..
3. 마감 하루 전에 끝내기
여전히 마감 당일에 끝내는 중..
특히 인초강 과제는 마감 당일 수업들으러 1시간 전에 녹음본 AI 요약시킨다음, 요약본 보면서 강의 들었던 기억을 함께 엮어 작성하고 있다.
근데 이렇게 하면 1시간 만에 작성이 되니까.. 그러면 더욱 미리 끝낼 수 있으려나
이번주 인초강 과제는 미리 해봐야지
4. 책 3권 읽기
객체지향의 오해와 진실 책은 아직도 읽지 못했다.
버스에서 뭐했냐고 물으면.. 유튜브로 듣고 싶은 노래 라이브 영상 조금 보고 당장 이번주에 해야하는 코딩을 하거나, 피곤해서 자거나 그러고 있다. 지하철에서는 대체로 서서가기 때문에 뭘 하기가 힘든데 생각해보니 앞으론 그럴 때 그냥 폰으로 책봐야겠다.
그 밖에 있었던 일이라면 3월의 메인 이벤트는 큰소리 봄공연이다.
8곡 공연은 처음이었는데, 아쉽기도 했지만 정말 재밌었다.
그래도 앞 팀 4곡은 어떻게 어떻게 했는데, 뒷 팀 4곡은 1곡 빼고 다 엄청 달리는 노래여서 앞 두 곡을 달리고 지쳐서 그런지 세 번째 곡에서 크게 실수를 한번 해버렸다..
그래도 실수한 부분 뒤로는 느낌있게 잘 쳐서 만족스러운데, 실수를 너무 크게 한 게 지금도 아쉽다..
제일 좋아한 곡이여서 제일 연습도 많이 했던 곡인데...
https://www.youtube.com/watch?v=SyDlDAfSBIo
보컬이 유튜브 영상으로 뒷 부분 클립을 올렸는데, 뒷 부분은 아주 마음에 든다 ^~^
4월에는 더 많은 목표를 지킬 수 있기를 바라며.. 화이팅
'자기계발 > 생각 정리' 카테고리의 다른 글
2025년 2월 회고 (2) | 2025.03.01 |
---|---|
2025년 1월 회고 (1) | 2025.02.01 |
2024년 회고 & 2025년 계획 (7) | 2024.12.31 |
2024년 2학기 회고 (12) | 2024.12.14 |
2024-1 방학 회고 (0) | 2024.09.23 |