주도권은 스프링한테 있다
실체화(object)가 가능한 것들을 스프링이 읽어서 heap메모리에 올려준다 = (ioc) 스플링이 객체를 생성한다.(중요)
그래서 결론적으로는 어떤 클래스 메소드에서 heap메모리에 저장된걸(예를 들면 의자) 사용할수있다 다른 클래스에서 똑같이 heap메모리에 저장된걸 가져다 쓸수 있다
그리고 이렇게 heap메모리에서 가져다 쓰는걸 DI라고 한다
class - 설계도
object - 실체화가 가능한 것(추상적(추상클래스)인 의미 인것은 실체화가 불가능 ex) 동물, 가구 등)
Instance - 실체화가 된 것
스프링 컨테이너가 들고 있는 필터는 인터셉터라고 부른다.
인턴셉터도 권한을체크 해서 처리해준다
어노테이션(주석+힌트) <- 컴파일러가 무시 X
// 글~ (주석) <- 컴파일러 무시 o 이게 주석
스프링 -> 어노테이션으로 객체를 생성한다
ex)
@component -> 클래스 메모리에 로디
@Autowired -> 로딩된 객체를 해당 변수에 집어 넣어
@Autowired를 사용하면 new 연산자를 사용하지않고 사용 할 수 있다 왜냐하면 스프링 스캔해서 heap메모리에 저장되어있는걸 가져와서 사용하기 때문이다
ex)@Autowired A a; 이런형식으로
리플렉션 (분석하는 기법-> 런타임시 분석):메소드,필드.어노테이션 을 체킹한다
중간언어 지금은 xml -> json을 많이쓴다.
json = 모든 언어들이 이해하기 쉬운 중간언어이다.
ex) 자바 object를 파이썬 object를 보내면 josn이 알아서 자바object를 json object로 보내서 파이썬 object로 변형 시켜준다.
MesageConvertor는 요청(request)할때만 반응하는게 아니라
응답(response)할때도 일어난다
MesageConvertor에는 기본적으로 jadeson이 설정되어있는데 jadeson이 json으로 변환해주는 라이브러리이다
결론적으로 MesageConvertor가 json데이터를 보내느쪽으로 변환해주는거다
ex)자바프로그램 -> json -> MesageConvertor -> 파이썬프로그램 =>요청
자바프로그램 <- MesageConvertor <- Json <- 파이썬프로그램
=> 응답
JSON ex)
Class Animal {
int num =10;
String name ="사자";
}
위 내용을 Json으로 나타내면
{"num":10,"name":사자}
이렇게 나타낸다
1바이트: 통신단위 = 8bit 씩 끊어 읽어
ex) 영어 한 문자 -> 8bit =2의8승 = 256
256가지의 문자 전송
1byte = 하나의 문자
한글은 2byte이다
유니코드 : UTF-8 =이거는 3yte 통신이다.
Byte Stream : 1byte:8bit
InputStream : 바이트이다
InputStream Rader : 바이트를 문자로 바꿔서 문자하나를 준다(안쓴다)
Buffered Reader :가변길이의 문자를 받을 수 있다.
Buffered writer = printwriter :print() 함수와 println()를 사용한다
.out자체가 Buffered writer이다.