Programming/Web

    [Web] REST 클라이언트

    REST 클라이언트는 REST API를 사용하는 프로그램을 의미한다. REST API 자체가 HTTP를 사용하기 때문에 HTTP를 지원하는 모든 프로그램은 REST API 클라이언트가 될 수 있다. 예를 들어 웹 브라우저도 서버와 HTTP로 통신하기 때문에 웹 브라우저로 REST API를 호출하는 것이 가능하다. 물론 웹 브라우저 자체만으로는 GET 이외의 메서드 호출에는 어려움이 있지만 GET 요청을 처리하는 API는 기본적으로 웹 브라우저만으로 호출할 수 있다. 만일 스마트폰 앱을 개발하면서 서버로부터 데이터를 가져오기 위해 REST API를 사용한다면 스마트폰 앱도 REST 클라이언트가 되는 것이다. REST 클라이언트 구현은 언어에 중립적이기 때문에 자바, 자바스크립트, 파이썬, C/C++ 등 거..

    [Web] JAX-RS

    JAX-RS REST 서비스를 제공하기 위해서는 여러 HTTP Method(GET, POST, PUT 등)를 지원하면서 다양한 URI 요청을 처리할 수 있는 서버 프로그램 구조가 필요하다. 단순히 서블릿만 이용해도 어느 정도 REST 형태의 서비스를 개발할 수 있지만 여러 URI 요청을 구조적으로 손쉽게 처리하려면 규격이 필요하다. 이에 따라 자바에서는 JAX-RS라고 하는 표준 규격을 만들었다. JAX-RS(Java API for RESTful Web Services)는 REST 원칙을 사용하는 개발 메커니즘을 제공하는 자바 표준 API다. 즉 JAX-RS는 서비스 측 REST 애플리케이션 개발을 단순화하는 인터페이스 및 Java 애너테이션의 집합체라고 볼 수 있다. 스프링 프레임워크의 경우 RestC..

    [Web] REST API

    REST API REST 또는 RESTful이라는 용어는 2000년 로이 필딩(Roy Fielding)의 박사 학위 논문에서 처음 제안된 것으로, 네트워크상에서 클라이언트와 서버 사이의 통신을 구현하는 방법에 대한 아이디어다. 클라이언트가 서버로 요청을 보냈을 때 서버가 응답으로 보내주는 Resource(예 : 파일, 프로그램 호출 등)의 상태를 Representation이라 정의하고 하나의 Resource는 여러 형태의 Representation(예: json, xml, text, rss)으로 전달할 수 있다는 개념을 의미한다. REST API의 등장 배경 서로 다른 시스템에서 네트워크(인터넷)를 통해 데이터를 주고받기 위한 클라이언트-서버 프로그램 구조는 일반적으로 다음과 같은 문제점이 있다. 동시 ..

    [Web] 필터(Filter)

    필터 필터는 '서블릿 필터(Servlet Filter)'라고도 하며 리스너와 마찬가지로 웹 애플리케이션을 지원하기 위한 특수한 형태의 서블릿이다. 클라이언트 요청에 따라 서블릿이나 JSP가 실행되기 전에 response 혹은 request 객체의 조작이나 추가적인 처리를 할 수 있다. 필터는 기본적으로 특정 요청에만 동작하며, 여러 개의 필터가 정해진 순서에 따라 배치될 수 있는데 클라이언트 요청 처리 이전에 먼저 실행된다. 리스너와 마찬가지로 단순히 기능만 구현하는 웹 프로그램의 경우에는 필터를 꼭 만들지 않아도 된다. 하지만 애플리케이션 설계 관점에서 좀 더 유연하고 효과적인 애플리케이션 구현 및 운영이 필요하다면 필터에 대해 잘 알아 둘 필요가 있다. 필터는 기존 코드의 변경 없이 애플리케이션에서 ..

    [Web] 리스너(Listener)

    리스너 리스너(Listener)란 컨테이너에서 발생하는 이벤트를 모니터링하다가 특정 이벤트가 발생하면 실행되는 특수한 서블릿으로, '이벤트 리스너(Event Listener)'라고도 한다. 웹 애플리케이션 실행에 필요한 정보를 제공하거나 톰캣 시작/종료와 같은 특정 상황에 자동으로 동작하는 프로그램을 구현할 때 사용한다. 이때 리스너는 서블릿과 마찬가지로 애너테이션 기반 코드로 작성할 수 있다. 리스너를 이해하려면 먼저 리스너가 동작하기 위한 이벤트의 종류와 그에 따른 프로그램 API를 알아야 한다. 리스너는 일반적인 형태의 서블릿이 아니라 특정 이벤트에 따라 동작하는 인터페이스를 구현한 클래스라고 이해하면 쉽다. 리스너는 기본적으로 생명 주기 변화와 Scope Object에서 관리하는 속성의 변화를 모..

    [Web] JDBC 기본구조와 API의 이해

    JDBC는 Java DataBase Connectivity의 약어로 자바 프로그램에서 다른 기종 간의 데이터베이스를 표분화된 방법으로 접속할 수 있도록 만든 API 규격이다. 개발자는 데이터베이스 종류와 관계없이 표준화된 API를 이용해 프로그램을 만들 수 있다. JDBC의 개념 데이터베이스는 종류가 매우 다양하다. 이로 인해 응용 프로그램에서 데이터베이스에 접속하고 데이터를 처리하는 방법이 제각각이기 때문에 개발에 많은 어려움이 있다. 이러한 문제를 해결해주는 JDBC는 자바 애플리케이션에서 표준화된 방법으로 다양한 데이터베이스에 접속할 수 있도록 설계된 인터페이스다. 따라서 애플리케이션 개발자는 각 데이터베이스에 대해 자세히 알지 못해도 JDBC API만 알면 모든 데이터베이스에서 동작할 수 있는 애..