일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- pyvenv.cfg
- 디자인 패턴
- 인공지능
- 파이토치
- Design Pattern
- 개발환경
- MySQL
- pytorch
- java
- 오류
- 데이터베이스
- AI
- vscode
- 리눅스
- html
- 백엔드
- csrf_token
- 프로그래밍
- 웹프로그래밍
- 프론트엔드
- javascript
- python
- Linux
- DB
- Django
- css
- django-debug-toolbar
- 웹서버
- 파이썬
- 디자인패턴
- Today
- Total
목록java (10)
Shong Studio의 정보 창고

Bridge Pattern 이란? 브릿지 패턴(Bridge Pattern)은 구조적 디자인 패턴의 일종으로, 추상화(abstraction)와 구현(implementation)을 분리하여 서로 독립적으로 변형할 수 있도록 해줍니다. 이 패턴의 목적은 구현 부분에 대한 변경이 추상화에 영향을 미치지 않도록 하여, 두 부분을 독립적으로 확장할 수 있게 하는 것입니다. 브릿지 패턴은 종종 인터페이스와 구현을 분리하여 각각을 독립적으로 개발하고 확장할 수 있도록 할 때 사용됩니다. Bridge Pattern을 사용해야하는 이유는? 플랫폼 독립적인 구조를 만들고 싶을 때: 여러 플랫폼에서 실행될 수 있는 소프트웨어를 개발할 때, 브릿지 패턴을 사용하여 플랫폼에 의존적인 코드를 분리할 수 있습니다. 구현을 변경하..

Adapter Pattern(어댑터 패턴)이란? 디자인 패턴 중 서로 다른 인터페이스를 가진 클래스들이 함께 작동할 수 있도록 해주는 구조적 디자인 패턴인 "어댑터 패턴"을 알아보도록 하겠습니다. Adapter 패턴을 콘센트와 플러그로 비유해 적용해보면 이해가 더 쉬울 것 같습니다. 콘센트와 220V 플러그, 110V 플러그를 생각해 볼 수 있습니다. 콘센트 = Client( 220V를 사용하는 대한민국 고객 ) 110v 플러그 = Adaptee 220v 플러그 = Target Interface 110v - 220v 어댑터 = Adapter Adapter Pattern을 사용해야하는 이유는? Adapter 패턴은 하나의 클래스의 인터페이스를 클라이언트에서 기대하는 다른 인터페이스로 변환합니다. 어댑터..

Iterator Pattern(반복자 패턴)이란? Iterator를 사용하여 컨테이너를 가로지르며 컨테이너의 요소들에 접근하는 디자인 패턴 이터레이터 패턴을 사용하면 집합체(list, hashtable, vector 등) 내에서 어떤 식으로 일이 처리되는지 몰라도 그 안에 들어있는 항목들에 대해서 반복작업을 수행 할 수 있다. Java에서는 Iterator기능을 라이브러리로 제공해주고 있다. 그래서 은연중 여러분은 Iterator를 사용하고 있었을 수 있습니다. Iterator Pattern을 사용해야하는 이유는? 집합체 내에 있는 Data들이 다른 방식으로 출력해야한다면 코드의 일관성을 떨어트리고 규모가 커지거나 복잡해지면 비용 증가로 이어질 수 있습니다. Iterator Pattern을 어떻게 사용하..

안녕하세요, Shong Studio입니다. 디자인 패턴 중에서 객체의 상태 변화에 따라 객체의 행동이 바뀌어야 할 때 유용하게 사용할 수 있는 "State Pattern"에 대해 살펴보겠습니다. State Pattern 이란? State Pattern은 객체의 내부 상태가 변경될 때마다 객체의 행동도 함께 변경되도록 하는 행위 디자인 패턴입니다. 즉, 객체의 상태를 나타내는 클래스 집합과 그 상태에 따른 행동을 캡슐화하는 방식으로, 객체의 상태 변화에 따라 동일한 작업을 다른 방식으로 처리할 수 있게 합니다. 이 패턴을 통해 복잡한 조건 분기 없이 상태에 따른 행동의 변화를 구현할 수 있습니다. State Pattern을 사용해야 하는 이유는? 코드의 유지보수성 향상: 상태에 따른 행동이 명확하게 분..
안녕하세요 Shong Studio입니다. 디자인 패턴 중 Behavior(행동) Interface를 만들어서 상속관계에 있는 클래스들의 복잡도를 전략적으로 줄여주는 "Strategy Pattern"에 대해서 알아보도록 하겠습니다. Strategy Pattern 이란? 전략 패턴를 직관적으로 정의하자면, 추상클래스 내에 정의된 Behavior(행동) function을 다양한 Behavior(행동) 을 케어해주기 위해서 Behavior(행동) Interface를 만들어서 확장성있는 구조를 만드는 디자인 패턴입니다. Strategy Pattern을 사용해야하는 이유는? 교체 가능한 행동: Strategy Pattern을 사용하면 구체적인 행동들을 클래스로 캡슐화하여, 이를 실행 시점에 교체할 수 있습니다...

안녕하세요 Shong Studio입니다. 디자인 패턴 중 "구독 & 알림" 개념의 느낌을 갖고있는 "Observer Pattern"에 대해서 알아보도록 하겠습니다. Observer Pattern 이란? 옵서버 패턴(observer pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버들의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메서드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다. 주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다. 발행/구독 모델로 알려져 있기도 하다. Observer Pattern을 사용해야하는 이유는? Publisher가 되는 특정 객체가 갖고 있는 값의 변화에 따라 다른 객체(Observer)를 호출해서 처리해야하는 상황..

1. 자바 JDK 설치하기 2. VSCode 설치하기 3. Extensions에서 검색을 통해 확장팩 뷰에서 "Extension Pack for Java" 설치하기 위의 자바 확장팩을 설치하면 아래의 확장팩이 자동으로 추가 설치됩니다. Red Hat의 Java™에 대한 언어 지원(Language Support for Java™ by Red Hat) 자바용 디버거(Debugger for Java) 자바용 테스트 러너(Test Runner for Java) 자바용 메이븐(Maven for Java) 자바용 프로젝트 관리자(Project manager for Java) 4. Ctrl + Shift + p 단축키를 통해 Command Plarette 열기 5. Java: Create Java Project 클릭..
Class에서 물음표(?)는 와일드카드(wildcard)를 나타냅니다. 자바 제네릭에서 와일드카드는 '알 수 없는 타입'을 의미합니다. Class는 '모르는 클래스 타입의 Class 객체'를 의미하며, 어떠한 클래스 타입도 될 수 있음을 나타냅니다. 이는 제네릭을 사용할 때 타입 안전성을 제공하면서도 유연성을 유지할 수 있게 해줍니다. 와일드카드는 크게 세 가지 방식으로 사용될 수 있습니다: Unbounded Wildcard (제한 없는 와일드카드): Class처럼 표현되며, '어떤 타입의 Class 객체도 될 수 있다'는 의미입니다. 이는 메소드 매개변수나 리턴 타입으로 사용될 때, 메소드가 다양한 타입의 객체들과 작업할 수 있음을 나타냅니다. Upper Bounded Wildcard (상한 제한 와일..
함수형 인터페이스(Functional Interface)는 Java 8에서 도입된 개념으로, 단 하나의 추상 메서드만을 가진 인터페이스를 말합니다. 이는 람다 표현식(lambda expression)을 통해 인스턴스화할 수 있으며, 함수형 프로그래밍의 개념을 객체 지향 프로그래밍 언어인 Java에 도입하기 위해 만들어졌습니다. 함수형 인터페이스의 의미 함수형 인터페이스는 그 자체로 인터페이스이지만, 특별히 단 하나의 추상 메서드를 통해 "함수적" 특성을 가지고 있습니다. 이로 인해 람다 표현식이나 메서드 참조를 이용하여 직꽑적, 간결하고 의미있는 코드를 작성할 수 있습니다. 자바는 이런 특성을 활용하여 함수형 프로그래밍 패러다임을 지원합니다. 람다 표현식과 함수형 인터페이스 람다 표현식은 기본적으로 함수..
Java에서의 Stream은 데이터 컬렉션 처리를 위한 추상화된 개념입니다. 이를 통해 데이터를 선언적으로 처리할 수 있으며, 멀티 스레딩에 대한 복잡성 없이 데이터를 병렬로 처리할 수 있는 기능을 제공합니다. Stream은 데이터의 흐름을 나타내며, 이를 통해 데이터 컬렉션을 마치 SQL문을 이용하여 데이터베이스를 쿼리하는 것처럼 다룰 수 있습니다. Stream의 주요 특징 비파괴적인 처리: Stream 연산은 원본 데이터를 변경하지 않습니다. 대신, 결과를 담은 새로운 Stream이 반환됩니다. 게으른 실행(Lazy Evaluation): Stream 연산은 실제로 값을 필요로 하는 최종 연산이 호출될 때까지 실행을 지연합니다. 내부 반복: Stream API는 반복을 추상화하므로, 사용자는 데이터를..