일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- transaction
- java
- 백준
- Exception
- 스프링 핵심 기능
- AOP
- 그리디
- 김영한
- kotlin
- Android
- JPQL
- 스프링 핵심 원리
- db
- 인프런
- jpa
- http
- springdatajpa
- Servlet
- pointcut
- QueryDSL
- Spring Boot
- 알고리즘
- JDBC
- Thymeleaf
- 자바
- Greedy
- 스프링
- SpringBoot
- spring
- Proxy
- Today
- Total
목록java (156)
개발자되기 프로젝트
1. Null이란 존재하지 않는 값을 의미 2. Null Point Exception(NPE) Copile단계에서 확인이 되지 않고 Runtime동안 발생하는 Error이다. Null인 객체에 접근하여 발생하는 예외이다. 3. Enumerate @Entity 속성 2 1. SQL이란? SQL 종류 들어가기에 앖서서 SQL(Structed Query Language, 구조적 질의언어)에 대해서 간략하게 알아보자. SQL은 관계형 DB의 관리시스템의 DATA를 관리하기 위한 만들어진 특수 목적의 프로그래 bsh-developer.tistory.com enum을 활용하여 method처리 결과의 상태를 같이 전달해 보자. enum에 대한 자세한 내용은 위에있는 링크 참고. 간단히 설명하면 enum은 일종의 상수..
앞선 글에서 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의 변화는 영향의 범위가 매우 크다..
1. Movie와 Comment 연관관계 추가 1개의 movie에는 여러 개의 comment가 달릴 수 있다. 따라서 1:N관계이다. @OneToMany(fetch = FetchType.LAZY) @JoinColumn(name = "movie_id") @ToString.Exclude private List comments; 1:N 연관관계는 아래 글 참고. 1 : N 연관관계 - 1 이전에 만들어둔 User entity와 User History는 1:N연관관계를 갖는다. User는 현재 회원정보를 가지고 있는 테이블이고 UserHistory는 특정 user id에 저장된 값이 변경된 내역을 저장하는 table이다. 1. test @.. bsh-developer.tistory.com 2. addCommen..
1. API controller 기존 APi controller의 각 method를 보면 아래와 같이 Api controller의 기능 외에 실제 service로직까지 포함되어 있다. Service에 해당하는 class를 별도로 만들어서 apicontroller는 정말로 controller의 역할만 하게 수정해보자. @GetMapping("/search") public SearchMovieRes movieSearch(@RequestParam String query){ System.out.println(query); SearchMovieReq searchMovieReq = new SearchMovieReq(); searchMovieReq.setQuery(query); var result = naverCli..
1. 오늘의 목표 Naver Api와 연동하여 Req보내고 Res받기 2. REQ Request 객체는 naver api에서 요구하는 변수를 필드로 가지고 있어야 한다. Naver API의 개발 가이드를 보면 아래 정보를 확인할 수 있다. 1) 변수명 및 타입 변수명 타입 필수 기본값 설명 query string (필수) Y - 검색을 원하는 질의. UTF-8 인코딩이다. display integer N 기본값 10, 최대 100 검색 결과 출력 건수를 지정한다. 최대 100까지 가능하다. start integer N 기본값 1, 최대 1000 검색의 시작 위치를 지정할 수 있다. 최대 1000까지 가능하다. genre string N - 검색을 원하는 장르 코드를 의미한다. 영화 코드는 다음과 같다. ..
1. 오늘의 목표 API controller를 통해 DB에 movie 객체 CRUD 2. Movie, Movie Repository 생성 필드명은 NAVER API의 reponse내용을 참고했다. @Data @NoArgsConstructor @AllArgsConstructor @Entity public class Movie { @Id @GeneratedValue private int id; private String title; private String link; private String image; private String subtitle; private LocalDate pubDate; private String director; private String actor; private String..
@Service public class CommentService { @Autowired private CommentRepository commentRepository; @Transactional public void innit(){ for(int i=0; i dirty check가 존재하지 않는다!! 2. Dirty Check : Insert insert에 대한 method도 만들어주자. @Transactional public void insertSomething(){ Comment comment = new Comment(); comment.setComment("뭐하는거냐고지그으으음음"); } @Test void commentTest(){ commentService.innit(); //commentRe..