
H2 데이터 베이스를 IntelliJ에서 프로젝트에 연동하려고 한다.설정은 Connection type - In-memory로 바꾸고 User와 URL을 그림과 같이 했다. Ok를 누르니 에러가 나왔다,, 테스트 성공하고 만드니 에러나서 왜 그런지 이유를 모르겠다. 에
텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜이다. 이렇게 규약을 정해두었기 때문에 모든 프로그램이 이 규약에 맞춰 개발해서 서로 정보를 교환할 수 있게 되었다.클라이언트 즉, 사용자가 브라우저를 통해서 어떠한 서비스를 url을 통하거나 다
IOC
구조 DTO는 해당 테이블에서 실제로 CRUD를 할 필드를 정의해둔 것.Data Transfer Object로 "데이터 전송 객체"이다. Entity : 테이블과 1:1로 맵핑되는 어노테이션 [해당 어노테이션이 붙으면 JPA가 해당 클래스를 관리함] @AllAr
ORM, SQL(DBMS, RDB, RDBMS)

의존성 주입 방식 생성자 주입 방법 Spring에서 권장하는 의존성 주입 방법이다. 이유는 1. 순환 참조 방지 2. 불변성 가짐 3. 테스트에 용이 하기 때문이다. 생성자 주입은 호출 시점에 1회 보장 주입받는 객체의 변화가 없거나 반드시 객체의 주입이 필요한 경우

DI(Dependency Injection)란?

Java Collection와 스프링 컨테이너

Rest Client Spring에서 제공하는 Http 통신에 사용할 수 있는 템플릿 즉, Http 통신을 할 수 있는 Rest한 Client이다. SpringBoot가 REST Client에 관련해 직접적으로 기능 제공하는 것은 아니다. Rest Client는 Sp

@SpringBootTest 프로젝트 내부에 있는 Bean을 모두 등록하며, 실제 운영 환경에서 사용되는 클래스들을 통합해서 테스트를 진행한다. 따라서 실제 환경과 유사하게 테스트가 가능하다는 장점이 있지만, 모든 Bean을 등록하기 때문에 느리고 테스트 단위가 커서
2026년 6월 12일에 Spring AI 2.0.0이 정식 GA로 릴리스됐다. "AI 프레임워크 버전 하나 올라간 거"로 넘기기엔 구조 변화가 커서 오늘 제대로 정리했다. 핵심을 한 문장으로 요약하면 이렇다. 각 ChatModel 안에 숨어 있던 툴 콜링 루프가 C
@Transactional 하나 붙였다고 트랜잭션이 되는 게 아니다. 이 애너테이션은 프록시(대리인) 객체가 메서드 앞뒤에서 트랜잭션을 열고 닫아주는 것일 뿐이다. 그래서 프록시를 거치지 않는 호출에서는 애너테이션이 붙어 있어도 아무 일도 안 일어난다. "붙였는데 롤백
며칠 전에 @Transactional이 프록시로 동작한다는 글을 썼다. 같은 클래스 안에서 this로 자기 메서드를 부르면 프록시를 안 거쳐서 트랜잭션이 안 걸린다는 이른바 self-invocation 이야기다. 글은 개념으로 끝냈는데 마침 내 FastCoupon의 발