목록전체 글 (364)
seong
clear : 커멘드 창 모두 정리 pwd : 현재 내 위치 ls : 현재 폴더 리스트 보기 ls -al : 숨긴 폴더 모두 보기 ls -l : cd : 폴더 이동 cd .. : 현재 폴더 기준 한칸 상위 폴더로 이동 cd ~/ : 사용자 이름 폴더(내 폴더 )로 이동 ( 서버를 만들때 항상 자신의 이름 폴더를 한개 생성해준다. ) cd / : 최상위 폴더로 이동
Spring의 IOC에 들어가는 모든 객체들을 Bean이라고 함.
통합 테스트를 위한 어노테이션 @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT) // 통합테스트 통합 테스트를 위한 팁 1. 테스트용 yml파일이 따로 필요하다. 2. H2 DB를 사용할 시 H2는 MariaDB를 지원하지 않기 때문에 DB설정이 따로 필요하다(MySQL사용) spring: datasource: url: jdbc:h2:mem:test;MODE=MYSQL # MariaDB 가 안됨 driver-class-name: org.h2.Driver username: sa password: h2: console: enabled: true 3. 테스트 진행시 메서드마다 테스트 격리가 필요하다. 4. SpringBoot 통합 테스트는 Rollba..
CORS (Cross-origin resource sharing) 웹 페이지의 제한된 자원을 외부 도메인에서 접근할 수 있도록 해주는 것이다. HTTP 프로토콜에서는 자신과 동일한 도메인만 HTTP요청을 보내는것이 가능하도록 하고있다. 그래서 다른 도메인에서 접근하려하면 에러가 발생한다. 그래서 이것을 요청이 가능하도록 하기 위해서 CORS가 만들어졌다. Spring에서 사용하는 방법 - @CrossOrigin 어노테이션 사용. @CrossOrigin - 해당 메서드에 모든 도메인에 대해서 허용 @CrossOrigin("http://localhost:8000") - 8000에 대해서만 허용. jsp에서 호출 let response = await fetch("주소");
만들기전 필요 부분 생각 - Comment 테이블 설계 하나의 게시글에 여러가지 댓글 Board와 Comment는 1:n 관계이므로 Comment에 FK 한명의 유저는 여러개의 댓글 작성 가능 User와 Comment는 1:n 관계 이므로 Comment에 FK = 그럼 총 FK는 2개가 된다. - 댓글은 게시글 상세보기에 포함된다. BoardDetailRespDto에 댓글 Dto 추가 필요함. 작성 1. Comment.java @ManyToOne - FK 하나의 게시글엔 여러개의 댓글, 여러명의 유저가 쓸 수 있다. 테이블 설계 할때 1:n의 관계가 나오면 항상 n 쪽에 FK가 걸린다. @Getter @NoArgsConstructor @Entity public class Comment { @Id @Gen..
사용하는 방법 : join fetch 을 사용. 실습 하기 전 Board 구조 확인 기존의 쿼리문 select b from Board b where b.id = :id 아래 처럼 SELECT를 3번을 진행 한다. 사실 join을 하면 한번에 다 가져오는 정보이지만 굳이 3번을 해야해? 라는 의문이 생길 수 있다. JPQL의 Join 문법 - join fetch select b from Board b join fetch b.user u join fetch b.comments c where b.id = :id 실행 후 확인 SELECT한번 할때 한번에 다 가져온다.
게시글을 작성할 때나(누가 쓰는지), 수정할때, 삭제할 때 등등 만약 게시글이 없는데 클라이언트가 그 값을 임의로 전달을 했을때 에러가 발생해야한다. 그래서 항상 영속화를 진행 해준다! 예시 댓글은 보통 게시글에 쓴다. 그래서 게시글이 있는지 먼저 findById로 확인을 해준다.
Save할때 필요한것 - RequestDto (요청에 대한 Dto) : title, content, user - ResponseDto (응답에 대한 Dto) : id, title, content, user 순서 1. Dto 생성 (요청, 응답) 2. Service 수정 3. Controller 수정 0. Dto 생성 전 Builder 선언 엔티티 아래 생성자를 만들어준다. Builder는 순서에 신경쓰지않고, 필요한 정보만 넣을 수 있는 생성자 라고 생각하면 된다. @Builder public Board(Long id, String title, String content, User user) { this.id = id; this.title = title; this.content = content; thi..