새로운 시도
졸업
올 해 2월 학부를 졸업했다. 20대에는 내가 잘 할 수 있는 일을 찾고 싶어서 다양한 활동을 했다. 재수 1년, 도시공학도로서 2년, 군대 2년, 사업 1년, 전기전자공학과에서 2년. 그렇게 난 28살이 되었지만 무엇을 해야할 지 결정하지 못했었다. 돌이켜 보면 살도 많이 찌고 정신적으로도 약해져 있던 시기에 진로조차 결정하지 못해 조급함이 컸다. 인공지능을 공부하고 싶어서 대학원을 가려고 했으나 그조차 쉽게 일이 풀리지 않았다. Quant로 취준을 하고 면접도 봤지만 능력도, 시기도 좋지 않았다. 사업도 잘 안 됐다.
바깥 세상은 내가 편하고 즐겁게 일을 할 기회를 편하게 주지 않는다. 내가 사람을 뽑을 때도 능력이 부족하고 일을 좋아하는 사람보다는 일을 잘 하는 사람을 우선순위에 뒀을 것이다. 그래도 2023년 가장 큰 수확은 개발자로서 살아가는 것에 대한 확신을 얻은 것이다. 8년의 에움길을 걸어 베이스 캠프 쯤에는 도착한 모양이다.
SSAFY 입과와 퇴소
개발자가 되고자 마음은 먹었지만 당시에 내가 할 수 있던 건 전기전자공학을 전공하며 사용했던 기본적인 프로그래밍 지식, Quant와 인공지능 모델을 개발하며 Python으로 짠 코드 몇 천줄이 전부였다. 독학 재수학원과 코로나 시기에 대학의 절반을 다닌 학생 입장에서는 혼자 공부하는 것이 편했으나 SSAFY라는 프로그램이 있다길래 편하게 지원했다. 떨어지면 어떻냐는 마음으로 면접도 편하게 봤다. 무거운 분위기였지만 농담도 하고 면접관 두 분을 빵 터뜨리기도 했다. 그리고 난 SSAFY 9기 교육생이 되었다.
SSAFY를 진행하며 크게 세 가지를 배웠다.
첫 번째는 알고리즘이다. 알고리즘 수업도 많았지만, 사실 수업 보다는 알고리즘이 개발자 역량 향상에 필수적이라는 사실을 배웠다. 그리고 내가 가장 먼저 공부해야할 것이고, 이걸 극복하지 못하면 개발자로서 성장에 장애물이 될 수도 있다고 느꼈다. 그래서 알고리즘만큼은 절대 놓치지 않겠다고 다짐했다.
두 번째는 백엔드 관련 지식이다. 싸피에서는 웹 프론트엔드, 데이터베이스, 그리고 백엔드까지 큰 범위를 배운다. 수업을 듣고 느낀 건 백엔드 관련 개발자가 되어야겠다는 것이었다. 나는 문제를 해결하고 고민을 통해 성장하고자하는 욕구가 컸고, 백엔드 일을하면 그런 상황에 자주 노출될 수 있을 것 같았다. 아쉬웠던 점은 관련된 지식이 아무것도 없는 상태에서 전공자들 사이에서 수업을 듣다 보니 수업을 따라가기 벅찼다. 아쉽게도 지금 생각하면 배워서 남은 지식은 많이 없는 것 같다.
마지막 세 번째는 길을 그릴 수 있는 주변 지식을 얻었다. 나는 큰 그림과 길을 그리는 것을 중요하게 생각한다. 앞으로 무엇을 공부해야하고 그 끝에서 무엇을 할 수 있는지, 그런 것들이 머리 속에 그려져야 마음이 편했다. 배경이 없던 나로서는 강의실 뒤에 비치된 개발 관련 서적들, 개발자 학우들의 관심사, 소문 등이 모두 큰 도움이 되었다. 클라우드, 보안, 하드웨어와 관련된 지식도 아름아름 알게 되었다. 이로써 백엔드 개발자로서 어떤 역량을 키워야하는지, 어떤 공부와 프로젝트를 진행하면 좋을 지 감을 잡게 해 주었다.
취업
싸피에서 백엔드 개발을 위해 Spring, Springboot, Mybatis 등을 배웠다. 물론 프로젝트를 진행하며 AWS와 JPA 등에 익숙해지기도 했다. 하지만 어찌어찌하다보니 Python, FastAPI로 백엔드 개발하는 포지션으로 취업을 하게 되었다. 알고리즘은 Python으로 풀었기 때문에 큰 거부감은 없었지만 FastAPI 채용 풀이 굉장히 작기 때문에 걱정은 되었다. 당장 취업 시장에서 수요가 크지 않은 기술이지 않을까 하는 우려였다.
그래도 좋은 팀원, 팀리드와 함께 일할 수 있는 게 큰 행운이라고 생각한다. 그리고 지금은 내가 충분히 성장할 수 있는 환경이라고 느끼고 있다.
프로젝트 시작
프로젝트도 하나 시작했다. 토이 프로젝트는 기능을 한 번 구현해보고 기술을 사용해봤다에 초점을 맞췄다면 이번 프로젝트는 실무적인 관점에서 혼자 백엔드 관련된 모든 것을 담당했다. 클라우드 비용, 무중단 배포와 Migration, Monolithic에서 MSA로 전환, Autoscaling 등 고려할 것이 정말 많았다. 사소한 에러가 협업 과정에서 큰 비용으로 돌아오기 때문에 Test Code에도 더 신경쓰게 되었다. 무엇보다 가장 좋은 점은 실제 문제가 넘쳐나는 환경에서 부딛혀가며 배울 수 있다는 것이다.
하나 더 느낀 점은, 문제 상황이 많은 환경에서 개발을 하면(이런 프로젝트든, 회사 일이든) 체계적으로 역량을 키우기가 생각보다 힘들다는 것이다. 먼저 책으로 기초부터 하나씩 공부할 시간이 부족해진다. 당장 문제가 생긴 부분, 내가 ‘잘’ 구현해야 할 부분의 문서만 읽기 바쁘다. 하나 요령이 생긴 건 작은 시간이라도 책을 통해 공부할 수 있는 시간을 확보하는 것이다. 그리고 문서를 읽거나 국소적인 부분을 공부하게 된다면 꼭 그 부분을 완전히 이해하고 정리하는 습관을 들이면 좋은 것 같다.
퀀트 모델링 재시작
이건 예전에 만들어 둔 모델과 프로그램을 클라우드 환경으로 옮기고 자동화 하려는 목적으로 시작했다. 그런데 시간이 부족해서 올 해 어느 정도까지 진행할 수 있을 지는 모르겠다. 아무래도 우선순위는 조금 낮지만 주말에 조금씩 진행하고 있다.
건강
다이어트를 시작했다. 가능하면 계단으로 걷고 있다. 식단도 가능하면 클린하게 먹고 있는데 일상에 활기가 더해진 느낌이다. 언제까지 지속할 수 있을 지는 모르겠지만 사소한 습관이라도 좋은 습관을 많이 만들 수 있으면 좋겠다.
개발자로서의 성장과 성취
릿코드 알고리즘
올 해 알고리즘이라는 세계를 알게 되고 많이 고생했던 것 같다. 아무리 머리를 쥐어 짜도 답이 안 나오기도 하고, 헷갈리는 것도 너무 많고. 그래도 우직하게 릿코드를 풀었다. 취업하고 난 다음 부터는 기존의 루틴을 가져가지 못해서 너무 아쉽다. 지금은 기억 나면 퇴근 전이나 후에 빠르게 문제만 풀고 넘어간다. 조금 더 시간을 내서 더 좋은 답, 다른 방식의 풀이 등을 고민하고 다른 사람의 코드까지 읽는 루틴이 있었는데 시간을 내야겠다.
솔직히 요새는 주말 Contest도 포인트 받기 용으로 참여해서 Hard문제는 보지도 않고 나머지 한 두문제 풀고 나와버린다. Contest 참여해서 고민하는 시간이 취미처럼 더 즐거워질 수 있다면 좋을텐데, 쉽지 않다.
테크 리드의 조언
좋은 테크 리드를 만나 좋은 조언을 많이 들었다. 회사가 너무 바쁘게 돌아가서 대화를 나눌 기회가 많지 않아서 아쉽지만 one-on-one 시간이 있어서 조언을 많이 들을 수 있었다. 기억에 남는 몇 가지 조언이 있다.
•
승진 면접에서 꼭 물어보는 질문이 있다.
◦
다른 사람을 위해 어떤 일을 했는지, 무슨 도움을 주었는지
◦
다른 사람에게 어떤 도움을 받았는지
•
성과, 성공이 아닌 실패에 대한 기록과 공유가 반드시 필요하다
•
개인의 성과보다 팀의 성과가 중요하다
•
신입의 특권은 아무데나 튀어도 된다는 것이다 (상식 선에서)
◦
더 좋은 코드 포맷을 가져올 수도 있고, 이것 저것 시도해볼 수 있다
•
남을 시기 질투하는 것은 성장을 막는 가장 큰 걸림돌이다
◦
질투와 권위는 나의 발언권을 약화시킨다
◦
인정하고 긍정적인 발전의 기름으로 삼아라 + 대인 관계
•
가장 갖고 싶은 능력은 책을 빨리 읽는 능력이다
◦
조금씩이라도, 꾸준히 책을 읽어라
◦
가장 무서운 사람은 책을 단 한 권만 읽은 사람이다.
◦
한 분야에서 여러 책을 보면 눈이 뜨이는 느낌을 받을 때가 있다
AWS 가 익숙해졌다
프로젝트를 여러 번 셋업하다보니 기본적인 AWS 서비스들을 사용하는 데 익숙해졌다 (기본적인 EC2, RDS, Secret Manager, IAM 정도만 ..). 물론 아직 많이 미숙하다고 느껴져서 공부도 할 겸 내년에는 AWS Certificate을 취득해볼까 한다.
문제 해결과 성장의 기로에서
그래도 올 해 가장 재밌게 공부했고 도움이 된다고 느낀 공부는 알고리즘(Algorithm)과 아키텍쳐(System Design)이다. 하지만 공부를 놓는 순간부터는 다음과 같은 공식에 의해 일이 처리되는 것 같은 느낌이 들었다.
결과물 = 머리에 든 내용 + 주변지식을 이용한 검색
성장 = ???
Markdown
복사
성장을 위해서는 당장 해결해야하는 문제 외적으로 하루 30분, 1시간씩 시간을 내서 공부를 해야할 것 같다. 당장 생각나는 것만 해도 CS 지식, 네트워크 지식, 알고리즘, System Design, FastAPI 뜯어보기, SQL 최적화, Docker + Kube, AWS… 그냥 주니어 레벨에서는 성장을 이렇게 생각하는 게 마음 편할 것 같다.
성장 = 개별 공부 + 문제 해결 후 기록하기
Markdown
복사
문제 해결을 통한 성장은 한계의 범위가 더 넓지만 그만큼 고통스러운 것 같다. 그래서 기본기가 중요하다고 했구나.
알고리즘 공부 성과
앞에서 릿코드에 대한 간단한 회고를 진행했는데, 그것 외적으로 외부에서 자격증이나 상을 받은 것을 정리하면 다음과 같다.
삼성 SW 역량테스트 Professional (2023. 03, 삼성전자)
SSAFY를 진행하며 역량평가 Pro, 혹은 B형이라고 불리는 능력 검정 시험을 볼 기회가 있었다. Java로 시험을 보았고, 후기는 해당 블로그에 두 개나 있다. 결과적으로 1000명 이상의 교육생중에 시상식에 오른 7인 중 한명이 될 수 있었다.
운이 많이 좋았다고 생각하고 있다. 알고리즘을 공부한 지 그렇게 오래되지 않았을 때, 문제만 매일 푸는 것에 한계를 느끼고 조금 깊게 공부하던 시기였다.
당시에 Binary Search, Heap data structure등 에 대해 공부하고 있었고, 파이썬으로 class와 method를 외부 라이브러리 없이 구현하고, 다양한 방법으로 알고리즘을 적용하며 테스트하던 때였다. 와중에 마침 시험에서 Heap을 응용하는 문제가 나왔다. 그래서 Java가 익숙하지 않았는데도 시험에 합격할 수 있었다. 여담으로, 라이브러리 사용할 줄 몰라서 Java로 모든 데이터 구조와 알고리즘을 구현해서 푸느라 500줄을 넘게 짜고 나왔던 것 같다.
2023 우리코딩페스티벌 (2023. 06, 우리 FIS)
해당 시험도 간단한 후기를 남겼다. Python으로 대회에 응시했고, 성인부 우수상을 수상했다. 근데 COS Pro 이름으로 예선 쳤던 것 같은데 자격증도 주는 건가? 잘 모르겠다.
수상을 하긴 했지만 더 잘 할 수 있었는데, 지금 생각해도 아쉬움이 남는 시험이다.
2023 현대모비스 알고리즘 경진대회 (2023. 07, 현대모비스)
예선에서 50인 안에 들어서 본선에 진출했다. 개인적으로 부족함을 많이 느꼈던 시험이었다. 짧은 시간 공부했던 알고리즘 지식으로는 부족했던 것 같다. 오랜 기간 알고리즘에 대해 고민하고, 취업시장을 떠난 공부도 일부 필요해 보였다. 이 대회가 끝나고 알고리즘을 취미로 넓게 공부해보고 싶다고 느꼈다. 그것 외에도 가끔 우수 인재라고 불러서 비싼 밥 주고 선물도 줘서 좋다.
사진에 잘 찾아보면 내가 있다(가까이는 없다).
PCCP Master (2023. 09, Programmers)
현대모비스 알고리즘 경진대회에 참여했던 것도 Programmers를 통해서 였는데, 이번에도 Programmers에서 진행한 프로그램? 과정?에 참여해서 무료로 PCCP에 참여할 수 있는 기회가 생겼다. 그래서 시험 치른 김에 인증서도 저장해뒀다.
반성
릿코드
•
갈수록 문제를 제출하는 것에 의의를 두게 되는 것
•
고민하는 시간이 줄어들고, 다른 사람의 코드를 읽는 일이 전무해짐
•
최근엔 Weekly Contest에 참여해도 포인트 받기 위해 한두문제만 제출하고 나옴
자투리 시간 공부
•
지하철 이동 시간을 포함한 기타 자투리 시간을 허투로 보내기 시작
•
절박할 때는 많이 고민하고 공부했는데..
독서
•
개발 이외의 서적은 거의 읽지 않음
기술 공부
•
필요한 부분만 공부를 해서 깊이가 얕음
•
읽는 책보다 사서 쌓이는 책이 더 많아지기 시작
•
여러 가지를 동시에 하다가 오히려 집중력이 감소하는 것 같다
대인 관계
•
No라고 얘기하지 못해서 소중한 나의 시간과 감정을 소모함
나에 대해서 새롭게 알게된 것들
•
자제력이 강하고 통제에 능하다고 생각했는데 그렇지 않다
◦
운동할 때 애플 워치의 심박수 구간별 실시간 피드백에 강한 동기를 느낌
◦
매일 몸무게를 재는 것에 변화를 느낌
◦
행동에 옮길 때까지의 비용을 줄일수록 선형이 아닌 기하급수적으로 행동에 가까워짐
▪
운동할 때 덤벨을 사이클 옆에 두는 것
▪
습관으로 만들어서 행동 전에 하던 생각, 걱정들을 스킵하는 것
▪
노트북 Dock을 사서 전원을 켜기까지의 시간을 아낀 것
•
커피가 없으면 잠이 많아진다
◦
휴일에 왜 이렇게 잠을 많이 잘까 고민해보니 커피 영향이 큰 것 같다
•
연속혈당측정기로 얻은 교훈
◦
다이어트 일지로 따로 기록
◦
음식을 천천히 먹는 것, 식이섬유 섭취, 단백질과 지방 섭취, 그리고 탄수화물 섭취 순서 (10분씩 갭)
◦
린매스업 시작
올 해 얻은 교훈
•
No라고 말할 수 있는 능력이 필요하다
◦
전세 가계약 위약금을 물면서 느낀 점
◦
충분히 No라고 말할 수 있었다
◦
미움 받을 용기가 부족하다
◦
일론 머스크는 놀랍도록 No라는 이야기를 많이 한다
◦
내 시간, 감정, 기회비용을 결코 과소평가하지 말자
•
기억에 남는 건 최근 한 달 사이의 일들이 대부분이다
◦
기록은 내게 가장 필요한 것 중 하나같다
◦
회고를 매달 진행해보는 건 어떨까?
2024년 목표
건강
예전에는 운동하는 것도 좋아하고 거울 보는 것도 좋아했는데, 어느 순간 그냥 아저씨가 돼버렸다. 내년에는 꾸준히 운동하고 린매스업하는 게 목표이다. 달력 앱을 자주 봐서 일주일에 한 번 앱에 몸무게를 기록하고 있는데 매일 자극되고 좋은 것 같다.
•
주 3일 이상 운동하기
개발
올 해 개발자로서 첫 발을 내딛었다면, 내년에는 성장하는 습관을 들이고 싶다. 내년 이때 즈음의 나는 조금 더 개발자로서 자신감 있고, 인정 받을 수 있으면 좋겠다. 알고리즘 실력은 조금이라도 발전됐으면 만족할 것 같다. System Design 공부도 하고, 아키텍쳐, AWS 관련된 지식도 쌓고싶다. 기본 역량인 Docker, Kube, ECS, EKS, Airflow, FastAPI, Datadog, ArgoCD 등 회사에서 사용하는 기술 스택을 잘 이해하고 사용하고 싶다.
•
AWS Certificate (Developer Associate, SysOps Associate, Solution Architect Associate, DevOps Professional)
•
Docker 공부하기
•
FastAPI 깊게 공부하기
•
System Design
•
Algorithm
•
Data Engineering Course
•
무엇보다 공부한 것 기록하기
습관
습관이 참 중요한 것 같다. 행동까지의 역치를 기하급수적으로 낮춰주는 느낌?
•
300일 이상 릿코드 풀기
•
하루 30분 이상 독서하기
•
매달 + 반기별 회고하기
프로젝트
•
프로젝트를 발전시키며 발생한 문제점, 얻은 교훈 등 기록하고 공유하기
인간 관계
•
다른 사람에게 도움이 되는 사람이 되기
•
다른 사람에게 도움을 구할 수 있는 사람이 되기
•
다른 사람들과 비교하지 않고 스스로 행복해지기
대외 활동
•
가능한 많이 참여하기