본문 바로가기

Programming138

🏛️ 객체지향 설계의 5대 원칙, SOLID 완벽 이해 1. SOLID란?SOLID는 객체지향 프로그래밍(OOP) 설계에서 유지보수성과 확장성을 높이기 위한 5가지 원칙의 앞글자를 딴 것입니다.이 원칙들은 클린 코드와 유연한 아키텍처를 만들 때 핵심 가이드라인이 됩니다.2. SOLID의 5가지 원칙S — 단일 책임 원칙 (Single Responsibility Principle)클래스는 하나의 책임만 가져야 한다.변경 사유가 하나여야 한다.📌 예시# 잘못된 예시: UserManager가 여러 책임을 가짐class UserManager: def create_user(self, name): pass def send_email(self, user): pass # 이메일 전송도 담당# 개선된 예시: 책임 분리class User.. 2025. 8. 5.
🌐 RESTful API 완벽 가이드 — 개념, 예시, 면접 대비까지 1. RESTful이란?RESTful은 REST(Representational State Transfer) 아키텍처 원칙을 잘 지킨 API 스타일을 의미합니다.REST는 2000년 Roy Fielding의 논문에서 처음 제안된 웹 아키텍처 설계 제약 조건이며,이를 충실히 반영한 API를 RESTful API라고 부릅니다.2. REST의 핵심 원칙RESTful하게 설계하려면 다음 제약 조건을 지켜야 합니다.클라이언트-서버 구조클라이언트와 서버는 역할을 분리클라이언트: UI/UX 처리서버: 데이터 및 비즈니스 로직 처리무상태성(Stateless)서버는 요청 간 클라이언트 상태를 저장하지 않음모든 요청은 필요한 정보를 자체적으로 포함캐시 가능(Cacheable)응답 데이터는 캐싱 가능해야 하며, 이를 명시해야.. 2025. 8. 5.
🗄️ Django & SQL에서의 CASCADE와 NOT NULL 이해하기 1. CASCADE란?CASCADE는 외래 키(Foreign Key) 제약 조건에서 부모 객체가 삭제될 때, 자식 객체를 어떻게 처리할지를 결정하는 옵션 중 하나입니다.특히 on_delete=models.CASCADE는 부모가 삭제되면 해당 부모를 참조하는 모든 자식도 함께 삭제하라는 의미입니다.📌 Django 예시from django.db import modelsclass Author(models.Model): name = models.CharField(max_length=100)class Book(models.Model): author = models.ForeignKey( Author, on_delete=models.CASCADE # 부모 Author 삭제 시 .. 2025. 8. 5.
🧪 Python Mock 완벽 가이드 — 테스트에서 가짜 객체를 쓰는 이유 1. Mock이란?Mock은 테스트에서 진짜 객체 대신 쓰는 가짜 객체입니다.주로 외부 의존성이 큰 코드(DB, 네트워크, 파일, 시간 지연 등)를 대체하여,테스트를 빠르고, 안정적으로, 상황에 맞게 실행할 수 있게 해줍니다.“Mock은 테스트의 세계에서 배우로 등장하는 대역 배우입니다.”2. 왜 Mock을 쓰나?빠른 테스트: DB 연결, API 호출, 대기 시간 없이 실행상황 통제: 예외 발생, 특정 응답 값 등 원하는 상황 재현 가능행동 검증: 어떤 함수가 몇 번, 어떤 인자로 호출됐는지 확인 가능3. Python에서 Mock 도구Python 표준 라이브러리 unittest.mock이 제공하는 주요 기능:Mock / MagicMock → 자유롭게 속성과 메서드를 정의할 수 있는 기본 가짜 객체patc.. 2025. 8. 5.
🧪 테스트 주도 개발(TDD) 완벽 가이드 📌 1. TDD란 무엇인가?TDD(Test-Driven Development, 테스트 주도 개발)는기능을 구현하기 전에 테스트를 먼저 작성하고,그 테스트를 통과하는 코드를 만든 뒤 리팩터링하는 개발 방식입니다.한마디로, 테스트가 개발을 이끄는 방식이라고 볼 수 있습니다. 🚀🔄 2. TDD 핵심 사이클 (Red → Green → Refactor)🔴 Red – 실패하는 테스트 작성기능을 구현하기 전에 실패할 수밖에 없는 테스트 작성→ 실행하여 테스트가 실패하는지 확인🟢 Green – 테스트를 통과하는 최소한의 코드 작성가장 단순하게 테스트를 통과시키는 코드 구현→ 우선은 “통과”가 목표♻ Refactor – 코드 개선중복 제거, 가독성 향상, 구조 개선→ 리팩터링 후에도 테스트는 모두 통과해야 함?.. 2025. 8. 4.
[개발자 기술 면접 대비] 네트워크 관련 기출 지난 번 복습OOP 4가지 핵심추상화(Abstraction): 핵심만 드러내고 구현 세부는 감춘다. 공통 인터페이스로 복잡도를 줄이고, 변경 영향을 최소화한다.다형성(Polymorphism): 같은 메시지(메서드 호출)에 대해 객체 타입에 따라 다른 동작이 실행된다. 대표적으로 서브타입 다형성(오버라이딩), 제네릭(파라메트릭 다형성), 오버로딩(애드혹 다형성).캡슐화(Encapsulation): 데이터와 그 데이터를 다루는 메서드를 한 덩어리로 묶고, 외부에는 필요한 인터페이스만 공개한다(정보 은닉).상속(Inheritance): 기존 타입을 확장해 속성과 행동을 재사용한다. is-a 관계일 때 적합.SOLID 원칙SRP(Single Responsibility Principle, 단일 책임): 클래스는 .. 2025. 8. 4.