[정처기 실기] 4. 서버 프로그램 구현 - 공통 모듈 구현, 서버 프로그램 구현

2020. 9. 26. 20:52회고/정보처리기사

정처기 실기 4회를 목표로 공부하고 있습니다. 중요개념 블로그 정리는 2회독 때 진행할 계획인데 지금 배우고 있는 Spring과 겹치는 부분이 있어 시간을 투자해 정리해보려 합니다. 교재는 '수제비'를 이용하고 있고 필기는 3회차 시험에 합격한 상태입니다.

모듈

모듈은 독립된 소프트웨어, 하드웨어 하나의 단위입니다. 저는 이 말이 어려워 어떠한 기능을 가진 실행 코드로 이해했습니다. 독립성은 중요한 특징이기 때문에 모듈 내부 간 응집도와 모듈 상호 간 결합도의 개념도 중요합니다.

공통 모듈이란 웹이든 앱이든 개발과정에 있어 필요한 기능들을 쪼개고 클래스를 생성하여 유지보수를 효과적으로 하기 위한 구현 기법입니다. 즉 Spring으로 웹사이트를 구현할 때 MVC패턴을 사용한다면 Controller, Service, DAO, DTO/VO를 구현해야 하는데 이 과정이 바로 공통 모듈 구현입니다.

요구사항을 위한 개발을 위해 설계과정은 필수 절차입니다. 교재에선 공통 모듈구현 절차를 아래와 같이 표현했습니다.

DTO/VO 구현 → SQL문 구현 → DAO 구현 →Service구현 → Controller 구현 → 필요시 화면 구현

- DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체로 세부내용 노출 없이 데이터를 조작하는 객체
- VO : 간단한 엔티티를 의미하는 작은 객체 가변 클래스인 DTO와 달리 고정 클래스를 가지는 객체이다.
- DTO : 프로세스 사이에서 데이터를 전송하는 객체로 데이터 저장, 회수 외에 다른 기능이 없는 객체이다.
- Service : 사용자의 요청을 처리하는 기능을 제공하기 위한 로직을 구현하고 DAO 클래스를 통해서 DB연동을 처리하는 기능을 수행하는 클래스이다.

MVC 패턴 역할

- 모델(Model) : 애플리케이션이 무엇을 할 것인지를 정의, 내부 비즈니스 로직을 처리하기 위한 역할(ex.Service)
- 뷰(View) : 화면에 무엇인가를 보여주기 위한 역할
- 컨트롤러(Controller) : 모델이 어떻게 처리할지를 알려주는 역할, 뷰에 명령을 보내어 화면 요청 결과를 전달

PPT 만들기 싫어 손(발)으로 그린 MVC 패턴구조

서버 프로그램 구현

1) 서버 프로그램 구현의 개념

- 업무 프로세스를 기반으로 개발언어와 도구를 이용해 서비스 제공에 필요한 업무 프로그램을 구현한다.
- 웹 서비스 기반의 회원정보를 조회하고 등록하는 서버 프로그램을 차례대로 구현한다.

2) 서버 프로그램 구현 절차

프로그램을 백엔드와 프론트엔드를 구분하여 구현한다. 

- Back End : DTO/VO 구현 → SQL문 구현 → DAO 구현 → Service 구현 → Controller 구현 (Front End) → 화면구현

3) 서버 프로그램 세부 구현

서버 프로그램의 VO, SQL문, DAO, Service, Controller를 순서대로 구현한다.

 ① DTO(Data Transfer Object), VO(Value Object) 구현

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class JoinVO{
 
    private String id;
    private String pw;
    private String name;
    public void SetId(String id) { //회원 아이디 설정 setter
        this.id = id;
}
    public void GetId() {
        return id;
}
    //...생략
 
}
cs

 

② SQL문 구현

- DB 테이블 정의 및 생성

1
2
3
4
5
6
7
CREATE TABLE CUSTOMER
(
    ID VARCHAR(20NOT NULL COMMENT '아이디',
    PW VARCHAR(20COMMENT '패스워드',
    NAME VARCHAR(10COMMENT '이름',
    PRIMARY KEY(PK_ID)
COMMENT '회원정보';
cs

 

- Mybatis XML 구현(Mybatis : 객체지향 언어인 자바의 관계형 DB 프로그래밍을 좀 더 쉽게 할 수 있게 도와주는 개발 프레임워크이다.)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<mapper namespace="com.soojebi.sql">
<!-- 회원 이름을 통해 회원 테이블 조회 -->
    <select id="selectJoin"
            parameterType="com.soojebi.vo.JoinVO"
            resultType="com.soojebi.vo.JoinVO">
    SELECT * FROM CUSTOMER
    WHERE(name=#{name})
    </select>
 
<!-- 아이디, 패스워드, 이름 등을 회원 테이블에 저장 -->
    <insert id="insertJoin" parameterType="com.soojebi.vo.JoinVO">
    INSERT INTO CUSTOMER values(#{id}, #{pw}, #{name})
    </insert>
</mapper>
cs

 

③ 데이터 접근 객체(DAO; Data Access Object) 구현