티스토리 뷰

반응형

벌써 신입 개발자로 첫 해를 보냈던 2021년을 마무리하는 시간이 되었습니다. 2021년 한 해를 되돌아보면서, 작년의 목표가 잘 지켜졌는지 확인해보고 2022년에 대한 목표를 잡아보고자 합니다. 내년 초에도 마찬가지로 아래의 내용을 돌이켜 보면서 목표가 잘 지켜졌는지 회고하고, 새로운 목표를 잡을 계획입니다.

 

 

1. 2021년 목표 회고


[ 원리를 기반으로 한 공부 - 목표 회고 ]

2021년에 원리를 기반으로 한 공부를 하자는 목표를 잡았다. 그리고 이번 한 해동안 토비의 스프링과 많은 책들을 기반으로 Spring에 대해 깊이있는 공부를 하면서 목표를 잘 지킨 것 같다는 생각이 든다. 원리를 기반으로 스프링에 대한 많은 부분을 공부하다보니 사내 프로젝트의 통합 테스트 환경을 구축하거나 의존성 정리를 할 때 많은 도움이 되었다. 2022년에도 원리를 기반으로 공부를 하도록 도와주는 책이나 자료들을 많이 찾아보도록 해야겠다.

 

 

[ 프로그래밍 책 읽기 - 목표 회고 ]

작년에는 많은 책을 읽으면서 성장하는 한 해를 보냈던 것 같다. 2021년 월 별로 읽은 책을 정리하면 다음과 같다.

  • 2월: 객체지향의 사실과 오해
  • 3월: 클린 코드, 이펙티브 자바, 클린 아키텍트
  • 4월: 조엘 온 소프트웨어, 프로페셔널 소프트웨어 개발, 테스트 주도 개발
  • 5월: 토비의 스프링1
  • 6월: 스프링 부트 시작하기 : 차근차근 따라 하는 단계별 실습
  • 7월: 토비의 스프링2
  • 8월: 클린 코더
  • 9월, 10월, 11월: 오브젝트
  • 12월: 코드 컴플리트2

 

몸이 글을 거부하여 읽는 과정이 순탄치지만은 않았지만 책을 읽으면서 확실히 많이 성장하고 있음을 느꼈고 나의 장점 중 하나인 꾸준함으로 내년에도 읽어나가고자 한다.

 

 

[ JPA와 QueryDSL 기반의 사이드 프로젝트 - 목표 회고 ]

2021년 12월부터 사이드 프로젝트로 기술 면접 구독 서비스를 진행하면서 오랜만에 JPA를 사용하였다. 작년 초에 열심히 공부했던 JPA 내용들을 많이 까먹긴 했지만, 그래도 꾸준히 JPA를 사용해 나가고자 한다. QueryDSL도 이용을 해보았는데 아직 완벽하게 적응은 하지  못했고 꾸준히 사용을 해봐야 할 것 같다.

원래의 목표는 내가 먼저 JPA에 완벽히 적응을 하고 회사에 JPA 도입을 건의하려고 했다. 하지만 사내에서는 MyBatis를 자체적으로 확장하여 사용하고 있었고,  데이터베이스 PK 선정을 복합키로 많이 하여 적합하지 않은 것 같아 따로 도입을 건의하지는 않았다. 사내에서 조건이 맞는 프로젝트를 진행한다면 얘기해보겠지만 가능성이 높아보이지는 않는다. 그러므로 개인 프로젝트를 할 때 열심히 공부하고 적용해야겠다.

 

 

[ 공식 문서를 읽는 습관 - 목표 회고 ]

완벽하지는 않지만 조금씩 공식문서를 찾는 빈도가 늘어나고 있다. 최근에는 ModelMapper를 사용하기 위해 공식 문서를 찾아봤던 것 같은데, 내년에도 공식 문서와 친해지기 위해 열심히 노력해야겠다.

 

 

[ 경제 및 투자에 대한 공부 - 목표 회고 ]

개발 관련 공부를 할 것이 많아서 경제 및 투자에 대해 공부는 따로 하지 못하고 있다. 하지만 우량주 위주로 투자를 열심히 하고 있고, 손해는 안보고 있으니 당분간은 열심히 개발 공부에 집중을 해야겠다.

 

 

[ 운동 및 기초체력 향상 - 목표 회고 ]

올해 6월부터 헬스장을 다니고 시작했고, 지금까지 정말 열심히 꾸준히 다니고 있다. 웨이트 위주로 진행을 했는데 몸은 좋아져도 체력이 좋아지는지는 모르겠어서 최근에 런닝머신을 뛰기 시작했다. 운동 6개월 열심히 해도 아침에 피곤하고 졸린 것 같은데... 잘 모르겠지만 일단은 내년에도 열심히 계속 운동을 하면서 체력을 길러보고자 한다.

 

 

[ 회사 업무에 적응하기 - 목표 회고 ]

회사에 들어온지 얼마 되지 않은 것 같지만 꽤나 많은 일을 진행했고 나름대로 처음보다는 많이 적응한 것 같다. 처음 입사해서 업무를 했을 때 도메인 지식이 너무 부족한 상태였고, 그러한 결과로 실수도 많았는데 지금 돌이켜 생각해보니 조금 무리한 요구였던 것 같다. 신입이 들어올 때 내가 있을지는 모르겠지만 내가 잘 팔로우하도록 도와줘야겠다는 생각이다.

물론 나도 아직 부족한 도메인 지식이 많기는 하지만 이 부분은 업무를 진행하면서 메꿀 계획이다. 2021 하반기에도 그랬지만 2022년에는 도메인 지식을 배워나가기 보다 전반적인 나의 성장을 초점으로 보낼 계획이다.

 

 

[ TDD(Test-Driven-DevelopeMent) 적용 ]

2021년에 TDD를 공부하고 실무에 적용했던 것은 나의 프로그래밍에 있어 가장 큰 변화였던 것 같다. TDD로 개발하는 친구를 통해 TDD를 접하고 나서 바로 책을 사서 읽었는데 정말 신선한 충격을 받았다. 이후 TDD를 실무에서 적용하고자 예제를 통해 연습하기 시작하였으며 적응이 된 이후에 실무에 적용하기 시작했다. 이를 통해 생산성 향상 및 버그 감소 등 수많은 장점들을 얻을 수 있었다. 그리고 나도 이제는 주변에 TDD를 꾸준히 전파하는 개발자가 되었다.

물론 지금의 나는 항상 TDD를 하지는 않는다. 비지니스 로직이 머릿 속에 명확히 그려지는 경우, 기존의 코드와 유사한 경우, 유지 보수를 하는 경우 등에는 바로 코드를 작성하기도 한다. 대부분 이러한 상황은 로직을 바로 작성하는 것이 생산성이 높아진다고 판단이 되는 상황이다.

그렇다고 테스트 코드를 소홀히 하지는 않는다. 항상 가능한 모든 경우에 대해 테스트 코드를 작성하고 있으며, TDD를 함으로써 얻은 것 중 하나가 바로 테스트 코드의 중요성이기 때문이다. 아직 TDD를 체득하지 못한 분들이 있다면 가장 최우선 순위로 TDD를 올려두기를 권장한다.

 

 

[ 회사 부서에 기여하기 - Docker, Kubernetes 기반의 ELK 모니터링 시스템 구축 ]

부서에서 배포 후 모니터링이나 문의 대응을 할 때 등 로그를 확인해야 하는 경우가 있다. 문제는 로그를 확인하기 위해 서버에 직접 접속해야 한다는 것인데, 네이버 같은 경우에는 보안 장비가 있어 해당 과정이 상당히 번거롭다. 또한 1개의 프로젝트에 대해 여러 대의 서버가 떠있어서 하나의 프로젝트를 배포하려면 최대 30~40대의 서버에 접속해 로그를 확인해야하는데 이 과정을 매달 진행하다보니 상당히 어지러웠다.

개인적으로 이것은 필수 개선사항이라고 생각하여 ELK 도커 이미지를 만들고 Kubernetes로 배포를 하였다. 서버들은 Logstash를 활용해 로그를 ELK에 전송하여 적재하도록 하여 더 이상 서버에 접속할 필요를 없게 개선하였다. 일을 처리하기 위한 편리성 및 생산성이 매우 향상되었고, 이를 통해 무의미하게 야근하는 시간이 많이 줄어든 것 같다. 혹시 로그 확인을 위해 직접 서버에 접속하고 있다면 당장 모니터링 시스템을 도입하는 것을 강력히 권장한다.

 

 

 

2. 2022년 목표 설정


[ Spring과 Java 더 깊게 공부하기 ]

2021년도에는 많은 Spring, Java 공부를 통해 발전할 수 있었다. 하지만 아직 쓰레드 로컬과 스프링의 세부 코드들(DI 컨테이너, 디스패처 서블릿 ...) 등 조금 더 깊이 있게 살펴볼 부분들이 많이 남아있는 것 같다. 2022년에는 Spring과 Java를 조금 더 깊이있게 다뤄볼 계획이다. 책, 인강, 인터넷 자료 등 다방면으로 공부할 계획이다. 스터디를 운영할까도 계획중인데, 아직 방향을 구상하고 있다.

 

 

[ 프로그래밍 책 읽기 ]

2022년에도 많은 책들을 읽으면서 성장할 계획이다. 2022년에 목표로 하고 있는 책들 목록은 다음과 같다.

  • 모던 자바 인 액션
  • 자바 병렬 프로그래밍
  • 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
  • 모던 스프링 인 액션
  • 스프링 입문을 위한 자바 객체 지향의 원리와 이해
  • 스프링 철저 입문
  • 스프링 DI 컨테이너 자료
  • 기타 등등

 

위의 목표로 하는 책들을 보면 거의 자바, 스프링이다. 자바와 스프링은 이미 실무를 하는데 부족한 점이 없을 정도이지만 그래도 깊이있는 공부를 하여 진정한 전문가가 되기 위해 2022년에 관련 책들을 마무리하고 넘어갈 계획이다. 최대한 빨리 자바와 스프링 관련 내용들을 마무리한 후에 스프링 공식 문서를 한번 쭉 읽고 리액티브 프로그래밍(Webflux)나 DDD 또는 대용량 처리 등으로 넘어가면 좋지 않을까 싶다.

 

 

[ 사이드 프로젝트 ]

현재 기술 면접 구독 서비스를 사이드 프로젝트로 진행하고 있다. 오랜만에 마음에 드는 아이디어의 프로젝트를 하고 있는 것 같은데, 최근에 개발자 친구와 기획자 친구를 프로젝트에 참여시켰고, 웹 서비스로까지 확장하고 있다. 올해에는 더 많은 사용자들을 확보하는 것이 목표다.

 

 

[ 회사 부서에 기여하기 ]

일을 하는 것과 별개로 나의 가치도 높이고 부서에 도움도 주기 위해 무언가를 진행하고자 한다. 작년에는 ELK 모니터링 시스템을 구축하며 부서에 기여하였고 올해에는 다음의 두 가지를 부서에서 개별적으로 진행할 예정이다.

  • 서킷브레이커(Resilence4J) 적용
  • Lambda 기반의 문의 담당자 할당 및 알람 보내기

 

우리 부서에서 관리하고 있는 프로젝트 중 하나가 OpenAPI를 위한 게이트웨이 서버이다. 그러다보니 모든 서비스들과 API 통신을 주고 받는데, Spring MVC(멀티 쓰레드) 기반이라 한 서비스에서 장애가 발생하면 덩달아 장애가 발생할 가능성이 매우 높다. 이러한 문제를 방지하기 위해 부서에서도 써킷 브레이커 도입의 필요성을 인지하고 있으므로 써킷브레이커 도입을 진행하겠다고 자원할 계획이다.

또한 부서 내부적으로 매 주 마다 문의 담당자가 문의를 처리하고 있다. 문의는 Yobi(게시판)를 통해 받기도 하는데 메신저가 아닌 메일로 알림이 오고 담당자도 자동으로 할당되지 않아 서로 애매한 경우가 많이 있다. 그래서 람다 기반으로 문의 담당자를 자동으로 할당하고 새로운 문의 글에 대해 알림을 보내주는 기능을 개발하겠다고 제안할 예정이다.

 

 

 

[ 최선의 코드를 작성하기 ]

내가 1년 정도 업무를 하고 진행을 하다 보니 대충 짜여진 코드들 때문에 문제가 생긴 적이 너무 많았다. 문의 대응을 하기 위해 코드를 여기저기 뒤적거려야 했고, 테스트 코드를 작성하는데는 번거로웠고, 유지보수하기도 너무 어려웠다. 이로 인해 불필요하게 잡아먹히는 시간들은 많아졌고, 코드를 대충 짜는 것은 당장의 이익을 위해 미래의 너무 많은 희생을 감수해야 함을 이미 알고 있었지만 원치않게 몸소 겪게 되었다.

물론 PR 코멘트 등도 많이 남기고, 코드 관련 내용도 정리해서 많이 남기는 등을 통해서 좋은 코드로 개선하고자 많은 시도를 했지만... 그다지 효과가 크지는 않았던 것 같다. 그래도 나라도 최선의 코드를 작성해 문제를 줄이자고 생각하였다. 나중에라도 누군가 내 코드를 유지보수할 때 부끄럽지 않게 작업해 둘 계획이다.

 

 

[ 이직 준비 ]

원래도 이직의 생각이 있었지만, 최근에 주변의 동료들이 이직을 많이 하면서 더욱 생각을 확고히 굳혔다. 이직을 하려는 이유는 계약 연봉 향상, 클린 코드와 적극적인 코드 리뷰를 추구하는 문화 경험, 객체 지향적인 애플리케이션 개발 및 설계, 도전적인 업무 진행 등이 있다. 그리고 이를 위해 열심히 준비해보고자 한다.

그래도 부서에서 꽤나 흥미로운 얘기가 나왔는데, 그것은 2022년에 내부적으로 코드를 정리하는 시간이 필요할 것 같다는 얘기였다. 사업 확장 일정이 빠듯하여 가능할 지 모르겠지만, 만약 진행된다면 이직을 미루고 해당 프로젝트에 끝까지 참여할 계획이다. 그리고 그 과정에서 최대한 깔끔하고 유지보수하기 좋은 코드를 작성하도록 많이 나서고 싸워나갈 계획이다. 개인적으로 꼭 진행했으면 좋겠고 매우 기대가 된다.

 

 

 

반응형
댓글
댓글쓰기 폼
  • 1Fe 항상 좋은글 읽으면서 자극받고 갑니다!! 올해도 건강하고 화이팅넘치는 한 해가 되길 바라요~! 2022.01.07 10:37 신고
  • 망나니개발자 헉 엄청 빠르게 읽어 주셨네요 감사합니다! 올 한해도 좋은 일만 가득하시고 같이 좋은 개발자가 되어나가욥ㅎㅎ 2022.01.07 12:08 신고
  • daengsik 개발자의 삶.. 경험해보지 못한 분야라 그런지 호기심이 생기네요 신입딱지를 떼신걸 축하드립니다. 언제쯤 저도 신입 딱지를 떼게 될지 ㅎㅎ 2022.01.07 13:32 신고
  • 망나니개발자 열심히 준비하시고 계신 것 같네요ㅎㅎ 꾸준히 열심히 하시면 조만간 훌륭한 신입 개발자가 되실 것 같습니다! 올해도 화이팅입니다ㅎㅎ 2022.01.07 16:52 신고
  • Loper Lee 늘 좋은글 감사합니다. 작년의 난 뭘했나 생각하게 하는 회고글이네요 ㅋㅋ... 올 한해는 열심히 살아봐야겠네요. 2022.01.13 11:28 신고
  • 망나니개발자 이렇게 서로 좋은 자극을 받아가는게 회고록을 쓰고 읽는 장점이 아닐까 싶습니다ㅎㅎ 저도 다른 분들의 회고록 열심히 읽으면서 많이 배우고 있네요ㅎㅎ 2022.01.13 14:24 신고
  • 비밀 우와,, 책을 정말 많이 읽으시네요..! 항상 궁금한게 있어서 구글링하다 보면 이 블로그로 들어오게 되는 것 같습니다. 그만큼 좋은 글을 써주시는거겠죠. 올 한해도 화이팅하세요! 항상 감사드립니다. 2022.01.18 03:38
  • 망나니개발자 헙 자주 보인다니 뿌듯하네요ㅎㅎ 책을 읽다보면 확실히 많은 것들을 깊게 배워나가는 것 같네요ㅎㅎ 감사합니다! 올 한해도 복 많이 받으시고 화이팅입니다:) 2022.01.18 21:13 신고
  • 정권이 내 좋은 내용 잘읽었습니다. 저는 원래 C++ 위주로 개발을 하다가 요즘은 팀에서 진행하는 클라우드 프로젝트 때문에 spring을 공부중인데 맨땅에 헤딩하면서
    하는거라 많이 어렵더라고요...
    읽으신 책들 대부분 spring과 관련된게 많은데 spring을 처음시작할때 읽으면 좋을만한 책 추천해주실수 있으신가요??
    2022.01.26 16:50 신고
  • 망나니개발자 스프링 프레임워크를 기본부터 깊이있게 보고 싶다면 당연 토비의 스프링을 추천드리고 싶습니다! 하지만 실무에서 바로 스프링 사용 및 투입이 필요하신 상황이라면 "스프링 부트와 AWS로 혼자 구현하는 웹 서비스" 이 책도 괜찮을 것 같네요ㅎㅎ Java 8 이상의 문법들 ex) optional, stream 등에 익숙하지 않으시다면 이펙티브 자바도 강력히 추천합니다:) 2022.01.26 19:05 신고
  • 정권이 내 모던 자바인 액션에서 java8 에서 추가된 함수형 프로그래밍에 대해서는 어느정도 학습을 했는데 토비의 스프링부터 한번 시작해봐야겠네요 ㅎㅎ 감사합니다 2022.01.26 22:56 신고
  • 망나니개발자 오 너무 좋습니다ㅎㅎ 토비의 스프링 내용은 TDD나 DDD와 같은 개념들도 같이 설명을 하고 있는데, 저는 읽으면서 상당히 흥미로웠습니다! 꼭 토비의 스프링 완주하시길 응원합니다:) 2022.01.26 23:17 신고
  • ryumodern 2021년 한해 개발자님 블로그 덕분에 많은 도움과 좋은 자극을 받았습니다
    2022년도 홧팅하시고 이직도 성공하시길!
    2022.01.28 18:06 신고
  • 망나니개발자 서로 좋은 자국을 받아가는건 참 좋은 것 같습니다! 좋은 얘기들 많이 해주셔서 감사합니다:) 2022.01.28 19:06 신고
  • 진짜 와앙 부지런하시네요... 컴퓨터쪽 공부하는 석사과정생인데 1년 이미 공부했고 2년만에 정상졸업한다 하면 1년 남았는데 졸업논문 주제는 아직 못 잡았고, 취직못하면 졸업 안시켜주신다는 말이 있어서 취준도 해야하고 해서 들어오게 되었어요...!
    회사원이 되는 게 꿈이 되고 있는데 (ㅋㅋㅋㅋ 대학원 저엉말... 하드한 것 같습니다...) 일하시면서도 계속 발전하기 위해 노력하시는 모습 넘 멋있네용! 비회원으로라도 댓글 남기고 가용...! ㅎㅅㅎ
    2022.02.16 15:21
  • 망나니개발자 헉 석사 과정하고 계시군요!! 저도 석사 과정을 했는데, 고생 많으시겠어요ㅜㅜ 좋은 자극 주셔서 감사합니다! 제가 적은 내용들도 그랬으면 좋겠네요ㅎㅎ 취준이랑 대학원 병행하려면 힘드실텐데 항상 화이팅하셨으면 좋겠습니다!! 감사합니다:) 2022.02.16 17:30 신고
  • 익명 비밀댓글입니다 2022.03.22 12:25
  • 망나니개발자 저도 다른 분들의 회고록 보면서 많이 자극을 받는데 선순환이 되어서 좋은 것 같네요ㅎㅎ 감사합니다:) 2022.03.22 16:35 신고
  • 익명 비밀댓글입니다 2022.04.20 00:21
  • 망나니개발자 안녕하세요! 우선 신입 백엔드 개발자가 되신것을 진심으로 축하드립니다!!!
    사실 책에 초점을 두기보다는 학습에 초점을 두는게 좋지 않을까 싶은데요! 현재는 재택중이라 7~8시 퇴근 후에 중간중간 쉬면서 새벽까지 공부하고 있습니다ㅎㅎ 작년에는 유독 책을 많이 읽었는데, 올해는 책을 포함해 소스코드 분석, 인강 등 다양하게 공부중입니다ㅎㅎ 공부도 섞어서 하면 좋아요!
    책을 볼때는 책에 따라 읽는 방법을 다르게 가져가는게 좋습니다! 대표적으로 이펙티브 자바는 필요할 때 해당 부분을 reference처럼 보는게 좋을 것 같습니다! 반대로 스토리가 있는 책은 앞에서부터 쭉 보는게 좋구요!
    그리고 이게 중요한데, 책을 읽은 내용을 실제 코드로 적용해보는 것이 좋습니다! 예를 들어 TDD 책을 읽었다면 토이 프로젝트를 하거나 실무에 적용해보거나 하는게 도움이 많이 될 것 같습니다. 만약 머릿속으로만 읽고 넘어가면 금방 까먹고 잊혀지게 되어서 효과가 떨어질 수도 있습니당ㅎㅎ
    이제 막 취업하셔서 오시는 분이 많으시네요! 앞으로도 열심히 공부하셔서 훌륭한 개발자가 되시기를 응원하겠습니다ㅎㅎ 감사합니다:)
    2022.04.20 01:33 신고
  • 익명 비밀댓글입니다 2022.05.18 14:55
  • 망나니개발자 안녕하세요! 오랜만에 방문해주셔서 감사합니다ㅎㅎ 두 자리수 환경이라면 말씀해주신대로 통계를 뽑는 것이 불가능할 것 같네요ㅜㅜ 아래 링크로 심플하게 docker-compose로 구축하는거를 정리하기는 했는데 완벽하지는 않겠지만 조금이나마 도움이 될 것 같기는 하네요!
    https://mangkyu.tistory.com/197

    Kibana에서 검색 결과를 조회하고, 결과 링크를 공유하거나 CSV로 export 하면 되지 않을까 싶네요ㅎㅎ
    2022.05.18 21:59 신고
반응형
공지사항
Total
2,491,132
Today
169
Yesterday
5,743
TAG
more
«   2022/05   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
글 보관함