분류 전체보기 364

context-path와 Security: 예상과 다른 경로 매칭 문제

Spring Boot 프로젝트에서 REST API 경로에 공통 prefix(/api)를 적용하기 위해 context-path 설정을 사용하는 경우가 많다.하지만 이렇게 설정한 뒤, Spring Security에서 특정 경로를 허용하려 할 때, 의도한 대로 매칭되지 않고 403 혹은 401 에러가 발생하는 경우가 있다.문제 상황다음과 같이 context-path를 설정하고server: servlet: context-path: /api 그리고 Security 설정에서는 아래와 같이 /api/login을 허용하도록 구성했다http .authorizeHttpRequests(auth -> auth .requestMatchers("/api/login").permitAll() ..

@Cacheable 사용 시 역직렬화 오류 해결

문제 상황@Cacheable(value = "books", key = "...")public PagedResponse findAllCached(...) { return bookService.findAll(...);} PagedResponse 와 같은 제네릭 타입으로 캐싱할 때캐시에서 조회된 데이터가 LinkedHashMap으로 역직렬화되어 아래와 같은 오류가 발생 java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class cohttp://m.example.book_api.global.dto.PagedResponse (java.util.LinkedHashMap is in module java.base of ..

EXPLAIN ANALYZE 활용법

EXPLAIN ANALYZE란?MySQL에서 쿼리 실행 계획뿐만 아니라, 쿼리를 실제로 실행해 본 후 실제 실행 시간과 처리된 행 수 같은 실행 통계까지 함께 보여주는 명령어단순 EXPLAIN과 달리, 쿼리를 실제 실행하므로 정확한 성능 정보를 알 수 있다.옵티마이저가 예측한 실행 계획과 실제 수행 결과를 비교해, 실행 계획의 적절성을 검증할 수 있다.EXPLAIN ANALYZE 활용법 및 개선 방향실제 실행 시간과 옵티마이저 예상 비용을 비교한다.조인 방식(Nested Loop, Hash Join 등)과 인덱스 활용 여부를 확인한다.불필요한 컬럼 조회를 피하고, 필요한 컬럼만 선택한다. (커버링 인덱스 유도)통계 정보를 최신으로 유지해 옵티마이저가 정확한 계획을 세우도록 한다.변경 전후 성능을 수치로 ..

SQL/성능 개선 2025.07.04

[🐋 Docker + CI/CD] 4. AWS 연동

🐋 목차AWS 회원 가입 & 로그인EC2 설정서버 설정github repository 설정 프로젝트 설정 EC2 인바운드 규칙 설정배포 확인인스턴스 중지1. AWS 회원 가입 & 로그인https://portal.aws.amazon.com/billing/signup AWS Console - Signup portal.aws.amazon.com 이메일 인증, 주소 등록, 카드 등록, 본인 인증 등의 절차를 거쳐 회원가입을 진행한 로그인 한다 !2. EC2 설정왼쪽 위 검색창에서 ec2 를 입력 후 선택 ec2 화면에서 ‘인스턴스’ 를 선택 인스턴스 시작 버튼 클릭 인스턴스 생성이름 : my-serverAmazon Machine Image(AMI) : Amazon Linux 2023 AMI인스턴스 유형 ..

Backend/강의 2025.07.03

Windows에서 EC2 SSH 접속 시 WARNING: UNPROTECTED PRIVATE KEY FILE! 오류 해결

문제 상황AWS EC2 인스턴스에 SSH로 접속을 시도했는데 다음과 같은 오류가 발생했다:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ WARNING: UNPROTECTED PRIVATE KEY FILE! @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Permissions for 'test-server.pem' are too open.It is required that your private key files are NOT accessible by others.This private key will be ignored.Load key "test-serv..

[🐋 Docker + CI/CD] 3-2. Docker 모니터링과 로깅

🐋 목차Docker 모니터링Container 리소스 모니터링Container 로깅🩵 학습 목표Docker 컨테이너를 모니터링하고 로깅을 확인할 수 있습니다.1. Docker 모니터링Docker 모니터링컨테이너가 현재 어떤 상태로 실행되고 있는지 확인하는 활동확인 가능한 정보CPU 사용량메모리 사용량네트워크 트래픽디스크 I/O모니터링의 중요성과도한 자원 사용 감지병목 현상 파악시스템 최적화 및 안정성 확보2. Container 리소스 모니터링docker stats: 컨테이너 실시간 모니터링docker stats실행 중인 모든 컨테이너의 자원 사용 현황을 실시간으로 표시출력 정보:CPU %메모리 사용량 / 제한네트워크 I/O디스크 I/O* 특정 컨테이너만 보고 싶다면?docker stats htop:..

Backend/강의 2025.07.02

[🐋 Docker + CI/CD] 3-1. Dockerfile 과 Docker Compose

🐋 목차DockerfileDocker ComposeDocker Compose 실습🩵 학습 목표Dockerfile 을 활용하여 나만의 이미지를 만들 수 있습니다.Docker Compose 를 활용하여 여러 개의 컨테이너를 관리할 수 있습니다.1. Dockerfile DockerfileDocker 이미지 생성을 위한 빌드 명세 파일텍스트 형식의 스크립트 파일로, 도커가 이미지를 생성할 때 따라야 하는 지시어(instruction)들을 포함한다.Dockerfile은 사용자가 정의한 명령어들을 기반으로 새로운 도커 이미지를 생성하는 데 사용된다.해당 명령어들은 계층(layer) 단위로 실행되며, 각 계층은 캐시될 수 있다. 주요 특징 비결정적 상태 방지: 명령어 순서와 내용을 명확하게 기술하여 빌드 과정의..

Backend/강의 2025.07.02

[🐋 Docker + CI/CD] 2. Github actions를 활용한 CI/CD 파이프라인

🐋 목차Github ActionsGithub Actions CIGithub Actions CD 🩵 학습 목표Github Actions를 이해합니다.간단한 CI/CD 파이프라인을 구성합니다.1. Github Actions GitHub Actions GitHub에서 제공하는 CI/CD 자동화 도구코드 변경(pull request, push 등)에 반응하여 자동으로 테스트, 빌드, 배포 등의 작업을 수행할 수 있다.GitHub 저장소 내부에서 실행되며, 외부 서비스 연동 없이 GitHub 환경에서 직접 워크플로우를 구성할 수 있는 점이 특징이다. 주요 구성 요소Workflow자동화하고 싶은 전체 작업 정의.github/workflows/main.yml 등의 형식으로 저장Job워크플로우 안에서 병렬 혹은 ..

Backend/강의 2025.07.01

[🐋 Docker + CI/CD] 1. CICD와 Docker 이해

🐋 목차CI/CD란 무엇인가?왜 Docker인가Docker 설치 - Window11Docker 설치 후 Docker TestDocker ImageDocker Container🩵 학습 목표CI/CD 사용 이유를 이해합니다.Docker 사용 이유를 이해합니다.윈도우11 이나 MacOS에서 도커 실행 환경을 구성합니다.간단한 Container 서비스 구현 실습을 통해 앱을 실행합니다.1. CI/CD란 무엇인가? CI/CD Continuous Integration(지속적 통합)과 Continuous Delivery 또는 Continuous Deployment(지속적 제공 또는 지속적 배포)의 약자소프트웨어 개발에서 개발 → 테스트 → 배포의 과정을 자동화하여 더 빠르고 안정적으로 서비스를 제공하기 위한 De..

Backend/강의 2025.07.01