주요 공부할 것들

이규현·2025년 1월 17일

IoC 컨테이너 (Inversion of Control Container)

  • 핵심 개념: IoC 컨테이너는 객체의 생성과 생명 주기(라이프사이클)를 관리합니다. 개발자가 직접 객체를 생성하고 의존성을 주입하는 대신, 컨테이너가 이를 대신 처리합니다.
  • 작동 방식:
    • 개발자는 객체의 생성 방식을 컨테이너에 설정(XML, Java Config, Annotation 등).
    • 컨테이너는 애플리케이션 실행 시 필요한 객체를 생성하고 의존성을 자동으로 주입(Dependency Injection).
  • 주요 특징:
    • 객체 간의 강한 결합을 줄여 유연한 설계 가능.
    • 설정 파일 또는 애너테이션(@Component, @Bean 등)을 통해 구성.
  • 중요한 클래스/인터페이스:
    • ApplicationContext
    • BeanFactory

AOP (Aspect-Oriented Programming)

  • 핵심 개념: 횡단 관심사(Cross-Cutting Concern)를 분리하여 코드의 중복을 줄이고 모듈화를 극대화하는 기법입니다. 예를 들어, 로깅, 트랜잭션 관리, 보안 같은 기능은 핵심 로직과 분리해 관리.
  • 작동 방식:
    • 핵심 로직(비즈니스 로직) 주변에 특정 동작(Aspect)을 삽입.
    • 주로 프록시 패턴을 활용하여 메서드 호출 전후에 동작을 추가.
  • 주요 개념:
    • Aspect: 횡단 관심사 자체.
    • Advice: 실행할 로직(전처리, 후처리 등).
    • Join Point: 실행 가능한 지점(메서드 호출 등).
    • Pointcut: Advice를 적용할 구체적인 조건.
  • 활용 예시:
    • 트랜잭션 관리.
    • 메서드 실행 시간 측정.
    • 보안 체크.

추상화 계층 (Spring의 다양한 API 계층)

스프링은 다양한 기술을 쉽게 사용할 수 있도록 추상화 계층을 제공합니다. 아래는 주요 추상화 계층의 요약입니다.

a. MVC (Model-View-Controller)

  • 스프링 MVC는 웹 애플리케이션 개발을 위한 구조화된 패턴.
  • Model: 데이터와 비즈니스 로직 처리.
  • View: 사용자에게 표시할 화면 (JSP, Thymeleaf 등).
  • Controller: 사용자 요청을 처리하고 Model과 View를 연결.

b. JDBC 추상화

  • 복잡한 데이터베이스 처리 코드를 간소화.
  • Connection, Statement, ResultSet 등을 자동으로 관리.
  • 템플릿 클래스 제공: JdbcTemplate.

c. Resource 추상화

  • 파일, URL, 클래스패스 등 다양한 리소스를 동일한 방식으로 처리.
  • Resource 인터페이스를 사용하여 일관된 접근 방식 제공.

d. O/X M (Object/XML Mapping)

  • 자바 객체와 XML 데이터를 매핑.
  • JAXB, Castor 등 지원.

e. O/J M (Object/JSON Mapping)

  • 자바 객체와 JSON 데이터를 매핑.
  • Jackson, Gson 같은 라이브러리와 통합.
개념핵심 역할주요 특징/구현체
IoC 컨테이너객체 생성 및 의존성 관리ApplicationContext, DI, @Bean, @Component
AOP횡단 관심사의 분리Aspect, Advice, Pointcut, 프록시 패턴 활용
추상화 계층다양한 기술 사용을 간소화MVC, JdbcTemplate, Resource, O/X M, O/J M 등

0개의 댓글