CATEGORY

· Study/TIL
들어가며 JPA의 늪에서 빠져나오려면 얼마나 걸릴까...? Spring Data JPA를 사용하려면 그 베이스가 되는 JPA에 대해서 많은 공부가 필요한 것 같다. 단기간에 완성될 건 확실히 아닌 것 같고. 각설하고, 오늘의 TIL은 프록시와 즉시 로딩 / 지연 로딩을 정리한 글을 첨부하고자 한다. [JPA] 프록시(Proxy), 지연 로딩(LAZY Loading), 즉시 로딩(EAGER Loading) [JPA] 프록시(Proxy), 지연 로딩(LAZY Loading), 즉시 로딩(EAGER Loading) 들어가며 JPA를 이용해서 개발을 하다보니 처음에는 순환 참조 에러, 그 이후로는 지연 로딩 관련 에러를 계속 마주치게 된다. 특히나 지연로딩에 관련해서 애를 많이 먹었기 때문에 이번에는 지 ann..
· Study/TIL
들어가며 오늘의 TIL은 해결하지 못한 문제가 많으므로 오늘 작성한 Spring framework를 첨부하는 걸로 마무리하도록 하겠다. 스프링 프레임워크 [Spring boot] 스프링 프레임워크(Spring Framework) [Spring boot] 스프링 프레임워크(Spring Framework) 들어가며 JAVA를 메인 언어로 선택했다면 당연히 사용하게 될 스프링 프레임워크. 당연하다고 무조건 사용하는게 아니라 어떤 특징이 있고 장,단점은 무엇인지 알고 사용하는게 좋지 않을까? 예 annajin.tistory.com *정리해야할 것* JPA 즉시 / 지연로딩 마치며 JPA 너무 어렵고 알아야할 게 많은데 엄두가 안난다. TIL을 알차게 쓰고 싶은데 오늘은 고민하던 부분 중 해결한 부분이 없어서 너..
· Spring boot
들어가며 JAVA를 메인 언어로 선택했다면 당연히 사용하게 될 스프링 프레임워크. 당연하다고 무조건 사용하는게 아니라 어떤 특징이 있고 장,단점은 무엇인지 알고 사용하는게 좋지 않을까? 예전 포스팅에서 다룬 적이 있지만 이번에는 조금 디테일하게 스프링 프레임워크에 대해 알아보기로 하자. 스프링 프레임워크의 탄생 배경 늘 말하는 거지만 공부 목적인 이 포스팅보다는 잘 정리된 글을 읽어보는걸 더 추천한다! 자바EE의 역사 및 스프링과의 관계 OKKY | 자바EE의 역사 및 스프링과의 관계 다른 글타래 에서 어느 분이 스프링( Spring Framework )과 자바EE( Java Enterprise Edition )의 관계에 대해 질문을 주셔서 답글을 쓰다가, 어쩌면 경력이 길지 않은 다른 개발자 분들도 잘..
· Study/TIL
들어가며 다른 수강생분 덕에 계속 머리싸매던 부분을 속시원하게 해결했다! 적용해보고 싶은게 많았지만 전부다 해보기는 수정해야할 부분이 너무 많아서 하나씩 적용할 수 있는 부분들만 하기로 했다. 따라서 오늘의 TIL은 과제 [나만의 블로그 만들기]에 적용한 예외처리 방법을 간단하게 소개하고 삽질로그를 올려보고자 한다 유효성검증 - @Valid @Valid는 JSR-303 표준 스펙으로써 제약 조건이 부여된 객체에 대해 빈 검증기(Bean Validator)를 이용해서 검증하도록 지시하는 어노테이션이다 출처 - 망나니 개발자님의 블로그 이 빈 검증기를 이용해서 RestController로 들어오는 값들을 편리하게 검증할 수 있다. 정말 편리하게도 DTO에 원하는 검증 어노테이션을 붙여주고 Controller..
문제상황 지난 삽질로그에서 계속 고민하던 문제인 '왜 지연로딩을 설정했는데도 참조하고 있는 객체를 통째로 들고다니지?' 라는 물음에 대한 이유를 어느정도 파악한 것 같다. PostRestController.java @GetMapping("") public List getPosts() { List postsList = postService.getPosts(); return postsList; } PostService.java public List getPosts() { List posts = postRepository.findAllByOrderByCreatedAtDesc(); return posts; } Post.java @Entity @Getter @NoArgsConstructor @JsonIdentit..
· Study/TIL
들어가며 과제를 하면서 '왜' 이렇게 사용하는지, 다른 방법은 없는지를 고민하면서 코드를 짜다보니까 알아야할 거랑 궁금한게 점점 많아진다. 그래서 뭐부터 정리해야할 지 고민이 된다. 일단 오늘의 TIL은 과제를 하면서 이용했던 부분과 삽질로그를 작성해보고자 한다. JPA findAll 정렬하기 요구사항 중 하나인, 작성 날짜 기준으로 내림차순 정렬을 하기 위해 JPA sort하는 방법을 찾아봤다. 물론 여러가지 방법이 있겠지만 맘에 드는 두가지만 소개해보도록 한다. 1. Sort 파라미터 사용하기 List posts = postRepository.findAll(Sort.by(Sort.Direction.DESC, "createdAt")); findAll을 해주고 Sort.by()를 사용하는 방식이다. 간단..
문제상황 06/06일 TIL로 작성한 2번째 문제가 아직 근본적으로 해결되지 않아서 쓰는 삽질로그. [TIL] 06/06 항해99 25일차 - 과제 [나만의 블로그 만들기] [TIL] 06/06 항해99 25일차 - 과제 [나만의 블로그 만들기] 들어가며 오늘부터는 달성 목표에 우선순위를 정해두고 하나씩 해결하는 방식으로 공부를 진행하고자한다. 확실히 하나씩 항목을 지워가면서 하니까 성취감도 들면서 내 페이스를 조절하기가 annajin.tistory.com 결국 stackoverflow 에러는 해결을 했지만 지연로딩으로 설정했을 때 해결이 되었어야하는게 아닌가? 라는 물음에서 시작된 순환참조 해결하는 삽질이다. + 지연로딩을 설정했음에도 참조하고 있는 객체를 전부 들고다니는 이유를 어느정도 파악한 것 같..
· Study/TIL
들어가며 오늘부터는 달성 목표에 우선순위를 정해두고 하나씩 해결하는 방식으로 공부를 진행하고자한다. 확실히 하나씩 항목을 지워가면서 하니까 성취감도 들면서 내 페이스를 조절하기가 좋았다. 오늘의 TIL도 지난번과 마찬가지로 항해99 과제인 [나만의 블로그 만들기]를 개발하면서 겪은 트러블 슈팅을 하고자 한다. 트러블 슈팅 문제 - @ManyToOne으로 만들어진 FK 컬럼이 null로 세팅되는 현상 Comment entity에서 Post entity와 연결해주기 위한 N:1 관계를 만들어주는 @ManyToOne어노테이션을 붙여주면 테이블이 생성될 때 자동으로 Comment 테이블에 FK 컬럼을 생성해준다. 그런데, 이 FK가 nullable하게 세팅되는 현상이 나타나고 있었다. create_at과 mod..
· Study/WIL
들어가며 제대로 쉬지도 그렇다고 열심히 무언가를 하지도 않았던 지난 한주. 변명만 잔뜩 늘어놓고 TIL에도 소홀했었다. 이번 주의 WIL은 항해99에서 제시해주는 필수 키워드들을 간단히 정리하고, 이번 한 주간의 회고록을 작성해보고자 한다. ORM [JPA] ORM(Object-Relational Mapper) [JPA] ORM(Object-Relational Mapper) 들어가며 지난 TIL에서 JPA를 사용하는 이유에 대해 다뤘었다. [TIL] 06/01 항해99 21일차 - JPA를 사용하는 이유?, JPA 초기 세팅 [TIL] 06/01 항해99 21일차 - JPA를 사용하는 이유?, JPA 초기 세팅 들어가며.. annajin.tistory.com SQL(Structured Query Lang..
· Spring boot
들어가며 지난 TIL에서 JPA를 사용하는 이유에 대해 다뤘었다. [TIL] 06/01 항해99 21일차 - JPA를 사용하는 이유?, JPA 초기 세팅 [TIL] 06/01 항해99 21일차 - JPA를 사용하는 이유?, JPA 초기 세팅 들어가며 인프런 김영한 강사님의 자바 ORM 표준 JPA 프로그래밍 강의 수강을 시작했다. 기존에는 Mybatis를 사용했었는데 항해99 커리큘럼에서 JPA를 사용하기도 하고, JPA가 여러모로 개발하기에 편 annajin.tistory.com 그 이유는 알았으니 JPA의 모태인 ORM에 대해 알아볼 차례이다. 무작정 사용해보고 익히는 것도 좋지만 좋은 개발자가 되기 위해서는 그 개념도 알고 있어야한다고 생각한다. 그럼 시작해보자. 다들 알고있듯이 Java는 객체 지..