![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bFrL3K/btr9pdv24Ti/r2sMntrEXuXhGSfMjIrXX1/img.png)
갑자기 DB 접속이 안돼요.. DB 접속이 갑자기 안되서, MySQL을 띄워둔 AWS EC2에 접속해보니 MySQL Docker가 내려가 있었다. 원인은 알 수가 없어서 일단 Docker를 재시작했다. 그런데 기존에 만들어놓은 테이블이 날아가서 다시 만들어주려고 하니까 아래와 같은 에러가 발생했다. 분명 루트로 접속했는데, 테이블 생성부터 아무것도 안된다. 그냥 권한이 없다는 에러메시지만 반복된다. 이럴 때는 권한을 다시 지정해주면 된다. 일단 사용자 확인. mysql> select user, host from mysql.user; +------------------+-----------+ | user | host | +------------------+-----------+ | root | % | | ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cydKAJ/btr1nDC6B9f/rI98dLDfU37SGA3lvpNnh1/img.png)
Dockerfile을 작성할 때, 이미지를 빠르게 생성해보고 싶어 정작 Docker 홈페이지를 꼼꼼하게 보지 않았었다. 홈페이지에서 제공하는 내용은 간단한게 참고만 하고 넘어갔었다. 아래 페이지에서 Get started 정도만 확인하고 구글링을 하면서 Dockerfile을 작성했다. 그런데 잘 찾아보면, Docker 홈페이지에서는 Dockerfile을 "잘" 만드는 방법을 가이드해주고 있었다. Dockerfile 작성 모범 사례(Best practices for writing Dockerfiles) 페이지인데, 이 페이지에서 가이드해 주는 몇 가지만 짚어보고 넘어가려고 한다. 이 내용이 나오기 전에는 일반적인 Docker를 빌드하는데 유의해야 하는 내용들이 나온다. 예를 들어, 임시 컨테이너를 사용해라,..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/TZ5nz/btrYUvHdV0M/7BdaNR0ZlSd8K9ahRBVdm0/img.png)
정확히는 AWS EC2에서 뿐만아니라 Tomcat을 베이스 이미지로 생성한 Docker 컨테이너에 war 파일을 배포할 때 발생하는 문제이다. 배포는 에러없이 진행된다. 그러나 서버로 요청을 날리면 404가 발생한다. localhost_access_log에는 요청이 제대로 들어오는 것이 확인 됐고, contextpath도 정상적으로 지정했는데도 말이다. 해결방안 프로젝트 파일을 jar로 묶어서 배포하면된다. 문제가 저것 뿐이고, 해결방안이 저것 뿐이면 따로 포스팅하진 않았을 것 같다. 왜 404가 나는지 문제를 알아보면, war파일로 배포를 진행하게 되면 별도의 web.xml이 생성되지 않는다. 그래서 web.xml이 하는 대표적인 역할인 URL 경로와 해당 경로의 요청을 처리하는 서블릿 사이의 매핑을 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/vP3fW/btrXoDzEi1Q/QYeAGXL9arjtRuN9maSmd1/img.png)
앱이나 웹에서 화면을 그리기 위해서 단 하나만의 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..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/baWa5D/btrWQXmDfil/k4aGe9CKSgextOIEirT0Fk/img.png)
테스트 데이터를 다량 생성해야 할 일이 생겼다. DB에 INSERT문으로 쭉 밀어넣기엔, 동시에 다른 테이블에도 데이터가 생성되야 했기 때문에 API 요청으로 처리하는게 쉬워보여서 평소에 API 요청과 Response 확인에 사용하는 포스트맨(Postman)에 이런 기능은 없나... 찾아보게 되었고 다행히도 있었다. 포스트맨의 RUNNER 기능인데, 생각보다 어렵지 않고 범용적으로 쓸만한 기능이었다. 매뉴얼처럼 작성해봤다. 1. 포스트맨 RUNNER 사용법 1-1. Collection 만들기 빨간 동그라미를 클릭해 Collection을 만들어준다. 1-2. API 요청 데이터 생성 POST 방식의 request body로 중괄호로 묶어서 변수명을 지정할 수 있다. csv 파일의 1번 컬럼을 저 변수명으로..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/eh4d8c/btrWRymlu6i/HASwy1k6Sk5bvWpOpYKVBk/img.png)
서버에 과부하 로직을 반영하고, 임의로 임계치를 올려놓고 테스트하는건 올바른 테스트라고 할 수 없다. 과부하 테스트를 하려면 서버에 요청을 빠르게 엄청나게 많은 양을 보내야 한다. 실제 요청을 만들어 보낼 수 없을 때, Apache Jmeter를 사용하면 된다. 1. Jmeter 란? 앞서 언급한 것 처럼 서버의 성능을 측정할 때 쓰는 툴이다. 대표적으로 스트레스 테스트라고 하는 테스트를 하는데 쓰이고, 서버가 짧은 시간에 얼마나 많은 요청을 처리할 수 있는지 테스트하고 결과를 모니터링 하는데 주로 쓰인다. 이외에도 다양한 기능이 있지만 그건 홈페이지로 가서 알아보도록 하자. 2. 설치 제목에서처럼 윈도우 10 환경에서 설치할 것이다. 홈페이지에서 Binaries 설치 Requries Java 8+라고 ..
- Total
- Today
- Yesterday
- terraform
- Log
- GIT
- lambda
- S3
- AWS
- AOP
- cache
- chat GPT
- openAI API
- Elastic cloud
- Kotlin
- JWT
- 스프링부트
- springboot
- MySQL
- jenkins
- AWS EC2
- OpenAI
- 코딩테스트
- elasticsearch
- docker
- 람다
- serverless
- ChatGPT
- Spring
- EKS
- awskrug
- java
- CloudFront
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |