Java/Spring

    Spring JDBC

    Spring JDBC

    1. Spring JDBC란? JDBC를 이용해서 프로그래밍을 하게 되면 반복적인 코드가 많이 발생한다. 이러한 반복적인 코드는 개발자의 생산성을 떨어뜨리는 주된 원인이 된다. 이러한 문제를 해결하기 위해 등장한 것이 Spring JDBC이다. 2. JDBC 패키지 org.springframework.jdbc.core : JdbcTemplate 및 관련 Helper 객체 제공 org.springframework.jdbc.datasource : DataSource를 쉽게 접근하기 위한 유틸 클래스, 트랜잭션매니저 및 다양한 DataSource 구현을 제공 org.springframework.jdbc.object : RDBMS 조회, 갱신, 저장 등을 안전하고 재사용 가능한 객체 제공 org.springfr..

    Spring IoC/DI 컨테이너

    Spring IoC/DI 컨테이너

    1. 컨테이너란? 컨테이너는 인스턴스의 생명주기를 관리한다. 생성된 인스턴스들에게 추가적인 기능을 제공한다. 예를 들어 Servlet을 실행해주는 WAS는 Servlet 컨테이너를 가지고 있다고 말한다. 개발자가 서블릿 클래스를 작성했지만, 실제로 메모리에 올리고 실행하는 것은 WAS가 가지고 있는 Servlet 컨테이너이다. Servlet 커테이너는 동일한 서블릿에 해당하는 요청을 받으면, 또 메모리에 올리지 않고 기존의 메모리에 올리간 서블릿을 실행하여 그 결과를 웹 브라우저에게 전달한다. 2. IoC(Inversion of Control) 컨테이너가 코드 대신 오브젝트의 제어권을 갖고 있어, IoC(제어의 역전)이라고 한다. 예를 들어, 서블릿 클래스는 개발자가 만들지만, 그 서블릿의 메소드를 알맞..

    Spring Framework란?

    Spring Framework란?

    1. Spring Framework란? 엔터프라이즈급 어플리케이션을 구축할 수 있는 가벼운 솔루션이자, 원-스탑-숍(One-Stop-Shop) 원하는 부분만 가져다 사용할 수 있도록 모듈화가 잘 되어 있다. loC 컨테이너이다. 선언적으로 트랜잭션을 관리할 수 있다. 완전한 기능을 갖춘 MVC Framework를 제공 AOP를 지원 스프링은 도메인 논리 코드와 쉽게 분리될 수 있는 구조로 되어 있다. 2. 프레임 워크 모듈 스프링 프레임워크는 약 20개의 모듈로 구성되어 있다. 필요한 모듈만 가져다 사용할 수 있다. 3. AOP와 인스트루멘테이션(Instrumentation) spring-AOP : AOP 얼라이언스(Alliance)와 호환되는 방법으로 AOP를 지원. spring-aspects : As..

    pom.xml

    javax.servlet javax.servlet-api 3.1.0 provided scope는 4가지가 있다. compile : 컴파일할 때 필요. 테스트 및 런타임에도 클래스패스에 포함된다. scopr를 설정하지 않는 경우 기본값. runtime : 런타임에 필요. JDBC 드라이버 등이 예가 된다. 컴파일 시에는 필요하지 않지만, 실행 시에 필요한 경우. provided : 컴파일 시에 필요하지만, 실제 런타임 때에는 컨테이너 같은 것에서 제공되는 모듈, servlet, jsp, api등이 이에 해당되며, 배포시 제외된다. test : 테스트 코드를 컴파일할 때 필요. 테스트 시 클래스 패스에 포함되며, 배포시 제외된다.

    Maven이란?

    Maven이란?

    1. Maven이란? 프로젝트가 복잡해질수록 사용하는 라이브러리가 많이지고, 프로젝트에 참가하는 사용자가 많아질수록 라이브러리 관리는 어려워진다. 또한 프로젝트가 복잡해질수록 소스를 컴파일하고 배포하는 것도 점점 어려워진다. Maven은 이러한 문제를 해결하기 위한 다양한 도구들 중 하나이다. Maven은 지금까지 애플리케이션을 개발하기 위해 반복적으로 진행해왔던 작업들을 지원하기 위해 등장한 도구이다. Maven을 사용하면 빌드, 패키징, 문서화, 테스트와 테스트 리포팅, git, 의존성 관리, svn등과 같은 형상관리서버와 연동, 배포 등의 작업을 손쉽게 할 수 있다. Maven을 이해하려면 CoC(Convention over Configuration)라는 단어를 먼저 이해해야한다. CoC란 일종의 ..

    스웨거 (Swagger)란?

    스웨거 (Swagger)란? 스웨거는 Web API 문서화를 위한 도구이다. 스웨거 홈페이지에서는 스웨거를 OAS(Open API Specification)이라고 소개하고 있다. 말 그대로 API들이 가지는 명세(Spec)을 관리하기 위한 프로젝트이다. Web API를 수동으로 문서화 하는 것은 굉장히 힘든일인데, Web API의 스펙이 변경되었을 때 문서 역시 변경되어야 하는데 이를 유지하는 것이 쉽지 않다. Swagger를 사용하면 Web API가 수정되더라도 문서가 자동으로 갱신 되기 때문에 편리하다. 스웨거의 기능 스웨거 홈페이지를 가보면 아래와 같은 기능이 있다. API Design API Development API Testing API Mocking and Virtualization API..

    Rest Controller란?

    Rest Controller란?

    @RestController Spring 4에서 Rest API 또는 Web API를 개발하기 위해 등장한 어노테이션 이전 버전의 @Controller와 @ResponseBody를 포함한다. Rest Controller를 사용하기 위해서는 MesageConvertor가 중요하다. 예를 들면 MessageConvertor는 외부에서 전달 받은 Json 메서드를 내부에서 사용할 수 있는 객체로 변환하거나 Controller를 리턴한 객체가 클라이언트에게 Json으로 변환해서 전달할 수 있도록 하는 역할을 수행한다. MessageConvertor 자바 객체와 HTTP 요청/ 응답 바디를 변환하는 역할 @ResponseBody, @RequestBody @EnableWebMvc로 인한 기본 설정 WebMvcCon..

    Post 방식으로 데이터 전송시 한글이 깨지는 문제

    web.xml 파일의 태그 안에 아래의 코드를 삽입. encodingFilterUTF8 org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 encodingFilterUTF8 /