전체 글(14)
-
14일차 - 댓글 CURD - 엔티티, 레포지토리 만들기
댓글 기능댓글과 게시글의 관계게시판과 댓글의 관계는 일대다(1:N) 관계라고 한다. 게시판과 댓글의 테이블에는 자신을 대표하는 id가 있는데, 이와 같은 속성을 대표키(PK, Primary Key)라고 한다.댓글 테이블에 있는 게시판의 id가 있는데, 이와 같이 연관 대상을 가리키는 속성을 외래키(FK, Foreign Key) 라고 한다.댓글 엔티티와 레포지토리 설계Articleid: Longtitle: Stringcontent: String Commentid: Longarticle: Article@ManyToOnenickname: Stringbody: String댓글 만들기댓글 엔티티 만들기@Entity@NoArgsConstructor@AllArgsConstructor@Getter@ToStringpub..
2024.08.16 -
13일차 - 테스트 코드 작성하기
테스트란테스트란 프로그램의 품질을 검증하는 것으로, 의도대로 프로그램이 잘 동작하는지 확인하는 과정이다.테스트 코드 작성법예상 데이터 작성하기실제 데이터 획득하기예상 데이터와 실제 데이터 비교해 검증하기테스트 케이스테스트는 다양한 경우를 대비해 작성하는데, 이를 테스트 케이스라고 한다. 성공할 경우, 실패할 경우를 고려하여 작성한다.테스트 코드 작성하기index() 테스트하기테스트 통과@SpringBootTestclass ArticleServiceTest { @Autowired ArticleService articleService; @Test void index() { // 1. 에상 데이터 Article a = new Article(1L, "..
2024.08.16 -
12일차 - 서비스 계층과 트랜잭션
서비스와 트랜잭션의 개념서비스서비스란 컨트롤러와 레포지토리 사이에 위치하는 계층으로, 서버의 핵심 기능을 처리하는 순서를 총괄한다.클라이언트가 요청을 보낸다.컨트롤러에서 요청을 받아 서비스로 전달한다.서비스에서 코드 흐름을 따라 처리를 진행할 때 필요한 데이터를 레포지토리에서 받는다.레포지토리는 DB에서 필요한 데이터를 가져와 서비스로 반환한다.트랜잭션일반적으로 서비스 업무 처리는 트랜잭션 단위로 진행된다. 트랜잭션 이란 모두 성공해야 하는 일련의 과정으로, 쪼갤 수 없는 업무 처리의 최소 단위이다.서비스 계층 만들기클라이언트 요청,응답과 레포지토리에서 데이터를 가져오는 역할을 컨트롤러에서 다 진행했는데, 컨트롤러에서는 클라이언트의 요청, 응답 역할, 서비스에서는 레포지토리에서 데이터를 가져오는 역할로 ..
2024.08.13 -
11일차 - HTTP와 REST 컨트롤러
REST API의 구현과정REST API 주소 설계조회 요청/api/articles, /api/articles/{id}생성 요청/api/articles수정 요청/api/articles/{id}삭제 요청/api/articles/{id}URL 요청을 받아 JSON 으로 반환하는 컨트롤러 만들기REST API 구현하기GET 구현하기1. 모든 게시글 조회하기/api/articles 주소로 오는 API 요청을 받는다.레포지토리에서 findAll() 를 통해 전체 데이터를 조회해서 반환한다.@RestController public class ArticleApiController { @Autowired private ArticleRepository articleRepository; @GetMap..
2024.08.12 -
10일차 - REST API와 JSON
등장 배경서버는 웹 서비스를 사용하는 모든 클라이언트(웹 브라우저, 스마트폰, …)의 요청에 응답해야 한다. 그러기 위해서 REST API 를 사용한다.REST API(Representatinal State Transfer API) 는 네트워크 상에서 서로 다른 시스템 간에 데이터를 교환하기 위한 아키텍처 스타일이다. 이 방식에서는 HTTP 요청에 대한 응답으로 서버의 자원을 반환한다. 이 때 데이터를 전송하는데, 이 데이터는 JSON 방식으로 사용한다.REST API 동작 살펴보기PUT 과 PATCH 의 차이점PUT : 기존 데이터를 전부 새 내용으로 변경한다. 만약 기존 데이터가 없다면 새로 생성한다.PATCH : 기존 데이터 중에서 일부만 새 내용으로 변경한다.HTTP 상태코드1xx (정보) : 요..
2024.08.09 -
9일차 - CRUD와 SQL 쿼리 종합
JPA 로깅 설정하기서버에서 데이터의 생성, 조회, 수정, 삭제 등을 요청하면 JPA의 레포지토리가 DB에 해당 요청을 전달한다. DB는 SQL로 쿼리를 작성해 테이블 속 데이터를 관리하게 된다.application.properties 에서 로깅을 설정하여 시스템이 작동할 때 당시의 상태와 작동 정보를 기록하는 것을 확인한다. 1. 로깅 설정하기# JPA 로깅 설정# 디버그 레벨로 쿼리 출력logging.level.org.hibernate.SQL=DEBUG로깅 레벨에 7단계가 있는데 출력 레벨을 설정하면 해당 레벨 이상의 로그가 출력된다.TRACE : DEBUG 보다 더 상세한 정보DEBUG : 응용 프로그램을 디버깅하는데 필요한 세부 정보INFO : 응용 프로그램의 순조로운 진행 정보WARN : 잠재적..
2024.08.08