일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹개발
- I'm Sorry
- 데이터과학
- 소프트웨어공학
- 소프트웨어
- 보안
- 딥러닝
- 디자인패턴
- 네트워크보안
- 컴퓨터공학
- 파이썬
- Yes
- 컴퓨터과학
- springboot
- 버전관리
- 네트워크
- 자료구조
- 빅데이터
- 컴퓨터비전
- 자바스크립트
- 데이터분석
- 프로그래밍언어
- 프로그래밍
- 클라우드컴퓨팅
- 인공지능
- 사이버보안
- 알고리즘
- 데이터구조
- 머신러닝
- 데이터베이스
- Today
- Total
목록Solid (7)
스택큐힙리스트
“하위 타입은 언제든 상위 타입을 대체할 수 있어야 한다.”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재사용성 상승 → 생산성 향상“잘게 쪼갠 클래스가 오히려 읽기 쉽다”는 개발 블..