스프링부트 강좌 정리

ONLYS2545·2023년 7월 18일
0

1강


용어 정리


Framework -> 정해진 틀 안에서 동작

IOC -> Inversion of Control (제어의 역전)
스프링이 컴퍼넌트스캔을 통해서 IOC컨테이너에
오브젝트를 메모리에 띄워준다.
(인스턴스를1개만 만드는 싱글톤 패턴과 유사함)
이후, 그 오브젝트들을 여러 곳에서 가져다 쓰게 되는데
이것을 DI(Depandancy Injection)라고 함.

class -> 설계도
object -> 실체화가 가능한 것
Instance-> 실체화 된 것

2강


용어정리


필터 - 검열하는 기능

어노테이션 - 주석 + 힌트 -> 컴파일러가 체크
리플렉션(분석하는 기법 -> 런타임시 분석)

스프링은 어노테이션을 주로 객체를 생성하는데 사용

스프링은 메시지컨버터를 가지고 있다. 기본 설정값은 JSON이다.
-->서로 다른 언어가 이해할 수 있는 중간데이터(중간 언어)를 생성해서
서로 통신한다. ex) 대표적 언어: XML, JSON, YML
즉, 메시지 컨버터는 서로 다른 언어를 중간언어로 변환해주는 역할을 함.

inputStreamReader -> 바이트를 하나의 문자로 변환, 또는 고정 길이의 배열로 여러개의 문자를 받을 수 있음

BufferedReader -> 문자열을 가변길이로 받을 수 있기 때문에 InputStreamReader 대신 주로 사용됨
BufferedWriter -> 자바에서는 주로 PrintWriter 사용, 줄넘김 기능이 있어서 편함

@ResponseBody -> BufferedWriter가 동작
@RequestBody -> BufferedReader가 동작

3강~7강


용어정리


JPA - Java Persistence API
JPA란 자바 프로그램이 데이터를 생성한 프로그램이 종료되어도 데이터가 사라지지않도록
(데이터베이스, 파일시스템등을 활용하여 구현)
영구적으로 저장하기위해 필요한 인터페이스이다.

*API
-애플리케이션 프로그래밍 인터페이스의 약자로

*프로토콜
동등한 관계에서의 약속

*인터페이스
ex)이제부터 나에게 연락 할 때는 전화하지말고 직접 찾아와
상대방과 상의하지 않고 자신이 직접 규칙을 정함
인터페이스를 이용해 프로그램을 만들면 그것이 API가 된다.
즉, API는 상하관계가 존재하는 약속이다.

JPA는 ORM 기술이다.
ORM : Object Relational Mapping
오브젝트를 데이터베이스에 연결하는 방법론같은 것

보통 데이터베이스의 테이블을 자바로 옮길 때 모델링을 하게 되는데
반대로 ORM은 자바의 클래스를 데이터베이스의 테이블로 옮기는 역할을 한다.

JPA는 반복적인 CRUD 작업을 생략하게 해준다.

JPA는 영속성 컨텍스트를 가지고 있다.
-> 컨텍스트(context) : 대상의 모든 정보

영속성컨텍스트

JPA는 DB와 OOP의 불일치성을 해결하기 위한 방법론을 제공한다. (DB는 객체저장 불가능)
-->ORM 이용

JPA는 OOP 관점에서 모델링을 하게해준다.

방언처리가 용이하여 마이그레이션하기 좋고 유지보수에도 좋다.

JPA는 쉽지만 어렵다.

8강-9강

스프링부트 동작원리
-내장 톰캣을 가진다.

소켓 작동원리(통신)

http통신 - Stateless 방식(연결을 계속 유지하지 않음)
*문서를 전달하는 통신임

웹서버 - static자원인 정적인 자원을 응답

아파치 톰캣(아파치는 웹서버, 톰캣은 웹애플리케이션 서버)

서블릿 컨테이너(톰캣)

스프링은 URL(자원에접근) 사용 불가,
URI(식별자 접근)만 가능 -특정한 파일 요청을 할 수 없다. 요청시에서는 무조건 자바를 거쳐야한다.

요청이 왔을때 서블릿 컨테이너가 객체를 생성하는 방식

12강

web.xml의역할

초기파라미터 설정

FrontController 패턴
특정 요청을 따로 모아뒀다가 다시 재요청 하는 방법

RequestDispatcher - 필요한 클래스 요청이 도달했을 때 FrontController에 도착한
request와 response를 그대로 유지시켜준다.
*기존의 리퀘스트와 리스폰스에 덮어쓴다.
페이지간 데이터 이동을 가능하게한다.
->스프링에는 DispatchServlet이 있어서 FrontController패턴을 짜거나 RequestDispatcher를 직접 구현할 필요가 없다.
DispatchServlet이 자동생성되어 질 때 수많은 객체가 생성(IOC)된다. 보통 필터들이다. 해당 필터들은 내가 직접 등록할 수도 있고 기본적으로 필요한 필터들은 자동 등록되어진다.

디스패치 서블릿의 역할 -> 컴퍼넌트 스캔 후(메모리에 띄움) 주소 분배

Context Loader Listener
-공통적으로 사용하는 DB커넥션 같은 것들을 띄움.
(root_applicationContext파일을 읽어서)
실행순서는 1) Context Loader Listener 2) DispatchServlet 이므로
2)IOC컨테이너 안의 객체들은 1) DB커넥션과 같은 객체에 접근이 가능하지만
1) DB 커넥션은 2) IOC 컨테이너의 객체들에 접근이 불가능하다.

Bean Factory

초기에 메모리에 로드되지않고 필요할 때 호출하여 메모리에 로드
레이지 로딩이 가능
-@Configuration을 클래스 위에 붙이고, 메서드 위에 @Bean을 붙여 사용

14강

전체적인 구조

profile
백엔드 교육과정 기록 velog입니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

정말 유익한 글이었습니다.

답글 달기

관련 채용 정보