스프링 강의

툰잭 ㅣ 2023. 4. 15. 16:06

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