web

    [Web] JSTL(JSP Standard Tag Library)

    JSTL JSTL(JSP Standard Tag Library)은 JSP에서 스크립트릿, 즉 자바 코드 블록을 사용하지 않고 HTML 형식을 유지하면서 조건문, 반복문, 간단한 연산과 몇몇 유용한 기능을 손쉽게 사용할 수 있도록 지원하기 위해 만들어진 표준 커스텀 태그 라이브러리다. 서버에서만 해석할 수 있는 구조로 인해 디자이너와의 협업에 불편한 부분이 있고, 개발 과정에서 UI 확인을 위해 서버를 통해야만 하는 비효율적인 문제가 존재한다. 이러한 문제점은 모바일 환경 중심의 프론트엔드 개발 트렌드와는 다소 거리가 있다. 규격상 JSTL은 core, xml, I18N(다국어 처리), 데이터베이스, 함수 등으로 구성되어 있으나 뷰 중심의 JSP 구현에는 core 정도만 사용된다. JSTL 라이브러리 설치..

    [Web] 커스텀 태그와 EL

    커스텀 태그 커스텀 태그(Custom Tag)란 사용자 정의 태그를 의미한다. 즉 스크립트릿 사용을 줄이고 태그와 같은 형태로 프로그램 코드를 대체하거나 재활용 가능한 구조를 통해 태그 라이브러리로 활용하고자 개발된 규격이다. 외형적인 형태는 XML(HTML) 태그 구조이지만 서블릿 형태로 변환될 때 자바 코드로 변경되어 통합되는 방식이다. 커스텀 태그를 사용하기 위해서는 taglib 지시어를 사용하여 커스텀 태그가 어디에 정의되어 있는지를 먼저 선언해야 하며 태그에 사용할 접두어를 지정해야 한다. 커스텀 태그는 잘 사용하면 매우 편리하지만 커스텀 태그 자체가 서버에서 해석되는 구조이며, 프로젝트 특정 커스텀 태그에 종속될 수 있다는 문제 때문에 커스텀 태그를 직접 만드는 방식은 점차 줄어들고 있다. 대..

    [Web] 액션 태그 (useBean, include, forward)

    액션 태그 액션(Action) 태그란 JSP에서 객체 생성과 공유, 페이지 이동과 전달, 태그 파일 작성 등에 필요한 기능을 제공하는 일종의 커스컴 태그다. 표준 액션이라고도 불리며 커스텀 태그 기반이지만 별도의 taglib 지시어 사용 없이 jsp 접두어를 사용한다. 액션 태그는 JSP에서 프로그램적인 요소를 많이 구현하거나 컨트롤러로 활용할 때 유용하다. 이러한 기능은 기본적으로 서블릿에서도 가능하지만 개발자가 직접 코드를 구현하여 처리해야 한다. 반면 액션 태그는 JSP 파일에서 커스텀 태그의 구조적인 특징을 살려 HTML 형태로 프로그램 요소를 처리할 수 있기 때문에 간편하다는 장점이 있다. 요즘과 같이 JSP의 역할이 축소된 상황에서는 액션 태그의 실무 활용이 권장되지 않는다. 그럼에도 아래 내..

    [Web] 템플릿 데이터와 스크립트 요소(<%! %>, <%= %>, <% %>)

    템플릿 데이터 템플릿 데이터란 JSP의 화면 구성요소를 말한다. 시작 부분의 page 지시어를 제외하면 JSP 파일의 전반적인 구조는 HTML의 문서 구조를 따른다. 따라서 일반적인 HTML 파일처럼 CSS, 자바스크립트도 사용할 수 있다. 기본적으로 HTML5를 사용하며 문서 구조 중심으로 간략하게 작성하고 데이터 표현은 JSTL과 EL을 사용한다. 화면 디자일을 위해 자체적인 CSS 정의 이외에도 Bootstrap과 같은 라이브러리를 사용할 수 있으며, REST API 호출을 위해 Axios 같은 자바스크립트 라이브러리 역시 사용할 수 있다. 다만 React, Vue와 같은 자바스크립트 요소는 프론트엔드 개발 기술로 JSP와 함께 사용하지 않는다는 것을 주의한다. 스크립트 요소 JSP는 HTML과 자..

    [Web] JSP의 개요(JSP의 장단점, page지시어, include지시어, taglib지시어)

    JSP의 특징과 구성요소 JSP는 서블릿의 화면단 처리의 어려움을 해결하기 위해 등장하였으며, HTML과 데이터를 조합하기 위해 다음과 같은 특징과 구성요소를 가진다. JSP의 특징 HTML 페이지에 자바 코드를 직접 사용한다. 서블릿 컨테이너에 의해 관리되는 내장 객체의 생명주기를 이용하여 페이지 간 속성을 관리한다. 커스텀 태그 기술을 사용하여 코드를 태그화(action, JSTL) 한다. EL(Expression Language)을 통해 데이터를 표현한다. 즉 JSP는 서블릿에서 데이터 표현의 불편함을 해결하기 위해 나온 뷰 템플릿 기술의 하나로, HTML 형식의 문서 구조에 자바 코드 혹은 다른 전용 표기법을 사용해 프로그램 요소를 쉽게 구현할 수 있도록 도와준다. 내부적으로는 서블릿으로 변환되어..

    [Web] 페이지 이동과 정보 공유(Cookie, Session, Scope Object)

    웹 프로그래밍에서 서블릿이 주로 사용되는 영역은 MVC 패턴 구조의 컨트롤러에 해당한다. 컨트롤러는 사용자 요청을 받아 데이터베이스와 연동 등의 작업을 처리한 다음 결과에 따라 적절한 페이지로 전환해주는 기능을 담당한다. 이때 페이지 이동과 함께 페이지 간 정보 공유 기법에 대한 이해가 필요하다. 페이지 이동 컨트롤러에서 사용자 요청을 처리한 다음에는 적절한 뷰로 이동할 수 있어야 한다. 이때 뷰에서 보여줄 데이터를 포함해서 이동해야 하는 경우와 그렇지 않아도 되는 경우가 있다. 데이터를 포함하지 않는 경우 사용자 요청 처리 후 별도의 데이터를 포함하지 않는다면 해당 페이지로 바로 리디렉션할 수 있다. 혹은 세션에 데이터를 저장한 경우라면 세션이 유효한 동안 모든 페이지에서 세션 정보를 참조할 수 있어 ..