Server Development/Client API (5) 썸네일형 리스트형 Object to Network and vise versa 직렬화 - 직렬화는 기본적으로 객체를 저장하거나 전송하기 위해 객체를 바이트 스트림으로 변환하는 과정을 의미한다. - 자바에서 주로 사용된다. - 자바에서는 ObjectOutputStream 클래스를 이용해 객체를 직렬화하여 네트워크로 전송가능하다. - 직렬화된 객체를(바이트 스트림을) 다시 객체로 바꾸는 과정을 역직렬화라고 한다. 직렬화 및 역직렬화의 조건 1. 클래스는 Serializable 인터페이스를 구현해야한다. 이는 직렬화 가능한 객체임을 명시해준다. 2. 클래스의 필드들은 직렬화 가능해야 한다. 직렬화 가능한 필드란 기본 자료형과 해당 클래스도 Serializable 인터페이스를 구현한 경우를 의미한다. 또한 필드들은 public, protected 둘 중 하나여야 한다. 3. Json 데이.. RestTemplete Client는 HTTP 등 다양한 형태로 Server와 통신을 하고 만약 HTTP를 사용한다는 가정하에 서버는 Restful API를 통해 Client가 필요한 데이터를 전달한다. 가끔, 서버 또한 이런식으로 다른 서버에 데이터가 필요한 경우 사용을 하곤한다. 이 때, 한 서버가 클라이언트가 되어 다른 서버에 데이터를 요청하는 방식이 필요하다. 하지만 다르지 않다. 서버또한 HTTP 통신으로 다른 서버와 통신을 한다. 어떻게 서버에서 HTTP통신을 할 수 있을까? 자바에서 기본으로 제공해주는 방법을 사용할수도 있지만 RestTemplete으로 통신이 가능하다. 이번엔 RestTemplete을 사용하는 방법에 대해서 정리해보려고 한다. RestTemplete - 스프링에서 제공하는 템플릿으로 HTTP 통신.. Class Validation 스프링은 자바를 기반으로하며 데이터처리에 관해서 클래스, 객체를 생성하여 처리를 한다. 예를 들어, DTO(자바에서 처리하는 데이터형식), Entity(DB에서 처리하는 데이터 형식) 등 여러가지 데이터를 처리한다. 이때, 데이터가 과연 유효한지 데이터 검증을 할 필요가 있다. 그래서 관련된 애너테이션들을 알아보려고한다. 작성은 해당 데이터를 처리하는 클래스에 작성하면 된다. 보통은 직렬화 작업시 많이 사용된다(json -> class instance) 1. Dependancy org.springframework.boot spring-boot-starter-validation 2. Annotation @Size(min=1, max=3) : 필드의 크기(문자열 길이, 컬렉션 크기 등) @NotNull : .. Restful API 이번엔 Restful API 즉, Rest API에 대해서 알아보려고 한다. 정의 애플리케이션의 데이터와 기능을 외부에 공개하는 방법으로, 사용자는 API로 제공되는 구현 방법에 상관없이 해당 기능을 사용할 수 있다. 원하는 자원을 HTTP URI로 표현하고 리소스의 대한 행위를 HTTP Method로 표현한다. 설계는 아키텍쳐 스타일을 의미하며 표준이 아니고 유연하게 사용가능합니다. 즉, Rest API란 특정 규칙이 정해져있고 그걸 안지킬 시 기능을 사용못하고 그런 것은 아닙니다. 다만 이러한 규칙을 지켜 애플리케이션의 자원을 요청하고 응답하자는 일종의 규칙이자 아키텍쳐 스타일을 의미합니다. 특징 Server - Cleint 구조 : 자원이 있는 쪽 Server, 자원을 요청하는 쪽은 Cleint로,.. API API가 무엇인가? 우선, API는 Application Programming Interface의 약자이다. 인터페이스는 어떤 장치간 정보를 교환하기 위한 수단을 의미하는데 예를 통해 알아보자. A라는 응용프로그램에서 다른 B라는 응용프로그램을 사용할 수 있도록 A에서 B를 제어할 수 있게 만든 프로그램을 의미한다. 즉, API를 사용하면 A라는 프로그램은 B라는 프로그램의 내부 로직을 몰라도 B프로그램에 정의되어 있는 기능을 쉽게 사용할 수 있음을 의미한다. 정리하자면 여기서 A라는 프로그램은 사용자가 될 수도 있고 하나의 웹사이트 하나의 앱도 될 수 있다. A 프로그램은 B 프로그램에 있는 자원을 요청 및 응답할 수 있다. 이를 지원하는 수단, 방법을 'API' 라고 한다. 이전 1 다음