일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 (233)
스택큐힙리스트
“코드를 뜯지 말고, 새로 얹어라.”― SOLID 두 번째 원칙, OCP (Open-Closed Principle)OCP는 “확장에는 열려 있고, 수정에는 닫혀 있어야 한다”는 단순한 선언이지만, 리팩터링 비용을 확 낮추는 강력한 안전장치입니다.1. OCP란 무엇인가?정의“소프트웨어 요소는 기능 확장에는 열려(Open) 있고, 소스 수정에는 닫혀(Closed) 있어야 한다.” 클래스가 아니라 추상화(인터페이스·추상 클래스)에 의존함으로써 새 기능을 ‘플러그인’처럼 꽂을 수 있게 설계한다는 뜻입니다.왜 중요한가?배포 리스크 감소 – 기존 코드 untouched → 회귀 버그 최소신규 기능 속도 – 확장 로직만 추가 → 개발·리뷰·테스트가 빨라짐플러그인 아키텍처 – 전략(Strategy)·데코레이터(Deco..
“클래스가 바뀌어야 할 이유는 단 하나뿐이어야 한다.”이 한 줄이 바로 단일 책임 원칙(SRP, Single Responsibility Principle)의 핵심입니다. SOLID 다섯 가지 중 첫 타자로 꼽히는 SRP는 ‘거대한 설계론’이 아니라 내일 당장 리팩터링 PR에서 팀원을 설득하기 위한 실전 기준이죠. 오늘은 SRP 개념부터 적용 팁까지 한눈에 정리해 봅니다.1. SRP란 무엇인가?정의: “모듈·클래스·함수는 하나의 책임만 가져야 한다.” 책임이란 변경 이유와 동치입니다. 코드가 수정되는 트리거가 하나만 존재해야 유지보수성이 폭발적으로 올라갑니다.왜 중요한가?변경 범위 최소화 → 버그 격리테스트 단순화 → 빠른 CI재사용성 상승 → 생산성 향상“잘게 쪼갠 클래스가 오히려 읽기 쉽다”는 개발 블..
“패턴은 결국 객체지향(OOP) 원칙이라는 튼튼한 그릇 위에 담긴다.”클린 코드·디자인 패턴 공부를 시작할 때 가장 먼저 부딪히는 질문이 “왜 OOP가 그렇게 중요할까?”입니다. 답은 간단합니다. 캡슐화·상속·다형성이라는 세 축이 변화를 흡수하고, 그 위에 SOLID 5대 원칙이 “유지보수성”을 보증하기 때문이죠. 이번 글에서는 UML 다이어그램으로 관계를 시각화하고, 간단한 예제로 SOLID 원칙을 재구현하면서 개념-실천-코드의 세 박자를 맞춰보겠습니다.1. UML로 보는 관계 표현 연습1-1. 클래스 다이어그램 빠르게 그리기식별할 객체: Order, Payment, Shipping관계Order aggregates PaymentOrder associates ShippingPlantUML 예시@start..
1. GIL이란 무엇인가파이썬(정확히는 CPython)은 객체 참조 횟수를 기반으로 메모리를 관리합니다. 이 레퍼런스 카운팅을 스레드 안전하게 유지하려다 보니, 하나의 프로세스 안에서 오직 한 스레드만 바이트코드를 실행하도록 막는 전역 인터프리터 락(Global Interpreter Lock, GIL)이 생겼습니다. 결과적으로 멀티코어 CPU를 제대로 활용하지 못해 CPU-바운드 작업에서 병목이 발생합니다.2. 문제가 되는 상황 vs. 괜찮은 상황CPU-바운드 연산: 대량 수치 계산·이미지 처리·머신러닝 전처리 등에서 스레딩 성능이 기대 이하로 떨어집니다.I/O-바운드 작업: 파일·네트워크 I/O처럼 대기 시간이 많은 경우엔 GIL 경쟁이 크지 않아 threading으로도 이득을 볼 수 있습니다. 이 때..