전체 글

개발하면서 끄적이는 여러내용
TIL

2025_05_27 TIL

Spring Filter와 AOP 차이 및 활용 정리Spring 애플리케이션을 개발하다 보면 공통된 처리 로직을 여러 요청에 적용해야 할 때가 많다.모든 요청에 대해 IP를 로깅하거나, 특정 메서드 실행 전에 인증을 검사하거나, 실행 시간을 측정하는 등.이러한 횡단 관심사(Cross-Cutting Concern)를 처리하기 위한 대표적인 방법이 바로 Filter와 AOP.Filter란?Filter는 서블릿 스펙의 일부로, DispatcherServlet 이전 단계에서 동작.즉, Spring MVC가 요청을 처리하기 전에 먼저 실행 됨.특징HttpServletRequest와 HttpServletResponse에 접근 가능요청 전/후 처리 모두 가능인증/인가, IP 로깅, CORS 처리, RequestWra..

카테고리 없음

2025_05_20 TIL

보호되어 있는 글입니다.

Project/회고

Docker caching

Docker caching문제상황기존 프로젝트의 FastAPI의 docker file은 캐싱을 활용하지 않고 단순 코드 변경만 있어도 모든 파일을 build 하였다.FROM python:3.11-slimWORKDIR /appCOPY . .RUN pip install --no-cache-dir -r requirements.txtCMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "8000"]해결FROM python:3.11-slimWORKDIR /appCOPY requirements.txt ./RUN pip install --no-cache-dir -r requirements.txtCOPY . .CMD ["uvicorn", "app.main:ap..

TIL

2025_05_15 TIL

오늘의 할일NGINX?NGINX와 리버스 프록시의 개념과 활용Spring + FastAPI 프로젝트 기반웹 서비스 개발 시 자주 접하는 개념 중 하나가 리버스 프록시(Reverse Proxy)특히 백엔드 서버가 여러 개이거나, React와 같은 프론트엔드와 분리된 구조를 사용할 때리버스 프록시 도입이 필수적인 아키텍처 구성 요소리버스 프록시란?리버스 프록시는 클라이언트(사용자)의 요청을 받아 백엔드 서버에 전달하고,응답을 다시 클라이언트에게 반환하는 중간 게이트웨이 역할 수행.사용자는 하나의 도메인(URL)만 인지하며,내부적으로 여러 서버가 요청을 분산 처리하는 구조.리버스 프록시의 필요성1. 단일 진입점 제공클라이언트가 하나의 도메인만 사용하며, 내부적으로 정적 웹, API 서버(Spring, Fast..

TIL

2025_05_14 TIL

오늘의 할일Docker Docker를 활용한 공통 환경 구성Docker는 여러 개의 서비스를 컨테이너로 분리하여 효율적으로 관리할 수 있게 해주는 강력한 도구Docker Compose란?Docker Compose는 여러 개의 Docker 컨테이너를 한번에 정의하고 관리할 수 있는 도구. 일반적으로 각 서비스는 별도의 컨테이너로 실행되며, Docker Compose를 사용하면 이러한 서비스를 하나의 파일로 정의하여 동시에 실행하거나 관리할 수 있음. 이를 통해 복잡한 환경을 간편하게 구축하고 운영할 수 있다.Docker Compose의 주요 특징다수의 컨테이너 관리: 여러 개의 서비스(컨테이너)를 하나의 파일로 정의하고 실행할 수 있음.환경 설정의 편리함: 각 서비스의 환경변수, 볼륨, 네트워크 등을 do..

TIL

2025_05_01 TIL

오늘의 할일네트워크 기본개념자바 테스트 코드 2025.05.01 - [study/Network] - 네트워크 개념 정리 OSI 7 Layer ~ 4Layer detailspring boot 기반 java test code 1. 테스트의 필요성코드가 원하는 대로 동작하는지 검증유지보수, 리팩토링 시 안정성 확보자동화된 테스트로 반복적인 검증 가능2. 테스트 종류테스트 종류설명사용 기술단위 테스트 (Unit Test)하나의 클래스나 메서드 단위 테스트JUnit, Mockito통합 테스트 (Integration Test)여러 Bean 간의 실제 연결을 포함한 테스트Spring Boot Test, TestRestTemplate인수 테..

study/Network

네트워크 개념 정리

네트워크 핵심 개념 정리OSI 7계층계층이름주요 기능7계층응용(Application)사용자와 가장 가까운 계층. HTTP, FTP 등6계층표현(Presentation)데이터 암호화, 압축, 인코딩 (예: JPEG, MPEG)5계층세션(Session)연결, 유지, 동기화 (예: SSL, TLS)4계층전송(Transport)데이터의 신뢰성 있는 전송 (TCP/UDP)3계층네트워크(Network)경로 설정 및 IP 주소 (라우팅)2계층데이터 링크(Data Link)MAC 주소 기반 통신, 오류 검출1계층물리(Physical)전기 신호, 케이블, 전송 매체 등 물리적 전송 전송 계층 (4계층)주요 프로토콜: TCP, UDP포트 번호 기반으로 애플리케이션 구분데이터의 분할 및 재조합, 흐름 제어, 오류 제어 수행..

study/AI

개인화 추천 서비스 : 코사인 유사도와 사이킷런을 활용한 전처리

fineapple 프로젝트에서는 Spring 로그 데이터를 기반으로 유저의 최근 행동을 파악하고, 이를 바탕으로 fastapi에서 상품 정보를 벡터화한 뒤 코사인 유사도를 활용해 유사한 상품 3개를 추천하는 개인화 추천 시스템을 도입함.추천 시스템 기본 개념**코사인 유사도(Cosine Similarity)**는 두 벡터 간의 방향(기울기)의 유사성을 측정할 수 있다. 벡터의 크기가 아닌 방향(각도)에 집중하기 때문에, 크기의 영향 없이 두 객체 간의 "유사성"을 잘 파악할 수 있다.코사인 유사도 값1에 가까울수록 유사도가 높음 (같은 방향)0이면 유사하지 않음 (90도)-1은 반대 방향 (완전 반대) 상품 데이터 구성추천 대상이 되는 Product 테이블에서 3가지 정보를 기반으로 기울기를 측정.nam..

hi_i
개발하는 행인