어디까지 갈 수 있을까?
[작성중] 스프링 개념 정리 본문
스프링 빈
스프링 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 : 식별자 접근
'프로그래밍 > 정리' 카테고리의 다른 글
[작성중] 파이썬 코딩테스트 때 쓰는 모듈 및 메소드 (0) | 2021.04.28 |
---|---|
CS 잡지식 정리 (0) | 2021.04.04 |
[작성중] 스프링 어노테이션 정리 (0) | 2021.03.14 |
[작성중] 웹 개념 정리 (0) | 2021.03.11 |
[작성중] 자바 개념 정리 (0) | 2021.03.09 |