일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 카카오 클라우드 스쿨
- kakaocloud
- 7568
- SpringTokenizer
- Java #코딩테스트
- 코딩테스트
- 9020
- 2447
- kakaocloudschool
- Spring #Java #Spring Boot #싱글톤
- boj
- 알고리즘
- 카카오클라우드스쿨
- Spring #Java #Spring Boot
- node
- Spring #Java #Spring Boot #@BeforeEach #@AfterEach
- Java #오븐시계 #백준
- 11053
- 1110
- 11054
- 파이썬
- Spring #Spring Boot #Java
- Spring
- 백준
- sequelize
- python
- Java #백준 #코딩테스트
- 24479
- java
- 15552
- Today
- Total
목록CS/Design Pattern (4)
YoungSoo
Spring Boot로 프로젝트를 진행하며 @Builder 어노테이션을 사용하는 것을 자주 봤습니다. @Builder에 대해 학습하며 빌더 패턴에 대한 내용을 학습해야겠다고 느껴 기록을 남깁니다. 빌더 패턴은 객체 생성 과정을 단순화하기 위한 디자인 패턴 중 하나입니다. 일반적으로 객체 생성에는 많은 인자를 전달하는 생성자 메서드를 사용합니다. 이러한 방식은 인자의 개수가 많아질수록 코드를 이해하기 어려워지고, 실수하기 쉬워집니다. 또한 생성자 메서드가 인자의 순서나 개수를 바꿔도 컴파일러에서는 이를 체크해주지 않아서 버그를 발생시키기도 합니다. 빌더 패턴은 이러한 문제를 해결하기 위해 인자가 많은 객체를 생성하는 클래스를 빌더 클래스로 분리하여, 객체를 생성하기 위해 필요한 여러 단계를 거치면서 객체를..
싱글톤 패턴(Singleton Pattern)은 객체 지향 프로그래밍에서 많이 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 어떤 클래스가 최대 하나의 인스턴스만 가지도록 보장하며, 이 인스턴스에 대한 전역적인 접근점을 제공합니다. 즉, 애플리케이션 내에서 전역적으로 접근 가능한 유일한 객체를 만드는 방법입니다. 아래와 같은 예제를 학습해볼 수 있습니다. public class Singleton { private static Singleton instance; private Singleton() { // 생성자를 private으로 선언하여 외부에서 생성자 호출을 막음 } public static synchronized Singleton getInstance() { if (instance == null)..
디자인 패턴은 반복적으로 발생하는 문제를 해결하기 위한 일종의 설계 템플릿입니다. 이러한 디자인 패턴은 이미 검증된 설계 원칙과 해결 방법을 제공하여 시간과 비용을 절약하고 개발 프로세스의 효율성을 높이는 데 도움이 됩니다. 디자인 패턴은 크게 생성 패턴, 구조 패턴, 행위 패턴으로 구분할 수 있습니다. 생성 패턴 (Creational Patterns): 객체 생성에 관련된 패턴으로, 객체 생성 과정을 추상화하고, 객체의 생성 방법 및 객체 생성 시 발생할 수 있는 문제들을 해결하는 데 중점을 둡니다. 대표적인 예로는 Singleton, Factory Method, Abstract Factory, Builder, Prototype 등이 있습니다. 구조 패턴 (Structural Patterns): 객체간..
디자인 패턴에 대해 공부하기 위해서는 먼저 SOLID 원칙을 알아야겠다는 생각이 들었습니다. SOLID는 객체 지향 프로그래밍(OOP)의 다섯 가지 설계 원칙의 약어입니다. 이 원칙들은 소프트웨어 개발에서 유지보수, 확장성, 유연성 등을 고려하여 설계를 하기 위한 지침으로 사용됩니다. SRP(Single Responsibility Principle) : 단일 책임 원칙 하나의 클래스는 하나의 책임만 가지고 있어야 하며, 클래스가 변경되어야 하는 이유는 단 하나의 이유뿐이어야 합니다. OCP(Open-Closed Principle) : 개방-폐쇄 원칙 소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해서는 열려 있어야 하고, 기존 코드의 수정에 대해는 닫혀 있어야 합니다. LSP(Liskov Subs..