본문 바로가기
Projects/스프링부트 블로그 프로젝트

[Spring Boot]스프링부트 블로그 만들기 - 초기 세팅

by Hoseok 2023. 2. 15.
728x90
반응형

스프링부트 블로그 만들기는

mvc패턴에서 view를 제외한 model과 controller 부분만 포스팅할 예정이니,

view 구현을 원하시는 분들은 프론트엔드 기초 강의를 들으시기를 권합니다.

 

스프링부트 블로그 만들기 프로젝트의 1차 목표는

 

회원가입, 로그인, 글 쓰기, 글 보기, 글 수정, 글 삭제까지 구현하겠습니다.

 

IDE는 VSCode를 사용하겠습니다. (툴은 Intelli j나 본인이 원하는 툴을 사용해도 무방합니다)

 

 

1. VSCode 프로젝트 만들기

 

2. 2.7.8 버전을 사용합니다.

 

3. 언어는 java를 선택.

 

4. domain 주소를 적어줍니다. 없으면 아무거나 적어주셔도 무방합니다.

 

5. 프로젝트 제목을 만들어주세요. ex. blog

 

6. jar로 설정합시다.

 

7. 자바는 11 버전을 사용합니다.

 

8. 가장 중요한 dependency를 선택해줍니다. 

 

dependency 간단한 설명

  • devtools : 자동으로 컴파일, 서버 리로드
  • lombok : annotation을 지원
  • Spring web : 웹을 빌드하기 위해 도와주는 라이브러리
  • h2 database : 서버가 리로드될 때마다 데이터를 비우므로, 테스트하기 좋은 db
  • MyBatis : db와 repository를 mapping해주는 라이브러리

 

 

그 다음 프로젝트를 만들기 원하는 폴더를 설정하고 프로젝트를 build해줍니다.

 

이때 프로젝트가 라이브러리를 다운받는 도중에 다른 통신이 일어나면

빌드가 잘 안될 수도 있으니, 빌드가 되는 동안에는 아무것도 안 만지시는게 좋습니다.

 

 

build.gradle 설정

plugins {
	id 'java'
	id 'org.springframework.boot' version '2.7.8'
	id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}

group = 'shop.mtcoding'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

configurations {
	compileOnly {
		extendsFrom annotationProcessor
	}
}

repositories {
	mavenCentral()
}

dependencies {
	implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
	implementation 'javax.servlet:jstl'
	implementation 'org.springframework.boot:spring-boot-starter-web'
	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.3.0'
	compileOnly 'org.projectlombok:lombok'
	developmentOnly 'org.springframework.boot:spring-boot-devtools'
	runtimeOnly 'com.h2database:h2'
	annotationProcessor 'org.projectlombok:lombok'
	testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
	useJUnitPlatform()
}

 

implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
implementation 'javax.servlet:jstl'

 

jasper와 jstl을 추가해주세요.

 

라이브러리 설명

  • jasper는 스프링에서 jsp를 인식하게 해주고, webapp을 웹서버로 만들어주는 라이브러리
  • jstl은 jsp 문법을 지원하는 라이브러리

 

properties 파일을 yml로 바꿔줍니다.

 

이제 기본 설정들을 해줍니다.

 

application.yml 설정

server:
  port: 8080
  servlet:
    encoding:
      charset: UTF-8
      force: true

spring:
  mvc:
    view:
      prefix: /WEB-INF/view/
      suffix: .jsp
  datasource:
    url: jdbc:h2:mem:test;MODE=MySQL
    driver-class-name: org.h2.Driver
    username: sa
    password:
  sql:
    init:
      schema-locations:
        - classpath:db/table.sql
      data-locations:
        - classpath:db/data.sql
  h2:
    console:
      enabled: true
  output:
    ansi:
      enabled: always

mybatis:
  mapper-locations:
    - classpath:mapper/**.xml
  configuration:
    map-underscore-to-camel-case: true

 

table.sql 설정

create table user_tb(
    id int auto_increment primary key,
    username varchar not null unique,
    password varchar not null,
    email varchar not null,
    created_at timestamp not null
);

 

data.sql 설정

insert into user_tb(username, password, email, created_at) values('abcd', '1234', 'abcd@naver.com', now());

commit;

 

user.xml 설정

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="abc.abc.blog.model.UserRepository">
    <select id="findAll" resultType="abc.abc.blog.model.User">
        select * from user_tb
    </select>
</mapper>

 

user.xml 파일은 매핑이 안됐을 경우, 서버에 오류가 날 수도 있으니, 저장 안하셔도 좋습니다.

 

모든 설정이 끝났습니다.

 

다음 편에는 회원가입을 해보겠습니다.

728x90
반응형