저번 포스팅에서 이어가 보겠습니다.
raw데이터는 일종에 원시 데이터를 전송한다고 생각하면 된다. 그리고 text타입을 줘서 hello를 put 할 것입니다.
저번 포스팅에서 post를 했을 때처럼 스프링에서 시도해봤지만 null이 뜨는 것을 볼 수 있다
application/x-www-form-urlencoded 타입은 오브젝트로 받는다. 그래서 key와 value값이 아니기 때문에 스프링이 자체적으로 파싱 해주지 않는 것이다. 결국 원형데이터를 받으려면 버퍼드 리더로 읽어야 하는데 스프링에선 어노테이션 하나만 알면 된다
이렇게 원시 데이터를 버퍼드 리더로 받을 수 있도록 어노테이션으로 jvm에게 알려주는 것이다.
json으로 데이터를 보내보자
위와 같이 원형 그대로 나오는 것을 볼 수 있다.
위 데이터를 파싱 하려면 너무 귀찮은 작업이 많겠지만 스프링에선 이 또한 아주 간단하게 파싱 하는 기능이 제공된다.
위주석에서 말하는 객체지향의 1원칙을 좀 더 얘기하자면
상태는 행위를통해 변경한다.라는 것이다
즉 마법처럼 상태가 바로 변경되는 것이 아니라 어떠한 행위(메서드)를 통해서 변경을 해야 하는 것이다.
오브젝트 지향프로그램에 대한 이해가 필요한 부분인 것이다.
오브젝트의 정확한 의미는 메모리에 아직 올라오지 않았는데 메모리에 올라올 수 있을만한 모든 것이다.(사자, 바나나, 사과, 자판기 등과 같은 존재하는 것) 그래서 모든 오브젝트는 상태와 행위를 가지고 있다.
오브젝트를 메모리에 올리면 그것을 인스턴스라고 하는것이다.
동물, 가구, 과일 과같은 추상적인 것들은 오브젝트가 아닌 추상 클래스인 것.
그 실체가 있는 오브젝트의 상태와 행위가 얽히고설켜서 프로그래밍하는 것이 오브젝트 프로그래밍이다.
그 상태와 행위를 사용하는 설명서 같은 쉽게 사용할 수 있는 기능(메서드)이 인터페이스인 것이다.
그래서 접근제어자를 priavate로 설정하는 것은 객체지향적인 프로그래밍이라는 것이다.(직접적으로 상태와 행위를 변경할 수 없기 때문)
위와 같이 자바 오브젝트 타입으로 클래스를 정의해주고
위와 같이 오브젝트 타입으로 코드를 작성해 주면 위 주석의 설명과 같이 결괏값이 나오는 것을 확인할 수 있다.
'Springboot' 카테고리의 다른 글
Spring boot실습 FrontController 패턴의 이해!(MVC패턴) (0) | 2021.06.23 |
---|---|
JSON에 대해서 (0) | 2021.06.23 |
Spring boot/실습 (1)데이터 요청의 기본 개념 (0) | 2021.06.22 |
Spring boot/실습 첫 프로젝트 만들기 (0) | 2021.06.21 |
STS/Springboot 개발 환경 설정 (0) | 2021.06.21 |