Study
oriented
구루마3단
2025. 4. 15. 18:39
"oriented"는 "기초한"이라는 의미로 쓰이기도 하지만, 더 정확하게는 "지향하는", "중심을 두는"이라는 뜻입니다.
문맥에 따라 약간씩 해석이 달라지긴 하지만, 단순한 기초(based on)보다 더 능동적인 성향을 포함합니다.
✅ oriented
의 기본 의미
표현 | 의미 | 해석 방식 |
---|---|---|
oriented | ~을 지향하는, 중점을 둔 | 중심이 어디에 맞춰져 있는가 |
📌 주요 예시
용어 | 의미 | 해석 |
---|---|---|
Object-Oriented Programming | 객체 중심 프로그래밍 | "객체를 중심으로 설계된" |
Customer-Oriented | 고객 지향적 | "고객을 우선시하는", "고객 중심의" |
Goal-Oriented | 목표 지향적 | "목표를 달성하는 데 초점을 맞춘" |
✅ vs. based on (기초한)
표현 | 의미 차이 |
---|---|
based on | 단순한 기반, 기초 위에 있음 → 수동적 |
oriented | 지향, 방향성, 목적성 포함 → 능동적 |
예를 들어:
Object-based
는 단순히 객체 구조만 따르는 것Object-oriented
는 객체라는 개념 자체를 설계의 중심 철학으로 삼음
🔁 기억법
oriented
= "어디를 바라보고 있느냐"based
= "어디 위에 서 있느냐"
✅ "Oriented"가 포함된 IT 용어 정리표
용어 | 해석 | 의미 및 설명 |
---|---|---|
Object-Oriented Programming (OOP) | 객체 지향 프로그래밍 | 객체(데이터+행동)를 중심으로 프로그램 구성. 클래스, 캡슐화, 상속, 다형성 특징 포함 |
Service-Oriented Architecture (SOA) | 서비스 지향 아키텍처 | 독립적인 서비스 단위로 시스템 구성. 모듈 간 느슨한 결합 |
Aspect-Oriented Programming (AOP) | 관점 지향 프로그래밍 | 공통 기능(로깅, 보안 등)을 모듈화하여 핵심 로직과 분리 |
Event-Oriented Programming | 이벤트 지향 프로그래밍 | 사용자/시스템 이벤트에 따라 동작하는 방식. UI나 JS에서 자주 사용 |
Data-Oriented Design | 데이터 지향 설계 | 데이터의 메모리 접근 효율을 중심으로 설계. 게임 엔진에서 많이 사용 |
Domain-Oriented Design (DDD) | 도메인 중심 설계 | 비즈니스 도메인(업무 영역)을 모델링 중심으로 시스템 구성 |
Behavior-Oriented Design | 행동 지향 설계 | 시스템의 '행동' 중심으로 구조화. 로봇, 에이전트 시스템에서 사용됨 |
Model-Oriented Architecture | 모델 지향 아키텍처 | 코드보다 모델(예: UML)을 중심으로 설계 및 생성 |
Task-Oriented UI | 작업 지향 UI | 사용자 목표(task)를 중심으로 설계된 인터페이스. 사용성이 핵심 |
Customer-Oriented Strategy | 고객 지향 전략 | 고객 만족과 맞춤형 서비스를 중심으로 한 IT 전략 |
🧠 시각 요약: Oriented = "중심 철학"
Object-Oriented → 객체 중심
Service-Oriented → 서비스 중심
Event-Oriented → 이벤트 중심
Data-Oriented → 데이터 중심
Domain-Oriented → 업무 모델 중심
...
🧩 추가 정리: -based
와 비교
용어 | 의미 | 차이점 |
---|---|---|
Object-based | 객체 개념은 있지만 OOP 특성(상속 등)은 없음 | 구조만 따른다 |
Object-oriented | 객체 개념을 중심 철학으로 구현 | 철학까지 따른다 |
OOP vs AOP vs DDD (객체 지향 / 관점 지향 / 도메인 중심 설계)
📊 OOP vs AOP vs DDD 비교표
항목 | OOP (Object-Oriented Programming) |
AOP (Aspect-Oriented Programming) |
DDD (Domain-Driven Design) |
---|---|---|---|
핵심 개념 | 객체(데이터+행위)를 중심으로 설계 | 공통 관심사를 별도로 분리하여 설계 | 도메인 지식을 코드 중심으로 모델링 |
목표 | 코드 재사용, 추상화, 계층화 | 핵심 로직과 부가 로직의 분리 | 비즈니스 도메인에 부합하는 시스템 설계 |
주 대상 | 클래스, 객체, 메서드 | 로깅, 보안, 트랜잭션, 에러처리 등 횡단 관심사 | 엔티티, 값 객체, 도메인 서비스 등 |
중심 철학 | "모든 것은 객체다" | "관심사는 분리되어야 한다" | "복잡한 도메인은 모델에서 해결" |
코드 구조 | 클래스/상속 중심 | Advice + Pointcut + Joinpoint 구조 | 애그리거트, 리포지터리, 유비쿼터스 언어 |
적용 기술 | Java, C++, Python 등 | Spring AOP, AspectJ, .NET PostSharp | DDD 프레임워크, Java, C#, Kotlin 등 |
장점 | 이해 쉬움, 유지보수 편리 | 횡단 관심사 분리로 코드 간결 | 복잡한 도메인 일관된 관리 |
단점 | 중복 로직 발생 가능 | 디버깅 난이도 있음 | 도메인 이해 부족 시 설계 실패 위험 |
대표 사용처 | 대부분의 일반 프로그램, UI | 로깅, 인증, 트랜잭션 처리 | 대규모, 복잡한 기업 시스템 (ERP 등) |
🧠 핵심 요약 문장
- OOP: 객체 단위로 책임 분산 → 클래스 설계가 중요
- AOP: "중복되는 관심사"는 한곳에 모아 관리
- DDD: "비즈니스 전문가가 말하는 개념"을 모델에 그대로 반영
🔁 적용 흐름 (현업 예시)
하나의 프로젝트에서도 셋을 함께 사용하는 경우가 많습니다:
DDD: 설계 구조를 도메인 개념 중심으로 → 도메인 모델
OOP: 구현할 때는 도메인 모델을 객체로 나눔 → 클래스/객체
AOP: 보안/트랜잭션/로그 같은 부가 기능 → 횡단 관심사로 분리
예시 시나리오: 온라인 쇼핑몰
관심사 | 적용 설계 방식 |
---|---|
상품, 주문, 결제 같은 비즈니스 로직 | DDD (도메인 모델: Order, Product, Payment) |
주문 처리 시의 트랜잭션, 로깅 | AOP (Joinpoint: 주문 메서드, Advice: 로그/보안) |
각 기능 구현 클래스 | OOP (OrderService, ProductRepository 등) |