최신글

more

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 등)과 인덱스 활용 여부를 확인한다.불필요한 컬럼 조회를 피하고, 필요한 컬럼만 선택한다. (커버링 인덱스 유도)통계 정보를 최신으로 유지해 옵티마이저가 정확한 계획을 세우도록 한다.변경 전후 성능을 수치로 ..

성능 개선 2025.07.04 0

[🐋 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인스턴스 유형 ..

강의 2025.07.03 1

인기글

백준, 프로그래머스와 GitHub 연동하기

크롬 확장 프로그램백준허브(BaekjoonHub)에 대해 소개하고, 설치, 적용하는 법을 정리해보고자 한다.1. 프로그램 설치아래 사이트로 접속하여 확장 프로그램을 추가해준다. https://chromewebstore.google.com/detail/ccammcjdkpgjmcpijpahlehmapgmphmk?utm_source=item-share-cb 백준허브(BaekjoonHub) - Chrome 웹 스토어Automatically integrate your BOJ submissions to GitHubchromewebstore.google.com 2. GitHub 연동하기추가가 완료되면, 우측 상단에 퍼즐 버튼을 눌러, 백준허브를 클릭해준다.  깃허브 연결버튼을 누르면, 연동 도움 사이트로 이동된다. ..

Github 연동 2025.03.28 0

IntelliJ Community 설치하기

Java 개발용 IDEIntelliJ를 설치해보고자 한다.1. 설치설치 링크: https://www.jetbrains.com/ko-kr/idea/download IntelliJ IDEA 다운로드 www.jetbrains.com 다운로드 페이지 두번째 단락무료 평가판이 아닌, Community Edition을 다운로드 한다. 다운받은 설치 파일을 실행 후 설치 옵션 설정 2. 프로젝트 생성해보기 IntelliJ 실행 > 새 프로젝트 프로젝트 이름과 위치 설정 후생성 아래 코드 입력 후실행 버튼 클릭public class Main { public static void main(String[] args) { System.out.println("Hello world!"); }} ..

Tool 2025.04.14 0

커밋 컨벤션 (Commit Convention)

커밋 컨벤션(Commit Convention) 이란?Git에서 커밋 메시지를 작성할 때 일정한 형식(규칙)을 정해 놓은 것커밋 컨벤션의 장점커밋 메시지를 봤을 때 어떤 변경을 했는지 빠르게 파악 가능협업 시 코드 히스토리가 명확하고 일관됨자동 릴리즈(예: semantic-release)나 체인지로그 생성 등에 유리Conventional Commits - 가장 널리 쓰이는 형식 https://www.conventionalcommits.org/en/v1.0.0/ Conventional CommitsA specification for adding human and machine readable meaning to commit messageswww.conventionalcommits.org 기본 구조(optio..

Git 2025.04.18 0

List.of()로 만든 리스트에서 add()가 안 되는 이유

문제 상황 (예시)List.of() 로 초기화 한 리스트에 값을 추가할 수 없는 문제List items = List.of("apple", "banana");items.add("cherry"); // 예외 발생 java.lang.UnsupportedOperationException문제 원인List.of(...)는 Java 9부터 제공되는 불변 리스트 (Immutable List) 를 생성하는 정적 팩토리 메서드이다.불변(immutable): 값을 추가하거나 제거할 수 없다.null 불허: List.of("a", null)처럼 null이 포함되면 NullPointerException 발생수정 불가: add(), remove(), set() 등 변경 연산은 모두 UnsupportedOperationExcept..

TIL 작성 가이드

일시 : 4/14(월) 14:00진행 : 김기용 튜터님장소 : zoom📝 TIL 작성 가이드TIL(today I learn) 이란?개발 커뮤니티에서의 TILTIL 5가지 유형 정리TIL 잘쓰는 법 2가지TIL 을 100% 활용하는 방법TIL 작성을 시작해보세요1. TIL(today I learn) 이란? TIL 은 "Today I learned" - "오늘 내가 배운것"의 줄임말로,최근에 알게 된 흥미로운 사실을 공유하는 인터넷 문화에서 비롯되었다.2. 개발 커뮤니티에서의 TIL서로의 TIL을 통해새로운 개념을 배운다.본인의 코드에서 놓쳤던 부분을 발견한다.피드백을 주고 받는다. 개발 블로그 종류 (velog, tistory 등)https://velopert.com/https://pjh3749.tist..

특강 2025.04.14 1

HeidiSQL 설치하기

DB GUI 툴인 HeidiSQL 을 설치해보려고 한다.가볍고, 직관적이라서 필자의 경우 MySQL Work bench 보다 HeidiSQL 을 선호한다.오픈 소스이다.1. 설치설치 링크: https://www.heidisql.com/download.php Installer 다운로드 후 실행 설치 모드기본값 - 모든 사용자 동의, 다음, 다음, 다음, 설치 설치 완료 !2. 실행설치 후 첫 화면이다. 세션 연결 방법+ 신규세션 이름 및 설정 입력열기

Tool 2025.05.06 0

NVIDIA Jetson 보드 세팅 - Jetpack & Cuda 재설치

대학교 LAB에서Jetson 보드 세팅을 해본 경험이 있는데 혹시 모를 나중을 대비해블로그에 다시 정리해보고자 한다.  ㅡㅡㅡ주의ㅡㅡㅡ2023.02.08 에 작성된 문서이다.💻 목차준비물NVIDIA SDK manager 설치SDK manager 실행 후 로그인Step 1 - 젯슨 보드 연결 후 버전 선택Step 2Step 3 - 설치 진행Cuda 설치1. 준비물호스트pc(우분투 pc), 젯슨 보드키보드 마우스, 모니터 2개, 랜선 등 젯슨보드 분해 후 리커버리, 파워 버튼 찾아두기호스트 pc와 젯슨보드는 같은 공유기의 랜선으로 연결호스트pc 용량 확보 (30GB 정도)  젯슨 보드는 이렇게 연결해주었다. 왼쪽부터 파워선, 랜선, HDMI선, 5핀 (micro B) 선이 연결되어있다. 리커버리, 파워 버..

NVIDIA Jetson 2025.04.11 0

EXPLAIN ANALYZE 활용법

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

성능 개선 2025.07.04 0

Open JDK ver.8 설치하기

💡 과거에는 Oracle JDK를 기본으로 설치했지만, 이제 유료화 되었으므로 Open JDK를 설치한다.1. 설치설치 링크: https://adoptium.net/ Home | AdoptiumThe Adoptium® Working Group The Adoptium Working Group promotes and supports high-quality runtimes and associated technology for use across the Java ecosystem. Our vision is to meet the needs of Eclipse and the broader Java community by providing runtimesadoptium.net Other platforms and ..

Tool 2025.04.14 0

181904. 세로 읽기

https://school.programmers.co.kr/learn/courses/30/lessons/181904 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요. 제한사항my_string은 영소문자로 이루어져 있습니다.1 ≤ m ≤ my_string의 길이 ≤ 1,000m은 my_string 길이의 약수로만 주어집니다.1 ≤ c ≤ m 입출력 예my_stringmcresult"i..