- 포워딩 (Forwarding):
- 한 객체의 메소드를 호출할 때 다른 객체의 메소드를 호출하여 작업을 위임하는 것.
- 예: 프록시 패턴에서 프록시 객체가 실제 객체의 메소드를 호출하는 경우.
- 데모테이션 (Demotion):
- 객체의 책임이나 역할을 더 낮은 수준의 객체로 이동시키는 것.
- 예: 복잡한 로직을 더 단순한 객체로 분리하여 책임을 줄이는 것.
- 콜레이터 (Cooperator):
- 특정 작업을 수행하기 위해 협력하는 여러 객체들.
- 예: 콜레이터 패턴에서 여러 객체가 협력하여 작업을 수행하는 경우.
- 컨슈머 (Consumer):
- 데이터를 소비하는 객체.
- 예: 생산자-소비자 패턴에서 데이터를 소비하는 객체.
- 프로듀서 (Producer):
- 데이터를 생성하는 객체.
- 예: 생산자-소비자 패턴에서 데이터를 생성하는 객체.
- 루프 (Loop):
- 반복적인 작업을 수행하는 구조.
- 예: 반복문을 사용하여 여러 작업을 반복 수행하는 경우.
- 게터와 세터 (Getter and Setter):
- 객체의 속성에 접근하거나 설정하기 위한 메소드.
- 예: 자바빈즈 패턴에서 속성을 설정하고 가져오는 메소드.
- 다이렉터 (Director):
- 빌더 패턴에서 객체의 생성 과정을 지시하는 객체.
- 예: 빌더 패턴에서 건물의 생성 과정을 지시하는 Director 클래스.
- 프로토타입 (Prototype):
- 기존 객체를 복제하여 새로운 객체를 생성하는 패턴.
- 예: 프로토타입 패턴에서 기존 객체를 복제하여 새로운 객체를 생성하는 방법.
- 카탈로그 (Catalog):
- 여러 객체나 모듈을 체계적으로 나열한 것.
- 예: 디자인 패턴 카탈로그는 여러 디자인 패턴을 체계적으로 나열한 것.
- 컴포넌트 트리 (Component Tree):
- 컴포넌트들이 트리 구조로 조직된 것.
- 예: 컴포지트 패턴에서 객체들이 트리 구조로 조직되는 경우.
- 클러스터 (Cluster):
- 여러 객체나 시스템이 모여서 하나의 단위를 이루는 것.
- 예: 여러 서버가 모여서 클러스터를 이루어 하나의 단위로 동작하는 경우.
- 컨스트레인트 (Constraint):
- 객체나 시스템이 따라야 하는 제약 조건.
- 예: 데이터베이스에서 무결성 제약 조건.
- 엔디티 (Entity):
- 현실 세계의 객체를 표현하는 클래스.
- 예: 데이터베이스 테이블과 매핑되는 클래스.
- 게이트웨이 (Gateway):
- 다른 시스템으로의 접근을 추상화하는 인터페이스.
- 예: 외부 서비스와의 통신을 추상화하는 클래스.
- 글로벌 상태 (Global State):
- 시스템 전체에서 공유되는 상태.
- 예: 싱글톤 패턴에서 글로벌 상태를 관리하는 싱글톤 객체.
- 핵심 객체 (Core Object):
- 시스템의 주요 기능을 수행하는 객체.
- 예: 비즈니스 로직을 처리하는 핵심 객체.
- 헬퍼 함수 (Helper Function):
- 특정 작업을 도와주는 유틸리티 함수.
- 예: 문자열 처리를 도와주는 헬퍼 함수.
- 이니셜라이저 (Initializer):
- 객체의 초기 상태를 설정하는 코드.
- 예: 생성자에서 초기 상태를 설정하는 코드.
- 인터셉터 (Interceptor):
- 메소드 호출을 가로채서 추가 작업을 수행하는 객체.
- 예: AOP에서 메소드 호출을 가로채는 인터셉터.
- 메타데이터 (Metadata):
- 데이터에 대한 데이터를 설명하는 정보.
- 예: 데이터베이스 테이블의 스키마 정보.
- 뮤텍스 (Mutex):
- 다중 스레드 환경에서 동기화를 위한 객체.
- 예: 임계 구역에 대한 접근을 제어하는 뮤텍스.
- 오브젝트 풀 (Object Pool):
- 재사용 가능한 객체들을 관리하는 패턴.
- 예: 데이터베이스 연결을 재사용하기 위한 객체 풀.
- 리시버 (Receiver):
- 명령 패턴에서 명령을 실행하는 객체.
- 예: 명령 패턴에서 실제 작업을 수행하는 리시버 객체.
- 래퍼 (Wrapper):
- 다른 객체를 감싸는 객체로, 추가 기능을 제공하거나 인터페이스를 변경합니다.
- 예: 어댑터 패턴에서 클라이언트가 필요로 하는 인터페이스를 제공하는 객체.
- 코호트 (Cohort):
- 같은 시기에 함께 작업하거나 같은 목표를 공유하는 그룹.
- 예: 같은 프로젝트에서 함께 일하는 팀원들.
- 컴포넌트 인터페이스 (Component Interface):
- 다양한 컴포넌트들이 일관된 방식으로 상호작용할 수 있도록 정의된 인터페이스.
- 예: 플러그인 시스템에서 모든 플러그인이 구현해야 하는 인터페이스.
- 콘크리트 핸들러 (Concrete Handler):
- 책임 연쇄 패턴에서 실제로 요청을 처리하는 객체.
- 예: 책임 연쇄 패턴에서 각 단계별로 요청을 처리하는 핸들러.
- 컨트롤 플래그 (Control Flag):
- 제어 흐름을 관리하기 위해 사용되는 플래그 변수.
- 예: 특정 조건에 따라 루프를 종료하거나 계속 실행하도록 제어하는 변수.
- 컨스트럭터 (Constructor):
- 객체가 생성될 때 호출되는 메소드로, 초기화를 수행합니다.
- 예: 클래스의 생성자 메소드.
- 코루틴 (Coroutine):
- 비동기적 프로그래밍을 지원하는 경량의 협력적 스레드.
- 예: 코루틴을 사용한 비동기 작업 처리.
- 데이터 액세스 오브젝트 (DAO):
- 데이터베이스와의 상호작용을 캡슐화한 객체.
- 예: 데이터베이스 CRUD 작업을 수행하는 클래스.
- 디코플링 포인트 (Decoupling Point):
- 시스템의 두 부분이 서로 독립적으로 변경될 수 있도록 하는 지점.
- 예: 인터페이스를 사용하여 모듈 간의 결합을 줄이는 지점.
- 델리게이트 (Delegate):
- 객체가 다른 객체의 메소드를 호출하여 작업을 수행하도록 하는 패턴.
- 예: 이벤트 핸들링에서 델리게이트를 사용하여 이벤트 처리를 위임.
- 디멘드 로딩 (Demand Loading):
- 실제로 필요할 때만 리소스를 로드하는 기법.
- 예: 대용량 데이터를 지연 로딩하여 메모리 사용을 최적화.
- 디스패처 (Dispatcher):
- 요청을 받아서 적절한 처리기로 전달하는 객체.
- 예: 웹 서버에서 HTTP 요청을 처리기에게 전달하는 디스패처.
- 이벤트 소스 (Event Source):
- 이벤트를 발생시키는 객체.
- 예: 버튼 클릭 이벤트를 발생시키는 버튼 객체.
- 이벤트 리스너 (Event Listener):
- 이벤트가 발생했을 때 이를 처리하는 객체.
- 예: 버튼 클릭 이벤트를 처리하는 리스너.
- 파서 (Parser):
- 입력된 데이터를 해석하여 의미 있는 구조로 변환하는 객체.
- 예: JSON 데이터를 객체로 변환하는 파서.
- 펙토리 메소드 (Factory Method):
- 객체 생성의 세부 사항을 서브클래스에서 구현하도록 하는 패턴.
- 예: 팩토리 메소드 패턴에서 객체 생성 로직을 서브클래스에 위임.
- 프레임워크 (Framework):
- 애플리케이션 개발을 위한 기본 구조를 제공하는 라이브러리.
- 예: 스프링 프레임워크, 앵귤러 프레임워크.
- 프레젠테이션 로직 (Presentation Logic):
- 사용자 인터페이스와 관련된 로직을 처리하는 코드.
- 예: 화면에 데이터를 표시하고 사용자 입력을 처리하는 로직.
- 리졸버 (Resolver):
- 참조를 해결하여 실제 객체나 데이터를 찾는 객체.
- 예: 도메인 이름을 IP 주소로 변환하는 DNS 리졸버.
- 시퀀스 다이어그램 (Sequence Diagram):
- 객체 간의 상호작용을 시간 순서대로 나타낸 다이어그램.
- 예: UML 시퀀스 다이어그램을 사용하여 메소드 호출 순서를 표현.
- 시그니처 (Signature):
- 메소드나 함수의 이름, 매개변수, 반환 타입을 포함한 정의.
- 예: 메소드 시그니처는 메소드의 이름과 매개변수를 포함합니다.
- 슬레드 (Thread):
- 프로그램의 실행 흐름을 나타내는 경량 프로세스.
- 예: 멀티스레드 애플리케이션에서 병렬 작업을 수행하는 슬레드.
- 타임스탬프 (Timestamp):
- 특정 시점을 나타내는 데이터.
- 예: 데이터베이스 레코드의 생성 시간이나 수정 시간을 기록하는 타임스탬프.
- 토큰 (Token):
- 프로그램의 구문 분석에서 의미 있는 최소 단위.
- 예: 컴파일러가 소스 코드를 구문 분석할 때 사용하는 토큰.
- 트랜잭션 (Transaction):
- 데이터베이스 작업의 단위로, 원자성을 보장합니다.
- 예: 은행 이체 작업은 하나의 트랜잭션으로 처리되어야 합니다.
- 유스케이스 (Use Case):
- 시스템이 사용자와 상호작용하는 시나리오를 설명합니다.
- 예: 유스케이스 다이어그램을 사용하여 시스템의 기능을 설명합니다.
진짜 너무 많다.
자바가 힘들다고 느껴진 이유중 하나였지 않았나 싶다.
특정 용어를 봤을 때 뭘 하는 녀석인지 감이 오지 않는 용어들이 너무나도 많다.
'java' 카테고리의 다른 글
추상 팩토리 패턴 (0) | 2024.07.17 |
---|---|
데코레이터 패턴과 팩토리 패턴 (0) | 2024.07.16 |
디자인패턴에서 자주 쓰이는 용어 정리(GPT)(1) (0) | 2024.07.16 |
멀티스레딩과 비동기I/O 차이점 (0) | 2024.07.08 |
ExecutorService 기반 스레드 생명주기와 자원관리 (0) | 2024.07.08 |