컴퓨터 과학/객체지향 & 디자인 패턴
💻 [객체지향 & 디자인 패턴] 총 정리 & 주간 회고
2025.05.13
🎯 개요이번 한 주 동안 객체지향 설계 원칙과 디자인 패턴에 대해 체계적으로 정리해보았습니다.프로젝트를 진행하며 자연스럽게 접했던 개념들이었지만, 이번 기회를 통해 왜 그렇게 설계하는지,그리고 더 나은 구조는 어떤 모습인지를 깊이 있게 되짚어볼 수 있었습니다.주제핵심 내용클래스, 객체, 캡슐화정보 은닉과 책임 분리를 통한 구조화상속, 다형성, 추상화유연한 설계의 핵심 세 가지 원칙SOLID 원칙유지보주성과 확장성을 위한 5가지 설계 원칙싱글턴, 팩토리 패턴객체 생성 제어 패턴전략, 템플릿, 옵저버 패턴실행 흐름과 알고리즘 유연성 확보OOP 실무 적용 예시실제 프로젝트에서 객체지향 설계 활용 방식📋 핵심 개념 다시 보기키워드요약캡슐화데이터와 기능을 하나로 묶고 외부로부터 숨김상속공통 기능 재사용, 코드..
컴퓨터 과학/객체지향 & 디자인 패턴
💻 [객체지향] OOP 실무 적용 예시
2025.05.13
🎯 개요지금까지 객체지향의 핵심 개념(상속, 추상화, 다형성)과 SOLID 원칙, 주요 디자인 패턴을 정리했습니다.이번에는 이러한 개념들이 실무 프로젝트에서 실제로 어떻게 녹아들어가는지 예시와 함께 정리해보았습니다.객체지향은 이론으로만 접하면 막연하게 느껴질 수 있지만,설계와 유지보수, 기능 확장 시 직접적인 효과를 체감하게 됩니다.📌 적용 예시 시나리오가상의 실무 예시: 알림 시스템요구사항:이메일, SMS, 푸시 알림 등 다양한 방식으로 사용자에게 알림 전송알림 수단은 확장 가능해야 하며, 클라이언트는 어떤 방식인지 몰라도 됨공통된 흐름(알림 생성 → 전송 → 로그 기록)은 재사용되어야 함🔧 클래스 구조 설계Notifier 인터페이스 정의 → 추상화EmailNotifier, SmsNotifier ..
컴퓨터 과학/객체지향 & 디자인 패턴
💻 [디자인 패턴] 전략 패턴, 템플릿 메서드 패턴, 옵저버 패턴
2025.05.12
🎯 개요이번에는 객체의 행위를 유연하게 변경하거나 실행 흐름을 분리하고, 상태 변화를 감지할 수 있도록 도와주는행위(Behavioral) 패턴 중 실무에서 자주 활용되는 3가지 디자인 패턴을 정리해보았습니다.전략(Strategy) 패턴: 알고리즘을 캡슐화하여 실행 시점에 교체 가능템플릿 메서드(Template Method) 패턴: 알고리즘 뼈대는 정의하고, 세부 로직은 서브 클래스에서 정의옵저버(Observer) 패턴: 한 객체의 상태 변화에 따라 다른 객체에 알림을 전달프로젝트를 진행하면서 이 패턴들이 실제로 어떻게 활용되는지를 되짚어보는 좋은 기회가 되었습니다.📌 핵심 개념 정리✅ 전략 패턴 (Strategy Pattern)정의: 알고리즘을 별도로 정의하고, 실행 시점에 선택할 수 있도록 하는 패..
컴퓨터 과학/객체지향 & 디자인 패턴
💻 [디자인 패턴] 싱글턴 패턴 & 팩토리 패턴
2025.05.12
🎯 개요디자인 패턴은 소프트웨어 설계에서 반복되는 문제를 해결하기 위한 검증된 설계 방법입니다.그중에서도 싱글턴(Singleton)과 팩토리(Factory) 패턴은 객체 생성에 관여하는 패턴으로,자바 스프링 기반 프로젝트에서 자주 마주하게 됩니다.실무에서 이 패턴들을 사용해오긴 했지만, 이번에 다시 정리하면서"왜 이 구조로 만들었을까?"를 되짚어보는 계기가 되었습니다.📌 핵심 개념 정리✅ 싱글턴 패턴 (Singleton Pattern)정의: 애플리케이션 내에서 하나의 인스턴스만 존재하도록 보장하는 패턴목적: 공유 자원을 통제하거나 상태를 일관되게 유지해야 할 때 사용특징: 생성자 private, static 인스턴스 보관, 정적 메서드로 접근public class SingletonExample { ..
컴퓨터 과학/객체지향 & 디자인 패턴
💻 [객체지향] SOLID 원칙
2025.05.12
🎯 개요SOLID 원칙은 객체지향 설계의 5가지 핵심 원칙을 뜻하며, 각각의 이니셜을 따서 만들어진 약어입니다.유지보수성과 확장성을 높이고, 의존성 분리를 통해 변화에 유연한 구조를 설계하는 데 초점이 맞춰져 있습니다.자바 스프링 기반의 실무 개발을 경험하면서 자연스럽게 체득하게 되는 개념이지만, 다시 한번 정리하면서 ‘왜 이렇게 설계해야 하는지’를 되짚어보았습니다.📌 핵심 개념 정리✅ S - 단일 책임 원칙 (Single Responsibility Principle)클래스는 단 하나의 책임만 가져야 한다하나의 클래스가 하나의 변경 이유만을 가져야 유지보수가 쉬워집니다.예: 사용자 정보를 조회하는 클래스가 사용자 인증까지 처리하면, 인증 로직 변경 시 정보 조회 코드도 영향을 받게 됩니다.// 잘못된..