1. Framework란, Frame(틀)+work(동작하다)
- 제공되어있는 틀 안에서 틀을 벗어나지 않고 개발을 하는것..
2.spring은 오픈소스이다.
-소스코드가 공개되어있다.
-스프링이 만들어진 코드를 볼수 있어서 뜯어고칠 수 있다.
3.스프링은 ioc 컨테이너를 가진다.
1) ioc(Inversion of Controll)란, 주도권은 스프링이 가지고 있다.
오브젝트를 heap 메모리에 만들어 준다.
class->설계도
ex) 캐릭터-(누누 or 케틀 or 티모 or 신지드) 추상적인 의미이기 때문에 추상화가 안됨
object-> 실체화가 가능한 것
ex) 게임속의 누누-실체화가 가능한 것
Instance->실체화가 된 것
ex) 누누가 실체화됨?
4.스프링은 DI를 지원한다.
1) DI(Dependency Injection)란, 의존성 주입이다.
만들어진 오브젝트를 모든 클래스에서 사용 가능하다.
DI= IoC방법으로 읽어들인 객체 ( 타입으로 찾음) heap영역에 같은타입의 객체가 있으면 자동 주입됨
5.스프링은 엄청나게 많은 필터를 가지고 있다.
1) 기본적인 필터
2) 사용되지 않은 필터를 사용한다는 설정
3) 직접 필터 생성
톰켓의 필터 = filter (web.xml)
스프링 컨테이너 필터 = intercepter
6.스프링은 엄청나게 많은 어노테이션을 가지고 있다.(리플렉션, 컴파일체킹)
JAVA에서의 주석= 컴파일러 무시
어노테이션 (주석) = 주석+힌트 ->컴파일러 무시x
스프링 --> 어노테이션 객체 생성
ex) @Component = 클레스 메모리에 로딩 , @Autowired = 로딩된 객체를 해당 변수에 넣음
리플렉션(분석하는 기법 --> 런타임시 분석)
클래스를 스캔할 때 클래스 내부에 어떤 방법이 있는지 분석 = 리플렉션 ex) 메서드,필드,어노테이션 유무 --> 만약 있으면 무엇을 하라고 설정가능
7.스프링은 MessageConverter를 가지고 있다. 기본값은 현재 Json이다.
MessageConverter= 데이터를 보내거나 받을때 (자바 object -> JSON ) or (JSON -> 자바 object)
JSON 형태
ex) Class Animal {
int num=0;
String name= "사자";
}
----> JSON Object{ "num":10,"name":"사자}
8. 스프링은 BufferedReader와 BufferedWriter를 쉽게 사용할 수 있다.
영어 한 문자 -> 8bit =2^8 =256
=> 256가지의 문자전송!
1byte=8bit : 통신단위
1byte= 하나의 문자
유니코드 UTF=8 -> 3byte 통신
자바에서 byte를 읽는방법
InputStream =바이트로 읽음 바이트는 문자가 아님! => 문자(char)화 해야함
==> InputStreamReader 로 감싸면 바이트를 문자 하나로 변환해줌
배열로 감싸면 여러개의 문자 추출 가능
배열의 단점 = 크기를 정해놔야함
==>Buffered Reader = 가변길이의 문자를 받을 수 있다.
데이터 요청 받는법
jsp에서 받는 방법 request.getReader() ==> BufferedReader
데이터 요청 보내는 법
BufferWriter(잘안씀) == printWriter{print() , println()}
*@ResponseBody ==> BufferedWriter 동작
*@RequestBody ==> BufferedReader 동작
'STUDY' 카테고리의 다른 글
백엔드 입문 프로젝트 클래스(Spring boot) (0) | 2023.05.11 |
---|---|
IntStream (0) | 2023.04.19 |
IntStream(3) (0) | 2023.04.19 |
IntStream(2) (0) | 2023.04.19 |
IntStream (1) (0) | 2023.04.19 |