1. JDBC의 등장 배경애플리케이션 서버와 DB 연결 문제애플리케이션 서버에서 DB에 접근하기 위해서는 여러 가지 작업이 필요하다.DB에 연결하기 위해 커넥션을 생성하고, SQL을 작성한 후 커넥션을 통해 SQL을 요청하고, 요청한 SQL에 대한 결과를 응답받는다.DB 교체 시 문제점기존에 MySQL 서버를 사용하다가 PostgreSQL 서버로 변경한다면 커넥션을 연결하는 방법, SQL을 전달하는 방법, 결과를 응답받는 방법 등이 다를 수 있다.따라서 애플리케이션 서버에서 작성했던 DB 연결 로직들을 전부 수정해야 하는 불편함이 있다.JDBC의 등장이러한 문제를 해결하기 위해 JDBC(Java Database Connectivity) 표준 인터페이스가 등장하였다.JDBC는 자바 애플리케이션에서 데이터베..
DTODTO(Data Transfer Object)란 계층간 데이터 교환을 위해 사용하는 객체(Java Beans)DTO는 클라이언트 요청에 포함된 데이터를 담아 서버 측에 전달하고, 서버 측의 응답 데이터를 담아 클라이언트에 전달하는 계층간 전달자 역할계층간 데이터 교환을 위한 객체(Java Beans)DB에서 데이터를 얻어 Service나 Controller 등으로부터 보낼 때 사용하는 객체로직을 갖고 있지 않는 순수한 데이터 객체이며, getter/setter 메서드만을 갖지만 DB에서 꺼낸 값을 임의로 변경할 필요가 없기 때문에 DTO클래스에는 setter가 없고 생성자에서 값을 할당함Request와 Response용 DTO는 View를 위한 클래스자주 변경이 필요한 클래스Presentation ..
@ModelAttributeHTML의 form 태그를 사용하여 POST 방식으로 HTTP 요청을 보낼 수 있음이때 해당 데이터는 HTTP Body에 name=Tobi&age=55 형태로 담겨서 서버로 전달됨해당 데이터를 Java의 객체 형태로 받는 방법은 @ModelAttribute 애너테이션을 사용한 후 Body 데이터를 Star star 받아올 객체를 선언 Query String 방식?name=Tobi&age=55 처럼 데이터가 두 개만 있다면 괜찮지만 여러 개 있다면 @RequestParam 애너테이션으로 하나씩 받아오기 힘듦이때 @ModelAttribute 애너테이션을 사용하면 Java의 객체로 데이터를 받아올 수 있음.파라미터에 선언한 Star 객체가 생성되고, 오버로딩된 생성자 혹은 Sett..
Path Variable Client 즉, 브라우저에서 서버로 HTTP 요청을 보낼 때 데이터를 함께 보낼 수 있음서버에 보내려는 데이터를 URL 경로에 추가할 수 있음데이터를 받기 위해서는 /star/{name}/age/{age} 이처럼 URL 경로에서 데이터를 받고자 하는 위치의 경로에 {data} 중괄호를 사용(@PathVariable String name, @PathVariable int age)해당 요청 메서드 파라미터에 @PathVariable 애너테이션과 함께 {name} 중괄호에 선언한 변수명과 변수타입을 선언하면 해당 경로의 데이터를 받아올 수 있음 Request Param 서버에 보내려는 데이터를 URL 경로 마지막에 ? 와 & 를 사용하여 추가할 수 있음데이터를 받기 위해서는 ?nam..
JacksonJSON 데이터 구조를 처리해주는 라이브러리Object를 JSON 타입의 String으로 변환해줄 수 있JSON 타입의 String을 Object로 변환해줄 수 있음Spring은 3.0버전 이후로 Jacskon과 관련된 API를 제공함으로써, 우리가 직접 소스 코드를 작성하여 JSON 데이터를 처리하지 않아도 자동으로 처리해주고 있음따라서 SpringBoot의 starter-web에서는 default로 Jackson 관련 라이브러리들을 제공하고 있음직접 JSON 데이터를 처리해야할 때는 Jackson 라이브러리의 ObjectMapper를 사용할 수 있음Object To JSONobjectMapper의 writeValueAsString 메서드를 사용하여 변환할 수 있음파라미터에 JSON으로 변..