분류 전체보기 558

[Spring MVC] 1-2. DispatcherServlet: Special Bean Types

1. DispatcherServlet의 위임 구조DispatcherServlet는 WebApplicationContext의 대리 구성요소들에 작업을 위임하여 요청을 처리합니다.대리 구성요소는 Spring IoC Container에 Bean으로 등록되어 적절하게 사용됩니다. (커스터마이징 가능) 2. 처리 흐름  단계설명관련 구성요소 (전략)1. 요청 수신클라이언트의 HTTP 요청이 DispatcherServlet에 도착-2. Handler 찾기요청 URL에 맞는 컨트롤러(핸들러)를 찾음HandlerMapping(RequestMappingHandlerMapping)3. HandlerAdapter 선택찾은 Handler를 실행할 수 있는 Adapter를 선택HandlerAdapter(RequestMappin..

Spring/Spring MVC 2023.10.16

[Spring MVC] 1-1. DispatcherServlet: Context Hierarchy

1. Front Controller한 곳에서 요청을 받아서 적절한 컴포넌트에 라우팅하는 설계 패턴입니다.Spring MVC는 프론트 컨트롤러 패턴으로 설계되었습니다. DispatcherServletSpring MVC에서 프론트 컨트롤러 역할을 담당합니다. Java/XML 방식으로 설정 할 수 있습니다. 예제) XML더보기1. web.xml (webapp/WEB-INF/web.xml) org.springframework.web.context.ContextLoaderListener contextConfigLocation /WEB-INF/app-context.xml app org.springframework.we..

Spring/Spring MVC 2023.10.16

[Java][Tutorial] 3-2. Collections: Queue, Deque, Map

1. Queue InterfaceQueue는 처리를 위해 요소를 보관하는 컬렉션입니다.기본적인 Collection 연산 외에도 추가적인 삽입, 삭제, 검사 연산을 제공합니다. 기본 연산요소 추가add(e)큐의 용량 제한을 위반할 경우 IllegalStateException을 던집니다.offer(e)용량 제한이 있는 큐에서만 사용하기 위한 것요소를 삽입하지 못했을 때 false를 반환합니다.  요소 반환remove(), poll()큐의 앞쪽 요소를 제거하고 반환합니다. 요소 확인element(), peek()요소를 제거하지 않습니다. 특징정렬대개 FIFO(First-In-First-Out) 방식으로 요소를 정렬우선순위 큐는 요소의 값을 기준으로 요소를 정렬합니다. LinkedListQueue를 구현하는 ..

Java 2023.10.15

[Java][Tutorial] 3-1. Collections: Collection, Set, List

1. Introduction 여러 오브젝트를 하나의 단위로 그룹화하는 컨테이너 What Is a Collections Framework? Collection을 표현하고 조작하기 위한 통합된 아키텍쳐입니다. Interface 컬렉션을 대표하는 추상 데이터 타입입니다. 다양한 구현체들을 같은 방식으로 처리할 공통의 규약을 정의할 수 있습니다. Implementations 컬렉션 인터페이스의 실제 구현입니다. 재사용 가능한 데이터 구조입니다. Algorithms 컬렉션 인터페이스를 구현한 객체의 메서드입니다. (검색, 정렬) 모든 컬렉션 구현체에서 가지고 있습니다. (다형성) Benefits of the Java Collections Framework 프로그래밍 노력 감소 유용한 데이터 구조와 알고리즘을 제공..

Java 2023.10.15

[Java][Tutorial] 2-1. Essential Java Classes: Exceptions

1. ExceptionsWhat Is an Exception?프로그램이 정상 흐름에서 벗어나 중단된 상황을 뜻합니다.Java는 예외적인 이벤트나 에러를 핸들링하기 위해 Exception 클래스를 사용합니다. Exception예외 상황에 대한 정보를 가집니다.Exception 인스턴스를 생성해서 JVM에게 전달합니다. Exception Handling메서드 내에서 에러가 발생 시, JVM으로부터 처리됩니다.call stack을 하나씩 내려가면서 처리될 catch 블록을 탐색합니다.call stack을 하나씩 내려가면서, 던져진 예외타입에 매칭되는 catch 블록을 순차적으로 탐색합니다.별도로 작성된 서브타입에 대한 예외처리 핸들러를 먼저 작성하여 처리되도록 해야 합니다.catch 블록을 찾지못하면 jvm..

Java 2023.10.15

[Java][Tutorial] 1-4. Learning the Java Language: Annotation

The Java Tutorials have been written for JDK 8 4. Annotation프로그램에 메타데이터 정보를 제공하는 주석입니다.코드에 직접적인 영향을 주지 않습니다. ElementTypepublic enum ElementType { TYPE, /** Class, interface, enum, or record declaration */ FIELD, /** Field declaration */ METHOD, /** Method declaration */ PARAMETER, /** Formal parameter declaration */ CONSTRUCTOR, /** Constructor declaration */ ..

Java 2023.10.15

[Java][Tutorial] 1-1. Learning the Java Language: Object-Oriented Programming Concepts

The Java Tutorials have been written for JDK 8 1. Object-Oriented Programming ConceptsWhat Is an Object?모델이 가진 상태와 행동의 번들입니다.현실세계의 물체를 소프트웨어 세계의 물체로 모델링해서 사용합니다. state객체가 가지고 있는 내부 상태값을 의미합니다. method객체의 행동을 메서드라 부릅니다.오브젝트 간 커뮤니케이션 매커니즘다른 오브젝트로부터 노출시키므로써 인터렉션이 가능합니다.캡슐화내부 상태의 조작을 기반으로 동작합니다.바깥에서 직접적으로 내부의 state를 접근하지 못하게 하는 기능묵시적 형변환결과를 받을 때파라미터로 전달할 때variable arguments (...)동일 타입의 인자가 몇 개 들어올 지 ..

Java 2023.10.15

[Spring][Core] 2-8. Bean: Customizing the Nature of a Bean

1. Lifecycle CallbacksSpring은 빈의 생명주기와 상호작용할 수 있는 여러 방법을 제공합니다.이러한 도구를 활용하여 빈의 초기화 및 파괴 과정에 사용자 지정 동작을 추가할 수 있습니다. BeanPostProcessor 인터페이스빈 생성 전/후에 사용자 정의 로직을 실행할 수 있도록 하는 빈 후처리 인터페이스내부적으로 콜백 인터페이스를 찾아 적절한 메서드를 호출하기 위해 사용합니다.주요 메서드: postProcessBeforeInitialization(), postProcessAfterInitialization() Initialization Callbacks초기화 메서드는 컨테이너의 싱글톤 생성 잠금 내에서 실행됩니다.여러 스레드가 동시에 호출하려는 시도를 방지합니다. 항목 / 방법In..

Spring/Spring 2023.10.14

[Spring][Core] 2-7. Bean: Lazy-initialized Beans

1. Lazy-initialized Beans구분설명비고기본 동작ApplicationContext는 초기화 시 모든 싱글톤 빈을 즉시 생성설정 오류를 초기화 시점에 조기 발견 가능지연 초기화 (Lazy)빈의 생성 시점을 첫 요청 시점으로 지연자원 절약, 시작 시간 단축 설정예시) XML더보기 요소의 lazy-init 속성으로 제어됩니다. 예시) XML (컨테이너 수준)더보기 default-lazy-init 속성을 사용하여 컨테이너 수준에서 지연 초기화를 제어할 수 있습니다. 예외 사항Lazy 된 빈이 Non-Lazy 빈의 의존성인 경우해당 싱글톤 빈의 종속성을 만족시키기 위해, ApplicationContext는 지연 초기화 된 빈을 즉시 생성합니다.  출처Spring document - Lazy in..

Spring/Spring 2023.10.14

[Spring][Core] 2-6. Bean: Autowiring Collaborators

1. Autowiring CollaboratorsAutowiring빈들 사이의 의존성을 자동으로 연결하는 기능입니다.ApplicationContext 내에서 빈들의 종속성을 자동으로 매칭하여 연결해 줍니다. 장점항목설명비고구성의 간소화프로퍼티나 생성자 인수를 직접 명시할 필요가 줄어듦XML이나 Java 설정에서 코드량 감소동적인 구성 업데이트새로운 의존성 추가 시, 구성 변경 없이 자동 반영코드 안정화 이후에는 명시적인 설정으로 전환 가능개발 초기 단계에서 유용유지보수성과 명확성 확보 목적 설정모드설명비고no (default)자동 와이어링을 수행하지 않음명시적 의존성 주입 필요byName프로퍼티 이름과 같은 이름의 빈을 찾아 자동 주입이름 일치 필수byType프로퍼티의 타입과 일치하는 빈을 찾아 자동 주..

Spring/Spring 2023.10.14