일급 컬렉션이란?
Computer Science/프로그래밍 이론 💬2024. 2. 7. 22:43일급 컬렉션이란?

일급 컬렉션(First-Class Collection)은 단순한 데이터 컬렉션을 하나의 객체로 묶어,해당 컬렉션과 관련된 모든 로직·검증·행위를 한 클래스에서 관리하도록 돕는 설계 방식입니다. 이 글을 통해 여러분들은 다음 내용을 명확하게 이해할 수 있을거에요일급 컬렉션의 개념일급 컬렉션을 사용하는 이유적용하기 좋은 상황실제 코드 구현 방법오버엔지니어링을 피하기 위한 기준 일급 컬렉션(first-class-collection)이란? 일급 컬렉션(First-Class Collection)은 마틴 파울러(Martin Fowler)가 발매한 책 소트웍스 앤솔러지(SortWorks Anthology)에서 소개한 규칙 중 하나입니다. 규칙8: 일급 콜렉션 사용이 규칙의 적용은 간단하다. 콜렉션을 포함한 클래스는..

Docker 환경에서 PostgreSQL Master–Slave Replication 구축하기
Computer Science/Data 📊2024. 2. 7. 21:52Docker 환경에서 PostgreSQL Master–Slave Replication 구축하기

오늘은 Docker 환경에서 PostgreSQL 물리적 복제(Physical Replication)를 구성하는 방법을 단계별로 작성해볼게요.이 글을 보고 레플리케이션을 적용하면 다음과 같은 효과를 기대할 수 있어요.Master 장애 발생 시 서비스 중단 위험 감소Read/Write 분리를 통한 데이터베이스 부하 분산PostgreSQL 물리적 복제 방식에 대한 이해 향상본 가이드는 Docker + PostgreSQL 16을 기준으로 작성되었습니다.AWS RDS 기반 복제 구성은 별도 문서에서 다룰 예정이니, 기대해주세요! 준비 사항환경Docker Desktop 또는 Docker CLI 사용 가능 환경5432 포트를 바인딩하여 실행 중인 PostgreSQL Master 컨테이너PostgreSQL 16 버전 ..

전략 패턴으로 확장성 있게 소셜 로그인 설계하기
Backend/Spring 🌱2024. 2. 7. 18:51전략 패턴으로 확장성 있게 소셜 로그인 설계하기

여러 소셜 로그인(카카오, 네이버, 구글, 페이스북 등)을 지원하다 보면 컨트롤러에 유사한 로그인 코드가 반복되거나, if-else·switch 문이 길어져 유지보수가 어려워지기 쉽습니다. 이 글에서는 다음 내용을 다룹니다.여러 소셜 로그인을 하나의 엔드포인트로 통합하는 방법로그인 방식별로 전략 패턴(Strategy Pattern)을 적용해 확장 가능한 구조를 만드는 방법새로운 소셜 로그인이 추가되더라도 컨트롤러를 수정하지 않고 확장하는 설계 방식예제 코드는 Spring 기반의 REST API를 기준으로 작성했습니다. 요구사항 및 초기 상황프로젝트에서 로그인 기능을 맡았고, 사용자 경험을 높이기 위해 다양한 소셜 로그인을 제공하기로 했다고 가정해 보겠습니다. 지원 대상: 카카오, 네이버, 페이스북, 구글..

비동기 프로그래밍 이해하기 - 동기 방식과 뭐가 다를까?
Computer Science/프로그래밍 이론 💬2024. 2. 6. 20:53비동기 프로그래밍 이해하기 - 동기 방식과 뭐가 다를까?

이 글에서는 동기(Synchronous)와 비동기(Asynchronous) 프로그래밍이 어떤 개념인지, 그리고 두 방식이 코드 실행 흐름을 어떻게 달리 만드는지 자바 예제를 통해 설명합니다. 이 글을 읽고 나면 다음 내용을 자연스럽게 이해할 수 있어요.동기와 비동기의 핵심 차이두 방식이 실행 시간과 흐름에 어떤 영향을 주는지함수 관점에서 동기·비동기 모델이 어떻게 적용되는지콜백 구조가 왜 비동기 패턴으로 불리는지 동기와 비동기의 개념 비교동기(Synchronous)동기 방식은 작업이 순서대로 차례차례 실행되는 구조입니다. 앞선 작업이 끝나야 다음 작업을 시작할 수 있기 때문에, 실행 흐름을 예측하기는 쉽지만 느린 작업 하나가 전체 속도를 끌어내릴 수 있습니다.public class SynchronousE..

Dependency Injection이란?
Computer Science/프로그래밍 이론 💬2024. 2. 6. 20:31Dependency Injection이란?

의존성 주입(Dependency Injection, DI)은 객체 지향 프로그래밍에서 널리 사용되는 설계 기법입니다.처음 보면 이해하기 어렵게 느껴지지만, 핵심은 객체가 필요한 의존성을 직접 생성하지 않고 외부에서 전달받도록 만드는 것입니다. 이 글에서는 DI의 개념, 필요성, 그리고 실제 코드 적용 방법을 예제를 통해 차례로 설명합니다.이를 통해 DI가 제공하는 유연성, 확장성, 테스트 용이성을 자연스럽게 이해할 수 있습니다. Dependency Injection이란?Dependency Injection(DI)은 객체가 필요한 의존성을 직접 생성하지 않고외부에서 주입받는 설계 방식입니다. 이 방식에서 객체는 무엇이 필요한지만 정의하고,어떻게 생성되는지는 외부에 맡깁니다. DI를 적용하면 다음과 같은 효..

제어의 역전(IOC) 톺아 보기
Computer Science/프로그래밍 이론 💬2024. 2. 6. 19:33제어의 역전(IOC) 톺아 보기

오늘은 제어의 역전(Inversion of Control, IoC)의 개념과 현대 소프트웨어 개발에서 이 개념이 중요한 이유를 알아보겠습니다.또한 전통적인 방식과 IoC 방식의 코드를 비교하여 두 접근 방식의 차이를 살펴보고, 마지막으로 IoC가 제공하는 장단점을 정리해볼게요. IoC란 무엇인가?제어의 역전(Inversion of Control, IoC)은 객체 생성과 의존성 연결 같은 제어 권한을 애플리케이션 코드가 아니라 외부(컨테이너나 프레임워크)가 담당하도록 하는 설계 원칙입니다. 기존에는 개발자가 직접 흐름을 제어했지만, IoC에서는 외부가 이 역할을 대신합니다. 즉, 제어의 주도권이 코드 내부에서 외부로 이동하는 구조가 IoC의 핵심입니다. 전통적인 방식class TraditionalServi..

image