[회고] 2020년 상반기

사실 회고를 할 정도의 성취한 것과 이런 것들은 없다. 하지만 어떻게 마음이 변하였고, 그에 따라서 어떤 것들에 집중하고 자 했는지를 돌아 보면서 앞으로를 계획하기 위해서 글을 작성한다.

DDD 세레나데 교육

Next Step에서 DDD 교육을 들었다. 사실 나는 리팩토링, TDD와 같은 기초 적인 부분을 더 듣고 기본기 잡았어야 했다. DDD 특성상, 현업에서 레거시를 DDD로 변경하는 과정, 그에따른 infrastructure에 연관된 부분이 많다 보니까, 해당 도메인 자체를 제대로 이해하지 못하고 실습을 진행하기가 어려움이 있었다. 나는 배달쪽 관련 도메인에는 아직 정확히 모르겠다. 하지만 좋은 것들은 배우기는 했다. 어디 까지 코드 리뷰가 이루어질 수 있는지, Immutable 객체를 왜 그렇게 강조하는지, 왜 setter를 사용하면 안되는지 등등

조금 관심이 가는 분야

아무래도 DDD 관련 수업을 듣고, 처음부터 모델링, 요구사항 분석과 같은 설계적인 부분도 접근하다 보니 자연스레 그런 부분에 관심이 많이 생겼다. 그래서 로버트 C마틴의 클린소프트웨어 , 조영호님의 오브젝트를 필두로 모델링 설계에 대한 관심이 다시금 생겨났다. 책에 나온 모델정보를 가지고 내가 직접 프로젝트를 만들어 나가면서 하나씩 수정하고 설계를 변경해 가는 부분이 상당히 재밌어 지고, 더 깊게 알 수록 더욱 재밌어 진거 같다. 이런 부분은 한 순간에 완성되지 않기 때문에 꾸준하게 시간을 들여서 생각하고 또 변경하고… 그렇게 반복해야 한다는 것을 알았다.

추가로 모델링에 관심이 생기다 보니, 당연히 DB설계, 인덱스, 정규화에 더 관심이 생겼다. 너무나 단순하지만 아무렇지 않게 생각했던 것들을 다시 돌아보게 되었다. 예를 들면 1:N 매핑에서 외래키는 N테이블에 있는 것이 당연하다는 것, 이에 따라 JPA(ORM)에서 연관관계의 주인 이라는 개념을 통해서 어디에 외래키가 위치하게 되는지에 대한 이해. 그리고 보통 쇼핑몰, e-commerce에서 Category 테이블을 설계할 때 어떻게 할까? 라는 질문에 대해서 답을 못했다. 계층구조 설계를 통해서 어떻게 데이터를 저장하는지. 등등

이런 부분들을 스스로 질문하고, 스스로 답하는 시간들을 더 많이 가져야겠다.

업무 관련

특별한 것은 없었다. 다만 집중했던 몇 가지 사안들이 있었다. 그리고 잘 된것, 잘 이루어 지지 않은 것들이 있었다.

  1. 신규 기능 개발에 대한 요구 사항 분석, 개별 User Story작성을 최대한 잘게 쪼개려고 하였으나 실제 업무의 복잡도가 있었기 때문에 세세하게 쪼개지 못했다. 더욱 세세하게 쪼개서 기능단위의 개발과 단위 테스트와 커밋메세지 까지 한 쎄트를 이뤄서 task 관리를 더욱 철저히 해야 겠다는 생각을 했다.
  2. 기존의 레거시 시스템에 하드코딩된 부분을 Enum을 통해서 관리하려고 했다. 다만 중복된 데이터가 아직도 존재하기 때문에 완전 깔끔하게 해결하지는 못했고, 모든 레거시를 리팩토링할 때는 기준이 되는 건 역시나 단위테스트 여야 한다는 것을 느꼈다. 테스트 없이 리팩토링은 절대 안된다!!!!

리팩토링은 사실 리팩토링 책을 봐도 제대로 적용할 수 없었는데, Youtube에서 백명석님이 강의하신 클린코더스 이 영상을 보고 많이 따라했다. 한 100번 곱씹어도 좋을 영상이다. 사용하시는 단축키며, 어떻게 사고하는지 흐름을 따라가는 것도 주니어 개발자에게 너무 좋다.

  1. 내가 처리했던 이슈들, 기존에 있었던 것들에 대해서 정리하는 것이 필요했다. 문서화 작업을 진행했다. 여러 번의 시행착오가 있었다. 문서를 어떻게 잘 작성할 수 있는지, 어떻게 체계적으로 정리할 수 있는지, 정리한 것들을 관리할 수 있는지, 가장 좋았던 것은 누군가 잘 하는 사람(그 사람이 이 글을.. 보겠지..? )이 있다면 그 Format를 따라하는 정도가 아닌 훔쳐서 라도 내것으로 만들어야 했다. 아직도 글을 쓴다는 것은 나의 부족함이 드러나지만, 사고를 정리한다는 차원에서 계속해서 문서화 작업을 진행할 생각이다. 그것도 개발자의 업무중의 하나라는 것을, 전혀 쓸데 없는 일이 아니라는 것을 알 게 되었다.

다시 존버 그리고… 목표

관심이 생긴 분야를 찾아내는 것도 이 일에 대해서 회의를 갖지 않고 재밌게 이어갈 수 있는 것도 노력이 필요하다는 걸 알았다. 지금은 객체지향, 설계, 모델링 이런 부분에 관심이 생겨서 해당 책들을 보고 학습을 이어나가고 있고, Modern Java in Action 책도 보고 있는데, 자바라는 언어를 잘 모르고 사용하고 있었구나 다시금 느낀다.

나의 잔디밭

2020년의 잔디밭이다. 잔디밭을 녹색으로 만드는 것이 목표는 아니었다. 가짜 목표에 집중해서 쓸데 없는데 에너지를 낭비하고 싶지는 않았다. 내가 하는 과정중에 자연스럽게 녹색이 채워지도록 시스템을 만드는 것이 더 중요했다. 그래서 여러 가지 시도를 했다. Notion의 칸반보드, Trello의 칸반보드 …

Github 프로젝트 활용

하지만 모든 프로젝트를 담을 수 없었기 때문에 Github에서 제공해주는 Project별 칸반보드를 활용하기로 했다.

이 블로그에 앞으로 추가했으면 좋을 것들을 To Do로 작성했다. 이래야지, 지속적으로 프로젝트에 대한 애정도 생길것 같고, 스스로 동기 부여도 잘 될 것 같다!

Github TechBookStudy 조직 개설

Github에 TechBookStudy 팀을 만들었다. 책으로 학습한 내용을 기록하는 Repo를 따로 관리하고 계속해서 이어나갈 생각이다. 당연히 나 혼자만의 ㅠㅠ 조직이지만, 🚰 물을 계속 주면 잘 자라겠지? 일단은 private 레포지토리로 시작하고, 하나씩 완성(?) 정리될 때 마다 open 하는 쪽으로 진행할 것

새로운 목표

  • 오브젝트, 클린소프트웨어, 모던자바인액션 3권 독파!! -> 2020년 10월까지
  • 일주일에 1번씩 블로그에 글쓰기, 형식, 완성에 대해 부담감 버리기 -> 한달에 4 * 7개월 = 28개 포스팅!
    • 독자를 위해서 완벽한 글 보다는, 미래의 나를 위해서 정리하는 차원에서 쓰자. (완성도는 70~80% 만 만족해도 좋다!!!)
    • 비슷한 내용이어도, 내 식대로 재미있게, 내가 아는 한도 내에서 작성하기
  • 알고리즘 문제에 대한 거부감 없애기
    • 1단계 자바로 머릿속의 문제에 대해서 아주 빠르게 구현할 수 있게 만들기, Array, String, for문에 대한 연습
    • 2단계 탐색, 자료구조 관련된 딥하게 공부하기
    • 3단계 Advanced 레벨 문제 접하고, 방법적인 측면만 생각하기! 직접 구현X, 머릿속 생각만

📚 Related Posts

[회고] 2020년 상반기
Older post

[Java] Comparable vs Compartor 사용 방법

Newer post

Modern Java in Action #2. 동작파라미터화 코드 전달하기

[회고] 2020년 상반기