본문 바로가기

Java/Spring Boot24

[Day 12] 서비스 계층과 트랜잭션 1. 서비스와 트랜잭션의 개념서비스(service)란?컨트롤러와 리파지터리 사이에 위치하는 계층으로, 서버의 핵심 기능(비즈니스 로직)을 처리하는 순서를 총괄한다.ex) 컨트롤러 == 웨이터 / 서비스 == 주방장 / 보조 요리사 == 리파지토리 트랜잭션(transaction)이란?모두 성공해야 하는 일련의 과정(쪼갤 수 없는 업무 처리의 최소 단위)+ 롤백(rollback)트랜잭션이 실패로 돌아갈 경우 진행 초기 단계로 돌리는 것  ※ 1인 2역을 하는 REST 컨트롤러복잡한 처리 과정이 아니라서 컨트롤러 혼자 2역을 수행해도 충분한데 일반적으로 웹 서비스는 컨트롤러와 리파지터리 사이에 서비스 계층을 두어 역할 분업2. 서비스 계층 만들기1. 컨트롤러, 서비스, 리파지터리의 역할을 분업com.examp.. 2024. 8. 8.
[Day 11] HTTP와 REST 컨트롤러 1. REST API의 동작 이해HTTP 요청 메시지와 응답 메시지의 구조REST: HTTP URL로 서버의 자원을 명시하고, HTTP 메서드(POST, GET, PATCH/PUT, DELETE)로 해당 자원에 대해  CRUD(생성, 조회, 수정, 삭제)하는 것을 말한다.API: 클라이너트가 서버의 자원을 요청할 수 있도록 서버에서 제공하느 인터페이스이다.2. REST API의 구현 과정REST  API를 구현하려면 REST API의 주소, 즉 URL을 설계해야된다.조회 요청: /api/articles or /api/articles/{id} -> GET생성 요청: /api/articles -> POST수정 요청: /api/articles/{id} -> PATCH삭제 요청: /api/articles/{id.. 2024. 8. 7.
[Day 10] REST API와 JSON 1. REST API와 JSONREST API(Representation State Transfer API)는 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식이다. REST API 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. 서버는 클라이언트의 요청에 대한 응답으로 화면이 아님 데이터를 전송한다. 이때 사용하는 응답 데이터는 JSON(JavaScrigt Object Notation)이다.JSON 데이터는 키(key)와 값(value)으로 구성된 정렬되지 않은 속성의 집합이다.{ "name": "예술", "breeds":"말트리버", "age":"12"}※ API 이란?애플리케이션을 간편히 사용할 수 있게 하는, 미리 정해진 일종의 약속으로, .. 2024. 8. 7.
[Day 9] CRUD와 SQL 쿼리 종합 1. JPA 로깅 설정하기서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청하면 JPA의 리파지터리가 DB에 해당 요청을 전달한다. 요청을 받은 DB는 자신의 언어, 즉 SQL로 쿼리를 작성해 테이블 속 데이터를 관리한다. 여기서 쿼리(query)는 DB에 정보를 요청하는 구문을 말한다. 로깅이란?시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것 JPA 로깅 설정resources > application.properties 코드 추가로깅 레벨은 7단계로 나누어진다.TRACE(레벨 1): DEBUG 레벨보다 더 상세한 정보DEBUG(레벨 2): 응용 프로그램을 디버깅하는 데 필요한 세부 정보INFO(레벨 3): 응용 프로그램의 순조로운 진행 정보WARN(레벨 4): 잠재적으로 유해한 상황 정보.. 2024. 8. 6.
[Day 8] Delete(게시글 삭제하기 1. 데이터 삭제 과정1. 클라이언트가 HTTP 메서드로 특정 게시글의 삭제를 요청2. 삭제 요청을 받은 컨트롤러는 리파지터리를 통해 DB에 저장된 데이터를 찾아 삭제 (기존에 데이터가 있을 경우)3. 삭제가 완료되면 클라이언트를 결과 페이지로 리다이렉트 ※ 결과 페이지로 리다이렉트할 때 클라이언트에 삭제 완료 메시지 띄우려면 RedirectAttributes 클래스 사용2. 데이터 삭제하기1. Delete 버튼 추가하기src > main > resources > templates > articles > show.mustache 코드 추가 2. Delete 요청을 받아 데이터 삭제하기controller/AriticleController.java 코드 추가 결과 1 결과 2 3. 삭제 완료 메시지 남기기c.. 2024. 8. 6.
[Day 7] Update(게시글 수정하기) 1. 데이터 수정 과정1. 만들고 기조 데이터 불러오기에서 [Edit] 버튼을 클릭요청을 받은 컨트롤러는 해당 글의 id로 DB에서 데이터를 찾아 가져오기컨트롤러는 가져온 데이터를 뷰에서 사용할 수 있도록 모델을 등록모델에 등록된 데이터를 에서 보여준다. 그러면 사용자가 내용을 수정할 수 있는 상태2. 데이터를 수정해 DB에 반영한 후 결과를 볼 수 있게 로 리다이렉트하기폼데이터(수정 요청 데이터)를 DTO에 담아 컨트롤러에서 받는다.DTO를 엔티티로 변환DB에서 기존 데이터를 수정 데이터로 갱신수정 데이터를 로 리다이렉트2. 만들기1. 에 Edit 버튼 만들기src > main > resources > templates > articles > show.mustache 코드 추가 2. Edit 요청을.. 2024. 8. 5.