Programming/Web

    [Web] SQL(DDL, DML)

    SQL SQL(Structured Query Language)은 관계형 데이터베이스에서 데이터를 관리하기 위한 쿼리 언어로 대부분의 프로그래밍 언어보다는 단순한 구조를 가지고 있다. SQL 자체는 표준 언어이지만 데이터베이스마다 세부적인 차이가 있을 수 있기 때문에 특정 데이터베이스만 대상으로 개발된 프로그램의 경우 다른 데이터베이스와 호환이 되지 않을 수도 있으니 주의해야 한다. SQL은 단순히 데이터 관련 작업 이외에 데이터베이스 자체의 관리 기능 수행에도 사용된다. SQL에서 할 수 있는 일은 다음과 같다. 새로운 테이블 생성 내장 프로시저(Stored Procedure) 생성 뷰 생성 테이블, 프로시저, 뷰 등의 접근 권한 부여 데이터베이스에 대해 쿼리 실행 데이터베이스로부터 데이터 조회 데이터베..

    [Web] H2 데이터베이스

    H2 데이터베이스 H2 데이터베이스는 보통 임베디드 데이터베이스로 알려져 있으며 MySQL과 같은 관계형 데이터베이스 관리 시스템이다. MySQL과 달리 복잡한 프로그램의 설치가 필요 없고 데이터베이스 파일만 있으면 언제든지 데이터베이스를 실행할 수 있어 프로그램에 포함해서 배포하는 것도 가능하다. 실제 운영 데이터베이스와 상관없이 관계형 데이터베이스를 사용하고 특정 데이터베이스 종속 기능 없이 구현하는 경우에는 효율을 위해 MySQL이나 Oracle 등을 설치하지 않고 H2와 같이 경량 데이터베이스를 이용해 개발하기도 한다. H2 데이터베이스는 다음과 같이 세 가지 모드로 운영할 수 있다. 임베디드 모드 프로그램에서 JDBC URL을 이용해 접속하거나 console 웹을 통해 관리한다. 데이터 파일만 ..

    [Web] 관계형 데이터베이스(RDBMS)

    테이블 테이블은 관계형 데이터베이스에서 데이터 관리의 기본 구조다. 데이터가 가지는 공통적인 속성을 모아 정의한 칼럼(필드)으로 구성되며 칼럼에 저장되는 데이터는 숫자형, 문자형, 날짜형, 불형(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)

    응용 프로그램에서 데이터를 효과적으로 관리하고 공유하기 위한 데이터베이스의 기본 개념과 대표적인 데이트베이스의 특징을 비교해보고 용도에 따라 적합한 데이터베이스를 선택하는 방법 또한 관계형 데이터베이스의 기본적인 개념과 주요 구성요소 및 용어를 배운다. 테이블에서부터 키와 제약 조건, 인덱스, 시퀀스 등을 이해하고 SQL을 배우기 전에 꼭 필요한 필수적인 개념과 용어를 살펴본다. 데이터베이스 데이터베이스는 데이터를 체계적으로 관리할 수 있도록 해주는 소프트웨어로, 대부분의 프로그램은 어떠한 형태로든 데이터베이스를 사용하고 있다고 볼 수 있다. 예를 들어 스마트폰의 주소록이나 메모, 응용 프로그램의 각종 정보는 스마트폰에 내장된 SQLite라는 데이터베이스를 사용하거나 네트워크를 통해 원격 서버의 데이터베..

    [Web] 서블릿 컨트롤러 설계

    컨트롤러를 구현하기 위해서는 컨트롤러가 처리해야 하는 주요 기능에 대해 먼저 이해해야 한다. 컨트롤러의 가장 기본적인 기능인 클라이언트 요청 처리, 입력값 핸들링, 뷰 이동에 대해 살펴보고 실제 서블릿에서 어떻게 구현하는지 살펴본다. 클라이언트 요청 처리 우선 클라이언트 요청은 단일 컨트롤러에서 처리할 것인지 개별 컨트롤러에서 처리할 것인지 결정해야 한다. 서블릿은 URL 요청을 GET, POST 등의 HTTP 메서드를 통해 처리하는 구조이기 때문에 여러 URL 패턴을 하나의 서블릿에서 처리할 수 있지만 URL에 따라 다른 처리를 구현할 수는 없다. 예를 들어 어떤 쇼핑몰에서 제품을 등록하는 기능과 삭제하는 기능이 필요하다고 가정했을 때 각각의 요청 URL은 다음과 같다. 제품 등록 요청 URL : /s..

    [Web] MVC 패턴

    백엔드 웹 개발에서 가장 대표적인 MVC 패턴을 제대로 이해하기 위해서는 먼저 소프트웨어 디자인 패턴에 대한 이해가 필요하다. 디자인 패턴 디자인 패턴(Design Pattern)은 처음에는 건축학적 관점에서 출발한 개념이었으나 1994년 GoF(Gang of Four)의 를 통해 소프트웨어 설계에서 공통적으로 발생하는 문제에 대한 재사용 가능한 솔루션으로 제시되었다. 물론 완벽한 설계란 없으며 시대의 흐름에 따라 달라질 수 있지만, 시행착오를 통해 스스로 터득해야 할 문제를 정리해둔 솔루션이 있다면 당연히 검토할 가치가 있는 것이다. GoF의 디자인 패턴은 생성, 구조, 행동, 동시실행 등의 문제에 대해 여러 패턴을 제시하고 있으며 UML 클래스 다이어그램을 이용해 구조를 표현하고 있다. UML이란 U..