web

    [Web] 서블릿 클래스 구조와 생명 주기

    서블릿은 컨테이너 기반으로 동작하기 때문에 정해진 규격에 의해 프로그래밍해야 한다는 제약이 있다. 따라서 서블릿 클래스를 단순히 만드는 것보다 기본적인 구조와 생명 주기에 대한 이해가 선행되어야 한다. 서블릿 클래스의 구조 서블릿 자체는 자바로 구현하지만 서블릿 컨테이너에 해당 클래스가 서블릿임을 알려야 하며, 어떤 URL 접근에 실행해야 하는지 등록하는 과정이 필요하다. 기본적으로 웹 애플리케이션 구조를 컨테이너에 알려주기 위한 배포 서술자인 web.xml에 등록해야 하지만 서블릿 3.0부터는 별도의 web.xml 작성 없이 애너테이션을 이용한 방법이 주로 사용되고 있다. 서블릿 클래스는 javax.servlet.Servlet 인터페이스를 구현한 추상 클래스인 GenericServlet 클래스와 Htt..

    [Web] 서블릿의 개요

    서블릿은 자바로 만들어진 프로그램을 서버에서 실행하기 위해 만들어졌다. 서블릿은 특히 웹 서비스 개발에 특화되어 있는데 데이터베이스 연동, 외부 서비스 연동을 통해 정적인 웹에 동적인 정보 제공을 가능하게 한다. 서블릿은 순수 자바 코드로 작성되며, 코드 자체만 보면 일반적인 자바 클래스와 다르지 않다. 다만 HttpServlet 클래스를 상속하여 서블릿 등록에 필요한 정보를 추가해야 하며, 서블릿 단독으로 실행할 수 없고 서블릿 컨테이너를 통해야 한다. 서블릿의 동작 과정 서블릿 코드 작성에서부터 컨테이너 등록, 클라이언트 요청에 따른 동작 과정은 다음과 같다. HttpServlet 클래스는 상속받는 서블릿 클래스(MyServlet)를 구현한다. 컨테이너는 url mapping 설정을 참고하여 서블릿을..

    [Web] 스프링 프레임워크

    스프링 프레임워크 자바 웹 개발에서 빼놓을 수 없는 것이 바로 스프링 프레임워크다. 자바 웹 개발의 핵심은 자바와 서블릿이라 볼 수 있지만 학습용이 아닌 실제 기업에서 개발하는 서비스의 경우 성능과 안정성, 보안, 다른 서비스와의 연계 등 단순한 기능 외에 고려할 사항이 많다. 이러한 문제를 해결하기 위해 Java EE(Enterprise Edition)가 탄생했으나 스펙의 복잡함과 구현의 어려움으로 인해 현업에 완전히 정착되지 못했다. 스프링 프레임워크(Spring Framework)는 자바 기반의 오픈소스 프레임워크로 Java EE에서 요구하는 수준의 복잡한 기능을 Java EE를 사용하지 않고 구현하고자 시작한 것이다. 스프링 프레임워크에 사용되는 주요 특징 경량 컨테이너 : 객체 생성, 소멸과 같..

    [Web] REST API와 JAX-RS

    REST는 HTTP와 JSON을 함께 사용하여 Open API를 구현하는 형태로 많이 사용된다. REST API REST는 REpresentational State Transfer의 약어로 2000년 로이 필딩(Roy Fielding)의 박사 학위 논문에서 처음 제안된 방법이다. 네트워크상에서 클라이언트와 서버 사이의 통신을 구현하는 방법 중 하나이며, 대부분의 Open API는 REST 아키텍처를 기반으로 만들어져 있다. 클라이언트가 서버로 요청을 보냈을 때 서버가 이에 대한 응답으로 보내주는 Resource의 상태를 Representation이라고 할 수 있으며, 하나의 Resource는 여러 형태의 Representation(예: json, xml, text, rss 등)으로 전달할 수 있는 것을 ..

    [Web] 서블릿과 JSP

    서블릿 서블릿이란 자바 기반의 웹 프로그램 개발을 위해 만들어진 기술이다. 따라서 자바로 작성된 프로그램을 실행할 수 있는 서버 소프트웨어(예 : 톰캣)를 통해 관리된다. 즉 서블릿을 실행하기 위해서는 톰캣과 같은 서블릿 컨테이너(Servlet Container)가 필요하며 이러한 서버 소프트웨어는 일반적으로 WAS(Web Application Server)로 불리기도 한다. 데스크톱이나 스마트폰에서 실행되는 일반적인 애플리케이션과 달리 웹 프로그램은 서버에 접속해야만 화면을 볼 수 있고, 로그인이나 기타 기능은 모두 서버에서 실행된 이후 결과만 클라이언트(웹 브라우저)에 보이는 구조다. 기본적인 웹의 요청과 응답 과정 클라이언트(웹 브라우저)가 서버에 페이지(index.html)를 요청한다. 서버는 클..

    [Web] 웹 프로그래밍의 기초(JavaScript)

    [Web] 웹 프로그래밍의 기초(JavaScript)

    자바스크립트는 HTML, CSS와 달리 C 언어나 자바와 같은 프로그래밍 언어의 범주에 속하기 때문에 배우기 위해서는 많은 노력이 요구된다. 자바스크립트 자바스크립트는 정적인 HTML 콘텐츠에서 사용자와 상호작용하며 동적으로 변경하는 부분을 담당한다. 자바스크립트는 객체(Object) 기반의 스크립트 언어로 기본적으로는 웹 브라우저에서 해석되는 인터프리터 언어이며, Node.js와 같은 프레임워크를 사용하면 서버 프로그래밍에도 사용할 수 있다. 자바스크립트의 특징 동적이며 타입을 명시할 필요가 없는 인터프리터 언어다. 객체지향 프로그래밍과 함수형 프로그래밍 모두 표현할 수 있다. HTML의 내용, 속성, 스타일을 변경할 수 있다. 이벤트를 처리하고 사용자와의 상호작용을 가능하게 한다. 서버와 실시간 통신..