어디까지 갈 수 있을까?

[작성중] 스프링 개념 정리 본문

프로그래밍/정리

[작성중] 스프링 개념 정리

_Min 2021. 3. 11. 11:27

스프링 빈

스프링 IOC 컨테이너가 관리하는 자바 객체

 

DI(Dependency Injection)

스프링이 관리하는 객체를 가져와 사용하는 것, 부품 조립

 

스프링

객체 생성, 객체 라이프 사이클 관리, 의존 주입 모두 해줌

 

강한 결합

개발자가 객체 직접 관리(new로 생성해서)

 

느슨한 결합

스프링에서 객체 생성된 것을 주입받음

객체 사용만 하는 것

 

IOC(Inversion Of Control)

스프링이 객체 생성 같은 프로그램의 흐름을 주도, 느슨한 결합

 

생성자가 하나 있다면 @Autowired 안써도 스프링이 객체 알아서 주입해준다

 

서블릿

웹에서 JAVA 프로그래밍을 구현하기 위해 탄생

서블릿 컨테이너

서블릿을 실행하는 주체

Servlet과 웹 서버가 통신할 수 있는 방법 제공

대표적 : 톰캣

 

 

OOP

사용자 업무 위주

AOP

개발자 필요 업무 위주(로그처리, 보안처리, 트랜잭션 처리)

???프록시

 

MessageConverter

자바->JSON으로 convert(Jackson 라이브러리)

 

JPA(Java Persistence API)

자바의 데이터가 db에 접근할 수 있도록 하는 것, ORM 기술 사용

 

Persistence

프로그램 실행이 종료돼도 데이터가 사라지지 않게 하는 것(DB에)

 

ORM(Object Relational Mapping)

객체와 DB테이블 매핑

 

컨텍스트

대상에 대한 모든 정보

 

스프링은 내장 톰켓을 가진다

Web Layer : 눈에 보이는 화면과 소통 / 컨트롤러, 뷰 템플릿, 필터, 인터셉터, 컨트롤러 어드바이스 등 외부 요청과 응답

Service Layer : 트랜잭션, 도메인 기능 간의 순서를 보장

Repository Layer : DB에 접근

Domain Model : @Entity, 비지니스 처리 담당

DTO : Request 데이터를 받음, 계층간 데이터 교환 

 

동시성 문제 : 두 개 이상의 세션이 공통된 자원에 대해 모두 읽고 쓰는 작업을 하려고 하는 경우 발생할 수 있는 문제

 

스프링에서는 생성자 주입을 통한 변수 초기화 권장

 

main 패키지와 test 패키지 이름 같게 만드는 이유

이름이 같으면 같은 패키지로 인식해 접근 제한자가 없어도, test 패키지에서 main의 이름이 같은 패키지의 메소드를 가져다 사용할 수 있다

 

???

필터 : 톰캣의 문지기, 권한이 있는 것만 접근 가능

인터셉터 : 스프링 컨테이너의 문지기

리플렉션 : 메소드, 필드, 어노테이션 체킹

서블릿 컨테이너(톰캣)

url : 자원 접근

uri : 식별자 접근

728x90
Comments