
Spring Framework가 탄생하기 전, 개발자들은 EJB(Enterprise Java Bean)를 사용하였지만 이를 이용한 개발을 어려워 하였다....

Web Server는 클라이언트(웹 브라우저)로부터 HTTP 요청을 받아 HTML, CSS, JavaScript, 이미지, 동영상 등의 정적 콘텐츠를 제공하는 역할을 한다. ex) Apache HTTP Server, Nginx동적인 요청이 들어오면 해당 요청을 컨테이너

Spring Boot에서 애플리케이션이 실행될 때, ApplicationContext가 초기화되면서 필요한 Bean들이 컨테이너에 등록된다. Bean을 등록하는 방법들은 아래와 같다. @Component, @Service, @Repository, @Controller

AOP(Aspect Oriented Programming)는 핵심 비즈니스 로직과 공통 기능(횡단 관심사)을 분리하여 코드의 중복을 줄이고 유지보수성을 높이기 위해 필요하다.✅ AOP 적용이 필요한 주요 사례트랜잭션 관리(Transaction Management): 여

API(Application Programming Interface)는 서로 다른 sw간에 상호작용을 가능하게 하는 인터페이스로, 특정 기능이나 데이터를 외부 애플리케이션에서 사용할 수 있도록 제공하는 규약이다.웹 API는 API의 하위 개념으로, HTTP/HTTPS

### ✅ @Controller와 @RestController - @Controller: 전통적인 MVC 패턴에서 컨트롤러 역할을 한다. 주로 HTML 페이지 or 템플릿 뷰(JSP, Thymeleaf 등)를 반환할 때 사용된다. - 특징

N+1 문제는 JPA 또는 Hibernate 같은 ORM(Object-Relational Mapping) 프레임워크에서 연관된 엔티티를 조회할 때 자주 발생하는 성능 문제이다. N+1의 개념부터 원인, 구체적인 예시, 그리고 해결 방안까지 설명하려한다.
Atomicity(원자성): 모두 성공하거나 모두 실패Consistency(일관성): 일관된 상태로만 전이됨Isolation(격리성): 트랜잭션 간 서로 간섭하지 않도록 격리됨Durability(영속성): 트랜잭션 결과는 영구히 반영됨➕ 트랜잭션은 논리적 작업 단위 =
애플리케이션 계층별로 입력값 검증을 적절히 분리하고 중복을 최소화하면서도 신뢰성과 안정성을 확보하는 것은 시스템 설계에서 매우 중요한 문제이다. 아래는 일반적인 3계층 아키텍처(Presentation → Service → Persistence)를 기준으로 검증 범위와
: 가짜 객체(Fake)를 생성하여 행동만 정의하고 내부 로직은 모두 비워진 객체로, 실제 로직은 수행되지 않으며, 호출 여부나 횟수 등을 검증하는 용도로 사용한다. 모든 메서드가 기본값을 반환한다.(null, 0, false 등)언제 사용하나?: 테스트 대상 객체놔
CSRF는 사용자가 로그인한 상태를 악용해, 공격자가 사용자의 브라우저를 통해 원하지 않는 요청을 서버에 보내는 공격이다. 사용자는 자신이 의도하지 않았지만, 브라우저는 정상 요청으로 간주하고 서버에 전달한다.ex: 사용자가 로그인된 상태에서 악성 웹사이트에 접속하면,
JWT는 클라이언트-서버 간에 인증 정보를 안전하게 주고받기 위해 사용되는 자기완결적 토큰이다.형식은 Header.Payload.Signature의 세 부분으로 구성되며, 각각 Base64Url로 인코딩된다.Header는 토큰의 타입과 서명 알고리즘 정보를 담는 부분이