2019. 12. 4. 21:58ㆍ프로그래밍 언어/Java
Java Unit Test 교육
2019. 12. 4 (목) 13:30 ~ 17:30
남서울센터 6층 레츠런파크
수업자료
https://github.com/madosa/lecture-junit
lecture-junit/Java-Spring Unit Test.md 파일 확인
자바 테스트 자동화 관련 자료
https://www.slideshare.net/gyumee/ss-90206560
I. 요구사항
회원관리 프로그램
-회원 등록 / 조회 / 수정 / 삭제 기능 필요
- 회원 정보는 이름, 성별, 생년월일, 이메일, 연락처의 정보가 등록된다.
- 회원 조회는 리스트 조회와 상세 조회가 가능해야 한다.
- 회원 등록과 수정 시 이메일이 중복 되어서는 안된다.
- 회원 삭제는 한번에 한명의 회원만 삭제할 수 있다.
II. 개발 환경 구축
1. OpenJDK, IntelliJ IDEA, Docker, MySQL 설치
1) OpenJDK 설치
https://parkgaebung.tistory.com/10
2) IntelliJ IDEA
https://jwprogramming.tistory.com/99
3) Docker 설치
https://parkgaebung.tistory.com/11
4) Docker - MySQL 컨테이너 생성
a. 설정 파일 및 데이터가 저장될 폴더 생성
$ mkdir /Users/narae/mysql
$ cd /Users/narae/mysql
$ mkdir /Users/narae/mysql/lecture
$ cd /Users/narae/mysql/lecture
$ mkdir conf data
$ cd conf
b. my.cnf 파일에 아래의 내용을 쓰고 저장
$ vi my.cnf
# i (INSERT MODE)
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
collation-server = utf8mb4_unicode_ci
init-connect='SET NAMES utf8mb4'
character-set-server = utf8mb4
# esc (INSERT MODE 나가기)
# :wq (저장 후 종료)
c. container 생성 (MySQL 5.7.19 버전)
$ sudo docker create \
--name lecture-mysql \ # docker container의 이름 지정
-p 43306:3306 \ # 포트 포워딩
-v /Users/narae/mysql/lecture/conf:/etc/mysql/conf.d \ # configure 파일 설정
-v /Users/narae/mysql/lecture/data:/var/lib/mysql \ # docker volume 지정
# 데이터가 /Users/narae/mysql/lecture/data 폴더로 저장됨
-e MYSQL_ROOT_PASSWORD=admin12# \ # root 패스워드 설정
-e MYSQL_DATABASE=lecture \
-e MYSQL_USER=lecture \
-e MYSQL_PASSWORD=lecture12# \
mysql:5.7.19
d. container 실행
$ sudo docker start lecture-mysql
lecture-mysql
docker ps 명령어로 컨테이너가 실행되었는지 확인
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0d02e7bd3559 mysql:5.7.19 "docker-entrypoint.s…" 7 hours ago Up 3 seconds 0.0.0.0:43306->3306/tcp lecture-mysql
lecture-mysql가 올라와있으면 성공!
2. DB Schema
1) MySQL Workbench 다운로드
자신의 운영체제에 맞는 버전으로 적당히 구글링해서 다운받습니다.
[OS X]
https://dev.mysql.com/downloads/workbench/5.2.html
[OS Catalina]
https://tech-cookbook.com/2019/10/08/using-mysql-workbench-on-macos-catalina-2019/
https://dev.mysql.com/downloads/workbench/
2) MySQL Connection 생성
Workbench를 실행 후 MySQL Connections 옆의 ⊕를 클릭합니다.
Connection Name: lecture
Hostname: 127.0.0.1
Port: 43306
Username: lecture
Password: lecture12#
Default Schema: lecture
위와 같이 입력해서 lecture 계정에 연결합니다.
비밀번호는 [Password] - [Store in Keychain ...] 클릭 후
위의 1.4.c 에서 지정한 lecture 계정의 비밀번호 (lecture12#)를 입력 합니다.
하단 [Test Connection] 클릭 후 위와 같은 메시지가 뜬다면 OK 눌러 연결 설정을 저장합니다.
Connection Name: lecture-root
Hostname: 127.0.0.1
Port: 43306
Username: root
Password: admin12#
Default Schema: lecture
그리고, 위와 같은 방법으로 이번에는 root 계정을 연결합니다.
(MySQL Connections 옆 ⊕ 클릭 ~ Test Connection 확인 후 연결 설정 저장까지)
3) 권한 설정
위에서 만든 lecture-root로 들어갑니다.
Login Name: lecture
Limit to Hosts Matching: localhost
Password: lecture12#
Confirm Password: lecture12#
좌측 [MANAGEMENT] - [Users and Privileges] - 하단 [Add Account] 버튼 - [Login] 탭에서 위와 같이 입력합니다.
[Administrative Roles] 탭에서 DBA 옆의 체크박스를 눌러 DBA 역할을 부여합니다.
[Schema Privileges] 탭에서 [Add Entry...] 버튼을 누릅니다.
[Selectec Schema] 옵션 선택후 [lecture]로 설정한뒤 확인
[Select "ALL"] 을 눌러 접근 권한을 주고,
[GRANT OPTION] 옆의 체크박스도 눌러 모든 권한을 준 뒤 [Apply]를 눌러 적용합니다.
4) 테이블 생성
[lecture 연결] - [Schemas] 탭 - [lecture - Tables] 에서 아래 쿼리문을 붙여넣고 번개모양 아이콘을 눌러 테이블을 생성합니다.
# member
CREATE TABLE `member` (
`memberid` varchar(20) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '회원 ID',
`membername` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '회원 이름',
`gender` varchar(10) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '성별',
`dateofbirth` int(8) NOT NULL COMMENT '생년월일',
`email` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '이메일',
`mobile` varchar(30) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '서비스 이름',
`createdate` datetime NOT NULL COMMENT '등록일시',
`modifydate` datetime NOT NULL COMMENT '최종 수정일시',
PRIMARY KEY (`memberid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='회원 테이블';
# seq_member
CREATE TABLE `seq_member` (
`seq` bigint(20) NOT NULL COMMENT '이미지 시퀀스 번호',
PRIMARY KEY (`seq`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='멤버 시퀀스 테이블';
# Init seq_member
INSERT INTO `seq_member` (`seq`)
VALUES (1);
하단에 초록불이 들어왔다면 성공입니다.
관련 포스트
참고
tech-wiki : 공통 라이브러리 개발
'프로그래밍 언어 > Java' 카테고리의 다른 글
IntelliJ에서 Spring Boot 프로젝트 생성하기 (0) | 2020.09.05 |
---|---|
REST Template의 Idempotent(멱등) (0) | 2020.08.12 |
Java Unit Test 교육 내용 정리 (3) (0) | 2019.12.05 |
Java Unit Test 교육 내용 정리 (2) (0) | 2019.12.04 |