Springboot 강좌 - 개념정리 [1 ~ 3강] 요약
- 스프링 이란?
- 프레임워크
- 오픈소스
- IoC 컨테이너를 가짐
- DI를 지원함
- 엄청나게 많은 필터를 가지고있음
- 엄청나게 많은 어노테이션을 가지고있음(리프렉션, 컴파일체킹)
- MessageConverter(Jackson)를 가지고 있음, 기본은 JSON 타입으로 변환 (요청 / 응답 모두 해당)
- BufferdReader와 BufferedWriter를 쉽게 사용할 수 있음
- 스프링은 계속 발전 중임
전체 내용
- 스프링
- 프레임워크
- 틀, 뼈대 라는 의미
- 기능을 미리 클래스나 인터페이스 등으로 만들어 제공하는 반제품
- 일정 형식에 따라 개발하는 환경
- 개발 후 유지보수 확장이 쉬움
- 개발 틀이 제공되기 때문에 잘못된 코딩으로 가는것 방지(특히 신입)
- 오픈소스
- 코드가 모두 공개되어있어 내부 코드를수정해서 기여도 가능함
- IoC 컨테이너를 가짐
- Inversion of Controll(제어의 역전)
- 주도권이 스프링에 있음
- class(abstract 포함) - 설계도 / object - 실체화 가능한 것(가구 class는 X, 의자 class는 O) / instance - 실체화 된 것
- 스프링이 object 스캔해서 heap 메모리에 올려놔줌, 스프링이 해당 object 주소 관리함
-
IoC 설명 그림
- DI를 지원함
- Dependency Injection(의존성 주입)
- 스프링이 heap 메모리에 올려둔 object를 다른 클래스의 메소드에서도 사용 가능(싱글톤 관리, 한가지 의자 공유해서 사용)
- 엄청나게 많은 필터를 가지고있음
- 필터 : 문지기
- 스프링 내 만들어져있는 필터를 바로 사용할수도 있고, 사용안함 설정 되있는 필터를 사용하도록 전환할수도있고, 필터를 만들어 사용할 수도 있음
- 톰캣 내 filter : web.xml
- 스프링 컨테이너의 filter : 인터셉터(AOP)
filter 설명 그림
- 엄청나게 많은 어노테이션을 가지고있음(리프렉션, 컴파일체킹)
- 어노테이션
- 주석 + 힌트 (컴파일러에게 컴파일 시 체크할 수 있도록 힌트를 주는 주석)
- 스프링 내 어노테이션으로는 컴파일 체킹 외 객체 생성도 가능
- 예) @Component : 클래스를 메모리에 로딩하라
- @Autowired : 로딩된 객체를 해당 변수에 주입하라
- 리플렉션(Reflection)
- 분석하는 기법 → 런타임 시 분석함
- 예) 런타임 시 클래스 스캔하다가 @Autowired 발견 : 같은 타입의 object 가 heap 메모리에 등록되어있으면 그 object를 주입
- 힙 영역에 로드된 Class 타입의 객체를 통해, 원하는 클래스의 인스턴스를 생성할 수 있도록 지원하고, 인스턴스의 필드와 메소드를 접근 제어자와 상관 없이 사용할 수 있도록 지원하는 API
- 어노테이션
- MessageConverter(Jackson)를 가지고 있음, 기본은 JSON 타입으로 변환 (요청 / 응답 모두 해당)
- 다른 프로그래밍 언어와 메세지 주고받을때 중간 언어(JSON)로 변환해서 보내는것
- 예) 자바 프로그램 -> JSON -> 파이썬 프로그램 / 반대로 파이썬에서 온 JSON 메세지도 변환해서 가져옴
- BufferdReader와 BufferedWriter를 쉽게 사용할 수 있음
- 통신선을 Byte Stream 이라고 부름, 1Byte = 8 bit
- 자바에서는 Input Stream으로 읽음, 1 Byte 단위로 읽음, 하나씩 문자(char)로 변형하기 복잡함
- InputStreamReader를 사용하면 1바이트를 문자 하나로 반환해줌, 배열로 받을 수도 있음
=> 읽을 최대 글자수를 정해놓는데, 짧은 메세지 받을때는 낭비되서 이제 사용 안함 - BufferdReader : 가변 길이의 문자열을 받게해주는 클래스
- BufferedReader, BufferedWirter 를 사용해서 문자열을 입력받고, 출력할 수 있음
- 결론
- @ResponseBody 어노테이션 붙이면 BufferedWirter 동작함
- @RequestBody 어노테이션 붙이면 BufferedReader 동작함
- 스프링은 계속 발전 중임
- 프레임워크
유튜브 메타코딩 강의
Springboot 강좌 - 개념정리
떨어지는 낙엽에도 흔들리는 니 마음 - 넌 낙엽덩이
www.youtube.com
'스프링부트 > 정리' 카테고리의 다른 글
[SpringBoot] 스프링부트 개념정리 with JPA - JPA 개념잡기 (1) | 2024.09.13 |
---|