🎁[속보] 인프런 내 깜짝 선물 출현 중🎁

인프런 워밍업 클럽 스터디 3기 - 백엔드 클린 코드, 테스트 코드 1주차 발자국

이번주차 학습 부분 [섹션1 - 5]

지금까지 나는 클린코드의 원칙들에 대해 왜 이러한 원칙을 지키는 것이 좋은지 깊게 생각해보지 못했고, 가독성 좋은 코드를 작성하고 싶다는 생각이 있었음에도 구체적이고 체계적으로 스스로 생각을 정리해보거나 학습해보지 못했던거 같다.

이번 주차 학습을 진행하며 이러한 생각들이 많이 정리 되었고 구체화 되었다. 가장 좋았던 점은 추상이라는 개념에 대해서 먼저 이해하고 그를 바탕으로 구체적인 원칙들을 학습해나가니 그것들이 왜 필요한지를 자연스럽게 알며 학습할 수 있었다는 점이다. 평소에도 나름 잘 지켜온 원칙들도 있었는데 왜 좋은지에 대한 이유를 명확히 인지하고 강사님과 코드를 통해 구체적인 방법들을 적용해보니 학습하며 뿌듯하고 즐거웠다.

 

미션

기존 코드를 리팩토링 해보는 Day4 미션에서 강의에 나온 원칙들을 충분히 고민하고 적용해보지 못한 것 같아 아쉬움이 남아 다시 진행해보려 한다.

SOLID 원칙에 대해서 자신기만의 언어로 바꾸어 설명해보는 미션은 각각 원칙에 대해 내가 생각하기에 가장 중요한 부분을 담고 함축적으로 표현할 수 있도록 아래와 같이 작성해보았다.

 

SRP (단일 책임 원칙)

  • 하나의 클래스는 하나의 책임만 가져야 한다. 즉 하나의 기능에 집중해야 한다.

OCP (개방-폐쇄 원칙)

  • 새로운 기능을 추가할 수 있도록 열려 있지만, 기존 코드는 수정하지 않도록 설계해야 한다.

LSP (리스코프 치환 원칙)

  • 자식 클래스가 부모 클래스의 기능을 깨뜨리지 않고 확장될 수 있어야 한다.

ISP (인터페이스 분리 원칙)

  • 자신이 사용하지 않는 인터페이스에 의존하지 않아야 한다. 하나의 큰 인터페이스보다, 구체적이고 작은 인터페이스 여러 개로 나누는 것이 좋다.

DIP (의존 역전 원칙)

  • 고수준 모듈은 저수준 모듈에 의존해서는 안 되며, 둘 다 추상화에 의존해야 한다. 즉, 구체적인 구현이 아니라, 추상화된 인터페이스에 의존해야 한다.

 

사실 이번주 후반에 여러 스케줄이 겹쳐 학습과정에 충분히 원하는 만큼 시간을 쓰지 못했는데, 주 초반에 미리 미리 시간이 있을 때 해둘 걸 하는 후회를 했다.

역시나 시간이 있을 때 해놓아야 미래가 행복하다는 것을 느꼈다. 다음 주는 이런 아쉬움을 동기삼아 더 집중해보아야겠다.

댓글을 작성해보세요.


채널톡 아이콘