일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 알고리즘
- 데이터베이스
- 데이터과학
- 소프트웨어공학
- 보안
- 데이터분석
- 딥러닝
- 네트워크
- 컴퓨터과학
- 인공지능
- 컴퓨터공학
- 자바스크립트
- Yes
- 머신러닝
- 컴퓨터비전
- 네트워크보안
- 프로그래밍
- 자료구조
- 소프트웨어
- 사이버보안
- I'm Sorry
- 클라우드컴퓨팅
- 프로그래밍언어
- 버전관리
- 웹개발
- 디자인패턴
- 빅데이터
- springboot
- 데이터구조
- 파이썬
- Today
- Total
목록2025/07/13 (15)
스택큐힙리스트
“클라이언트는 자신이 사용하지 않는 메서드에 의존해선 안 된다.”― 로버트 C. 마틴SOLID 다섯 형제 중 네 번째, ISP(Interface Segregation Principle) 는 “세분화된 인터페이스”로 코드 의존도를 슬림하게 만드는 비법입니다.1. ISP가 왜 필요할까?쓸데없는 구현 강요 OUT거대한 인터페이스는 “안 쓰는 메서드”까지 구현하게 만들고, 결국 버그와 의존성 폭탄을 낳습니다. 변경 범위 최소화잘게 나뉜 인터페이스는 새로운 기능이 추가돼도 영향 범위가 좁아 회귀 위험이 적습니다.테스트·모킹이 쉬워진다필요한 기능만 담긴 인터페이스를 모킹하면 단위 테스트가 간단해집니다.2. ISP가 깨질 때 나타나는 신호‘God Interface’: 메서드 수십 개짜리 인터페이스를 구현하느라 빈 몸..
“하위 타입은 언제든 상위 타입을 대체할 수 있어야 한다.”1988년 바버라 리스코프가 제시한 이 정의가 바로 Liskov Substitution Principle(LSP)입니다. 상속·다형성이 진짜 힘을 발휘하려면 LSP가 지켜져야 하죠. 오늘은 현업 코틀린 예제와 국내 인기 블로그 사례를 묶어, “교체 가능한 설계”를 만드는 방법을 빠르게 살펴봅니다.1. LSP란 무엇인가?정의상위 타입을 기대하는 모든 곳에서 하위 타입을 넣어도 프로그램의 행위가 변하지 않아야 한다. 요컨대 “하위 타입이 상위 타입의 규약(계약)을 깨지 말라”는 약속입니다.왜 중요한가?예측 가능한 코드 ― 호출자가 “서프라이즈”를 안 당함리팩터링 자유도 ― 구현 교체해도 테스트가 그대로 통과재사용성 UP ― 라이브러리·플러그인 아키텍..
“코드를 뜯지 말고, 새로 얹어라.”― SOLID 두 번째 원칙, OCP (Open-Closed Principle)OCP는 “확장에는 열려 있고, 수정에는 닫혀 있어야 한다”는 단순한 선언이지만, 리팩터링 비용을 확 낮추는 강력한 안전장치입니다.1. OCP란 무엇인가?정의“소프트웨어 요소는 기능 확장에는 열려(Open) 있고, 소스 수정에는 닫혀(Closed) 있어야 한다.” 클래스가 아니라 추상화(인터페이스·추상 클래스)에 의존함으로써 새 기능을 ‘플러그인’처럼 꽂을 수 있게 설계한다는 뜻입니다.왜 중요한가?배포 리스크 감소 – 기존 코드 untouched → 회귀 버그 최소신규 기능 속도 – 확장 로직만 추가 → 개발·리뷰·테스트가 빨라짐플러그인 아키텍처 – 전략(Strategy)·데코레이터(Deco..
“클래스가 바뀌어야 할 이유는 단 하나뿐이어야 한다.”이 한 줄이 바로 단일 책임 원칙(SRP, Single Responsibility Principle)의 핵심입니다. SOLID 다섯 가지 중 첫 타자로 꼽히는 SRP는 ‘거대한 설계론’이 아니라 내일 당장 리팩터링 PR에서 팀원을 설득하기 위한 실전 기준이죠. 오늘은 SRP 개념부터 적용 팁까지 한눈에 정리해 봅니다.1. SRP란 무엇인가?정의: “모듈·클래스·함수는 하나의 책임만 가져야 한다.” 책임이란 변경 이유와 동치입니다. 코드가 수정되는 트리거가 하나만 존재해야 유지보수성이 폭발적으로 올라갑니다.왜 중요한가?변경 범위 최소화 → 버그 격리테스트 단순화 → 빠른 CI재사용성 상승 → 생산성 향상“잘게 쪼갠 클래스가 오히려 읽기 쉽다”는 개발 블..