[Web] 관계형 데이터베이스(RDBMS)
·
Programming/Web
테이블 테이블은 관계형 데이터베이스에서 데이터 관리의 기본 구조다. 데이터가 가지는 공통적인 속성을 모아 정의한 칼럼(필드)으로 구성되며 칼럼에 저장되는 데이터는 숫자형, 문자형, 날짜형, 불형(Boolean) 등으로 구분된다. 또한 파일과 같은 바이너리 데이터를 저장하거나 매우 긴 텍스트를 저장할 수 있는 자료형도 있다. 예를 들어 다음과 같이 정리되지 않은 데이터가 있다고 가정한다. 김길동, AA대학교, 1999-01-21, kim@aa.com park@bb.com, 박사랑, BB대학교, 2000-01-21 나최고, 1998-07-11, na@cc.com, CC대학교 김길동, BB대학교, 1999-03-10, kim@bb.com AA대학교, 홍길동, 1999-12-10, hong@aa.com 어수선하..
[Web] 데이터베이스(Database)
·
Programming/Web
응용 프로그램에서 데이터를 효과적으로 관리하고 공유하기 위한 데이터베이스의 기본 개념과 대표적인 데이트베이스의 특징을 비교해보고 용도에 따라 적합한 데이터베이스를 선택하는 방법 또한 관계형 데이터베이스의 기본적인 개념과 주요 구성요소 및 용어를 배운다. 테이블에서부터 키와 제약 조건, 인덱스, 시퀀스 등을 이해하고 SQL을 배우기 전에 꼭 필요한 필수적인 개념과 용어를 살펴본다. 데이터베이스 데이터베이스는 데이터를 체계적으로 관리할 수 있도록 해주는 소프트웨어로, 대부분의 프로그램은 어떠한 형태로든 데이터베이스를 사용하고 있다고 볼 수 있다. 예를 들어 스마트폰의 주소록이나 메모, 응용 프로그램의 각종 정보는 스마트폰에 내장된 SQLite라는 데이터베이스를 사용하거나 네트워크를 통해 원격 서버의 데이터베..
[Web] 서블릿 컨트롤러 설계
·
Programming/Web
컨트롤러를 구현하기 위해서는 컨트롤러가 처리해야 하는 주요 기능에 대해 먼저 이해해야 한다. 컨트롤러의 가장 기본적인 기능인 클라이언트 요청 처리, 입력값 핸들링, 뷰 이동에 대해 살펴보고 실제 서블릿에서 어떻게 구현하는지 살펴본다. 클라이언트 요청 처리 우선 클라이언트 요청은 단일 컨트롤러에서 처리할 것인지 개별 컨트롤러에서 처리할 것인지 결정해야 한다. 서블릿은 URL 요청을 GET, POST 등의 HTTP 메서드를 통해 처리하는 구조이기 때문에 여러 URL 패턴을 하나의 서블릿에서 처리할 수 있지만 URL에 따라 다른 처리를 구현할 수는 없다. 예를 들어 어떤 쇼핑몰에서 제품을 등록하는 기능과 삭제하는 기능이 필요하다고 가정했을 때 각각의 요청 URL은 다음과 같다. 제품 등록 요청 URL : /s..
[Web] MVC 패턴
·
Programming/Web
백엔드 웹 개발에서 가장 대표적인 MVC 패턴을 제대로 이해하기 위해서는 먼저 소프트웨어 디자인 패턴에 대한 이해가 필요하다. 디자인 패턴 디자인 패턴(Design Pattern)은 처음에는 건축학적 관점에서 출발한 개념이었으나 1994년 GoF(Gang of Four)의 를 통해 소프트웨어 설계에서 공통적으로 발생하는 문제에 대한 재사용 가능한 솔루션으로 제시되었다. 물론 완벽한 설계란 없으며 시대의 흐름에 따라 달라질 수 있지만, 시행착오를 통해 스스로 터득해야 할 문제를 정리해둔 솔루션이 있다면 당연히 검토할 가치가 있는 것이다. GoF의 디자인 패턴은 생성, 구조, 행동, 동시실행 등의 문제에 대해 여러 패턴을 제시하고 있으며 UML 클래스 다이어그램을 이용해 구조를 표현하고 있다. UML이란 U..
[Web] JSTL(JSP Standard Tag Library)
·
Programming/Web
JSTL JSTL(JSP Standard Tag Library)은 JSP에서 스크립트릿, 즉 자바 코드 블록을 사용하지 않고 HTML 형식을 유지하면서 조건문, 반복문, 간단한 연산과 몇몇 유용한 기능을 손쉽게 사용할 수 있도록 지원하기 위해 만들어진 표준 커스텀 태그 라이브러리다. 서버에서만 해석할 수 있는 구조로 인해 디자이너와의 협업에 불편한 부분이 있고, 개발 과정에서 UI 확인을 위해 서버를 통해야만 하는 비효율적인 문제가 존재한다. 이러한 문제점은 모바일 환경 중심의 프론트엔드 개발 트렌드와는 다소 거리가 있다. 규격상 JSTL은 core, xml, I18N(다국어 처리), 데이터베이스, 함수 등으로 구성되어 있으나 뷰 중심의 JSP 구현에는 core 정도만 사용된다. JSTL 라이브러리 설치..
[Web] 커스텀 태그와 EL
·
Programming/Web
커스텀 태그 커스텀 태그(Custom Tag)란 사용자 정의 태그를 의미한다. 즉 스크립트릿 사용을 줄이고 태그와 같은 형태로 프로그램 코드를 대체하거나 재활용 가능한 구조를 통해 태그 라이브러리로 활용하고자 개발된 규격이다. 외형적인 형태는 XML(HTML) 태그 구조이지만 서블릿 형태로 변환될 때 자바 코드로 변경되어 통합되는 방식이다. 커스텀 태그를 사용하기 위해서는 taglib 지시어를 사용하여 커스텀 태그가 어디에 정의되어 있는지를 먼저 선언해야 하며 태그에 사용할 접두어를 지정해야 한다. 커스텀 태그는 잘 사용하면 매우 편리하지만 커스텀 태그 자체가 서버에서 해석되는 구조이며, 프로젝트 특정 커스텀 태그에 종속될 수 있다는 문제 때문에 커스텀 태그를 직접 만드는 방식은 점차 줄어들고 있다. 대..