일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 트러블슈팅
- 알고리즘
- 코딩테스트
- 도커
- 플러터
- 자바백엔드
- FLAB
- AWS
- redis
- grafana
- 자바
- 데이터구조
- error
- github
- Flutter
- backend
- 레디스
- 백엔드
- 후기
- java
- 성능테스트
- F-Lab
- 에프랩
- nGrinder
- 부트캠프
- Spring
- MySQL
- EC2
- 로드밸런서
- 멘토링
- Today
- Total
목록Programming Language & Framework/JAVA & Spring (30)
민스씨의 일취일장
Spring Data JPA의 클래스 프로젝션 적용 중 오류가 발생하는 이슈에 대한 내용이다.상황인프런 강의의 '섹션 8 - Projections' 실숩 중 class projection(클래스 프로젝션)이 적용되지 않는 이슈가 발생했다. 클래스를 작성후 Repository에 메서드를 등록하기만 하면, 실행 중 에러가 발생했다.작성했던 코드작성했던 코드는 아래와 같다.public class UsernameOnlyDto { private final String username; public UsernameOnlyDto(String username){ this.username = username; } public String getUsername(){ retu..
JPA Fetch Join에 distinct 적용안해도 중복이 제거 돼있는 이슈에 대한 내용이다.상황인프런 강의의 '섹션5 - 주문 조회 V3: 엔티티를 DTO로 변환 - 페치 조인 최적화' 실습 중 distinct를 적용하지 않았음에도 중복이 제거되는 상황이 발생했다.혹시 코드를 잘못적은 것은 아닌지 여러번 확인해 보았지만 코드에 상에는 문제가 없어 보였다. 원인을 찾던 중, 버전 차이 때문은 아닌지 알아보았다.원인파악현재 실습을 진행환경은 Java 17, 스프링부트 3.3이다.스프링 3.3은 HIbernate 6을 사용한다.Hibernate 6 공식문서를 확인해 보면, 해당 내용이 명시 되어있다.하이버네이트 6부터는 distinct를 적용하지 않아도 중복 데이터를 메모리에서 제거하기 때문에, dis..
프로젝트 재실행 없이 UI 변경사항 반영되도록 하는 방법에 대한 글이다.Thymeleaf - 재실행 없이 변경사항 반영되도록 하는 방법 타임리프(Thymeleaf)와 같은 템플릿 엔진을 이용해 UI를 개발하고 있을 때, 변경사항이 제대로 반영되었는지 확인하기 위해 반복적으로 프로젝트 전체를 재실행하는 것은 생각보다 많은 시간을 잡아먹는다. 그렇다고 프로젝트 Rebuild를 진행한다고 반영되는 것도 아니다. 이럴 때 사용하면 좋은 도구가 있어 소개하려고 한다.devtoolsbuild.gradle(또는 pom.xml)에서 devtools를 추가해주면 된다. devtools는 알아서 캐시를 지워주고 UI를 빌드해줘, 프로젝트를 재싱행하지 않고, 브라우저 새로고침만으로 변경사항을 바로 확인할 수 있도록 해주는 ..
스프링 IoC와 DI에 대해서 학습한 내용을 기억하기 위한 글이다.스프링 IoC와 DI에 대해서스프링 IoCIoC란?IoC는 Inversion of Control로 '제어의 역전'을 뜻한다. 원래 객체는 스스로 필요한 의존성을 생성하거나 찾는데 반해, 스프링에서는 해당 역할을 스프링에 위임했다. 이를 보고 제어가 역젼됐다고 말한다.IoC 컨테이너객체로 부터 위임받은 객체의 생성, 생명주기 관리는 스프링 컨테이너가 담당한다. 이렇게 객체 관리의 권한을 위임받은 것이 스프링 컨테이너의 중요한 기능이기 때문에, 'IoC 컨테이너'라고도 부른다.스프링 IoC의 주요 기능스프링 IoC의 주요 기능은 아래와 같다.1. 의존성 주입 (DI)2. 객체 생명주기 관리3. 애플리케이션 설정 관리4. AOP 지원스프링 DI..
인텔리제이에서 Java 프로젝트를 생성하고 테스트 코드까지 작성해 보는 과정에 대한 글이다.IntellinJ에서 Java 프로젝트 생성 후 테스트 코드까지 작성해보기프로젝트 생성하기인텔리제이를 실행해 New Project 버튼을 눌러 준다.프로젝트 이름을 작성하고 저장할 공간을 선택한다. Java 프로젝트 이므로 Java를 선택하고, 빌드 툴은 Gradle을 선택했다. JDK는 자바 버전을 뜻하고, 17을 선택했다. Gradle DSL은 Kotlin을 선택해 주었다.이렇게 한 뒤 create 버튼을 눌러주면 프로젝트 생성은 완료된다.테스트 코드 작성하기이렇게 프로젝트를 생성한 뒤 간단하게 패키지 하나를 만들고 그 안에 클래스 하나를 생성해 준다. 테스트 코드를 위해선 함수가 있어야 한다. 아래는 간단하게..
TIssue 오늘의 이슈는 다음과 같다. Controller에 요청 자체가 도달하지 않는다. 원인 이 이슈에 대해서는 다양한 원인이 있을 수 있지만, 내가 겪은 이슈의 원인은 아주 간단했다. 어쩌면 너무 간단해서 못찾았던 것 같다. 원인은 바로! @RequestBody 애너테이션을 사용하지 않았기 때문이다. RequestDto를 만들어서 데이터를 매핑할 계획이었다. 스프링은 메시지 컨버터(Message Converter)를 이용해서 매서드의 매개변수와 요청의 데이터를 바인딩한다. 하지만 이 때 @RequestBody (또는 @RequestParam 등)이 없으면 스프링은 데이터를 매핑할 곳을 찾지 못하고 예외를 발생시킨다. 해결책 @RequestBody, @RequestParam, @PathVariabl..