IoC, 스프링이 @Component
어노테이션이 붙은 클래스를 읽어서 객체로 만들어 heap메모리에 로딩한다.
로딩된 객체를 해당 변수에 집어 넣는다.
스프링이 만든 객체중에 해당 타입의 객체가 없다면 null을 넣는다.
@Autowired
A a; <- heap에서 A타입에 해당하는 객체가 있는지 확인후 넣어준다(DI)
스프링이 클래스를 스캔할 때, 해당 클래스에 어떤 메서드/필드/어노테이션이 있는지 런타임시 분석하는 기법이다.
자바 프로그램에서 요청을 보낼때 객체를 JSON 형태로 변환시켜주는 것을 메시지 컨버터라고 한다.
요청만이 아니라 상대방에게서의 응답받을 때도 상대방 객체를 JSON으로 변환을 해준다.
(스프링은 기본적으로 JSON 형태를 사용)
예를 들어, 아래와 같이 변환한다.
Java Object ↔️ JSON ↔️ Python Object
통신의 단위, 컴퓨터끼리 소통을 위해 8bit씩 끊어 읽도록 함.
(영어 한 문자:8bit, 한글 한 문자: 16bit)
@RequestBody: 이 어노테이션은 HttpRequest의 본문 requestBody의 내용을 자바 객체로 매핑하는 역할을 한다.
해당하는 어노테이션이 붙어있는 메서드로 클라이언트의 요청이 들어왔을 때, DispatcherServlet에서는 먼저 해당 HttpRequest의 미디어 타입을 확인하고, 타입에 맞는 MessageConverter를 통해 요청 본문인 requestBody를 통째로 변환해서 메서드로 전달해준다.
@ResponseBody: 이 어노테이션은 자바 객체를 HttpResponse의 본문 responseBody의 내용으로 매핑하는 역할을 한다.
해당 어노테이션도 마찬가지로 return Type에 맞는 MessageConverter를 통해 return 하는 객체를 해당 타입으로 변환해서 클라이언트로 전달한다.
컴퓨터/프로그램이 종료되더라도 데이터가 사라지지않고 영구적으로 기록되는 것을 말한다.
원하는 데이터를 가져오기 위해 지켜야할 약속이라고 할 수 있다.
클래스(Entity)를 만들어서 실행하면 데이터베이스에 테이블이 자동으로 생성되게 하는 기법을 ORM이라고 한다.
추상적인 개념을 현실세계로 뽑아내는 것을 말한다.
(예를 들어, 설계도를 가지고 건물을 지어 올리는 것.)
Context란 대상에 대한 모든 정보를 가지고 있는 것을 말한다.
따라서, 영속성 컨텍스트란 자바가 데이터베이스에 저장해야하는 데이터의 "모든" 정보를 알고 있는 것을 뜻한다.
자바는 영속성 컨텍스트를 통해서 DB에 데이터를 저장하고 영속성 컨텍스트를 통해 데이터를 가져온다.
(데이터(자바 프로그램) ↔️ 영속성 컨텍스트 ↔️ DB)
만약 영속성 컨텍스트에 있는 데이터를 삭제하면 DB에 있는 데이터도 사라진다.(동기화)
Client가 요청(Request)이 있을 때만 서버가 응답(Response)하여 해당 정보를 전송하고 곧바로 연결을 종료하는 방식.
.jsp
같은 동적자원을 요구받았을 때, .jsp -> 자바 -> 컴파일
후에 .html 파일로 만들어서 아파치에게 돌려준다. 그러면 아파치가 그 파일을 응답으로 요청한 곳에 돌려준다.본격적으로 주특기 주차가 시작되었다.
Spring 입문 강의를 들으며 메모한 오늘의 키워드들을 위와 같이 정리했다.
전에 공부했을 때는 실습 위주로 무작정 코드를 치기 급급했었기에 뭐가 뭘 말하는지 잘 모르고 넘어간 부분이 많았는데 오늘 공부하면서 부족한 부분이 조금이나마 채워진 것 같다.
공부량이 갑자기 많아져서 제대로 시작하기도 전에 지치는 느낌인데... 힘내자!!🔥