본문 바로가기

분류 전체보기131

서블릿의 메소드와 핸들러,JUnit 개념 정리 setAttribute역할 : 요청(request)객체에 데이터를 저장함사용이유 : 서블릿에서 처리된 데이터를 Jsp와 같은 view로 전달할 때 사용함getRequestDispatcher역할 : 지정된 경로의 리소스(Jsp파일 등)에 대한 Request Dispatcher 객체를 반환함사용이유 : 서블릿이 요청을 다른 리소스로 전달하거나, 다른 리소스로부터 포워딩을 받기 위해 사용함forward역할 : 클라이언트의 요청을 다른 리소스(Jsp, 서블릿 등)로 전달한다.사용이유 : 클라이언트로부터 받은 요청을 다른 리소스로 전다랗고, 그 리소스에서 응답을 생성하도록 한다.getParameter역할 : 클라이언트가 요청한 Http요청의 파라미터값을 가져오는 메소드사용이유 : HTML 폼이나 쿼리 스트링을 통.. 2024. 7. 26.
디자인패턴 사용처 컨닝페이퍼 1. 전략 패턴 (Strategy Pattern)주된 상황:여러 알고리즘(또는 전략)이 있고, 이들을 런타임에 선택해야 하는 경우알고리즘을 캡슐화하여 클라이언트 코드와 독립적으로 변경하고자 하는 경우예: 결제 방법(신용카드, 페이팔 등), 정렬 알고리즘, 데이터 압축 방식2. 팩토리 메소드 패턴 (Factory Method Pattern)주된 상황:객체 생성의 책임을 서브클래스로 넘기고, 클라이언트 코드와 객체 생성 로직을 분리하고자 하는 경우구체적인 클래스의 인스턴스를 생성할 때 직접적인 의존성을 피하고자 하는 경우예: 다양한 데이터베이스 연결 객체 생성, 여러 종류의 문서 객체 생성3. 옵저버 패턴 (Observer Pattern)주된 상황:한 객체의 상태 변화가 다른 객체들에게 자동으로 알림을 보내.. 2024. 7. 24.
전략, 옵저버, 팩토리메소드, 데코레이터, 템플릿, 데코레이터 패턴 1. 전략 패턴 (Strategy Pattern)정의 전략 패턴은특정 작업을 수행하는 알고리즘들을 정의하고, 해당 알고리즘들을 독립적으로 변경하게 해준다.즉 런타임 시에 알고리즘(내부 로직)을 선택할 수 있게 해준다. 설명 인터페이스를 통해 다양한 알고리즘을 캡슐화하고, 이 인터페이스를 구현하는 여러 클래스들을 만들어 각각의 알고리즘을 구현함클라이언트 코드에서는 인터페이스를 통해 알고리즘을 사용하므로, 알고리즘을 쉽게 변경할 수 있음사용하는 상황 여러 알고리즘(또는 전략)이 있고, 이들을 런타임에 선택해야 하는 경우알고리즘을 캡슐화하여 클라이언트 코드와 독립적으로 변경하고자 하는 경우 2. 옵저버 패턴 (Observer Pattern)정의 옵저버 패턴은 객체의 상태 변화를 관찰하고, 상태 변화가 있을 때.. 2024. 7. 24.
자바 백엔드에서 자주 사용되는 디자인 패턴 조합 1. 팩토리 + 싱글턴팩토리 패턴과 싱글턴 패턴의 조합은 특히 객체 생성 로직이 복잡하거나, 인스턴스(객체)를 전역적으로 한 번만 생성하고 관리해야 할 떄 유용함.팩토리 패턴을 사용해 객체 생성을 캡슐화하고, 이 팩토리 자체를 싱글턴으로 관리하여 애플리케이션 전역에서 하나의 팩토리 인스턴스(객체)만을 사용하게 할 수 있음. 팩토리를 싱글턴으로 관리함으로서 얻는 장점일관된 객체 접근모든 컴포넌트가 동일한 설정, 동일한 상태의 객체를 공유하게 하여 일관성을 유지할 수 있게 해줌자원의 효율적 사용객체 생성에 필요한 자원을 중복해서 사용하지 않아도 됨.설정과 구성의 중앙 관리 구성 변경이 필요할 때 단일 위치에서 수정을 하면 그 영향이 애플리케이션 전체에 적용되기 때문에 관리가 용이함 객체 생성 로직의 캡슐화... 2024. 7. 23.
컴포넌트, 컴포지트, 컨텍스트, 컨테이너 이런 왜이렇게 이름이 비슷한가요!!!!!!!!!!!!!!!!!!!!!!!!! 기록용 + 컨닝페이퍼용으로 저장해두기로 했다.GPT햄에게 요약을 맡겼다.컨테이너 (Container)정의: 객체의 생명주기와 의존성을 관리하는 시스템입니다.예시:Spring IoC 컨테이너: 애플리케이션의 빈(bean)을 생성하고, 그 빈들의 의존성을 주입하며, 빈의 생명주기를 관리합니다.Servlet 컨테이너: 서블릿의 생명주기와 요청/응답을 관리합니다.역할:객체를 생성하고 관리합니다.의존성을 주입합니다.객체의 생명주기를 관리합니다.컴포넌트 (Component)정의: 독립적으로 실행 가능한 모듈로, 시스템의 특정 기능을 담당합니다.예시:Spring 컴포넌트: @Component 어노테이션을 사용하여 Spring 컨테이너에 의해.. 2024. 7. 23.
디자인패턴이 주로 사용되는 섹터 정리(GPT)(기록용) 1. 싱글톤 패턴 (Singleton Pattern)주로 사용되는 섹터:로깅 시스템: 애플리케이션에서 로그를 기록할 때, 싱글톤을 사용하여 단일 인스턴스를 유지합니다.설정 클래스: 애플리케이션 설정 정보를 저장하고 접근할 때 사용합니다.데이터베이스 연결: 데이터베이스 연결을 단일 인스턴스로 유지하여 효율성을 높입니다.2. 팩토리 패턴 (Factory Pattern)주로 사용되는 섹터:UI 프레임워크: 다양한 UI 컴포넌트를 생성할 때 사용됩니다.게임 개발: 다양한 종류의 게임 객체(예: 캐릭터, 무기 등)를 생성할 때 사용됩니다.데이터 처리 시스템: 다양한 형식의 데이터를 처리할 때 적절한 객체를 생성합니다.3. 추상 팩토리 패턴 (Abstract Factory Pattern)주로 사용되는 섹터:크로스 .. 2024. 7. 19.
추상 팩토리 패턴과 의존성 뒤집기 추상 팩토리 패턴(Abstract Factory Pattern)정의 : 추상 팩토리 패턴은 관련된 객체들의 군을 생성하기 위한 인터페이스를 제공하며, 구체적인 클래스들이 이 인터페이스를 구현하여 실제 객체를 생성함 주요 특징 목적 : 관련된 객체들의 군을 일관된 방식으로 생성하며 클라이언트 코드와 생성로직을 분리함구성 요소 Abstract Factory(추상 팩토리) : 관련된 제품 객체들을 생성하는 인터페이스Concrete Factory(구체 팩토리) : Abstract Factory 인터페이스를 구현하며 실제 제품 객체를 생성하는 클래스Abstract Product(추상 제품) : 생성될 객체의 타입을 정의하는 인터페이스의 추상 클래스Concrete Product(구체 제품) : Abstract Pr.. 2024. 7. 17.
추상 팩토리 패턴 팩토리 패턴은 새삼 대단하다.팩토리 메소드 패턴을 이해한것같아서 책을 넘겼더니 추상 팩토리 패턴이 나왔다.추상 팩토리 패턴을 이해하기 쉽지 않아 머리를 싸매고 여러가지 시도해보다 어느정도 가닥을 잡았다. 요약과 가벼운 예시를 들면1. 최상위 인터페이스를 만든다 ( 저수준 모듈 : 실제 내부적으로 돌아가는 로직)2. 인터페이스의 메소드를 구현할 클래스를 만들고 구현한다. 3. UI 같은, MVC패턴의 view 에 해당되는 부분에서 2번에서 구현한 메소드를 호출하는 것이 아닌 1번 인터페이스의 메소드를 호출한다. 일단 저수준과 고수준의 차이도 이해가 되지 않았다.주로 GPT형님과 대화를 많이 나누기에 GPT를 예시로 들었더니 GPT 반응이 괜찮았다.고수준 : GPT의 웹 UI저수준 : GPT4o, 4, 3... 2024. 7. 17.
데코레이터 패턴과 팩토리 패턴 데코레이터 - 새로운 기능을 기존에 존재하는 클래스의 코드를 수정하지 않고 새로운 기능을 가진 클래스를 만들기 위해서 사용팩토리 패턴 - 새로운 객체 타입을 기존에 존재하는 클래스의 코드를 수정하지 않고 새로운 객체 타입을 가진 클래스를 만들기 위해서 사용. 팩토리 패턴만 사용하면 메소드 구현에 있어 꽤 불편.데코레이터만 사용하면 객체마다 무수한 클래스가 만들어질 가능성. 메소드에 강한 데코레이터와 객체 생성에 강한 팩토리를 함께 사용하여 단점 상호보완 가능 2024. 7. 16.