개발놀이터

개발 공부한지 3년을 채우고 다시한번 뒤를 돌아보다 본문

기타/회고

개발 공부한지 3년을 채우고 다시한번 뒤를 돌아보다

마늘냄새폴폴 2024. 7. 10. 17:35

2024년 2월에 작은 서비스기업에 취업하게 되면서 제2의 삶이 시작되고 있습니다. 아직 서비스가 고객들에게 배포되진 않아서 다양한 문제상황을 만날 기회는 없지만 서비스를 개발한다는 것 자체만으로도 첫회사치고는 잘 들어갔다 싶은 생각이 듭니다. 

 

벌써 개발 공부한지 만으로 3년이 다되었고 지난 만2년 기념 회고를 작성했던 것과 동일하게 한번 회고를 진행해볼까합니다. 

 

2023년 8월 9일 온라인 쇼핑몰 ver.4를 시작하다

7월에 ver.3가 마무리되면서 얼마 지나지않아 ver.4를 기획하게 되었습니다. 실제 ver.3까지 개발된 온라인 쇼핑몰을 AWS환경에 배포하는 과정을 거쳤습니다. 

 

이때 실제로 많이 사용되는 EC2, S3, ALB, VPC등을 경험하면서 이때 했던 경험을 살려 현재 회사에서도 클라우드 부분을 제가 담당하고 있습니다. 그리고 이때를 기점으로 AWS에 흥미가 생겨 자격증을 준비하는 계기가 되기도 하였죠. 

 

2023년 9월 1일 마지막 학기가 시작되고 클라우드 자격증을 준비하다

4년의 대학생활의 종지부를 찍는 학기가 시작되고 이때 남들이 다한다는 자격증 공부를 해볼까하고 준비했습니다. 

 

처음엔 정보처리기사를 생각했지만 졸업증이 있어야해서 패스하게 되었고 SI회사를 제외하고는 딱히 쓸모있다는 얘기를 못들어서 더 꺼려지게 된 것 같네요. 하지만 딸 수 있을 때 따두는 것은 나쁘지 않을 것 같습니다. 

 

자격증을 뭘 딸까 고민하다 ver.4에서 클라우드를 공부했던 것이 기억에 있어서 클라우드 관련 자격증을 공부하게 되었습니다. 

 

외국 자격증인만큼 가격이 비싸긴 하더라구요... 시험 보는 비용만 150달러에 문제집까지 포함하면 250달러정도 들었던 것 같네요. 

 

자격증을 공부할 때 비용이 꽤 나가다보니 떨어지면 안된다는 마음가짐으로 만점을 노리고 공부했더니 정말 만점에 가까운 점수를 받았습니다. (이왜진)

 

2023년 12월 대학교를 졸업하다

드디어 4년에 걸친 대학생활을 마무리지었습니다. 생각해보면 대학 생활은 열심히 공부만 했던 기억밖에 없네요. SNS에서 그러더라구요 "대학생활 때 공부만하면 좀 놀걸... 하고 놀기만하면 좀 공부할걸... 하고 밸런스있게 하면 놀거나 공부하거나 둘 중 하나만 할걸.." 하는 후회를 한다고요. 

 

하지만 저는 대학 생활 4년중 2학년부터 공부만 했지만 후회스럽지는 않았습니다. 왜냐하면 이걸로 밥벌어먹고 살고있으니까요. 오히려 공부하지 않았던 것은 생각하기도 싫어지네요. 

 

대학교 동기들은 어떻게 지내는지 연락이 다 끊어졌습니다. 애초에 밥친구이기도 했고 별로 궁금하지도 않았고 그렇다고 취직했다고 자랑하기도 뭣해서 그냥 연락하고있지않네요. 

 

대학 생활 때 얻은 유일한 보물은 1학년때 지금의 여자친구를 만난 것이 아닐까 싶네요. 

 

2024년 2월 14일 서비스 기업에 취업하다

취업을 준비한지 2개월정도 걸려서 소규모 서비스 기업에 취업하게 되었습니다. 서류가 붙은 곳 중에 정말 들어가고 싶은 곳도 많았지만 떨어지고 별 기대하지 않은 곳에 덜컥 붙어버렸습니다. 

 

이곳밖에 붙은 것이 없어서 일단 다니려고 마음먹고 출근해서 꽤나 만족스러워서 지금까지 다니고 있네요. 

 

서비스를 개발한다는 것은 정말 축복받은 일입니다. "남의 것을 만들지 않는다는 것" 이거 하나만으로도 저는 첫 회사치고 굉장히 잘 들어갔다는 생각을 하고 있죠. 

 

남의 것이 아니기 때문에 잘 만들어야한다는 압박감은 있지만 그래도 잘 만드는게 더 낫죠. 

 

회사 동료들도 다 잘해주시고 대표님도 좋은건 아니지만 그렇다고 사람이 나쁜 것은 아니라서 만족하면서 다니고있습니다. 

 

하지만 제가 개발하는 서비스는 프로토타입이라 사용자의 트래픽이 없어 조금 더 난이도있는 문제를 겪고싶은 제 입장에선 이것이 이직하고싶은 이유가 되기도 했습니다. 그래서 취직하고 난 이후 계속 이직을 준비하고 있습니다. 

 

2024년 3월 24일 온라인 쇼핑몰 ver.5를 개발하다

ver.4에선 클라우드 환경으로 프로젝트를 세팅했다면 ver.5에선 코드 리팩토링 작업을 진행했습니다. 

 

2024년 3월 기준 2년전 프로젝트이기 때문에 그 때 당시의 읽기 힘들고 더러운 코드들이 산재해있어서 아주 진절머리가 났었거든요. 

 

이걸 전부 리팩토링해서 조금 더 깔끔한 환경에서 개발하고싶어서 ver.5를 개발하게 되었습니다. 

 

세션을 전부 Authentication 객체로 바꾼다던가 if else 블럭의 중복을 인터페이스로 추상화해서 코드를 대폭 줄인다던가 StreamAPI를 적극 사용해서 코드를 보기좋게 바꾼다거나 하는 작업을 통해 조금 더 깔끔해졌습니다. 

 

ver.5는 뭔가 개발하고 그런게 아니었어서 2주정도만에 끝난 짧은 프로젝트였습니다. 

 

2024년 5월 25일 아키텍처 프로젝트를 개설하다

"남들이 잘 안하는 프로젝트를 해보고싶다"라는 취지로 프로젝트를 구상하다가 평소에 기술들의 아키텍처에 관심이 많았던 저는 아키텍처 프로젝트를 해볼까? 하고 마음먹게 되었습니다. 

 

아키텍처 프로젝트는 제가 개발하면서 고민했던 아키텍처들을 그림으로 그려내고 간단하게 설명하는 프로젝트입니다. 

 

이 프로젝트에서는 아키텍처를 표현하기위해 그림을 그리는게 거의 8할의 시간이 들어갈 정도로 그림을 그리는것에 많은 시간을 소모하고 있네요. 

 

"내가 설계한 아키텍처들이 수십개가 된다면 볼만하겠다"하는 생각이 들자마자 바로 프로젝트를 시작하게 되었습니다. 

 

처음엔 3티어 아키텍처를 AWS를 이용해 고도화하는 작업에서부터 시작해 현재는 Redis의 분산락을 이용해 동시성 문제를 해결하는 것 까지 총 일곱개의 아키텍처들을 만들었습니다. 

 

기록해놓고 모아놓는 것을 좋아하는 제 입장에서는 만족도가 높은 프로젝트인 것 같네요. 이렇게 하나하나 모이고 10개 20개가 되는 날 더 뿌듯해질 것 같아서 지금도 열심히 어떤 아키텍처를 구상할까 고민하고 있습니다. 

 

2024년 7월 4일 온라인 쇼핑몰 ver.6를 개발하다

roadmap.sh 라는 사이트에서 로드맵을 보다가 Client Side Caching이라는 것을 보게 되었습니다. 사실 이건 브라우저단에서 Cache-Control 헤더와 ETag로 캐싱해놓는 방법인데... 영어로 이걸 검색하니까 최상단에 뜬 Redis 공식문서때문에 시작하게된 조금은 뜬금없이 시작한 프로젝트입니다. 

 

처음 공식문서를 읽었을 땐 어? 이게 된다고? 싶은 생각이 들었죠. 왜냐하면 제가 처음에 이해한건 Redis가 브라우저가 가지고 있는 localStorage에 메세지를 보내서 업데이트 해준다는 내용이었거든요. 

 

지금보면 말도안되는 이 해석은 공식문서에서 Client라고 된 부분을 저는 일반적인 클라이언트인 브라우저를 생각했기 때문입니다. 

 

하지만 공식 문서에서 Client는 Redis를 사용하는 어떤 애플리케이션이던 다 접목시킬 수 있는 단어였죠. 즉, 여기서 말하는 Client는 Spring Boot가 될 수도 있고, 또 다른 Redis가 될 수도 있는 것이죠. 

 

여기서 삽질을 많이했는데 GPT한테 물어보니까 할루시네이션이 생길정도로 잘 알려지지않은 기술인 것 같았습니다. 브라우저에 localStorage를 갱신하기위해 WebSocket을 써야한다 어쩐다 이런 이상한 소리를 하고 낚일뻔 했습니다. (실제로 조금 낚였습니다.)

 

GPT한테 물어보는건 포기하고 구글링을 하는데도 마땅한 레퍼런스가 없어서 이거 사람들이 잘 안쓰나보다... 하는 생각으로 들어간 사이트에서 예시 코드가 있었습니다. 뭔가 Redis를 개발한 개발자인 것 같은 깃허브 사이트였습니다.

 

이 코드를 보고도 똑같은 반응이었죠. 이게 된다고? 왜냐하면 아까 브라우저한테 메세지 보내서 localStorage 갱신한다는 말보다 더 어처구니 없었거든요. 스프링 부트에서 Map자료구조랑 Redis랑 연동한다는 말이었으니까요. 

 

하지만 몇번 테스트를 해보고 진짜 되더라구요. "이건 미쳤다" 싶어서 바로 성능테스트에 들어갔죠. 생각보다 말도안되는 성능에 놀라면서 포스팅을 작성하고 이를 계기로 ver.6를 개발하게 되었습니다. 

 

현재는 Redis를 이용해 Client Side Caching과 더불어 Redis로 분산락 구현하기, 대기열 만들기 등 Redis로 다양한 기능들을 개발하면서 뿌듯함을 느끼고 있습니다. 

 

 

2024년 7월 10일 (현재)

현재 저는 ver.6로 어떤걸 더 개선해볼까 하는 생각으로 하루하루를 지내고 있네요. 이왕이면 데이터베이스와 관련된 개선을 해보고싶은데 음... 아직 어떤걸 중점적으로 개선해야할지 갈피를 못잡았습니다. 

 

1년전인 2024년 7월의 저보다 한층 더 성장해있는 나 자신을 발견할 수 있었습니다. 1년 1년 쌓이고 뒤를 돌아볼 때마다 정말 뿌듯하네요. 

 

일단 지금은 데이터베이스에 대해 깊이있게 공부해보면서 포트폴리오를 멋지게 다듬어야겠습니다. 

 

오늘은 어제의 나보다 성장한 내가 되어있기를, 내일은 오늘의 나보다 성장한 내가 되어있기를