HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
🤩
개발
/강의 내용 정리/인프콘 (24.8.2)/
클린 스프링: 스프링 개발자를 위한 클린 코드 전략 (토비)

클린 스프링: 스프링 개발자를 위한 클린 코드 전략 (토비)

 

클린 코드가 강조하는 것

  • 유지보수성(maintability)

클린 아키텍처는?

  • 품질에 관한 요구사항(비 기능적 요구사항)에서 유지보수성은 특별하다
  • 유지보수하기 좋은 코드는 확장하기 쉽고, 안전하고, 신뢰할 수 있고, 좋은 성능으로 발전시킬 수 있고, 상호 호환성이 뛰어나서 변경하기 쉽다
  • 유지보수성은 코드의 변경가능성과 동의어
 
개발 생산성과 유지보수성은 배타적이거나 대치하는 개념이 아니다.
그런데 왜 클린 코드를 하면 구현 능력과 속도가 떨어진다고 할까?
개발 생산성과 유지보수성은 서로 영향을 주는 관계이다
 

부채 은유 (Dept Metaphor)

  • 개발하는 소프트웨어에 대한 현재 이해를 반영하는 코드를 작성하고 빠르게 출시
  • 소프트웨어에 대해 배우게 된 것을 리팩터링을 통해서 코드에 반영
  • 그러지 않으면 이자가 쌓여서 점점 큰 부담
부채의 상환 = 리팩터링
  • 코드를 대충 작성하라는게 아님
  • 부채는 나쁜 코드에 대한 변명이 될 수 없음
  • 처음부터 리팩터링하기 좋은 코드를 만들어야 함

클린 코드 선순환

유지보수성이 좋은 코드는 변경가능성이 좋다
빠르게 변경되는 코드는 개발 생산성이 좋다.
 
선순환에 들어가기 위한 시작은 어떻게 해야할까 → 개발의 시작은 빠르고 간단하게
  • 익숙한 기술로
  • 핵심 기능에 집중
  • 동작하는 코드
  • 가장 단순한 코드를
  • 리팩터링 하기 좋게 작성
일부 기능을 완벽하게 만드는 것으로 시작하지 않기
유지보수성과 생산성의 균형을 잡아줄 리팩터링을 잘 하려면 ? 테스트!
그런데 테스트를 작성하면 구현 능력과 구현 속도가 또 ..
테스트를 빠르고 효과적으로 작성하면서 개발하는 능력이 필요 ( Copilot 을 이용하거나 )

팀워크

유지보수성 + 생산성 + + 팀워크!! ⇒ 삼체 문제. 영향을 미치는 조건이 3가지
  • 클린 코드의 많은 원칙은 팀의 동료 개발자와 관련된 것임
  • 나만을 위한 클린 코드는 없다
  • 클린코드의 많은 원칙은 상황에 따라 다른 기준을 가지고 있다.
💡
팀과 함께 결정하고 탐험하고 학습하고 성장한다
함께 탐험하는 것을 즐거워 하는 팀. (제시카 커. Great teams make great people)
 
교양있는 개발자
자신의 말을 하더라도 다른 사람의 기분을 나쁘지 않게 하는 것
함께 코드를 작성하고 읽고 변경할 동료 개발자들에게 친절한 코드
항상 친절하세요. 동료에게. 자신에게