Idea 4

SOLID, O:개방-폐쇄 원칙 (OCP)

O. 개방-폐쇄 원칙 (Open-Closed Principle) 소프트웨어 요소(클래스, 모듈, 함수 등)는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다! 문제 상황 1 (잘못된 개방)비교적 최근에 쇼핑몰 연동 개발을 진행한 적이 있어, 상품 조회하는 기능이 하나의 메서드에서 분기처리되어 있더라고public class ShopItemService { public ShopItemResponse search(ShopType type, ShopItemSearchRequest request) { if (ShopType.Amazon.equals(type)) { // 아마존 상품 조회 } else if (ShopType.Cafe24.equals(type)..

Idea 2025.05.21

SOLID, S:단일 책임 원칙 (SRP)

객체지향 설계 원칙(SOLID)은 앞서 작성한 객체지향 이해하기를 보고오는게 좋다왜냐하면 캡슐화, 상속, 다형성, 추상화를 어떻게 쓸것인가? 에 대한 고민으로 엉클 밥님이 만든걸 멋지게(?) 앞자리만 따서 만든게 SOLID기 때문이야핵심은 유지보수 할 때를 고려해서, 변경에 유연하고 가독성 좋게 짜는거야S. 단일 책임 원칙 (Single Responsibility Principle)클래스는 하나의 이유로만 변경돼야 한다! 문제 상황1~2년 차쯤 개발할 때, 하나의 클래스에 너무 많은 기능을 몰아넣었던 기억이 있어.예를 들어 MemberService 하나에 아래 기능들을 다 넣는다고 해보자.회원 가입로그인비밀번호 찾기이메일 인증알림 발신여기에 공통적으로 사용하는 사용자 조회 기능이 있다고 가정해보자.근데 ..

Idea 2025.05.21

객체지향 이해하기

(내가 나를 가르치는 글이라 반말입니다)자동차가 가진 속성이 뭘까? 색상, 브랜드, 제조일자, 몇인승, 튜닝여부, 현재 속도, 운전중/주차중, 키로 수, 연료량 등행위는? 가속하기, 정지하기, 멈추기, 주유하기, 세차하기, 수리하기 등이 있을것이다클래스로 만들어보자public class Car { private String name; private int speed; public Car(String name) { this.name = name; this.speed = 0; } public void accelerate() { speed += 10; System.out.println(name + " 차 가속! 속도: " + speed);..

Idea 2025.04.16

CS 따위는 업무 스킬을 넓혀주지 않았다

CS를 검색하면 이런 내용들이 나온다컴퓨터 관련 분야의 지식(Computer Science)이나 서비스업무를 위한 기술지원(Customer Satisfaction)CS (Computer Science)란, 컴퓨터 관련 분야에서 사용되는 용어, 개념, 알고리즘CS로 면접 준비하기보통 개발자 사이에서 말하는 CS는 컴퓨터 과학을 뜻하고,   자료구조, 알고리즘, 네트워크, 운영체제 같은 기초 이론들이 여기에 포함된다. 지금까지 자격증 시험, 면접, 코딩테스트를 준비할 때만 CS 개념을 공부해왔다.   설계 단계에서 일부 개념을 떠올린 적은 있지만...실제 개발 코드 안에서 CS 개념을 자연스럽게 활용한 경험은 거의 없었다.앞으로는 의식적으로라도 개발 중에 CS 개념을 떠올리고, 직접 활용해보는 습관을 훈련해..

Idea 2025.04.07