2025/01 6

14. 댓글 엔티티와 리파지터리 만들기

14.1 댓글 기능의 개요 댓글과 게시글의 관계 | One to Many (일대다, 1:N): 하나의 게시글과 수많은 댓글| Many to One (다대일, N:1): 여러 댓글과 하나의 게시글 기본키테이블에서 자료를 대표하는 속성 대표키기본키 중에서 동일 테이블 내에 중복된 값이 없는 속성 외래키하나의 테이블에서 다른 테이블의 특정 속성과 같은 연관 대상이 있는 경우 이를 가리키는 속성 엔티티DB 데이터를 담는 자바 객체로 엔티티를 기반으로 해 테이블을 생성 리포지터리엔티티를 관리하는 인터페이스로 데이터 CRUD 등의 기능을 제공하는 역할 Comment 엔티티와 Article 엔티티의 관계CommentRepository는 CrudRepository 대신 JpaRepository를 상속JpaReposit..

13. 테스트 코드 작성하기

13.1 테스트란 테스트test, 프로그램이 의도대로 작 작동하는 확인하는 과정으로 프로그램의 품질을 검증 데스트 코드코드를 검증하는 과정테스트를 통과하면 리팩토링 후 코드를 개선하지만, 실패하는 경우 디버깅 과정을 거쳐 오류 수정 i) 예상 데이터 작성하기ii) 실제 데이터 획득하기iii) 예상 데이터와 실제 데이터 비교해 검증하기 테스트 케이스성공, 실패를 모두 고려하여 다양한 경우의 테스트 코드를 대비 테스트 주도 개발Test Drvien Development (TDD), 테스트 코드를 만든 후 이를 통과하는 최소한의 코드를 시작점으로 점차 코드를 개선 및 확장하는 방식 13.2 테스트 코드 작성하기 테스트 코드 기본 틀Service의 메소드에서 오른쪽 마우스를 클릭해 Generate▶Test 선택..

12. 서비스 계층과 트랜잭션

12.1 서비스와 트랜잭션의 개념 서비스Service, 컨트롤러와 리포지터리 사이에 위치하는 계층으로 비즈니스 로직을 처리하는 순서를 총괄하는 역할 트랜잭션Transaction, 서비스 업무 처리의 최소 단위로 모두 성공해야 하는 일련의 과정 롤백Rollback, 트랜잭션이 실패했을 때, 초기 단계로 되돌리는 역할 12.2 서비스 계층 만들기 서비스 객체 생성ArticleService 객체 생성해 articleRepository에 객체 주입public class ArticleApiController { @Autowired private ArticleService articleService;}@Servicepublic class ArticleService { @Autowired pri..

11. HTTP와 REST 컨트롤러

11.1 REST API의 동작 이해하기 JSON키와 값의 쌍으로 된 속성으로 데이터를 표현JSON의 값으로 또 다른 JSON 데이터나 배열을 삽입할 수 있음 RESTHTTP URL로 서버의 자원을 명시하고 HTTP 메서드로 해당 자원에 대해 CRUD API클라이언트가 서버의 자원을 요청할 수 있도록 서버에서 제공하는 인터페이스 11.2 REST API의 구현 과정 REST API를 구현하기 위해서는 REST API의 주소인 URL을 설계 필요 | 조회 요청: /api/articles/{id}: GET 메서드로 Article 목록 전체 또는 단일 Article 조회 | 생성 요청: /api/articles: POST 메서드로 새로운 Article을 생성해 목록에 저장 | 수정 요청: /api/articl..

10. RESET API와 JSON

10.1 REST API와 JSON의 등장 배경 REST APIRepresentational State Transfer API, 서버의 자원을 클라이언트에 구애받지 않고 사용할 수 있도록 하는 설게 방식HTTP 요청에 대한 응답으로 서버의 자원을 반환이때, 서버에서 보내는 응답이 특정 기기에 종속되지 않고 모든 기기에서 통용될 수 있는 데이터 반환 APIApplication Programming Interface, 애플리케이션을 간편히 사용할 수 있도록 하는 약속HTTP 요청에 따른 JSON 응답에 대한 약속 10.2 REST API 동작 살펴보기 {JSON} Placeholderhttps://jjjsonplaceholder.typicode.com가짜 API를 사용해 무료로 각종 테스트를 진행할 수 있도..

9. CRUD와 SQL 쿼리 종합

9.1 JPA 로깅 설정하기 JPA자바 객체와 관계형 데이터베이스 간의 매핑을 제공하며 SQL을 직접 작성하지 않아도 데이터베이스 작업을 수행할 수 있도록 도와주는 기술서버에서 데이터 생성, 조회, 수정 등을 요청하면 JPA 리파지토리가 DB에 해당 요청 전달이떄, DB가 SQL로 쿼리를 작성해 테이블 속 데이터를 관리 로깅 레벨 디버그spring.application.name = firstprojectserver.servlet.encoding.force = Truespring.h2.console.enabled = Truespring.jpa.defer-database-initialization = truelogging.level.org.hibernate.SQL = DEBUG 로깅7단계로 구성되어 있으며 ..