나는 야생형 코딩을 좋아한다. 그래서 항상 새로운 기술을 배울 때 원리 보다는 어떻게 사용하는지 부터 배웠다. 그렇다보니 기초 지식이 부족했고 결국 수많은 오류와 다시 처음부터 공부하여 많은 시간을 소요하며 학습하는 단점이 들어났다.그래서 이번엔 Java 프레임워크인
ChatGPT를 사용하여 이미지 분석을 요청하는 서비스를 개발하려고 한다.Spring boot ChatGPT API를 호출하는 방법 base64로 인코딩된 문자열 데이터를 GPT에게 분석 요청Dto 구조 설계GPT-4 및 GPT-3.5와 같은 OpenAI의 텍스트 생성
프록시란?image다음 그림처럼 직접 서버에 요청하는 것이 아니라 어떤 대리자를 통해 간접적으로 서버에 요청하는 방법을 프록시 패턴이라고 한다.대리자를 영어로 프록시(Proxy)라고 한다.image또한 프록시는 대리자를 중첩시켜 여러개의 체인 형태로 만들 수 있다.프록
애플리케이션 로직은 크게 핵심 기능과 부가 기능으로 나눌 수 있다.image핵심 기능은 해당 객체가 제공하는 고유의 기능이다. OrderService의 핵심 기능은 주문 로직부가기능 핵심 기능을 보조하기 위해 제공되는 기능. ex) 로그 추적 기술, 트랜잭션 기능여러
JPA에서 가장 중요한 2가지객체와 관계형 데이터베이스 매핑하기영속성 컨텍스트이번엔 영속성 컨텍스트가 뭔지 알아보자JPA를 이해하는데 가장 중요한 키워드 영속성 컨텍스트는"엔티티를 영구 저장하는 환경" 을 말한다.다음과 같이 영속성 컨텍스트에 접근엔티티 매니저는 또 뭐
Spring MVC 기반 애플리케이션에서 서블릿 컨테이너를 사용하는 ==스레드 관리는 매우 중요하다==이는 Java 웹 애플리케이션이 동기적인 방식으로 HTTP 요청을 처리한다.Java 기반의 웹 애플리케이션을 개발하기 위한 기술 중 하나로, 서버 측에서 클라이언트의
🔎 Spring Security 기본 동작 클라이언트 요청은 서버 컴퓨터의 WAS의 톰캣의 필터들을 통과한 뒤 스프링 컨테이너의 컨트롤러에 도달한다 스프링 시큐리티 의존성을 추가해 필터를 추가하면 사용자의 요청을 감시하고 통제하는 지점이 만들어 진다. WAS의 필
JWT를 사용하여 로그인 구현을 해보자. 🔎JWT(Json Web Token) >JWT는 정보를 비밀리에 전달하거나 인증할 때 주로 사용하는 토큰으로, Json 객체를 이용한다 웹 상에서 정보를 Json형태로 주고 받기 위해 표준규약에 따라 생성한 암호화된 토큰
Spring에서 필터(Filter) 는 서블릿 기반 애플리케이션에서 요청(Request)와 응답(Response)를 가로채어 특정 작업을 수행할 수 있다.필터는 서블릿 스펙에 정의된 기능으로, 요청(Request)이 컨트롤러에 도달하기 전에 또는 응답(Response)
JWTUtil 클래스는 JWT 토큰을 생성하고, 서명하며, 검증하는 기능을 제공한다.Spring Security 필터와 함께 사용하면, JWT 기반 인증 시스템을 구현이 가능하다. 클래스 필드 및 생성자JWT 서명에 사용될 비밀 키를 저장하는 필드다.이 키는 토큰의 암
Spring은 일반적으로 Spring 프레임워크를 줄여 부르는 말이다. Spring은 많이 들어봤는데 Framwork이란 뭘까?Framwork이란? Framework는 여러가지 모듈이 합쳐진 것이다. 동일한 말로 각각이 완벽한 Component의 집합이자 library
이전에 em.persist()를 해도 바로 insert 쿼리가 나가지 않았다. 그럼 중간에 무슨일이 일어나는 걸까?결론 부터 말하면 em.persist() 후에 1차 캐시에 저장된다. 다음 그림처럼 동작한다. 바로 저장하지 않고 1차 캐시에 저장하지? 어떤 성능적인 이
이번엔 플러시와 준영속 상태에 대해서 알아보자commit은 많이 들어봤는데 flush는 뭘까?flush는 영속성 컨텍스트의 변경내용을 데이터베이스에 반영하는 행위이다.실제로 flush가 일어나는 경우는 다음과 같다.저장된 객체 변경시수정된 엔티티 쓰기 지연 SQL 저장
객체와 관계형 데이터베이스 테이블이 어떻게 매핑되는지 이해를 목표로 정리해 보자. JPA 연관 관계 매핑 1. 연관 관계 매핑이란? JPA에서 가장 중요한 것을 뽑자면, "객체와 관계형 데이터베이스 테이블이 어떻게 매핑되는지를 이해하는 것"이다. 객체는 참조를 통해
Spring에서 Bean의 생명주기와 의존성 주입(DI, Dependency Injection) 방식에 대해 알아보자스프링 빈은 스프링 컨테이너에 의해서 관리되는 자바 객체를 의미한다.그러면 스프링 빈은 어떻게 관리되는 걸까?스프링 컨테이너에서는 이 빈의 생성부터 소멸