▶ 개념 💡 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 자바 진영에서 ORM( Object - Relational Mapping ) 기술 표준으로 사용되는 인터페이스 모음 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크 JPA를 구현한 대표적인 오픈소스로는 Hibernate가 있다. ▶ JPA 동작 애플리케이션과 JDBC 사이에서 동작한다. JPA를 사용하면 JPA 내부에서 JDBC API를 사용하여 SQL을 호출해서 DB와 통신 하나의 앱에는 하나의 EntityManager Factory를 생성하고 각 요청에 따라 EntityManager를 생성하여 커넥션 풀을 만들고 DB에 요청 EntityManager는 하나의 스레드에서 사용하고, 사용이 끝나면 반납 그 이..
무엇인가? Inversion Of Control ⇒ 제어의 반전 IoC(제어 반전)이란, 객체의 생성, 생명주기의 관리까지 모든 객체에 대한 제어권이 바뀌었다는 것을 의미합니다. 스프링 프레임워크도 객체를 생성하고 관리하고 책임지고 의존성을 관리해주는 컨테이너가 있는데,그것이 바로 IoC 컨테이너(=스프링 컨테이너) 이다. 인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줍니다. 자바로 객체를 생성할 때 우리는 new 연산자를 이용하여 리모콘을 생성하여 사용하였다. 하지만 IoC컨테이너가 new하지 않고 직접 인스턴스를 생성 시켜주는 작업을 말한다. 코드에 직접적인 연관 관계가 발생하지 않아 느슨한 결합이 가능하다. 심지어 싱글톤으로 하나만 사용되기 때문에 무척 유용..
Spring MVC는 Spring에서 제공하는 웹 모듈로, Model, View, Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답은 물론 View를 표시하는 html을 return하는 응답까지 다양한 응답을 할 수 있도록 프레임크이다. Spring MVC 이전에 서블릿에서 어떤 구조였는지 경험해보는 것을 추천한다. https://sh970901.tistory.com/111 1. Model(모델) 어플리케이션의 데이터이며, 모든 데이터 정보를 가공하여 가지고 있는 컴포넌트이다. 사용자가 이용하려는 모든 데이터를 가지고 있어야하며, View(뷰) 또는 Controller(컨트롤러)에 대해 어떤 정보도 알 수 없..
자동차의 바퀴를 교체하기 위해서 우리는 자동차 전체를 교체할 필요 없이 우리는 바퀴만 바꿔 갈아끼우면 된다. 객체 지향 프로그래밍에 장점이 이것이라고 생각한다. 클래스의 변경이 필요하면 다른 클래스의 영향을 끼치지 않으면서 변경이 가능하도록 우리는 구현이 가능하다. 이러한 작업을 더 수월하게 진행할 수 있도록 도입된 기능이 DI(Dependency Injection)와 IoC(Inversion of Control) 이다. 자바로 객체를 생성할 때 우리는 new 연산자를 이용하여 리모콘을 생성하여 사용하였다. 하지만 DI는 컨테이너가 new하지 않고 직접 인스턴스를 생성시켜주는 작업을 말한다. 코드에 직접적인 연관 관계가 발생하지 않아 느슨한 결합이 가능하다. 심지어 싱글톤으로 하나만 사용되기 때문에 무척..
어노테이션은 사전적 의미로는 주석이라는 뜻이다. 자바에서 사용될 때의 어노테이션은 코드 사이에 주석처럼 쓰여서 특별한 의미, 기능을 수행하도록 하는 기술이다. 즉, 프로그램에게 추가적인 정보를 제공해주는 메타데이터(meta data: 데이터를 위한 데이터)라고 볼 수 있다. 어노테이션의 용도 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보를 제공 소프트웨어 개발툴이 빌드나 배치시 코드를 자동으로 생성할 수 있도록 정보 제공 실행시(런타임시)특정 기능을 실행하도록 정보를 제공 기본적으로 어노테이션을 사용하는 순서는 다음과 같다. 1. 어노테이션의 정의 2. 클래스에 어노테이션을 배치 3. 코드가 실행되는 중에 Reflection을 이용하여 추가정보를 획득하여 기능실시 @PathVariable 메서드 인..
💡 스프링 시큐리티(Spring Security)란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크 즉 인증(Authenticate, 누구인지?) 과 인가(Authorize, 어떤것을 할 수 있는지?)를 담당하는 프레임워크를 말한다. 스프링 시큐리티는 주로 서블릿 필터와 이들로 구성된 필터체인을 통해 웹 요청에 대한 보안 관련 처리를 수행한다. 서블릿 필터란 HTTP 요청을 가로채 전처리 및 후처리를 수행할 수 있도록 만들어진 자바 표준 기술이다. 필터는 체인으로 구성될 수 있으며, 하나의 필터가 자신의 역할을 한 후 요청과 응답 객체를 다음 필터로 넘길 수 있다. 그리고 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장..