TIL(Today I Learned)/2022년

02.21 - 자바 챔피언 양수열님의 조언

심리밀당남 2022. 2. 22. 09:10

1. 좋은 개발자, 좋은 개발 팀이 되기 위한 조언

1) 남을 가르치는 기회를 가져보라 - 내부 컨퍼런스 등

  • 남을 가르치려면 내가 알고 있는 정보 정리를 잘 해야 함
  • 교육을 준비할 때 내가 무엇을 알고 모르는지 정확히 알 수 있음

 

2) 코드리뷰를 하라

  • 하나의 기능을 구현하는 방법은 수백가지임
  • 반면 한 명의 개발자가 생각해낼 수 있는 방법은 소수에 불과함
  • 코드리뷰를 통해 다른 사람의 코드를 참고하고 서로 대화하면, 최적의 구현법을 찾는데 매우 큰 도움이 됨
  • 코드리뷰 프로세스는 개발자 개인의 성장을 위해 매우 필요함
  • 하지만, 코드리뷰가 자리 잡기 위해선 조직적인 합의가 필수임
  • 리뷰 초반에는, 아무리 바쁘더라도 퇴근 전 하루 한 번은 꼭 코드리뷰 하는 것을 추천함

 

3) 테스트 코드를 작성하라

  • 테스트 코드는 경제적임
  • 서비스 / 비즈니스에 따라 적절한 테스트 커버리지가 다름
  • 테스트 코드는 새로운 개발자 landing하는 데에도 좋음

 

4) Software Architecture 문서를 작성하라

  • 비즈니스 / 팀의 상황과 특성에 따라 중요한 특성(Quality Attribute)이 다름
  • Software Architecture 문서는 Quality Attribute 등 “개발 철학”을 정의한 문서임

(Software architecture in practice 책 추천)

 

 

5) 개발 스터디를 하라

  • 공부에는 강제성과 관성이 필요함
  • 혼자하는 공부는 위 두 요소를 충족시키기 어려움 → 지속하기 힘듦
  • 29살 때는 2주 간격의 스터디를 6개 정도 진행함
  • 지금까지도 개발 스터디 하는 중. 아래의 책으로 진행하고 있음

 

6) 문서 작성 또한 중요하다

  • 최상의 엔지니어는 스펙을 정의하고 정리하는 사람임
  • Use Case Specification 문서 정도는 만들어 보는 것을 추천함

 

7) 해외 개발 컨퍼런스에 참가하라

  • 해외 컨퍼런스에는, 유명한 언어 / 프레임 워크의 창시자들을 직접 만나고 질문할 수 있음
  • 그러기 위해 영어공부는 매우 필수임!

 

8) 이슈 트래킹 툴 도입 추천

  • 숫자로 이슈와 관련된 내용들을 트래킹 하는 것이 중요함
  • 개발 조직이 크기 위해 체계와 체계를 실천하기 위한 이슈 트래킹 툴과 같은 도구가 필요함

 

2. Q&A

Q. CS 지식은 언제, 어떻게 공부하는 것이 좋은가?

A. 필요할 때 공부하는게 제일 좋다. 공부한 내용을 체화하려면 피부에 와닿는 현실에서의 이슈가 필요하다

 

Q. 좋은 코드, 좋은 개발자란?

A. 아래와 같이 생각한다

  • 좋은 코드 - simple & solid한 코드. 오랜 세월 계속 사용할 수 있는, 높은 커버리지, 유연함 등
  • 좋은 개발자 - 편견이 없는 유연한 개발자. 다양한 언어 / 소프트웨어의 철학을 이해하고 적절히 조합하여 사용할 수 있는 개발자

 

3. 기타

  • 추천하는 책 목록
    • Design Pattern
    • Refactoring
    • Optimal Java
    • Clean Architecture
  • 성장하지 못하는 개발자들은 난관에 부딪혔을 때 고민 없이 바로 물어봄
    • 훌륭한 개발자가 되기 위해선, 충분히 혼자 고민을 해야 함
    • 고민을 바탕으로 자신만의 질문을 정교화하고, 그 질문에 대한 자신만의 가설 or 결론을 세워야 함
    • 그 뒤에 질문을 해야 함
  • 2030 개발자들에게 꼭 추천하는 것!
    • 연애를 하세요… (40대 이상의 개발 독거노인들 많다..)
    • 영어공부 열심히 하세요
    • 계속 꾸준히 공부하세요. 혼자 힘들면 스터디를 하세요