[새벽세시] 프로젝트 생성 및 환경설정

Hoehenflug·2022년 2월 1일
0
post-thumbnail
post-custom-banner

🕒새벽세시 프로젝트를 진행하기 위해 프로젝트를 생성하고 환경설정을 해보자!


📂 프로젝트 생성

먼저 STS에서 새로운 Spring project를 생성했다. 프로젝트명은 3am-project-be

이번 프로젝트는 (혼자 했던 프로젝트와 다르게) Backend와 Frontend가 명확히 나눠져있다. 그래서 Backend는 3am-project-be, Frontend는 3am-project-fe로 구분되어 깃헙에 올라간다!

프로젝트의 빌드 도구는 maven이다. 프로젝트에 필요한 각종 의존성들과 라이브러리 추가, 라이브러리 버전 명시 등의 프로젝트 설정 정보들은 pom.xml에 작성될 것이다.

🛠 의존성(dependency) 주입

프로젝트를 진행하며 필요한 라이브러리를 사용하기 위해 의존성을 주입해준다. 기본적으로 필요한 의존성은 프로젝트를 생성하며 추가해둔 상태다.

아래는 따로 추가한 라이브러리다. 의존성을 주입하기 위해서는 pom.xml의 <dependencies></dependencies> 태그 안에 추가하면 된다.

📶 JDBC 연결(MySQL DB 연결)

프로젝트의 DB는 MySQL을 사용한다.

1. 먼저 MySQL JDBC Driver를 설치한다.

아래처럼 의존성을 추가해주면 되는데 마찬가지로 프로젝트 생성 시 기본으로 세팅해둔 상태다.

<dependency>
	<groupId>mysql</groupId>
	<artifactId>mysql-connector-java</artifactId>
	<scope>runtime</scope>
</dependency>

<dependency>
	<groupId>org.mybatis.spring.boot</groupId>
	<artifactId>mybatis-spring-boot-starter</artifactId>
	<version>2.2.0</version>
</dependency>

2. application.yml에서 DataSource를 설정한다.

아래에서 DB주소, 포트번호, 스키마이름, mysql계정, 비밀번호 부분만 수정해주면 된다.

spring:   
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://데이터베이스 주소:포트번호/스키마이름?useUnicode=yes&characterEncoding=UTF-8&allowMultiQueries=true&serverTimezone=Asia/Seoul
    username: mysql계정
    password: 비밀번호

🧩 패키지 추가 및 설정

1. src/main/java 아래에 패키지를 설정해둔다.

우선 처음에는 model, controller, service, mapper 패키지만 생성했지만 프로젝트를 진행하며 필요한 패키지가 더 생겨 추가한 상태다.

  • model : VO(Value Object) 패키지입니다. 데이터 타입을 저장합니다.
  • controller : 사용자의 요청이 진입해 요청에 따라 어떤 처리를 해줄지 결정해주며, 처리가 끝나면 view로 응답을 보내주는 패키지입니다.
  • service : controller로부터 받은 처리 로직을 실질적으로 수행하는 Service 패키지 입니다. mapper와 controller 사이를 연결해줍니다.
  • mapper : DAO(Data Access Object) 역할을 하는 패키지입니다. 데이터베이스 접속하는 역할을 합니다.

2. mapper XML 저장 위치 폴더 생성

src/main/resources 위치에 mapper 패키지명을 폴더 경로로 만들어줍니다. 해당 경로에 mapper로 사용할 xml파일을 저장합니다.


💪🏻 기록

프로젝트를 생성하고 환경설정을 하는데에 생각보다 많은 시간이 소요되고, 또 생각보다 어려웠다. 시간이 지나 블로그에 적으려고 하니 환경설정과 관련해 빠뜨린 부분이 분명 있는 것 같아 다시 기억을 떠올려보고 생각나는대로 추가해야겠다.

post-custom-banner

0개의 댓글