![[워밍업 클럽 4기 - 백엔드] 1주차 발자국](https://cdn.inflearn.com/public/files/blogs/9ffaa3be-0f47-4d7f-89c2-39a818e91e01/KakaoTalk_20250527_195638166.png)
[워밍업 클럽 4기 - 백엔드] 1주차 발자국
[인프런 워밍업 클럽 스터디 4기 - 백엔드]
강의 출처 : Readable Code: 읽기 좋은 코드를 작성하는 사고법
1주차 발자국
강의 수강
학습 내용 요약
추상 : 추상과 구체, 적절한 추상화를 통해 복잡한 데이터와 로직을 단순화, 이름 짓기, 메서드 설계, 추상화 레벨
논리, 사고의 흐름 : Early Return, 사고의 Depth 줄이기, 부정 연산 최소화, 예외 처리, Optional 타입
객체 지향 패러다임 : 객체 지향, 관심사의 분리, 객체 설계하기(관심사, 유효성 검증, getter/setter, 필드), SOLID, DIP/DI/IoC
객체 지향 적용하기 : 상속보다는 조합을 사용하기, VO와 Entity, 일급 컬렉션, Enum, 다형성, 변하는 것과 변하지 않는 것을 분리하여 추상화(OCP 충족), 도메인 개념 도출
1주차 회고
이번 주는 강의 수강을 시작함과 동시에 클린 코드와 객체지향이란 무엇인가에 대해 열심히 고민한 한 주였습니다.
객체 지향의 개념은 알고 있었지만, 막상 코드에 적용하면 이게 객체 지향인건지 SOLID를 지키는건지 의문이 들었는데 이렇게 직접 뜯어 고쳐가면서 적용해보니 확 와닿는 기분이었습니다. 또한 클린 코드에 대한 내용은 처음 알게 되었는데, 강의를 들으면서 '변수명이 너무 긴데 해석하기 힘든거 아닐까?', '이렇게 작은 것도 메서드로 분리하면 더 복잡해지는 것이 아닌가?' 같은 의문이 들기도 했지만, 실제로 읽기 쉬운 코드로 바뀌는 걸 보며 리팩토링의 중요성을 깊게 깨달을 수 있었습니다.
스스로 칭찬할 점은 수업을 들으면서 계속 질문하고 고민하며 강의를 이해하고 찾아보며 내 것으로 만드는 경험을 할 수 있었다는 것이며, 아쉬운 점은 코드를 따라치며 강의를 진행하다보니 생각보다 시간이 꽤 소요되어 뒤로 갈수록 쫓기며 수강했던 점 입니다. 다음 주 목표로는 좀 더 넉넉히 수강 계획을 세워서 충분히 고민하고 생각하며 수강하고 싶습니다!
미션
미션 해결 과정
미션 1 (Day2) : 자연 환경과 관련된 예시를 찾던 중, '비가 온다'라는 추상적인 표현이 떠올랐고, 이를 구체적으로 표현해보고자 비가 오는 과정을 조사하며 작성하게 되었습니다. 강사님께서 보여주신 예시와 유사한 형식으로 구성하고 싶어서, 일상에서 자주 사용되는 추상적인 문장을 구체적인 레벨로 세분화할 수 있는 주제를 중심으로 선택하였습니다.
미션 2 (Day4) : 수업 중에 배운 내용으로 리팩토링을 진행하였습니다. 우선적으로 Early Return을 사용하여 흐름을 간결하게 하고, 중첩 조건문을 제거하여 사고의 Depth를 줄였습니다. getter 사용을 자제하기 위해 Order 내부에 메서드를 정의하여 캡슐화했고, 메서드의 이름은 의미가 잘 드러나고 명확하게 지어 코드의 직관성을 높였습니다. 또한 부정 연산자 대신 긍정적인 의미를 메서드 이름에 담아 이해하기 쉽게 개선했습니다.
회고
각 미션들을 통해 수업 때 배운 내용을 되돌아 볼 수 있는 주제라서 좋았습니다. 특히 미션을 하며 처음으로 리팩토링을 직접 해봤는데, 어떤 방법이 더 나을지 고민하는 과정이 이해에 도움이 된 것 같습니다. 또한
제가 다른 분들의 답변을 보고 비교해가며 더 배워가고 생각해볼 수 있어서 좋았습니다!
댓글을 작성해보세요.