[클린코더스] #1. 소개

bien·2024년 12월 7일
0

클린코더스

목록 보기
1/2

🚀 강의 목적

돌아가는 코드 - 읽을 수 있는 코드

기계가 이해할 수 있는 코드는 어느 바보도 작성할 수 있다. 하지만 인간이 이해할 수 있는 코드는 잘 훌련되 소프트웨어 엔지니어만이 작성할 수 있다. by.마틴 파울러

  • 지금 작성하는 코드가 사람을 위한 코드인가, 기계를 위한 코드인가
  • 리팩토링, 리뷰, 테스트 ... ❌
    • 사소한 변경에도 오랜 시간이 요구된다.
  • 통계적으로 1개의 버그 수정이 3개의 버그를 생성한다.
    • 거의 대부분의 버그는 버그 수정중에 발생한다.
    • 개발 사이클에서 뒷 부분에 무언가 수행하려고 하면 작게는 10배, 크게는 100배의 노력이 요구된다.
    • 앞부분에서 요구되는 시간은 시간이 많이 소요되는 것 처럼 느껴지지만, 뒷 부분에 가서 요구되는 시간을 많이 아껴줄 수 있다.
      • 결국 토탈로 요구되는 시간은 동일하다. 오히려 뒷부분에 들이는게 더 많을 수 있다.
    • 내가 구현하려고 하는 것을 그려보는 사람은 (그리는데 시간이 걸리겠지만) 더 잘 할 수 있다.
    • 💭 구현먼저 하고 시간을 남겨서 리팩토링을 해야지
      • 높은 확률로 시간 안 남는다.
      • 그리고 이런건 리팩토링이 아니라, 리스트럭처링이라고 한다.

IDE를 활용한 리팩토링

  • 이미 돌아가고 있는 코드가 있는데, 그 코드가 테스트 코드가 없어서, 공격적 개발 혹은 변경이 안될 때
    • Intelli-J의 Refactoring 기능들을 이용해 공격적인 변경을 시도할 수 있다.

TDD를 이용한 새로운 기능 개발

  • 진짜 TDD를 하면 느려지는지 아니면 더 빨라지는지 알아보자
  • 기존 프로그램이 TDD가 아닐 때, 어떻게 새로운 기능을 TDD로 구현할 수 있는지 알아보자.

OOP/SOLID에 기반한 설계

  • 객체지향의 개념들. 로버트 C 마틴이 이야기하는 SOLID 5가지 개념에 대해 알아보자.
  • 이 조각조각의 개념을 시스템 개발 시 어떤 것을 적용해 어떻게 설계할지 알아보자.

Reference

profile
Good Luck!

0개의 댓글