에러 원인 요약 : 요청을 받을 때, 요청 객체에 디폴트 생성자가 없어서 발생하는 문제 분명 요청을 보낼 때는 문제가 없는데, 서버에서 받을 때 아래와 같은 에러가 발생하는 경우가 있다. { "timestamp": "2023-04-26T08:26:19.146+00:00", "status": 400, "error": "Bad Request", "path": "/v1/message" } 대충 이렇게 생긴 객체가 하나 있다. 요청 객체로 쓰기에 별 문제가 없어보인다. @AllArgsConstructor @Getter @Setter public class RequestMessageDto { @NotNull @NotEmpty private String message; } 하지만 이 요청 객체도 위 에러를 발생시킨..

들어가기 전에.. intellij 내에서 datagrip을 사용하려면 Ultimate 버전이어야 합니다. community 버전에서는 사용할 수 없어요.. DataGrip이 그렇게 좋다던데...? IntelliJ 학생 계정을 사용하고 있다고하니, 팀원이 지나가면서 이야기해줬다. 그래서 한번 써보려고 설정방법을 알아봤다. 우선 JetBrains에서는 DataGrip을 아래와 같이 소개했다. DataGrip은 개발자를 위한 데이터베이스 관리 환경입니다 . 데이터베이스를 쿼리, 생성 및 관리하도록 설계되었습니다. 데이터베이스는 로컬, 서버 또는 클라우드에서 작동할 수 있습니다. MySQL, PostgreSQL, Microsoft SQL Server, Oracle 등을 지원합니다. 평소에는 Dbeaver를 주로..

갑자기 DB 접속이 안돼요.. DB 접속이 갑자기 안되서, MySQL을 띄워둔 AWS EC2에 접속해보니 MySQL Docker가 내려가 있었다. 원인은 알 수가 없어서 일단 Docker를 재시작했다. 그런데 기존에 만들어놓은 테이블이 날아가서 다시 만들어주려고 하니까 아래와 같은 에러가 발생했다. 분명 루트로 접속했는데, 테이블 생성부터 아무것도 안된다. 그냥 권한이 없다는 에러메시지만 반복된다. 이럴 때는 권한을 다시 지정해주면 된다. 일단 사용자 확인. mysql> select user, host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | ..

Dockerfile을 작성할 때, 이미지를 빠르게 생성해보고 싶어 정작 Docker 홈페이지를 꼼꼼하게 보지 않았었다. 홈페이지에서 제공하는 내용은 간단한게 참고만 하고 넘어갔었다. 아래 페이지에서 Get started 정도만 확인하고 구글링을 하면서 Dockerfile을 작성했다. 그런데 잘 찾아보면, Docker 홈페이지에서는 Dockerfile을 "잘" 만드는 방법을 가이드해주고 있었다. Dockerfile 작성 모범 사례(Best practices for writing Dockerfiles) 페이지인데, 이 페이지에서 가이드해 주는 몇 가지만 짚어보고 넘어가려고 한다. 이 내용이 나오기 전에는 일반적인 Docker를 빌드하는데 유의해야 하는 내용들이 나온다. 예를 들어, 임시 컨테이너를 사용해라,..

정확히는 AWS EC2에서 뿐만아니라 Tomcat을 베이스 이미지로 생성한 Docker 컨테이너에 war 파일을 배포할 때 발생하는 문제이다. 배포는 에러없이 진행된다. 그러나 서버로 요청을 날리면 404가 발생한다. localhost_access_log에는 요청이 제대로 들어오는 것이 확인 됐고, contextpath도 정상적으로 지정했는데도 말이다. 해결방안 프로젝트 파일을 jar로 묶어서 배포하면된다. 문제가 저것 뿐이고, 해결방안이 저것 뿐이면 따로 포스팅하진 않았을 것 같다. 왜 404가 나는지 문제를 알아보면, war파일로 배포를 진행하게 되면 별도의 web.xml이 생성되지 않는다. 그래서 web.xml이 하는 대표적인 역할인 URL 경로와 해당 경로의 요청을 처리하는 서블릿 사이의 매핑을 ..

앱이나 웹에서 화면을 그리기 위해서 단 하나만의 API 요청만을 통해 그려지는 경우도 있지만, 한 페이지에 여러가지 정보를 뿌려주기 위해서 여러 API를 함께 요청하는 경우도 있다. 이럴 경우 한 화면을 불러오는 테스트하기 위해서 Request를 만들고 Repsonse에서 값을 얻어서 다시 Request에 복붙하고 Response를 다시 얻고... 하는 불편한 작업을 반복해서 최종 결과를 확인해야 한다. 예를 들어 내가 담당하는 서비스에서 습관 하나를 추가하기 위해서는 아래와 같은 작업 작업 순서가 필요하다. 1. 습관 카테고리 조회 (습관 카테고리 index를 얻음) 2. 습관 추가 (습관 카테고리 index를 사용) 3. 습관 조회 (습관 index를 얻음) 4. 습관 단건 조회 (습관 index로 ..
nested exception is org.apache.ibatis.reflection.ReflectionException: Error instantiating class 객체명 with invalid types () or values (). Cause: java.lang.NoSuchMethodException: 객체명 () Mybatis에서 객체를 매핑할때 발생하는 에러로 기본생성자가 없으면 발생하는 에러이다. setter와 AllargsConstructor의 존재와 상관없이 Mybatis에서 조회 후 객체를 매핑할때 빈 생성자를 반드시 만들어줘야한다. Lombok을 사용중이면 @NoArgsConstructor 설정해주면 된다. @Builder @Getter @Setter @AllArgsConstruc..

테스트 데이터를 다량 생성해야 할 일이 생겼다. DB에 INSERT문으로 쭉 밀어넣기엔, 동시에 다른 테이블에도 데이터가 생성되야 했기 때문에 API 요청으로 처리하는게 쉬워보여서 평소에 API 요청과 Response 확인에 사용하는 포스트맨(Postman)에 이런 기능은 없나... 찾아보게 되었고 다행히도 있었다. 포스트맨의 RUNNER 기능인데, 생각보다 어렵지 않고 범용적으로 쓸만한 기능이었다. 매뉴얼처럼 작성해봤다. 1. 포스트맨 RUNNER 사용법 1-1. Collection 만들기 빨간 동그라미를 클릭해 Collection을 만들어준다. 1-2. API 요청 데이터 생성 POST 방식의 request body로 중괄호로 묶어서 변수명을 지정할 수 있다. csv 파일의 1번 컬럼을 저 변수명으로..
- Total
- Today
- Yesterday
- terraform
- AWS EC2
- AOP
- OpenAI
- java
- AWS
- Spring
- 티스토리챌린지
- EKS
- JWT
- docker
- 후쿠오카
- S3
- Log
- 오블완
- GIT
- serverless
- cache
- CloudFront
- openAI API
- Kotlin
- 스프링부트
- Elastic cloud
- elasticsearch
- 람다
- lambda
- ChatGPT
- MySQL
- OpenFeign
- springboot
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |