==Servlet은 클라이언트의 요청을 처리하고 응답을 생성하는 역할합니다. 클라가 HTTP 요청 보내면 서버는 요청 받고 요청 처리할 서블렛 찾습니다. 서블렛 컨테이너는 요청에 대해 새로운 스레드 생성하고 각 스레드에서 서블렛의 service() 메소드를 호출합니다.
==java의 오픈소스 어플리케이션 프레임워크 중 하나로 , 스프링 기본철학은 특정 기술에 종속되지 않고, 객체 관리할 수 있는 프레임워크를 제공하는 것입니다. 컨테이너로 자바 객체 관리하면서, 의존성 주입과 제어의 역전을 통해 결합도를 낮추게 됍니다. \-
==ORM은 object Relational Mapping 으로 관계형 데이터베이스를 OOP언어로 변환해주는 기술입니다. 비즈니스 코드가 DB테이블에 바로 접근하게 도와줍니다.개발자는 비즈니스코드(개발자 코드)에 집중할 수 있습니다.==JPA는 ORM을 위해서 자
==IoC 컨테이너 안에 들어있는 객체로써, 필요할때 컨테이너에서 가져와서 사용함. @Bean을 사용하거나 xml 사용해서 등록가능.@componentScane or @Configuration==객체 생성 → 의존 관계 설정(autowiring) → 객체 초기화 → 객
==둘다 요청과 응답을 가로채서 처리하는데 사용됍니다. servlet filter는 주로 요청의 인증, 로깅, 보안 등 전역적 작업을 수행합니다. spring interceptor는 spring프레임워크에서 제공하는 기능으로 컨트롤러의 메서드 호출 전후 추가작업 수행하
== cors는 cross-origin resource sharing 으로 브라우저는 보안상 이유로 도메인 또는 포트가 다르면 http 요청을 제한합니다. 동일 출처 정책을 사용합니다. 서로 도메인이나 포트가 다른경우 Cors 에러 발생합니다. 해결방법은 서블릿필터에서
==둘다 Ioc 컨테이너에 빈등록 위해 사용합니다. @Bean은 수동으로 빈을 컨테이너에 등록할때 사용합니다, 사용자가 설정파일을 통해 등록해줘야 합니다. Bean 객체의 생성, 의존성 주입, 초기화 등을 명시적으로 구성해야 합니다. @composnet는 컴포넌트 스
==POJO (Plain Old Java Object)는 순수한 자바 객체를 나타내는 용어입니다. 이 용어는 자바 언어의 객체 지향 프로그래밍에서 사용되며 특정 프레임워크나 라이브러리에 종속되지 않는 일반적인 자바 객체를 의미합니다.==Spring Web MVC에서 요
==@Postconstruct,@PreDestroy를 사용한 방법, InitializingBean,disposableBean 인터페이스를 구현하는 방법, @Bean의 initMethod, destroyMethod를 사용한 방법이 있습니다.InitializingBean,
==모든 의존성을 생성자를 통해 주입하면, 인스턴스 생성 시 즉시 어떠한 동작을 실행할 수 있습니다. 또한 추가적인 설정은 필요하지 않으며, 뜻하지 않게 의존성과 설정값을 빠뜨리는 일이 발생하지 않고 테스트에도 용이합니다. 셋터는 여기저기 퍼져있어서 가독성해치고, 필드

== 데이터를 영구적으로 저장 위한 환경 입니다. 엔티티 매니저는 영속객체를 관리 및 DB 엑세스 위한 객체이고, 영속 객체는 비영속, 영속, 준영속, 삭제 상태를 가집니다.영속성 == 데이터를 영구적으로 저장컨텍스트 == 대상의 모든 정보를 갖고 있다.엔티티 매니저는
== 영속성 컨텍스트는 엔티티를 영구 저장하는 환경을 의미합니다. 영속성 컨텍스트를 쓰는 이유는 1차캐시, 동일성 보장, 쓰기지연, 변경감지(더티체킹), 지연로딩이 있습니다1차캐시 - 조회가 가능하며 1차 캐시에 없으면 DB에서 조회하여 1차 캐시에 올려 놓습니다.동일

== 맵핑관계있는 요청시 1개의 쿼리로 처리되길 기대햇는데 N개의 추가 쿼리가 발생하는 현상입니다. 즉시로딩은 그 자체로 N+1 문제를 발생시킵니다. 지연로딩도 결국 지연로딩 대상 호출시 같은 문제 발생합니다. 이 문제는 fetch join사용해서 한방 쿼리로 해

DB마다 연결방법, SQL, 응답 방법 등이 전부 다름.JDBC API == java database connectivity == 일반적인 디비 접근 기술java 진영의 DB 연결 표준 인터페이스 →드라이버 매니저를 통해 DB 종류에 맞춰 작동되도록.드라이버 매니저 →
== Spring AOP (Aspect-Oriented Programming)은 관점 지향 프로그래밍으로 모듈을 재사용하고 코드의 횡단 관심사(Cross-cutting Concerns)를 분리하는 프로그래밍 패러다임입니다.로깅, 트랜잭션 등이 있습니다. 주요 어드바이
== http 요청들어오면 디스패쳐서블렛에서 핸들러 맵핑이 핸들러 찾고 핸들러에서 요청처리하면서 모델에 값 저장하거나 불러오고 뷰 리졸버에서 뷰를 불러오고 응답합
==스프링(Spring)과 스프링 부트(Spring Boot)는 모두 Java 기반의 프레임워크로서 웹 애플리케이션을 개발 위해 사용됩니다. 스프링 부트는 스프링 프레임워크의 상위 개념으로 생각할 수 있습니다. 스프링 부트는 스프링의 여러 기능을 통합하고 간편화하여 스
==톰캣(Tomcat)은 아파치 소프트웨어 재단(Apache Software Foundation)에서 개발하고 유지보수하는 오픈 소스 웹 애플리케이션 서버(WAS)입니다. WAS는 클라이언트로부터 요청을 받아 동적인 웹 페이지를 생성하고, 데이터베이스와 연동하여 웹 애
== Spring 프레임워크에서는 제공하는 어노테이션은 종류별 기능이 다릅니다. 1\. @Component: Spring의 컴포넌트 스캔을 활용하여 해당 클래스를 빈(Bean)으로 등록하는 역할을 합니다. 2\. @Controller: Spring MVC
Spring 3.x: \- 어노테이션 기반의 설정과 개발 지원 \- RESTful 웹 서비스 개발을 위한 기능 추가 \- 스프링 MVC의 개선 및 업데이트 \- AspectJ와의 통합을 통한 AOP 기능 강화 \- 스프링 Expression
DAO (Data Access Object): \- DAO는 SQL쿼리로 데이터베이스와의 CRUD상호 작용을 추상화 및 데이터 영속성 관리하는 객체입니다. jdbcTemplate, MyBatis 등의 데이터 액세스 기술로 구현 (MVC 중 M)DTO (Data T
== 동기는 호출작업이 완료될때까지 대기하는 “동작방식” 을 의미합니다. 비동기는 호출작업이 완료되지 않아도 다음동작으로 진행하는 “동작방식”을 말랍니다. 블로킹은 호출작업이 완료될때까지 “제어가 대기상태”에 있음을 의미합니다. 넌브로킹은 호출작업이 완료되지 않아도 “