profile
무한삽질로그
post-thumbnail

Spring Boot에 FCM 적용하기

의존성을 추가해준다. 메시지를 보내는 형태는 fcm 공식문서에 작성된 json 형태에 맞춰 보내야한다.우선 message 객체는 notification, token, data를 묶는다.token에는 기기의 토큰을 담아주고, notification에는 푸시알람의 제목과

2021년 5월 5일
·
0개의 댓글

Spring REST Docs를 통한 API 문서 자동화

자바에서는 주로 API 명세를 위한 툴로 Swagger와 Spring REST Docs가 사용된다. Swagger의 장점은 API를 테스트할 수 있는 환경이 제공되며 Spring REST Docs에 비해 비교적 설정이 간편하다. 하지만 코드에 어노테이션을 추가해야하기

2021년 5월 5일
·
0개의 댓글

Github action을 통해 간편하게 TIL README 업데이트 자동화

요즘 많은 개발자들이 TIL, 즉 Today I Learned 를 개인 github repo에 작성하곤 한다. 물론 나는 매일(..)은 아니더라도 꼭 기록하고 싶은 기술 등이 있다면 작성하곤 하는데, 문제는 README에 TIL 인덱스를 추가하는 것이 너무나도 귀찮았다

2021년 4월 7일
·
0개의 댓글

[JPA] save the transient instance before flushing

오류 코드 개체가 저장되지 않은 일시적인 인스턴스를 참조합니다. 플러싱하기 전에 임시 인스턴스를 저장합니다. @OneToMany나 @ManyToOne 사용 시 부모 객체에 추가하는 자식 객체가 아직 db에 저장되지 않아 생긴 에러이다. 즉 영속성 전이를 해야한다. 해결 cascade = CascadeType.ALL 더 자세하게 파고드려면, 영속성...

2021년 4월 1일
·
0개의 댓글

[JPA] default method를 활용하여 JpaRepository 메서드 명 간소화하기

JpaRepository를 사용하여 메서드를 생성할 때, 이름이 너무 길어져서 사용하기에 가독성이 좋지 않은 경우가 있다. 이 경우, 인터페이스 내에 defaultMethod를 통해 짧은 이름을 지정해 값을 return 하게끔 method를 생성할 수 있다. Java 8 부터 인터페이스에 defaultMethod 라는 기능이 생겼는데, 기존의 인터페이스 ...

2021년 4월 1일
·
0개의 댓글

[JPA] Spring Jpa Pagination 처리

페이징의 필요성 JPA에서는 Entity의 전체 목록을 findAll() 을 통해 불러올 수 있다. 예컨대 db 수가 적다면 List 형식으로 db의 전체 목록을 받아와도 성능에 큰 차이는 없겠지만, db의 수가 기하급수적으로 늘어난다면 이는 성능에 큰 영향을 끼친다. 따라서 paging을 통해 효율적으로 data를 반환할 수 있다. Page Page는 ...

2021년 4월 1일
·
0개의 댓글

테스트 시 Error creating bean with name amazonS3

테스트 시 Error creating bean with name 'amazonS3' 우선적으로 체크해야할 부분 org.apache.httpcomponents dependency 버전 확인 httpclient와 httpcore는 버전에 따라 종속성을 가집니다. photo test 파일에 @MockBean 설정 @Component는 테스트...

2021년 4월 1일
·
0개의 댓글

[JPA] findAll일 때 sort해서 데이터 보여주기

JpaRepository의 findAll 사용 시 sort 하는 방법

2021년 2월 13일
·
0개의 댓글

[JPA] MultipleBagFetchException

오류 코드한 엔티티에서 두 개 이상의 @OneToMany인 Bag 두 개 이상을 EAGER로 fetch할 때 발생하였다. 나의 경우에는 한 엔티티에서 두 엔티티 객체를 List 형식으로 OneToMany 매핑관계를 설정하였는데 계속해서 에러가 났다. 정말 힘들게 찾은

2021년 2월 13일
·
0개의 댓글

[JPA] Infinite Recursion

오류 코드 원인 JPA 연관관계에서 양방향 매핑을 선언한 경우 발생 컨트롤러에서 JSON으로 값을 출력하는 경우, 타입을 변환해야 하는데 변환되는 엔티티의 필드가 다른 엔티티를 참조하고 또 그 엔티티 클래스의 필드가 또 다른 엔티티를 참조하고의 Infinite Recursion... 해결 Member Entity Tour Entity Member ...

2021년 2월 13일
·
0개의 댓글

DI/IoC

의존성 주입(Dependency Injection) 정의 객체를 직접 생성하는 것이 아니라, 외부에서 생성한 후 주입을 하는 방법이다. DI의 가장 큰 목적 객체 간의 결합도를 느슨하게 하고(의존성을 낮추고) 확장이 용이하게 하여 객체지향적 프로그래밍을 가능하게 한다. 스프링에서는 Spring 컨테이너, IoC 컨테이너라는 개념을 사용한다. 컨테이...

2021년 1월 10일
·
0개의 댓글

Bean 등록

Bean의 정의 Spring IoC 컨테이너가 인스턴스화, 관리, 생성하는 자바 객체이다. 빈과 빈 사이의 의존성은 컨테이너가 사용하는 메타데이터 환경설정에 반영된다. 스프링에서의 Bean은 보통 Singleton(어떤 클래스가 static으로 최초 한 번만 메모리를 할당하고, 그 메모리에 객체를 만들어 사용하는 방법)으로 존재한다. Spring에서 Ap...

2021년 1월 10일
·
0개의 댓글

VSCode에서 Snippet(자동완성) 이용하기

Snippet은 간단하게 말하면 자동완성같은 기능이다. prefix를 지정하고 코드 내에서 입력하면, 지정한 코드들을 자동으로 완성시킨다. pic1 Preferences에서 User Snippets를 클릭한다. pic2 cpp.json을 클릭해서 prefix와 body를 지정해주면

2021년 1월 10일
·
0개의 댓글

week7 (작성중)

7주차 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 classpath 옵션 접근지시자 package 정의 관련된 클래스 혹은 인터페이스들의 묶음이다. 파일 디렉토리의 폴더라고 생각하면 된다. 사용 이유 name confilcts 피함 → 클래스명의 고유성 보장 코드의 더 나은 유지보수를 위해 com.examp...

2020년 12월 30일
·
0개의 댓글

클래스

5주차 클래스 클래스 선언 기본 선언 방식은 위와 같다. 클래스 몸체는 새로운 객체를 초기화하는 생성자, 클래스와 그 객체의 상태를 제공하는 필드, 행동을 구현하는 메소드를 포함한다. 클래스가 상위 클래스의 상속을 받는지, 인터페이스를 구현하는지에 대한 정보 역시 선언할 때 제공할 수 있다. 또한 public과 private과 같이 다른 클래스...

2020년 12월 17일
·
0개의 댓글
post-thumbnail

IntelliJ에서 JUnit 5 Test 시@DisplayName이 보이지 않을 때

JUnit 5 Jupiter로 테스트를 실행하는데 지정한 DisplayName은 보이지않고 각 클래스와 메소드 이름만 보였다..😞 💡How to Solve Preferences → Build, Execution, Deployment → Build Tools → Gradle 에서 Run tests using 을 IntelliJ IDEA로 변경한다. [출...

2020년 12월 13일
·
0개의 댓글

JUnit 5

JUnit 5 JUnit5란 무엇인가? Junti은 이전 Junit과 달리, 3개의 다른 서브 프로젝트로부터 각기 다른 모듈들로 구성되어있다. > JUnit 5 = Junit Platform + JUnit Jupiter + Junit Vintage Java 8부터 지원 Junit Platform Junit Platform은 JVM 환경에서 테스팅...

2020년 12월 12일
·
0개의 댓글

제어문

4주차 제어문 보통 statement는 위에서부터 아래로 실행된다. 하지만 제어문은 프로그램이 조건적으로 특정한 코드 블럭을 실행하도록하여 기존의 실행 흐름을 깬다. 제어문은 선택문, 반복문, 분기문으로 구성된다. 선택문 if문 if문은 제어문의 가장 기본이다. 조건이 참일 때만 특정 부분의 코드를 실행시키도록 한다. 예를들어, Bycle이라는 클...

2020년 12월 11일
·
0개의 댓글

자바 데이터 타입, 변수 그리고 배열

자바 데이터 타입, 변수 그리고 배열 자바 데이터 타입, 변수 그리고 배열 프리미티브 타입 종류와 값의 범위 그리고 기본 값 | | 정수형 | 문자형 | 실수형 | 논리형 | | ------- | ------ | ------ | ------ | ------- | | 1바이트 | byte | - | - | boole...

2020년 12월 11일
·
0개의 댓글

JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가

JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가 JVM이란 무엇인가 자바 가상 머신(Java Virtual Machine)은 자바가 운영체제에 독립적으로 작동할 수 있도록 하는 소프트웨어이다. 즉, JVM은 컴파일된 자바 소스코드인 바이트코드를 실행하기 위해 각각의 운영체제에 맞는 기계어로 변환시킨다. 따라서 자바는 운영체제에 독립적이지만, JV...

2020년 11월 18일
·
0개의 댓글