[Spring Boot] 주식시장(Stock Market) 확인 웹사이트 만들기 (2) - MyBatis, MySQL ②

2020. 9. 14. 18:27프로젝트/etc

#Spring Boot #MyBatis #MySQL

1. Spring Boot에 MyBatis 연동하고 MySQL 테이블 생성하기

지난 글에서 MyBatis에 대한 개념을 알아봤습니다. Spring Boot Java 클래스 설정에 앞서 MySQL 다운로드와 스키마, 테이블을 생성하는 사용법을 알아보겠습니다.

1) MySQL 다운로드

공식홈페이지에서 받아줍니다. 저도 구글링으로 해결했기 때문에 Spring Boot 위주로 설명하는 글 특성 상 다운로드 방법은 간단히 기술하겠습니다.

 MySQL 홈페이지 -> DOWNLOADS 탭 클릭

MySQL Community(무료버전) Downloads 클릭

MySQL Community Server 클릭

MySQL Installer for Windows > Go to Download Page 클릭 (거의 끝)

 

Windows 427.6MB Download 클릭 후 실행파일 다운로드

받은 실행파일을 실행시켜 주시면 됩니다. Setup 과정에서 크게 어려움은 없었지만 설치 과정이 궁금하시다면 구글을 활용해 쉽게 찾을 수 있습니다. 다운로드가 완료됐다는 전제 하에 MySQL Workbench를 이용해 스키마와 테이블을 구성해보겠습니다. MySQL CommandLineClient로도 가능하지만  GUI면에서 친숙한 Workbench를 사용했습니다. 

 2) MySQL 스키마 생성

 스키마(Schema)란 데이터베이스(DB)의 구성이라고 보면 편합니다. 구성에 표(table)과 열(column), 데이터를 이루는 행(row)이 있을 것이고 사용자가 입력하는 데이터(data)가 있겠죠. 이러한 DB의 구조를 담고 있는 개념이 스키마 입니다. 상세하게 들어가면 사용자 관점에 따라 외부/내부/개념으로 나뉘기도 하지만 이론적인 설명보단 구현에 필요한 측면에서 서술하겠습니다. 

원기둥 모양이 DB를 뜻하고 플러스 표시를 클릭하면 Schema 생성 창이 열립니다. Name은 원하는대로 입력하면 됩니다. 저는 test_db로 했습니다. Charset/Collation은 문자를 유니코드로 인코딩 해줄 때 사용할 '코드표'이다. (출처: Unicode와 UTF-8 간단히 이해하기) 한글을 인코딩 해주기 위해선 UTF-8로 설정해야한다.

Apply를 클릭하면 아래 팝업 창이 뜬다. 스키마를 생성하는 DDL이며 Workbench에선 친절하게도 자동으로 입력해준다. 

 

생성되면 왼쪽 Navigator 리스트에 test_db 스키마가 생성된 것을 볼 수 있다. 이제 테이블을 생성할 차례다.

 3) MySQL 테이블 생성

테이블 Charset/Collation도 UTF-8으로 맞춰준다. Coulmn을 추가해주는데 PK, NN, UQ, B... 뭔지 모를 축약어들이 즐비해있다. 이는 컬럼 속성을 체크하는 란이다. 주로 사용하는 속성은 앞의 3개인데 차례로 PrimaryKey, NotNull, Unique다. 

Primary Key의 속성은 NN + UQ며 테이블 내 1개 필드만 지정 가능하다. INT datatype으로 지정할 때 처리속도가 향상된다고 하니 참고. 데이터를 filter할 때나 외부 데이터와 조인될 때 기준이 되는 컬럼이다. 

NN(NotNull)은 필수 입력 데이터, UQ(Unique)는 중복 불가 데이터를 뜻한다. Datatype에서 INT는 정수, VARCHAR()는 문자형 데이터를 의미한다. VARCHAR 내 숫자는 문자 입력 가능한 데이터 크기 (byte)이다. 영문이 한 자당 1byte며, 한글은 2byte를 차지한다. 다 됐으면 Apply를 눌려줍니다. (정신줄을 놓고 쓰다가 평어체를 써버렸습니다. 아직은 제3자가 읽는다고 생각하며 쓰는 게 익숙치 않습니다..)

행여나 Datatype, PK, NN 등 컬럼 속성을 잘못 지정했어도 DDL(Data Define Language) - ALTER를 사용하면 되기 때문에 안심해도 됩니다. 

대부분 마우스 클릭으로 테이블을 생성했지만 기본 생성은 코드로 이루어집니다. 어떤 코드로 이루어졌는지 알아두는 게 좋기에 눈으로 한번 훑어보시는 것을 추천드립니다. 설정값이 그대로 입력된 것이라 이해하기 어렵진 않습니다.

 4) MySQL 테이블 내 데이터 추가

 마지막으로 테이블 내 데이터 추가하는 부분을 다뤄보겠습니다. INSERT를 활용하여 데이터를 삽입했습니다. 

SELECT로 모든 데이터(*)를 출력하면 데이터가 잘 들어간 것을 볼 수 있습니다. 

 

다음 시간에는 Spring Boot와 MySQL 연동에 필요한 Java 클래스와 아노테이션을 알아보고 DB 접근까지 해보겠습니다.