본문 바로가기

Spring/코드 뜯어보기6

[Spring Boot] Principal 은 어디서 username을 가져오는가? 테스트 수정 - 질문,답변 테스트 전, Member 추가 단순히 createSampleData 안에 MemberServieTests.createSampleData() 를 한번 실행하였다. 강사님 코드와 비교하였을 때에도 동일하였다. public static int createSampleData(MemberService memberService, QuestionRepository questionRepository) throws SignupUsernameDuplicatedException, SignupEmailDuplicatedException { MemberServiceTests.createSampleData(memberService); member=memberService.findByUsername("u.. 2022. 8. 26.
[Spring Boot] `@NotEmpty`, `@NotBlank`, `@NotNull` 이란? https://yejincode.tistory.com/14 [Spring Boot] 질문, 답변 등록 with REST API 질문 등록 ✏️ 처음 내가 만든 코드 RESTful 하게 url을 만들어 보고자, url을 아래와 같이 구성해 보았다. GET /question : 질문 객체 생성 폼 POST /question : 질문 객체 생성 GET /questions : 질문 객체 리스트 yejincode.tistory.com 위 게시글에 이어지는 내용입니다. subject와 content 는 비어있으면 안되기 때문에, @NotEmpty어노테이션으로 값이 없을 때 message 를 주도록 하였다. import javax.validation.constraints.NotEmpty; import javax.va.. 2022. 8. 19.
[Spring Boot] 질문, 답변 등록 with REST API 질문 등록 ✏️ 처음 내가 만든 코드 RESTful 하게 url을 만들어 보고자, url을 아래와 같이 구성해 보았다. GET /question : 질문 객체 생성 폼 POST /question : 질문 객체 생성 GET /questions : 질문 객체 리스트 처음 코드 분석 및 개선점 단순히 new Question() 생성자로 quetion 객체를 생성하였다. → 의존성주입을 하지 않았으므로, 이부분을 개선하면 좋을 것 같다. 엔티티 클래스는 @Setter 보다는 직접 update 등의 메소드 명을 지정하는 것이 좋다고 하여 @Setter을 이용해서 각각의 필드를 set 하였다. → 객체가 생성되는 것은 builder 를 이용한 생성자를 만들어서 생성자로 생성하는 것이 의존성 주입에 좋다고 하여, 생.. 2022. 8. 19.
[Spring Boot] 템플릿 상속 템플릿 상속 ✏️가져온 템플릿 타임리프 형태로 수정하기 가져온 템플릿 html 를 layout.html 로 분리하기 startbootstrap.com 사이트에서 탬플릿을 가져왔다. startbootstrap.com Blog Post - Free Bootstrap 5 Blog Starter Template - Start Bootstrap Like our free products? Our pro products are even better! Go Pro Today! startbootstrap.com ‣ 템플릿 html 더보기 Start Bootstrap Menu Home About Sample Post Contact 기존의 상대경로 → 절대경로로 변경하기 절대경로로 수정해야 단일도메인의 context-pat.. 2022. 8. 19.
[Spring Boot] JPA에서 truncate 구현 truncate 를 auto_increment=1 로 변경 테이블을 truncate 하기 위해 foreign key 제약을 건드는 것은 위험성이 따른다. 각각의 데이터를 다 지워버리고 AUTO_INCREMENT =1 로 만듦으로써 테이블을 clear 한다. // truncate() 실행 쿼리 @Query(value = "ALTER TABLE question AUTO_INCREMENT = 1", nativeQuery = true) // question @Query(value = "ALTER TABLE answer AUTO_INCREMENT = 1", nativeQuery = true) // answer // setForeingKeyChecks()는 할 필요 없다. - 주석 // beforeEach - cl.. 2022. 8. 13.
[Spring Boot] JPA "SET FOREIGN_KEY_CHECKS=1" Spring Boot 프로젝트 truncate 구현하기 QuestionRepository 인터페이스에 truncatTable() 메소드 추가 truncate “테이블 이름” 이라는 query를 날림. @Transactional @Modifying @Query(value="truncate question", nativeQuery = true) void truncateTable(); answer 테이블에서 foreign key를 참조하기 때문에 지울 수 없다. Cannot truncate a table referenced in a foreign key constraint (`qna`.`answer`, CONSTRAINT `FK8frr4bcabmmeyyu60qt7iiblo` FOREIGN KEY (`quest.. 2022. 8. 12.