들어가며 다른 수강생분 덕에 계속 머리싸매던 부분을 속시원하게 해결했다! 적용해보고 싶은게 많았지만 전부다 해보기는 수정해야할 부분이 너무 많아서 하나씩 적용할 수 있는 부분들만 하기로 했다. 따라서 오늘의 TIL은 과제 [나만의 블로그 만들기]에 적용한 예외처리 방법을 간단하게 소개하고 삽질로그를 올려보고자 한다 유효성검증 - @Valid @Valid는 JSR-303 표준 스펙으로써 제약 조건이 부여된 객체에 대해 빈 검증기(Bean Validator)를 이용해서 검증하도록 지시하는 어노테이션이다 출처 - 망나니 개발자님의 블로그 이 빈 검증기를 이용해서 RestController로 들어오는 값들을 편리하게 검증할 수 있다. 정말 편리하게도 DTO에 원하는 검증 어노테이션을 붙여주고 Controller..
Study/TIL
들어가며 과제를 하면서 '왜' 이렇게 사용하는지, 다른 방법은 없는지를 고민하면서 코드를 짜다보니까 알아야할 거랑 궁금한게 점점 많아진다. 그래서 뭐부터 정리해야할 지 고민이 된다. 일단 오늘의 TIL은 과제를 하면서 이용했던 부분과 삽질로그를 작성해보고자 한다. JPA findAll 정렬하기 요구사항 중 하나인, 작성 날짜 기준으로 내림차순 정렬을 하기 위해 JPA sort하는 방법을 찾아봤다. 물론 여러가지 방법이 있겠지만 맘에 드는 두가지만 소개해보도록 한다. 1. Sort 파라미터 사용하기 List posts = postRepository.findAll(Sort.by(Sort.Direction.DESC, "createdAt")); findAll을 해주고 Sort.by()를 사용하는 방식이다. 간단..
들어가며 오늘부터는 달성 목표에 우선순위를 정해두고 하나씩 해결하는 방식으로 공부를 진행하고자한다. 확실히 하나씩 항목을 지워가면서 하니까 성취감도 들면서 내 페이스를 조절하기가 좋았다. 오늘의 TIL도 지난번과 마찬가지로 항해99 과제인 [나만의 블로그 만들기]를 개발하면서 겪은 트러블 슈팅을 하고자 한다. 트러블 슈팅 문제 - @ManyToOne으로 만들어진 FK 컬럼이 null로 세팅되는 현상 Comment entity에서 Post entity와 연결해주기 위한 N:1 관계를 만들어주는 @ManyToOne어노테이션을 붙여주면 테이블이 생성될 때 자동으로 Comment 테이블에 FK 컬럼을 생성해준다. 그런데, 이 FK가 nullable하게 세팅되는 현상이 나타나고 있었다. create_at과 mod..
들어가며 지금까지 짧게 잤던 날들의 후폭풍을 맞는 중이다. 자도자도 졸리고 피곤하네,,, 자꾸 늦게 자고 제때 못일어나서 CS스터디에 참여하지 못한다. 오늘 뭘 했든 못했든 일찍 자서 패턴을 되돌려야겠다. 라고 생각하며 오늘의 TIL은 주특기 첫번째 주차 과제인 [나만의 블로그 만들기]를 개발하면서 겪은 트러블 슈팅을 하고자 한다. 트러블 슈팅 문제 - PropertValueException 에러 너무 간단한 실수라 트러블 슈팅을 할까 말까 고민했는데 나중에 같은 실수하는 걸 방지하기 위해서 작성한다. 전체 에러 코드는 다음과 같았다 org.hibernate.PropertyValueException: not-null property references a null or transient value : c..
들어가며 주특기 주차가 시작되었다. JPA를 처음 사용해보는 거라서 삽질을 엄청나게 하느라고 따로 공부한 내용은 없었다. DAO와 DTO의 차이는 정리한 적이 있지만 오래 전 포스팅이라 내용이 부족한 것 같아 오늘의 TIL은 간단하게 JPA에서 사용하는 domain과 DTO의 차이점에 대해 간단하게 정리해보고자 한다. [개발지식] DAO / DTO(VO)란? [개발지식] DAO / DTO(VO)란? https://tecoble.techcourse.co.kr/post/2021-04-25-dto-layer-scope/ DTO의 사용 범위에 대하여 1. DTO란? DTO(Data Transfer Object)란 계층간 데이터 교환을 위해 사용하는 객체(Java Beans)입니다. 간략하게 D.. annajin..
들어가며 JPA를 본격적으로 시작하려고 하자마자 에러가 터졌다. 역시 초기 세팅 후에 피할 수 없는 우리의 에러ㅎㅎㅎㅎㅎㅎ 오늘의 TIL은 JPA 프로젝트 세팅을 시작하다 만난 에러 트러블 슈팅을 해보고자 한다. 트러블슈팅 문제1 - hibernate.properties not found 에러 구글링 해보니 JDK 버전의 문제였다. JDK 8과 달리 JDK 11버전은 JAXB 라이브러리를 내장하고 있지 않기 때문에 pom.xml 파일에 별도로 추가해 주어야 한다고 한다. pom.xml에 아래 디펜던시를 추가해주면 해결된다. javax.xml.bind jaxb-api 2.3.0 문제2 - Connection is broken 에러 이 에러는 H2를 실행시켜두지도 않고 연결하려고 해서 생긴 에러였다. 터미널..
들어가며 인프런 김영한 강사님의 자바 ORM 표준 JPA 프로그래밍 강의 수강을 시작했다. 기존에는 Mybatis를 사용했었는데 항해99 커리큘럼에서 JPA를 사용하기도 하고, JPA가 여러모로 개발하기에 편리할 듯 싶어 이번에는 Mybatis대신 JPA를 공부하고 사용하기로 했다. 오늘의 TIL은 JPA를 사용하는 이유와, 강의 내용을 따른 초기 세팅 방법을 정리해보고자 한다. JPA를 사용하는 이유? JAVA는 객체지향언어이고, JAVA를 사용하는 Spring 역시 객체지향적으로 이루어져있다. 그런데, Spring과 함께 주로 사용하는 DB는 관계형 데이터베이스이다(Oracle, MySQL 등. 이하 관계형 DB). 즉, 객체 지향 언어를 사용하고 있다면 객체 데이터를 관계형 DB를 사용해서 관리하게..
들어가며 주특기 주차를 들어가기에 앞서 경쟁력을 키우기 위해 무엇을 공부하면 좋을까 고민하다가 초보자를 위한 로드맵을 발견했다. 이 정도까지 알아야한다고? ...라는 생각이 들어서 더 찾아봤는데 완전히 허무맹랑한 가이드는 아니였다. 기술면접을 대비하기 위한 Github Repo들을 뒤져보니 더하면 더했지 덜하지는 않더라. 앞으로 갈 길이 멀다... 먼 길을 떠나 내일 한 걸음 더 나아가기 전에, 오늘의 TIL은 앞으로 정리해야할 것 & 정리하고 싶은 것들 목록을 쭉 나열해보고자 한다. 공부 가이드 참고 초보 개발자를 위한 로드맵 GitHub - pocojang/developer-roadmap: 2020년 웹 개발자가 되기 위한 로드맵 2020년 웹 개발자가 되기 위한 로드맵 :kr:. Contribute..
들어가며 거의 1개월동안 묵혀놨던 동기 & 비동기 / 블락 & 논블락을 드디어 정리했다! 지금까지 가슴 한 켠에 짐으로 남겨뒀었는데 해결하고 나니까 후련하다. 다만 다른 사람한테 설명을 해주려니 스스로 이해를 제대로 하진 못했다는 생각이 들어서 여러번 다시 봐야겠다는 생각이 들었다. 아무튼, 오늘의 TIL은 동기 & 비동기를 정리한 글을 다시 이해하기 위해 간단히 정리해보고자 한다! [개발지식] 동기 & 비동기 vs 블로킹 & 논블로킹 [개발지식] 동기 & 비동기 vs 블로킹 & 논블로킹 들어가며 예전에 Petpular 프로젝트 때 사용해본 Spring WebClient에서 동기 & 비동기 / 블로킹 & 논블로킹의 개념이 등장했었다. WebClient는 논블로킹방식으로 작동하고 block() 메소드를 이..
들어가며 이진 탐색은 예전에 맛보기로 공부했던 적이 있었기도 하고 크게 어려운 개념이 아니라 이해하기 쉬웠다. 늘 말하듯이 구현은 다른 문제지만. 오늘의 TIL은 이진 탐색의 개념을 정리해보고자 한다! 이진 탐색 이진 탐색 알고리즘(binary search algorithm)은 오름차순으로 정렬된 리스트에서 특정한 값의 위치를 찾는 알고리즘이다. 출처 - 위키백과 이진 탐색(Binary Search)은 그림에서 보는 것처럼 중앙값을 기준으로 절반 씩 줄여나가면서 목표값을 찾아가는 알고리즘이다. 단, 이진 탐색을 하기 위해서는 자료가 순서에 따라 정렬되어 있어야 한다. 만약 정렬되어 있지 않은 자료에서 이진 탐색을 한다고 하면, 중앙값 기준으로 좌/우가 무조건 작거나 크다고 보장할 수 없기 때문이다. 이진..
반응형