[인프런 워밍업 클럽 3기] BE 클린코드/테스트코드 발자국 - 1주차

인프런 워밍업 클럽 백엔드 3기 1주차가 지났기 때문에
이에 대한 정리 및 회고를 작성하고자 한다.
1주차
섹션2. 추상
평소에 개발을 공부하고 진행하면서 추상에 대해 많이 들어봤지만 그 내용에 대해 깊이 있게 생각해본 경험이 부족했음을 느꼈다.
추상이 너무 막연하게만 느껴졌지만 결국 정보를 가려내고 덜어내는 것이었다.
강의 중에서 '말을 하다'의 행위를 구체와 추상을 나누어 설명해주신 부분을 통해 확실하게 이해할 수 있었다.
섹션3. 논리, 사고의 흐름
가장 인상 깊었던 부분은 생각의 깊이를 맞추는 메서드 추상화 과정이었다.
난 기존에 백엔드에서 메서드를 추출하는 부분은 단순히 로직이 복잡해서 읽기 불편한 부분만 따로 빼내어
약간의 가독성을 추구하는 정도에 머물렀었다.
강의에서는 main 코드에서는 코드의 길이를 신경 쓰는 것보다는 메서드를 통해 생각의 깊이를 맞춰야 읽기 편한다고 알려주셨다.
섹션4. 객체 지향 패러다임
백엔드를 하고 자바와 스프링을 접해봤다면 익숙한 객체 지향이다.
강의를 통해 SOLID 원칙에 대해 다시 한 번 돌아볼 수 있었다.
SOLID 원칙을 처음 접했을 때는 정보처리기사를 준비했을 때 같다. 그 때는 리스코프 치환...? 이게 뭐야 라는 생각이 강했지만 코드와 함께 강의를 들으니 단순히 암기식 정보에서 좀 더 체화한 정보로 바뀌었다.
G 선생님과의 대화에서 인상깊었던 문구...
1. SRP (단일 책임 원칙) → “팀 프로젝트에서 역할 분배 확실히 안 하면 개판된다.”
2. OCP (개방-폐쇄 원칙) → “기존 코드 건들지 말고 플러그인처럼 추가하자.”
3. LSP (리스코프 치환 원칙) → “상속받은 애가 부모 역할 못 하면 물려받을 자격이 없다.”
4. ISP (인터페이스 분리 원칙) → “필요한 기능만 골라서 수업 듣듯이, 과목을 나눠서 배우자.”
5. DIP (의존성 역전 원칙) → “직접 의존하면 갈아끼우기 힘드니, 추상화해서 유연하게 만들자.”
회고
자바와 스프링 강의를 듣는 것과는 또 다른 재미가 있는 강의었다.
내용도 내용이지만 계속 생각나던 부분은 '객체에서 무턱대고 Getter를 사용하면 술집에서 신분증을 강탈해 신분을 확인한다'고 비유해주신 점이었다.
단순히 Getter/Setter를 사용하는 것이 아닌 꼭 필요한 데이터에 대헤 메서드를 생성해 객체에게 예의를 갖춰서 요청해야 한다는 점이었다. 이처럼 꼭 개발과 직접적인 부분이면서도 흥미롭게 들을 수 있는 강의였다.
퇴근하고 매일 강의를 듣는다는 점이 쉽지는 않았지만 그만큼 의미있었던 시간이었기에 2주차에도 시간을 쪼개 착실하게 공부하려 한다.
강의 Reference
댓글을 작성해보세요.