블로그
전체 4#카테고리
- 백엔드
#태그
- 백엔드
- 리팩토링
- SOLID
- SRP
- OCP
- LSP
- ISP
- DIP
- 워밍업
- 추상
- 구체
2025. 06. 08.
1
인프런 워밍업 백엔드 4기 - 2주차 발자국
2주차 미션 회고리팩토링을 실제로 진행해보면서, 생각하는 힘을 더 많이 길러야 겠다는 생각이 들었다. 2주차 강의 회고클린 코드 강의는 내용에 군더더기 없이, 필요한 내용만 있었습니다. 2주차 학습 내용1. Readable Code_읽기 좋은 코드를 작성하는 사고법1) 섹션 6. 코드 다듬기메서드 나열 순서 - 변수, 객체의 공개/비공개 메서드, 상태 변경 >> 판별 >= 조회2) 섹션 7. 리팩토링 연습- 매서드 추출로 추상화 레벨 맞추기- Optional- return null -> anti-pattern- Optional 자체를 parameter로 받는 것도 anti-pattern- 객체에 메시지 보내기- 객체의 책임과 응집도 - IO 통합, 일급컬렉션, display(), Order 추출- 추상화 관점의 차이 - FileHandler2. Practical Testing_실용적인 테스트 가이드1) Junit5, AssertJ2) 순수 함수3) TDD레드 - 그린 - 리팩토링4) BDDGiven / When / Then
백엔드
2025. 06. 01.
2
인프런 워밍업 백엔드 4기 - 1주차 발자국
섹션2. 추상5. 우리가 클린 코드를 추구하는 이유1. 클린 코드2. 이해가 잘 되는 코드3. 추구하는 이유1. 가독성2. 유지보수 용이6. 프로그램의 정의1. 프로그램 = 데이터 + 코드2. 데이터: 요리의 식재료1. 데이터를 추상3. 코드: 요리 방법1. 코드를 논리7. 추상과 구체1. 추상1. 주용한 정보는 가려내고, 덜 중요한 정보는 버린다2. 추상화 레벨2. 구체로부터 추상을 함8. 이름 짓기1. 고도의 추상화 행위9. 메서드의 추상화1. 메서드명은 메서드 구현에 대한 부분을 추상화해서 문단의 주제처럼 요약된 중요한 정보를 가져야 함2. 하나의 메서드 = 하나의 주제10. 메서드 선언부1. 메서드 선언부 = 메서드명 + 파라미터 + 반환타입2. 메서드 시그니처 = 메서드명 + 파라미터1. 오버로딩 가능
백엔드
・
백엔드
2025. 05. 30.
0
워밍업 클럽 4기 - 백엔드 Day 4
1. 코드 리팩토링As-Ispublic boolean validateOrder(Order order) { if (order.getItems().size() == 0) { log.info("주문 항목이 없습니다."); return false; } else { if (order.getTotalPrice() > 0) { if (!order.hasCustomerInfo()) { log.info("사용자 정보가 없습니다."); return false; } else { return true; } } else if (!(order.getTotalPrice() > 0)) { log.info("올바르지 않은 총 가격입니다."); return false; } } return true; } To-Bepublic boolean validateOrder(Order order) { if (doesNotHaveItems(order)) { log.info("주문 항목이 없습니다."); return false; } if (doesNotHaveTotalPrice(order)) { log.info("올바르지 않은 총 가격입니다."); return false; } if (doesNotHaveCustomerInfo(order)) { log.info("사용자 정보가 없습니다."); return false; } return true; } boolean doesNotHaveItems(Order order) { return (order.getItems().size() == 0)? true : false; } boolean doesNotHaveTotalPrice(Order order) { return !(order.getTotalPrice() > 0)? true : false; } boolean doesNotHaveCustomerInfo(Order order) { return !order.hasCustomerInfo()? true : false; } 2. SOLID에 대하여 자기만의 언어로 정리SRP : 클래스는 단일 책임을 가져야 한다 OCP : 새로운 기능 추가는 확장으로 처리한다 LSP : 자식 클래스로 부모 클래스를 대체 가능하다 ISP : 인터페이스도 가능한 작은 단위로 분리한다 DIP : 구체보다 추상에 의존하자 SOLID는 읽기 쉽고, 유지 보수가 쉽고, 기능 추가/변경을 쉽게 한다
백엔드
・
리팩토링
・
SOLID
・
SRP
・
OCP
・
LSP
・
ISP
・
DIP
2025. 05. 28.
0
워밍업 클럽 4기 - 백엔드 Day 2 추상과 구체
추상친구와 저녁 식사 구체친구와 약속 시간을 잡는다 맛집을 찾는다약속 장소로 이동한다함께 저녁을 먹는다 https://inf.run/LtVC1
백엔드
・
워밍업
・
백엔드
・
추상
・
구체