2022. 2. 20. 16:50ㆍ프로젝트 구현/리얼 월드
1. 프로젝트 생성
본격적으로 프로젝트를 시작할 시간이다.
https://start.spring.io/로 들어가서, 스프링 프로젝트를 생성한다.
그레이들 버전, 자바 11 버전으로 프로젝트를 생성하였으며, 이번 프로젝트의 템플릿 엔진으로는 타임리프를 사용, SQL 매핑 프레임워크로는 마이바티스를 사용할 것이다. 따라서 dependency에서 이 두개를 찾아서 추가해준다.
이 외에도 로그인 처리를 위한 spring security, 롬복 등을 추가해 준다.
후에 사용할 CI/CD 툴과의 연동을 위해서, 깃허브 저장소도 살포시 하나 만들어 준다.
깃허브 주소 : https://github.com/SangHoonly/real-world
2. mySQL 연동
먼저 mySQL 서버를 3306 포트로 띄운다.(기본 설정이 3306 포트로 지정되어 있으므로, mySQL을 그냥 실행시키면 될 것이다.)
그리고 스프링 톰캣 서버에서 mySQL 서버로 로그인할 계정을 하나 만든다. root 계정을 사용해도 상관없다. 사진은 mySQL Workbench로 새 계정을 만드는 모습이다.
이후 프로젝트 mail/resources 디렉토리의 application.properties에서 데이터소스 설정들을 작성한다. 커넥션 풀로 히카리CP를 사용할 것이며, 방금 만들었던 로그인 계정, mysql 서버 url을 설정해 준다.
스프링 서버가 실행되고 동작하면서 데이터베이스 관련 설정 내용들을 적용/관리하기 위해선 이 설정들을 빈으로 등록해야 한다. 또한 마이바티스와 DB를 연동해줄 설정 내용들이 필요한데, configuration 파일을 하나 생성하여 이 두 작업을 진행할 것이다.
프로젝트의 main/java/LeeJerry.realWorld 디렉터리에 configuration 디렉토리를 생성 후, DatabaseConfiguration.java 파일을 생성한다. 그리고 다음과 같이 코드를 작성한다.
참고 1 : DataSource란? (https://docs.oracle.com/javase/7/docs/api/javax/sql/DataSource.html)
참고 2: SqlSessionFactory? (http://mybatis.org/spring/ko/factorybean.html)
DataSource로 HikariDataSource를 지정해주고, DB와 마이바티스 연동을 위한 SqlSessionFactory를 설정해준다. SqlSessionFactory는 말 그대로 SqlSession 객체를 만드는데, 이 SqlSession 객체가 DB서버로 SQL문을 날려주는 역할을 한다. SqlSessionFactory는 꼭! DataSource를 설정해주어야 한다.
+ 추가
자바는 카멜 케이스를 쓰지만, DB는 스네이크 케이스를 사용한다.
따라서 카멜 케이스와 스네이크 케이스를 매핑시켜줄 설정이 필요한데, 마이바티스에서는 이러한 설정을 지원한다.
application.properties에 한 줄 추가
'프로젝트 구현 > 리얼 월드' 카테고리의 다른 글
5. 서비스 아키텍처 구성 (0) | 2022.02.24 |
---|---|
4. 아티클 전체 조회 기능 구현 (0) | 2022.02.20 |
2. ER 다이어그램 작성 (0) | 2022.02.20 |
1. 요구 기능 확인 및 엔티티 추출 (0) | 2022.02.20 |
API 스펙 기반 백엔드 구현 연습기(feat.Realworld) (0) | 2022.02.20 |