BackEnd
-
11장. HTTP와 REST 컨트롤러 11.1. REST API 의 동작 이해하기 · REST - HTTP URL로 서버의 자원을 명시하고, - HTTP 메서드(POST, GET, PATCH, DELETE)로 해당 자원에 대해 CRUD(생성, 조회, 수정, 삭제)하는 것. · API - 클라이언트가 서버의 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스(interface) 클라이언트가 보내는 HTTP 요청 메시지의 첫 줄에는 시작 라인인 요청 라인(request line)이 있고, 그 아래에는 헤더(header)와 본문(body)가 있다. 응답 메시지의 첫 줄에도 시작 라인인 상태 라인(status line)이 있고, 그 아래 헤더(header)와 본문(body)가 있다. 응답으로 오는 상태 코드는..
[Spring Boot] 11. HTTP와 REST 컨트롤러11장. HTTP와 REST 컨트롤러 11.1. REST API 의 동작 이해하기 · REST - HTTP URL로 서버의 자원을 명시하고, - HTTP 메서드(POST, GET, PATCH, DELETE)로 해당 자원에 대해 CRUD(생성, 조회, 수정, 삭제)하는 것. · API - 클라이언트가 서버의 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스(interface) 클라이언트가 보내는 HTTP 요청 메시지의 첫 줄에는 시작 라인인 요청 라인(request line)이 있고, 그 아래에는 헤더(header)와 본문(body)가 있다. 응답 메시지의 첫 줄에도 시작 라인인 상태 라인(status line)이 있고, 그 아래 헤더(header)와 본문(body)가 있다. 응답으로 오는 상태 코드는..
2024.01.22 -
10장. REST API와 JSON 10.1. REST API와 JSON 등장 배경 웹 서비스를 사용하는 클라이언트는 웹 브라우저 뿐만 아니라 스마트폰, 스마트워치, 태블릿, CCTV, 각종 센서 등으로 다양하다. 따라서 서버는 이러한 모든 클라리언트의 요청에 응답해야 하고 웹 브라우저 뿐만 아니라 어떤 기기가 와도 기기에 맞는 뷰 페이지를 응답해야 하는데, 이것이 REST API가 필요한 이유이다. · REST API (Representational State Transfer API) - 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식 - REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. - 이 때 서버에서 보내는 응답이 특정 기기에 종속되지 않..
[Spring Boot] 10. REST API와 JSON10장. REST API와 JSON 10.1. REST API와 JSON 등장 배경 웹 서비스를 사용하는 클라이언트는 웹 브라우저 뿐만 아니라 스마트폰, 스마트워치, 태블릿, CCTV, 각종 센서 등으로 다양하다. 따라서 서버는 이러한 모든 클라리언트의 요청에 응답해야 하고 웹 브라우저 뿐만 아니라 어떤 기기가 와도 기기에 맞는 뷰 페이지를 응답해야 하는데, 이것이 REST API가 필요한 이유이다. · REST API (Representational State Transfer API) - 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식 - REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. - 이 때 서버에서 보내는 응답이 특정 기기에 종속되지 않..
2024.01.20 -
9장. CRUD와 SQL 쿼리 종합 서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청하면 JPA의 리파지터리가 DB에 해당 요청을 전달하고, 요청을 받은 DB는 SQL로 쿼리를 작성해 데이터를 관리한다. 9.1. JPA 로깅 설정하기 · 쿼리(Query) - DB에 정보를 요청하는 구문 데이터 관리 SQL HTTP 데이터 생성(Create) INSERT POST 데이터 조회(Read) SELECT GET 데이터 수정(Update) UPDATE PATCH (PUT) 데이터 삭제(Delete) DELETE DELETE ·로깅(Logging) - 시스템이 작동할 때 당시의 상태와 작동정보를 기록하는 것 9.1.1. 로깅 레벨 설정 + 쿼리 줄 바꿈 + 매개변수 보여주기 src > main > resour..
[Spring Boot] 09. CRUD와 SQL 쿼리9장. CRUD와 SQL 쿼리 종합 서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청하면 JPA의 리파지터리가 DB에 해당 요청을 전달하고, 요청을 받은 DB는 SQL로 쿼리를 작성해 데이터를 관리한다. 9.1. JPA 로깅 설정하기 · 쿼리(Query) - DB에 정보를 요청하는 구문 데이터 관리 SQL HTTP 데이터 생성(Create) INSERT POST 데이터 조회(Read) SELECT GET 데이터 수정(Update) UPDATE PATCH (PUT) 데이터 삭제(Delete) DELETE DELETE ·로깅(Logging) - 시스템이 작동할 때 당시의 상태와 작동정보를 기록하는 것 9.1.1. 로깅 레벨 설정 + 쿼리 줄 바꿈 + 매개변수 보여주기 src > main > resour..
2024.01.18 -
8장. 게시글 삭제하기 : Delete 8.1. 데이터 삭제 과정 (1) 클라이언트가 HTTP 메서드로 특정 게시글의 삭제를 요청 (2) 컨트롤러는 리파지터리를 통해 DB에 저장된 데이터를 삭제, (기존에 데이터가 있는 경우에만 수행) (3) 삭제 완료 후 클라이언트를 결과 페이지로 리다이렉트 · RedirectAttributes - 결과 페이지로 리다이렉트할 때 클라이언트에 삭제 완료 메시지도 같이 띄워주기 위한 클래스 - RedirectAttributes 객체의 addFlashAttribute() 메서드를 통해 리다이렉트된 페이지에서 사용할 일회성 데이터 등록 8.2. 데이터 삭제하기 8.2.1. Delete 버튼 추가 src > main > resources > template > articles ..
[Spring Boot] 08. 게시글 삭제하기8장. 게시글 삭제하기 : Delete 8.1. 데이터 삭제 과정 (1) 클라이언트가 HTTP 메서드로 특정 게시글의 삭제를 요청 (2) 컨트롤러는 리파지터리를 통해 DB에 저장된 데이터를 삭제, (기존에 데이터가 있는 경우에만 수행) (3) 삭제 완료 후 클라이언트를 결과 페이지로 리다이렉트 · RedirectAttributes - 결과 페이지로 리다이렉트할 때 클라이언트에 삭제 완료 메시지도 같이 띄워주기 위한 클래스 - RedirectAttributes 객체의 addFlashAttribute() 메서드를 통해 리다이렉트된 페이지에서 사용할 일회성 데이터 등록 8.2. 데이터 삭제하기 8.2.1. Delete 버튼 추가 src > main > resources > template > articles ..
2024.01.18 -
7장 : 게시글 수정하기 : Update 7.1. 데이터 수정 과정 7.1.1. 만들고 기존 데이터 불러오기 - 상세 페이지에서 [Edit] 버튼 누르기 - 요청 받은 컨트롤러가 해당 글의 id로 DB에서 데이터 가져오기 - 컨트롤러가 가져온 데이터를 뷰에서 사용하도록 모델에 등록 - 모델에 등록된 데이터를 에서 보여주기 7.1.2. 데이터를 수정해 DB에 반영 후 결과를 볼 수 있게 로 리다이렉트 - 폼 데이터(수정 요청 데이터)를 DTO에 담아 컨트롤러에서 받기 - DTO를 엔티티로 변환 - DB에서 기존 데이터를 수정 데이터로 갱신 - 수정 데이터를 로 리다이렉트 7.2. 수정 페이지 만들기 7.2.1. Edit 버튼 만들기 src > main > resources > template > artic..
[Spring Boot] 07. 게시글 수정하기7장 : 게시글 수정하기 : Update 7.1. 데이터 수정 과정 7.1.1. 만들고 기존 데이터 불러오기 - 상세 페이지에서 [Edit] 버튼 누르기 - 요청 받은 컨트롤러가 해당 글의 id로 DB에서 데이터 가져오기 - 컨트롤러가 가져온 데이터를 뷰에서 사용하도록 모델에 등록 - 모델에 등록된 데이터를 에서 보여주기 7.1.2. 데이터를 수정해 DB에 반영 후 결과를 볼 수 있게 로 리다이렉트 - 폼 데이터(수정 요청 데이터)를 DTO에 담아 컨트롤러에서 받기 - DTO를 엔티티로 변환 - DB에서 기존 데이터를 수정 데이터로 갱신 - 수정 데이터를 로 리다이렉트 7.2. 수정 페이지 만들기 7.2.1. Edit 버튼 만들기 src > main > resources > template > artic..
2024.01.17 -
6장 : 게시판 내 페이지 이동하기 6.1. 링크와 리다이렉트란? · 링크 - 미리 정해 놓은 요청을 간편히 전송하는 기능 - 보통 페이지 이동을 위해 사용 - HTML의 태그 혹은 태그로 작성 · 리다이렉트 - 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 제시 - 분리된 기능을 하나의 연속적인 흐름으로 연결 가능 6.2. 링크와 리다이렉트를 이용해 페이지 연결하기 6.2.1. 새 글 작성 링크 만들기 src > main > resources > template > articles > index.mustache New Article {{>layouts/footer}} # 목록 페이지에 새 글을 작성하는 링크 추가하기 6.2.2. 입력 페이지 To 목록페이지 src > main > ..
[Spring Boot] 06. 페이지 이동하기6장 : 게시판 내 페이지 이동하기 6.1. 링크와 리다이렉트란? · 링크 - 미리 정해 놓은 요청을 간편히 전송하는 기능 - 보통 페이지 이동을 위해 사용 - HTML의 태그 혹은 태그로 작성 · 리다이렉트 - 클라이언트가 보낸 요청을 마친 후 계속해서 처리할 다음 요청 주소를 제시 - 분리된 기능을 하나의 연속적인 흐름으로 연결 가능 6.2. 링크와 리다이렉트를 이용해 페이지 연결하기 6.2.1. 새 글 작성 링크 만들기 src > main > resources > template > articles > index.mustache New Article {{>layouts/footer}} # 목록 페이지에 새 글을 작성하는 링크 추가하기 6.2.2. 입력 페이지 To 목록페이지 src > main > ..
2024.01.17 -
5장. 게시글 읽기 : Read 5.1. 데이터 조회 과정 (1) 사용자가 데이터를 조회해달라고 웹페이지에서 URL 요청 (2) 컨트롤러가 요청을 받고 해당 URL에서 찾으려는 데이터 정보를 리파지터리에 전달 (3) 리피지터리가 정보를 가지고 DB에 데이터 조회를 요청 (4) DB가 데이터를 찾고 엔티티로 변환 (5) 엔티티는 모델을 통해 뷰 템플릿으로 전달 (6) 뷰 페이지가 화면에 출력 5.2. 단일 데이터 조회하기 5.2.1. URL 요청받기 · 게시글 1번 조회 URL : localhost:8080/articles/1 · 게시글 2번 조회 URL : localhost:8080/articles/2 · 게시글 1000번 조회 URL : localhost:8080/articles/1000 src > m..
[Spring Boot] 05. 게시글 읽기5장. 게시글 읽기 : Read 5.1. 데이터 조회 과정 (1) 사용자가 데이터를 조회해달라고 웹페이지에서 URL 요청 (2) 컨트롤러가 요청을 받고 해당 URL에서 찾으려는 데이터 정보를 리파지터리에 전달 (3) 리피지터리가 정보를 가지고 DB에 데이터 조회를 요청 (4) DB가 데이터를 찾고 엔티티로 변환 (5) 엔티티는 모델을 통해 뷰 템플릿으로 전달 (6) 뷰 페이지가 화면에 출력 5.2. 단일 데이터 조회하기 5.2.1. URL 요청받기 · 게시글 1번 조회 URL : localhost:8080/articles/1 · 게시글 2번 조회 URL : localhost:8080/articles/2 · 게시글 1000번 조회 URL : localhost:8080/articles/1000 src > m..
2024.01.14 -
4장. 롬복(Lombok)과 리팩터링 4.1. 롬복이란? · 롬복(Lombok) - 코드를 간소화해주는 라이브러리 - 생성자 코드 생략 : @AllArgsConsturctor - toString() 메서드 생략 : @ToString - println() 문을 로깅 기능으로 대체 : @Slf4j · 리팩터링 - 코드의 기능에 변함없이 코드의 구조 또는 성능을 개선하는 작업 4.2. 롬복을 활용해 리팩터링하기 4.2.1. 롬복 설치 build.gradle dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' (중략) } 4.2.2. DTO 리팩터링하기 · 생성자 지우기 : @AllA..
[Spring Boot] 04. 롬복과 리팩터링4장. 롬복(Lombok)과 리팩터링 4.1. 롬복이란? · 롬복(Lombok) - 코드를 간소화해주는 라이브러리 - 생성자 코드 생략 : @AllArgsConsturctor - toString() 메서드 생략 : @ToString - println() 문을 로깅 기능으로 대체 : @Slf4j · 리팩터링 - 코드의 기능에 변함없이 코드의 구조 또는 성능을 개선하는 작업 4.2. 롬복을 활용해 리팩터링하기 4.2.1. 롬복 설치 build.gradle dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' (중략) } 4.2.2. DTO 리팩터링하기 · 생성자 지우기 : @AllA..
2024.01.14