분류 전체보기(116)
-
HttpMediaTypeNotAcceptableException: Could not find acceptable representation
위와 같은 코드를 작성했고 이 Controller에서 DB 조회 후 MemberResponseDTO에 담아 보내게 되는 단순한 로직이다. 전에는 갑자기 잘 되던 api 가 ResponseDTO로 바꾸고 나서 잘 안 되길래 뭔가 싶더니 HttpMediaTypeNotAcceptableException라는 에러가 났다. 그래서 직접 에러를 검색해 보니, 클라이언트가 받을 수 있는 response를 만들 수 없다는 에러이다. 실제로 postman에서도 다음과 같은 에러가 나온다. 하지만 로그를 보면 즉, DB에 쿼리를 하는 과정까지는 문제가 아니었음을 알 수 있다. 그렇다면 쿼리를 하고 나서 클라이언트에게 올바를 형태를 주지 못한다는 것이고, 그래서 DTO를 봤더니 @Getter 가 없었다. 여러분은 꼭 @Ge..
2023.10.30 -
H2 console, Access denied for user 'root'@'localhost' (using password: NO) 28000/1045
강의 중에 H2 console로 mariadb에 접속을 해야 하는 일이 있었다. 위와 같이 입력후 `Test Connection` 을 누르니 다음과 같은 에러가 났다. 비밀번호를 입력을 했음에도 불구하고 비밀번호가 틀린것도 아니고 using password: NO 라니 그래서 뭔가 하고 GPT 한테 두드렸더니 버전 문제가 있을수도 있다고 하는 걸 보고 내 build.gradle 파일을 확인해 봤더니 버전이 명시적으로 적혀져 있었다. 내 스프링 부트에 뒤떨어진 버전인가 하고 이렇게 바꾸고 나니, 스프링 부트가 3.1.4. 를 import 해왔고 다시 실행해 보니 아주 잘된다! 결론 비밀번호를 입력해도 값이 넘어가지 않으면 드라이버 버전 호환을 따져보자
2023.10.25 -
IntelliJ 메모리 설정, 메모리 더 할당하기
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA) - 인프런 | 강의 Spring framework의 Spring Cloud 제품군을 이용하여 마이크로서비스 애플리케이션을 개발해 보는 과정입니다. Cloud Native Application으로써의 Spring Cloud를 어떻게 사용하는지, 구성을 어떻게 하는지에 대해 www.inflearn.com 요새 MSA 강의를 듣는 중에 마주친 현상이다. MSA에 대해 배우다 보니 한 번에 시동시키는 Spring Application 이 5개이다 intelliJ 가 원래 워낙 메모리를 많이 잡아먹기는 한다만 그래도 M1 air 살 때 돈 더 내서 메모리를 16GB로 맞춰서 뭔 프로그램이든 앵간하면 다 돌릴 수 있을 거라고 생각했는 데 터져버렸..
2023.10.17 -
비밀번호의 암호화 위치, 엔티티 내부 vs 서비스 계층?
위와 같은 단순한 게시판 프로젝트를 진행 중에 있다. 회원 엔티티의 password 필드는 프론트엔드에게서 받은 비밀번호를 암호화하여 저장하는 필드이다. 회원가입을 할 때 보통은 이 암호화라는 작업을 MemberService 계층 안에서 작업한다. public class MemberService { private final MemberRepository memberRepository; private final PasswordEncoder passwordEncoder; //회원 등록 @Transactional public void registerMember(MemberRegiDTO memberRegiDTO) { String name = memberRegiDTO.getName(); String passwor..
2023.10.17 -
필드 Null 체크 없애기, Optional<String> vs String?
최근 게시판 프로젝트로 끝까지 한번 해보자 라는 프로젝트를 진행하고 있던 와중,참 거슬리는 코드가 눈에 들어왔다.저게 틀린 코드라고 생각하지는 않았기에 저렇게 적었다만은,뭐랄까 참 지저분해 보이는 코드라서 리팩토링 욕구(?)가 솟았다. 그래서 어떻게 할까 고민을 하던 와중 먼저저 코드의 의미, 기능을 생각해보니 다음과 같았다. MemberUpdateDTO 의 Null 이 아닌 필드들만 DB에 업데이트 하기! 즉 필드의 null 체크를 좀 더 야무지게 할 수 있는 방법을 찾으면 됐다.그러다 Java 8 부터 도입된 Optional 을 사용하면 훨씬 더 안전하고,Java 표준 스펙에 의거한 코드를 만들 수 있지 않을 까 생각했다. 그래서 MemberUpdateDTO 의 null 이 올수 있는 필드를 Opti..
2023.10.13 -
"Build 를 정지합니다", 프로젝트마다 다른 버전 (IntelliJ)
Getting Started | Client-Side Load-Balancing with Spring Cloud LoadBalancer This guide walks through building two projects, one of which is a dependency to the other. Consequently, you need to create two child projects under a root project. First, create the build configuration at the top level. For Maven, you need a pom.xml with spring.io 곧 계획 예정 중인 MSA 프로젝트를 혼자서 연습해 보기 위해 Spring Doc 의 Client-S..
2023.09.15