일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 스프링 핵심 기능
- kotlin
- 스프링
- 자바
- JDBC
- Android
- db
- Proxy
- transaction
- pointcut
- spring
- java
- JPQL
- 김영한
- 그리디
- AOP
- Greedy
- Spring Boot
- 알고리즘
- SpringBoot
- http
- Thymeleaf
- 인프런
- springdatajpa
- Exception
- jpa
- 스프링 핵심 원리
- 백준
- Servlet
- QueryDSL
- Today
- Total
목록SpringBoot (47)
개발자되기 프로젝트
['21.07.18] 간단한 프론트 개발#1 기본적인 기능이 갖추어 졌으니, 간단한 프론트를 개발하여 연결해보자. 1. PageController 기존의 ApiController가 아닌 PageController를 만들어 주자. @Controller @RequestMapping("/movie/pages") public cla.. bsh-developer.tistory.com 앞선 글에서 말한 것 처럼, 이미지 크기가 너무 작았다. 따라서 영화 API를 통해 썸네일을 가져오는 것이 아니라 별도 이미지 검색을 해서 가져와보도록 하자. 전체적인 구성은 영화 검색 API를 사용하는 것과 동일하다. 1.application.yml Uri Components Builder를 활용하여 url을 생성할 때 직접 입력하..
앞선 글에서 Naver API사용 시 에러코드 SE99(HTTP상태코드 500)가 뜨면서, 내부 서버 에러가 발생했다. 진짜로 서버 에러인줄 알고 있었는데, 네이버에서 제공하는 오류 코드를 보고 내가 잘못했구나.. 라는 의심이 생김. HTTP 상태 코드(오류 유형) 오류 발생 원인 해결 방법 500(서버 오류) 필수 요청 변수가 없거나 요청 변수 이름이 잘못된 경우 API 레퍼런스에서 필수 요청 변수를 확인합니다. 500(서버 오류) 요청 변수의 값을 URL 인코딩으로 변환하지 않고 전송한 경우 API 레퍼런스에서 해당 요청 변수를 URL 인코딩으로 변환해야 하는지 확인합니다. 500(서버 오류) API 호출은 정상적으로 했지만, API 서버 유지 보수나 시스템 오류로 인한 오류가 발생한 경우 개발자 포..
1. Entity란? DB table에 존재하는 Columns을 field로 가지는 객체. 클래스에 @Entity annotation을 붙여 Entity라고 명시함. 2. DTO란? DTO는 Data Transfer Object의 약자로, 계층 간 data 교환 역할을 한다. 특히 Controller와 같이 client와 맡닿아 있는 계층에 entity를 직접 전달하는 대신 DTO를 사용하여 전달한다. DTO는 단순히 데이터 교환을 위한 객체이기 때문에, 특별한 로직을 갖지 않는다. 3. Entity와 DTO를 왜 분리해야함? view와 통신하는 class는 변경이 잦다! 만약 Entity를 주고받는다면, 잦은 Entity의 변화로 DB의 변경도 잦다. 또한 Entity의 변화는 영향의 범위가 매우 크다..
사실 ManyToMany관계를 직접적으로 많이 사용하지는 않는다고 한다. 그리고 ManyToMany는 내가 만들지 않은 중간 테이블을 생성하게 된다. 앞의 글에서 Book과 Author은 many to many 관계인데, 중간에 BookAndAuthor가 있다고 해보자. 즉, Book : BookAndAuthor , BookAndAuthor : Author의 관계이다. BookAndAuthor입장에서 정리하면 아래처럼 나타낼 수 있다. BookAndAuthor : Book = N : 1 BookAndAuthor : Author = N : 1 즉, 1개의 many to many 관계가 아니라, 2개의 many to one 관계로 변경이 가능하다. 1. BookAndAuthor - BookAndAuthor ..
이전에 작성한 ERD를 보면 book와 author가 다대다 관계이다. 1. Author Author와 Book은 M : N 관계이다. books에 @ManyToMany를 적용 @Entity @Data @NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class Author extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long Id; private String name; private String country; @ManyToMany @ToString.Exclude private List ..
다른 entiry에 대해서도 연관관계를 맺어주자. 1. Book 1) Book : Review = 1 : N --> @OneToMany -->중간 table 만들지 않기 위해 @JoinColumn필수 @JoinColumn(name = "book_id") --> name = "one_PK", 현재 class의 PK를 many의 FK로. List reviews = new ArraryList(); --> Null Point Exception방지를 위해 생성. 2) Book : Publisher = N : 1 --> @ManyToOne @Entity @NoArgsConstructor @Data @EntityListeners(value = AuditingEntityListener.class) @ToString(c..
1 : N 연관관계 - 1 이전에 만들어둔 User entity와 User History는 1:N연관관계를 갖는다. User는 현재 회원정보를 가지고 있는 테이블이고 UserHistory는 특정 user id에 저장된 값이 변경된 내역을 저장하는 table이다. 1. test @.. bsh-developer.tistory.com 앞서 1 : N의 연관관계를 살펴보았다. 1 : N 관계를 이해하기 어려웠던 이유는 N(many)쪽에서 1(one)의 PK를 FK로 가지고 있었기 때문이다. 일반적으로는 @ManyToOne이 깰끔하게entity를 구성할 수 있따. 해당 entity가 필요로 하는 FK값을 entity가 함께 가지고 있다. 이전에는 User class에서 @OneToMany를 적용했다면, 이번번에는..
이전에 만들어둔 User entity와 User History는 1:N연관관계를 갖는다. User는 현재 회원정보를 가지고 있는 테이블이고 UserHistory는 특정 user id에 저장된 값이 변경된 내역을 저장하는 table이다. 1. test @Test void userRelationTest(){ User user = new User(); user.setName("David"); user.setEmail("dabid@navergoogle.com"); user.setGender(Gender.MALE); userRepository.save(user); userHistoryRepository.findAll().forEach(System.out::println); } } 먼저 relation을 테스트 하..