전체 글102 [Troubleshooting] ALB Target Group Unhealthy를 따라가다 발견한 NAT Gateway blackhole 1. 문제 요약ALB 뒤에 ASG 기반 Private EC2를 붙이고 Spring Boot 애플리케이션을 배포하던 중, Target Group 상태가 계속 Unhealthy로 표시되었다.처음에는 ALB 리스너, Target Group 포트, Health Check path, Security Group 설정 문제라고 생각했다.하지만 실제 원인은 Private Subnet의 라우팅 테이블이 삭제된 NAT Gateway를 바라보고 있었기 때문이었다. 그 결과 Private EC2가 Docker Hub에서 애플리케이션 이미지를 pull하지 못했고, Spring Boot 컨테이너가 실행되지 않았다. 컨테이너가 실행되지 않았기 때문에 ALB가 /actuator/health로 Health Check 요청을 보내도 8.. 2026. 5. 19. [TIL] 2026.05.18 - Docker, CI/CD, ALB/ASG, CloudFront 1. 학습 내용클라우드 도전과제 완료코등테스트 1문제 풀이2. 핵심 개념1) DockerDocker는 애플리케이션 실행에 필요한 환경을 이미지로 패키징하는 기술이다. 기존에는 서버에 Java를 직접 설치하고 jar 파일을 실행해야 했지만 Docker를 사용하면 Java 버전, 실행 명령어, 포트 설정 등을 이미지 안에 함께 정의할 수 있다.이번 과제에서는 Spring Boot 프로젝트를 jar로 빌드한 뒤 Dockerfile을 통해 이미지로 만들고, Docker Hub에 push했다. 이후 EC2에서는 해당 이미지를 pull 받아 컨테이너로 실행했다.이를 통해 서버에는 Docker만 설치되어 있으면 동일한 이미지를 같은 방식으로 실행할 수 있고, “로컬에서는 되는데 서버에서는 안 되는 문제”를 줄일 수 .. 2026. 5. 18. [TIL] 2026.05.13 - Spring Boot에서 S3 파일 업로드와 RDS 연동 실습 1. 학습 내용클라우드 강의 4-2까지 수강(도커 실습은 내일..)2. 실습 내용1) S3 버킷 생성 및 파일 업로드 확인AWS S3에서 camp-health-vanilalatte-files 버킷을 생성하고, 테스트 이미지 파일을 직접 업로드했다.S3에서 파일을 저장할 때는 다음 구조로 관리된다.S3└── bucket └── object이번 실습에서는 다음과 같은 형태로 파일이 저장되었다버킷은 파일을 담는 저장소이고, 오브젝트는 실제 저장된 파일이다. 파일의 위치는 key라는 값으로 식별된다.예를 들어 다음과 같은 경로가 있다면uploads/0f8b9c52-c21f-4f9e-b898-7d42008fed3c_test.jpg이 전체가 S3에서 파일을 찾기 위한 key가 된다. 2) Spring Boot.. 2026. 5. 13. [TIL] 2026.05.12 - EC2에 Spring Boot 애플리케이션 배포하기 1. 학습 내용클라우드 강의 2-6까지 학습2. 실습 과정1) EC2 접속먼저 로컬 환경에서 Git Bash를 사용해 EC2에 SSH로 접속했다.ssh -i /c/Users/jiho/Downloads/ec2-key.pem ec2-user@13.125.19.143처음에는 Windows 환경에서 터미널로 진행하는 바람에 막히기도 했지만, Git Bash를 사용하면 Linux/Mac과 비슷한 방식으로 명령어를 실행할 수 있다는 것을 확인했다. 2) EC2에서 간단한 HTTP 서버 실행EC2에 접속한 뒤 web 디렉토리를 만들고 Python으로 간단한 HTTP 서버 파일을 작성했다.mkdir -p web && cd webcat > server.py Hello from EC2! 서버 시간: {now}.. 2026. 5. 12. [TIL] 2026.05.08 - ArgumentResolver와 Converter 1. 학습 내용스탠다드반 수업 자료를 통한 학습AI 공부코딩테스트 1문제 풀이2. 핵심 개념1) ArgumentResolverArgumentResolver는 컨트롤러 메서드가 실행되기 전에 필요한 파라미터 값을 만들어주는 역할을 한다.@PostMapping("/users")public void create(@RequestBody UserCreateRequest request) {}위 코드에서 @RequestBody가 붙은 request 객체는 그냥 자동으로 만들어지는 것이 아니다.Spring이 먼저 요청 Body를 읽고, JSON 데이터를 UserCreateRequest 객체로 변환한 뒤 컨트롤러 메서드에 넣어준다.요청 Body JSON→ ArgumentResolver→ HttpMessageConvert.. 2026. 5. 8. [Java] 프로그래머스 - 추억 점수 이름별 그리움 점수를 Map에 저장한 뒤, 각 사진에 등장하는 사람들의 점수를 합산하는 문제 1. 문제 유형HashMap, 배열, 구현 2. 내가 놓친 포인트처음 떠올린 접근 : Map과 getOrDefault()를 사용하면 이름별 그리움 점수를 빠르게 조회할 수 있을 것 같다고 생각했다. 오답 원인: 없음. 3. 핵심 로직 & 해결 방법핵심 조건: 사진 속 인물이 name 배열에 존재하면 해당 그리움 점수를 더하고, 존재하지 않으면 0점을 더한다. 풀이 아이디어:name[i]와 yearning[i]를 이용해 이름별 점수를 Map에 저장한다.photo 배열을 순회하면서 각 사진에 등장하는 사람들의 이름을 확인한다.getOrDefault()를 사용해 점수가 있는 사람은 해당 점수를 더하고, 없는 사람은 0.. 2026. 5. 8. 이전 1 2 3 4 ··· 17 다음