반응형

image.png

안녕하세요. 가야태자 @talkit 입니다.

이 글은 전자정부 표준프레임워크 3.x 레거시 프로젝트 기록입니다. 화면과 테이블 구조는 당시 프로젝트를 재현하기 위한 예제이며, 새 시스템에서는 최신 eGovFrame의 데이터 모델과 보안 기준을 우선하십시오.

이전 글에서 데이터베이스 생성은 잘 하셨죠, 그리고, 필요한 계정과 권한도 잘 설정 했을 것으로 믿습니다.

혹시나 잘 안되시면, 댓글 주십시오.

게시판 테이블 생성 하기

위 데이터베이스에 저희는 다양한 테이블을 올려야합니다. 그 중에서 기본적으로 게시판 테이블을 올려 보겠습니다.

이유는 전자정부 프레임워크를 지금 설정하고 있는데 가장 기본 적인 테이블이 하나 있어야해서 해당 테이블을 이용해서 진행 하려고 합니다.

CREATE TABLE `BOARD` (
 `POST_SQNO` INT NOT NULL COMMENT '게시물순번',
 `BBS_TYPE_CD` VARCHAR(10) NOT NULL COMMENT '게시판유형코드',
 `POST_VIR_SQNO` INT NULL COMMENT '게시물가상순번',
 `PSTG_ST_DT` DATE NULL COMMENT '게시시작일자',
 `PSTG_END_DT` DATE NULL COMMENT '게시종료일자',
 `NOTICE_YN` VARCHAR(1) NULL COMMENT '공지글여부',
 `TITLE` VARCHAR(500) NULL COMMENT '제목',
 `CONT` VARCHAR(2000) NULL COMMENT '내용',
 `SCRT_POST_YN` VARCHAR(1) NULL COMMENT '비밀글여부',
 `PWD_HASH` VARCHAR(255) NULL COMMENT '게시물 비밀번호 해시',
 `PRGRS_STAT` VARCHAR(5) NULL COMMENT '진행상태',
 `DEL_YN` VARCHAR(1) NULL COMMENT '삭제여부',
 `ATCHFILE_GRP_ID` CHAR(25) NULL COMMENT '첨부파일그룹ID',
 `INQCNT` INT NULL COMMENT '조회수',
 `CRT_ID` VARCHAR(50) NULL COMMENT '생성자',
 `CRT_DT` DATE NULL COMMENT '생성일자',
 `MOD_ID` VARCHAR(50) NULL COMMENT '수정자',
 `MOD_DT` DATE NULL COMMENT '수정일자'
);

CREATE TABLE `BOARD_KIND` (
 `BBS_TYPE_CD` VARCHAR(10) NOT NULL COMMENT '게시판유형코드',
 `BBS_NM` VARCHAR(50) NULL COMMENT '게시판유형명',
 `USE_YN` VARCHAR(1) NULL COMMENT '사용여부',
 `FILE_ATCH_LMCNT` INT NULL COMMENT '파일첨부제한수'
);

ALTER TABLE `BOARD` ADD CONSTRAINT `PK_BOARD` PRIMARY KEY (
 `POST_SQNO`,
 `BBS_TYPE_CD`
);

ALTER TABLE `BOARD_KIND` ADD CONSTRAINT `PK_BOARD_KIND` PRIMARY KEY (
 `BBS_TYPE_CD`
);

원래 테이블에는 FK(외래 키)도 있지만, 여기서는 레거시 예제의 흐름을 보여주기 위해 생략했습니다. 운영 데이터의 정합성이 필요하면 애플리케이션 코드에만 맡기지 말고 FK 적용 여부를 별도로 검토해야 합니다.

PWD_HASH에는 원문 비밀번호를 저장하면 안 됩니다. Argon2id·bcrypt·PBKDF2처럼 검증된 단방향 비밀번호 해시를 사용하고, 직접 만든 암호화 방식이나 단순 SHA 해시는 피하십시오. 비밀글 기능이 필요 없다면 해당 컬럼 자체를 두지 않는 편이 더 단순합니다.

두 개의 테이블과 기본 키가 잘 생성됐습니다.

DBeaver 연결하기

제글을 잘 따라 오셨다면 DBeaver를 잘 다운로드 받아 두셨을 겁니다.

오늘은 우선 DBeaver 설치는 다음다음만 하면 되기 때문에 설치는 직접하시고,

댓글 남겨 주시면, 디비버 설치글도 하나 적어보겠습니다.

디비버 실행

윈도우즈에 시작에서 DBeaver를 실행해주십시오.

image.png

실행되면 위와 비슷하게 나올 것입니다.

최초로 실행하셨으면 조금 다르겠지만, 왼쪽에도 비어 있고 오른쪽에도 비어 있을 것입니다.

저는 공개 예제 데이터베이스에 연결해서 사용하고 있어서 위와 같이 보입니다.

다른 데이터베이스도 있지만, 보안상 가렸습니다.

새로운 연결 만들기

데이터베이스에 새로운 연결을 만들어 보겠습니다.

왼쪽 탭에서 오른쪽 마우스 누르고, Create >> Connection 을 클릭하시면

image.png

저기서 우리는 MySQL을 선택해주고 다음을 누르시면 됩니다.

jdbc:mysql://127.0.0.1:3306/accountbook

image.png

위 주소는 SSH 터널을 사용할 때의 예입니다. DBeaver의 SSH 설정에서 Oracle Cloud 서버로 접속하고, 원격 호스트 127.0.0.1, 원격 포트 3306으로 전달합니다. MySQL 3306 포트를 공인 인터넷에 직접 공개하지 않습니다.

직접 TLS 연결이 필요한 환경에서는 서버 인증서를 배포하고 sslMode=VERIFY_IDENTITY처럼 인증서와 호스트 이름을 검증하는 설정을 사용하십시오. 편의를 위해 useSSL=false를 복사해 넣지 않는 것이 중요합니다.

그리고 Username에는 앞 글에서 만든 최소 권한 계정을 입력합니다. 실제 비밀번호는 화면 캡처에 나오지 않게 하고, DBeaver에 저장한다면 운영체제 자격 증명 저장소와 로컬 장치 보안도 함께 확인하십시오.

왼쪽 아래에 Test Connection을 클릭 하십시오.

image.png

저는 접속이 잘 됩니다.

접속이 잘 안되면 세부사항에서 오류를 확인하되, 캡처를 공유하기 전에 호스트·사용자명·인증서 경로·사설 IP와 비밀번호를 가려 주십시오.

저기서 확인 누르시고,

완료를 클릭 합니다.

image.png

왼쪽 탭에 새로운 t서버가 나타납니다.

localhost로 나오네요 T.T

저거를 오른쪽 마우스 누르고 이름 변경해서 원하는 이름으로 변경하는게 다음에 편 합니다.

저는 accountbook으로 변경 했습니다.

image.png

위에서 만들어졌던 테이블이 잘 보이면 성공 한 것입니다.

맺음말

이제 다음글에서는 저 데이터베이스와 전자정부 프레임워크 프로젝트를 연결을 시작 해보겠습니다.

감사합니다.


Tags 전자정부프레임워크, eGovFrame, 레거시시스템, MySQL, DBeaver, SSH터널, 비밀번호해시, 데이터베이스보안, 공공SI, 가야태자, talkit

반응형

+ Recent posts