본문 바로가기

전체 글

(106)
2018.12.23 ~ 2019.07.10 멘토링 후기 2018.12.23 ~ 2019.07.10, 약 96시간동안 멘토링을 받은 후기입니다. 시작 전 멘토님 이종호 - Software Engineer - eBay Korea | LinkedIn 멘토링을 받게 된 이유 취업에 대한 걱정 지금 상태에서 개발자로써 어떻게 나아가야할지 감이 잡히지 않음 학교에서 수업을 듣는것만으로는 부족함을 느낌 가장 큰 이유는 취업이였고, 취업 이후에도 과연 내가 제대로 된 개발자로 나아갈 수 있을지에 대한 걱정도 앞서 있었던 상태에서 좋은 기회가 생겨 멘토링을 시작하게 되었다. 첫 만남과 멘토링 컨셉 정하기 멘토님과 멘토링을 본격적으로 시작하기 전에 멘토링 컨셉을 갖는 시간을 가졌다. 내가 이루고 싶은 목표를 우선순위로 두어 컨셉을 정해나갔다. 최종적으로 정한 멘토링 컨셉을 간..
Java Arrays.asList() 일반 배열을 ArrayList로 바꿔야 할 때는 Arrays.asList()를 사용해서 간단하게 바꿀 수 있습니다. 그러나 asList를 사용하면서 신기한 현상을 발견했습니다. public static void main(String[] args) { Character[] arr = {'c', 'b', 'e', 'd', 'a'}; List list = Arrays.asList(arr); Comparator byAlpa = new Comparator() { @Override public int compare(Object o1, Object o2) { return (char)o1 - (char)o2; } }; list.sort(byAlpa); } 배열을 list로 바꾼 후에 정렬을 하는 코드인데, 이 상태로 ..
SpringBoot의 Querydsl을 이용하여 동적쿼리(Dynamic SQL) 작성하기 안녕하세요! 이번 포스팅에서는 SpringBoot의 QueryDSL을 이용해서 동적쿼리(Dynamic SQL)를 사용해보도록 하겠습니다. 모든 코드는 Github에서 확인이 가능합니다. 📚 사전 준비 프로젝트 설명 여러 더미 데이터들을 넣고 동적으로 조건절을 생성하는 프로젝트를 작성해보겠습니다. 개발 환경 IntelliJ Ultimate Gradle 6.0.1 / Maven Java 1.8 SpringBoot 2.2.2 Window 🔎 구현 1. 의존성 추가 가장 먼저 QueryDSL을 사용하기 위해 필요한 의존성을 추가해줍니다. build.gradle plugins { id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } dependencies { co..
[Spring Boot] @ResponseBody 사용해서 객체를 json으로 반환할 때 No converter found for return value of type 오류 해결 방법 문제 발생 @ResponseBody를 사용해서 객체를 json으로 사용했는데 갑자기 No converter found for return value of type : class xxx... 오류가 발생했다. 구글링을 해보니까 jackson-databind 의존성을 추가하라는 내용도 있었고, jackson-core 의존성을 추가하라는 내용도 있었다. 하지만 다 따라 해봐도 오류가 사라지지 않았다. 아래는 오류가 발생한 코드이다. public class Person { private String name; public Person(String name) { this.name = name; } } @ResponseBody @GetMapping("/builder/2") public Person builderTe..
SpringBoot의 ControllerAdvice를 이용하여 JSON 형태로 예외처리하기 안녕하세요! 이번 포스팅에서는 SpringBoot의 Optionl과 @RestControllerAdvice를 이용해서 예외를 만들어보고 예외를 발생시켜보도록 하겠습니다. 사전 준비 프로젝트 설명 JSON 형태로 POST 요청을 보내면 요청 값에 따라 응답을 보내는 프로젝트를 작성해보겠습니다. 값이 있는 경우 → 값 그대로 리턴 값이 없는 경우(null) → 경고 메세지 리턴 개발 환경 IntelliJ Ultimate Gradle Java 1.8 SpringBoot 의존성 spring-boot-starter-test 구현 1. VO & ResponseDto 만들기 가장 먼저 POST로 요청을 받을 때 데이터를 전달받을 Person VO와 응답을 보낼 때 사용할 ResponseDto를 작성해보도록 하겠습니다..
[Spring Boot] Entity 자료형으로 Enum 사용시 Out of range value for column 오류 해결 방법 문제 발생 Entity를 만들고 DB를 연결하여 조회를 하려고 했는데 Out of range value for column 에러가 발생했다. 더보기 java.sql.SQLException: Out of range value for column 'service54_7_0_' : value A at org.mariadb.jdbc.internal.com.read.resultset.rowprotocol.TextRowProtocol.getInternalLong(TextRowProtocol.java:338) at org.mariadb.jdbc.internal.com.read.resultset.rowprotocol.TextRowProtocol.getInternalInt(TextRowProtocol.java:257) ..
SpringBoot의 MockMvc를 사용하여 GET, POST 응답 테스트하기 안녕하세요! 이번 포스팅에서는 SpringBoot 프레임워크에서 제공해주는 MockMvc를 만들고 테스트하는 방법을 알아보도록 하겠습니다. 전체 코드는 Github에서 확인이 가능합니다. ✍️ 📚 개념 정리 1. MockMvc란? 실제 객체와 비슷하지만 테스트에 필요한 기능만 가지는 가짜 객체를 만들어서 애플리케이션 서버에 배포하지 않고도 스프링 MVC 동작을 재현할 수 있는 클래스를 의미합니다. 2. 사용방법 Junit4를 사용하기 위해 의존성에 spring-boot-starter-test를 추가해줍니다. build.gradle testCompile("org.springframework.boot:spring-boot-starter-test") pom.xml org.springframework.boot ..
SpringBoot의 @IdClass를 사용해서 복합 Primary Key 적용하기 안녕하세요! 이번 포스팅에서는 SpringBoot의 @IdClass을 이용해서 복합키 매핑하는 방법에 대해 알아보도록 하겠습니다. @IdClass를 사용하는 이유 DB를 설계하다 보면 PK가 여러 개가 되는 경우가 종종 발생하곤 합니다. 그럴 때는 Primary Key에게 모두 @Id 어노테이션을 주면 되는데, 무작정 어노테이션을 붙이면 오류를 출력하게 됩니다. 이때 @IdClass를 사용하게 되면 복합키 매핑이 가능합니다. 프로젝트 설명 class라는 수강 현황을 저장해놓는 테이블이 있습니다. 이 테이블의 구조는 아래와 같습니다. 이 테이블과 매핑을 하기 위한 엔티티를 작성해보겠습니다. XXXid Class 추가 @IdClass를 사용하기 위해서는 PK 속성을 가지고 있는 컬럼들을 모아놓은 클래스가 필..