Spring Security로 인증/인가 맛보기

오늘은 Spring Security를 처음 배우며 알게 된 것들을 정리한다. 폼 로그인, 인메모리 사용자, 비밀번호 암호화, 요청 경로별 인가, 예외 처리까지 한 바퀴 돌았다.Spring MVC는 요청이 들어오면 DispatcherServlet이 컨트롤러로 라우팅해주는

2026년 9월 19일
·
0개의 댓글
·

SpringAI로 이미지 생성 서비스를 만들어 보자

Spring Boot 4.1.0 + Spring AI 2.0.0으로 작은 이미지 생성 서비스를 만들어 보았다. 사용자가 프롬프트를 입력하면 ① LLM이 그 프롬프트를 다듬고 ② 다듬어진 프롬프트로 이미지 생성 모델을 호출하고 ③ 결과 이미지를 스토리지에 올리고 ④ 어떤

2026년 9월 19일
·
0개의 댓글
·

26/08/10 IL - (2) Vector Search와 SearchRequest 활용

Part 1에서 이미지와 PDF를 Vector Store에 저장하는 방법을 배웠다면, 이번에는 저장된 Document를 실제 질문과 비교해서 검색하는 방법을 학습했다.이번 프로젝트에서 핵심적으로 사용한 것은 다음과 같다.VectorStoresimilaritySearch

2026년 9월 19일
·
0개의 댓글
·

26/08/10 IL - (1)-2 PDF Document 변환 / VectorStore 저장

이번 프로젝트에서는 이미지뿐만 아니라 PDF 파일을 RAG의 검색 대상 문서로 적재하는 과정을 구현했다.PDF는 이미지처럼 그대로 Vector Store에 넣는 것이 아니라,PDF 파일 → 페이지별 Document → Chunk → Vector Store 저장과정을 거

2026년 9월 19일
·
0개의 댓글
·
post-thumbnail

프로그래머스 AI 활용 백엔드 과정 7기 2차 백엔드 프로젝트 회고

프로그래머스 데브코스의 두번째 프로젝트인 백엔드 팀 프로젝트가 시작되었다. 다른 백엔드 개발자와의 협업 경험이 전무하여 이번이 처음으로 하는 백엔드 팀 프로젝트였다. 지금 쓰는 프로젝트 회고도 처음 쓰는 프로젝트 회고이다... 프로젝트의 주제는 재능 및 프리랜서 매칭

2026년 9월 13일
·
0개의 댓글
·

26/08/10 IL - (1)-1 이미지 RAG를 위한 이미지 저장·전처리·AI 분석·VectorStore 저장

RAG의 기본 구조와 Document · VectorStore를 활용한 데이터 저장 1. 이번 프로젝트에서 새롭게 배운 핵심 이번 프로젝트에서는 단순히 AI에게 질문을 전달하고 답변을 받는 방식에서 벗어나, 외부 데이터를 AI가 검색하여 답변에 활용할 수 있도록 만

2026년 8월 19일
·
0개의 댓글
·

26/08/07 IL - (2)-2 JPA 조회 성능 최적화

이번 프로젝트에서는 조회 성능을 향상시키기 위한 JPA 조회 전략과 Repository 설계 방식을 학습하였다. 특히 FetchType.LAZY, @EntityGraph를 이용하여 N+1 문제를 해결하는 방법을 익혔으며, Repository를 인터페이스로 추상화하여 S

2026년 8월 19일
·
0개의 댓글
·

26/08/07 IL - (2)-1 JPA 연관관계 설계와 영속성 컨텍스트를 이용한 데이터 관리

이번 프로젝트에서는 MovieEntity와 MovieImageEntity 사이의 연관관계를 설계하고, JPA가 객체를 어떻게 관리하는지에 대해 학습하였다.특히 OneToMany와 ManyToOne 관계, Cascade, orphanRemoval, BaseEntity를

2026년 8월 18일
·
0개의 댓글
·

26/08/07 IL - (1)-2 MovieService를 이용한 파일 업로드 처리와 Entity 생성 과정

이번 프로젝트에서는 사용자가 입력한 영화 정보와 이미지 파일을 하나의 요청으로 받아 데이터베이스에 저장하는 기능을 구현하였다. 이전 프로젝트에서는 문자열과 숫자만 저장하였다면, 이번에는 MultipartFile을 이용한 파일 업로드, DTO를 Entity로 변환, Mo

2026년 8월 18일
·
0개의 댓글
·

26/08/07 IL - (1)-1 MultipartFile을 활용한 파일 업로드 구조와 FileStore 설계

이번 프로젝트에서는 기존 영화 CRUD 프로젝트를 확장하여 이미지 파일 업로드 기능을 구현하였다. 단순히 영화 제목과 가격 같은 텍스트 데이터만 처리하는 것이 아니라, 사용자가 여러 장의 이미지를 선택하여 업로드하고 이를 서버(Local) 또는 S3와 같은 외부 저장소

2026년 8월 18일
·
0개의 댓글
·

26/08/06 TIL - 레이아웃과 Thymeleaf Fragment, 서버사이드 예외처리 (2)

이번 프로젝트에서는 Spring Data JPA를 활용한 영화 CRUD 기능 구현과 Spring MVC의 예외 처리 구조를 함께 학습하였다. JpaRepository와 Service 계층을 이용하여 조회, 등록, 수정, 삭제 기능을 계층적으로 구현하고, BaseEnti

2026년 8월 6일
·
0개의 댓글
·

26/08/06 TIL - 레이아웃과 Thymeleaf Fragment, 서버사이드 예외처리 (1)

이번 프로젝트에서는 Spring Boot와 Thymeleaf를 활용하여 영화(Movie) 관리 시스템을 구현하면서 화면의 중복을 줄이기 위한 Fragment(프래그먼트), DTO를 이용한 계층 간 데이터 전달, Validation을 통한 입력 검증, 그리고 MVC(Mo

2026년 8월 6일
·
0개의 댓글
·

26/08/05 IL(I Learned) - Spring Boot 설정 관리와 JPA Auditing

이번 프로젝트에서는 단순히 데이터를 저장하고 조회하는 기능을 구현하는 것을 넘어, 프로젝트에서 반복적으로 사용되는 공통 기능을 효율적으로 관리하는 방법을 학습하였다.특히 Spring Boot의 @ConfigurationProperties를 활용하여 설정 파일의 값을 객

2026년 8월 6일
·
0개의 댓글
·

26/08/05 IL(I Learned) - Spring Validation

이번 프로젝트에서는 사용자가 입력한 데이터를 데이터베이스에 저장하기 전에 올바른 값인지 검증(Validation) 하는 방법을 학습하였다. 단순히 Controller에서 데이터를 받아 저장하는 것이 아니라, Bean Validation을 이용하여 입력값의 형식을 검사하

2026년 8월 6일
·
0개의 댓글
·

26/08/04 IL(I Learned) - application-yaml과 외부 설정

이번 프로젝트에서는 화면을 구성하는 것뿐만 아니라 Spring Boot 애플리케이션의 환경을 효율적으로 관리하는 방법을 학습하였다. 하나의 설정 파일에 모든 정보를 작성하는 것이 아니라 설정을 역할별로 분리하고, @ConfigurationProperties를 이용하여

2026년 8월 6일
·
0개의 댓글
·

26/08/04 IL(I Learned) - Thymeleaf

Thymeleaf 템플릿 엔진을 활용한 동적 화면 구성과 Spring MVC 연동 Thymeleaf 템플릿 엔진을 이용하여 서버에서 전달한 데이터를 화면에 출력하고, 사용자 입력을 다시 서버로 전달하는 과정을 학습하였다. 또한 Spring MVC의 Model 객체를 활

2026년 8월 5일
·
0개의 댓글
·

26/07/30 IL(I Learned) - RAG (2)

이번에는 RAG의 개념을 이해하는 것에서 나아가 Spring Boot와 Spring AI를 활용하여 실제 RAG 시스템을 구현하는 과정을 학습하였다. 단순히 AI에게 질문을 전달하는 것이 아니라 문서를 Vector Database에 저장하고, 문서를 검색하고, 검색된

2026년 8월 5일
·
0개의 댓글
·

26/07/30 IL(I Learned) - RAG (1)

RAG(Retrieval-Augmented Generation)와 Vector Database의 이해 및 Spring AI 기반 RAG 구조 학습 이번에는 기존의 생성형 AI(ChatGPT, Gemini 등)가 가지고 있는 한계를 해결하기 위한 RAG(Retrieva

2026년 8월 5일
·
0개의 댓글
·

26/07/29 IL(I Learned) - Spring AI 2 (2)

Spring Data JPA를 활용하여 AI Chat Memory를 데이터베이스에 저장하고 관리하는 기능을 구현하였다. 이전에는 MyBatis를 사용하여 SQL을 직접 작성하고 Mapper를 통해 데이터베이스를 제어하였다면, 이번에는 객체(Entity)를 중심으로 데이

2026년 7월 30일
·
0개의 댓글
·

26/07/29 IL(I Learned) - Spring AI 2 (1)

Spring AI의 Chat Memory 기능을 MyBatis와 연동하여 AI와 사용자의 대화 내용을 데이터베이스에 저장하고, 이전 대화 내용을 다시 불러와 대화를 이어갈 수 있는 기능을 구현하였다.기존에는 AI와의 대화가 한 번의 요청과 응답으로 끝나는 구조였다면,

2026년 7월 30일
·
0개의 댓글
·