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) : 모델이 어떻게 처리할지를 알려주는 역할, 뷰에 명령을 보내어 화면 요청 결과를 전달
서버 프로그램 구현
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(20) NOT NULL COMMENT '아이디',
PW VARCHAR(20) COMMENT '패스워드',
NAME VARCHAR(10) COMMENT '이름',
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) 구현