본문 바로가기

spring boot33

[자율학습] 댓글 생성하기 1. POST Controller 만들기 2. Service 만들기 3. Comment Entity에서 createComment 메서드 만들기 - 정상작동 확인 2024. 2. 11.
[자율학습] 댓클 컨트롤러와 서비스 만들기 1. RestController 만들기 (해당 article의 댓글 모두 조회하기) 2. CommentService 만들기 - CommentDto도 만들어줘야함 - Postman 으로 요청해보기 3. CommentService 코드 stream으로 개선 - 잘 된다. 2024. 2. 11.
[자율학습] 댓글 리포지토리 테스트 코드 작성 1. Test 코드 만들기 - @DataJPaTest : 해당 클래스를 JPA와 연동해서 테스트하겠다는 선언 - @DisplayName : 테스트 이름 설정 - 직접 한땀한땀 입력해서 성공했다 2024. 2. 11.
[자율학습] 댓글 엔티티와 리포지토리 만들기 1. 게시글과 댓글의 관계 - 게시글 1개에 댓글이 여러개이므로 일대다 관계이다. - 연관 대상을 가리키는 속성 article_id 는 외래키(Foreign key)라고 한다. - 외래키는 항상 연관된 테이블의 대표키를 가리킨다. 2. Comment 엔티티와 CommentRepository를 만든다 - Dummy Data 추가하기 - 서버 재시작 후 확인하기 - 댓글 Repository - XML쿼리 만들기 - orm.xml - 다음에 테스트해보자 2024. 2. 11.
[자율학습] 테스트 코드 1. 테스트 코드 작성의 기초 - 예상 데이터 작성하기 - 실제 데이터 획득하기 - 예상 데이터와 실제 데이터 비교하기 2. TDD - 테스트 주도 개발 - 테스트 선 작성 -> 개발 -> 리팩터링 -> 테스트 -> 개발 -> 리팩터링 ... 3. ArticleService 검증하는 테스트코드 작성해보기 - 메서드에서 Command + N (생성) -> Test - 아래와 같이 나옴 - 아래처럼 자동으로 패키지가 생성된다. - @SpringBootTest : 테스트 선언 - @Test : 개별 테스트 - 이어서 show() 메서드 테스트해보기 - create() 메서드 테스트하기 - 근데 이렇게까지 하면 index() 가 실패한다. - create를 실행해서 테스트케이스에서 데이터를 입력했으므로 inde.. 2024. 2. 8.
[자율학습] 트랜잭션 맛보기 1. 트랜잭션 시나리오 - 게시판에 데이터 3개를 한꺼번에 생성을 요청한다 - 데이터를 DB에 저장하는 과정에서 의도적으로 오류를 발생시킨다 - 롤백되는 것을 확인한다. 2. 구현 - /api/transaction-test 로 post요청을 보내본다. - ArticleApiController - ArticleService - 데이터가 추가되지 않고 기본 세개의 데이터만 남게 된다. 2024. 2. 7.
[자율학습] 서비스와 트랜잭션 1. 서비스와 트랜잭션의 개념 1. 서비스 : - 컨트롤러와 리포지토리 사이에 위치하는 계층 - 서버의 핵심 기능을 처리하는 순서를 총괄한다. - 웨이터는 컨트롤러 주방장은 서비스, 보조요리사는 리포지토리다 2. 트랜잭션 - 서비스 업무처리의 진행 단위 - 모두 성공해야하는 일련의 과정이다. - 트랜잭션이 실패로 돌아갈 경우 진행 초기단계로 돌리는 것을 rollBack 이라고 한다. - 아래의 경우에는 컨트롤러가 서비스 역할까지 한다. 2. 서비스 계층 만들기 - 변수 변경 - 패키지 생성 -> 클래스 생성 - 아래와 같이 ArticleController 내부를 바꾼다. - articleService에 가서 index 메소드를 생성해줘야 한다. - 할일을 Service 한테 위임한 RestControll.. 2024. 2. 7.
[자율학습] REST API 1. REST API란 ? - 클라이언트에 구애받지 않고 사용할 수 있게 하는 설계 방식 - HTTP 요청에 대한 응답으로 서버의 자원을 반환함. - 응답으로 화면이 아닌 JSON Data를 전송 - HTTP URL로 서버의 자원을 명시하고 HTTP 메서드로 해당자원에 대해 CRUD 하는 것 2. 구현 과정 - URL 설계 1. GET : '/api/articles' or '/api/article/{id}' : 조회 2. POST : '/api/articles' : 생성 3. PATCH(PUT) : '/api/articles/{id}' : 수정 4. DELETE : '/api/articles/{id}' : 삭제 - Controller 설계 : 게시판을 만들 땐 ArticleController를 만들었지만.. 2024. 2. 7.