스프링부트 블로그 만들기 – 1강 개발 환경설정
개발 환경설정
인코딩 (UTF-8)
윈도우 환경 설정 경로 : window – preference
맥 환경설정 경로 : SpringToolSuite4 – preference (단축키 : command + , )
- preference 검색 창에 ‘enc’를 검색한다.
- workspace, CSS Files, HTML Files, JSP Files에서 UTF-8 설정을 해준다.

새 프로젝트 생성
1.Spring Starter Project 로 새 프로젝트를 생성한다.(프로젝트명 : blogapp)

maven : 라이브러리 저장소의 한 종류
jar
– 패키지(클래스의 모임)의 모임.
– 라이브러리 : main 메서드가 있다. | 실행파일 : main 메서드가 없다.
2.프로젝트에 사용할 라이브러리를 선택한다.


설치할 내부 라이브러리
Spring Boot DevTools : 코드 수정 후 프로젝트 저장시에 서버를 재실행한다.
Spring Web : URL로 작업되는 프로젝트를 URI로 바꿔준다. MVC 패턴이 만들어진다. 스프링에서는 Controller가 Dispatcher Servlet 제약권을 가진다(이해를 위한 참고 자료)
Lombok : 생성자, getter & Setter를 만들어준다. Lombok이 JVM 실행시에 인식되는데 생성자, getter & Setter가 컴파일 시점에는 존재하지 않아 툴이 인식을 하지 못한다. 그래서 Lombok은 플러그인도 설치해야지 컴파일 시에 인식이 된다.
MariaDB Driver : Java와 DBMS가 통신할 때의 프로토콜을 정의해준다.
Spring Data JPA : 스프링부트에서 사용하지 못하는 JSP를 사용할 수 있게 한다. CRUD를 편하게 사용할 수 있게 한다. 자바에서 NTT를 만들어서 자동으로 테이블 생성하기 위한 Java Persistence API를 가지고 있다.
Validation : 유효성 검사를 위한 라이브러리
외부 라이브러리 준비
Maven 저장소에서 라이브러리를 가져와 pom.xml 파일의 <dependencies> 태그 안에 넣어준다.
<dependencies> <!-- 추가 라이브러리 시작 --> <!-- https://mvnrepository.com/artifact/org.apache.tomcat/tomcat-jasper --> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-jasper</artifactId> <version>9.0.52</version> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/jstl --> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!-- 추가 라이브러리 끝 --> </dependencies>
사용할 외부 라이브러리
Jasper
톰캣의 JSP 엔진이다. 재스퍼는 JSP파일을 파싱(src/main/webapp)하여 서블릿(JavaEE) 코드로 컴파일한다. JSP 파일의 변경을 감지하여 리컴파일 작업도 수행한다.JSTL
자바서버 페이지 표준 태그 라이브러리(JavaServer Pages Standard Tag Library)
xml
통신에서 사용하는 공용어 (그림으로 이해하기)

src/main/webapp/WEB-INF/views
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> <h1>인덱스 페이지입니다.</h1> </body> </html>
2.application.yml파일 안에서 DataSource 설정을 해준다.
server: port: 8080 spring: mvc: view: prefix: /WEB-INF/views/ suffix: .jsp datasource: driver-class-name: org.mariadb.jdbc.Driver username: cos password: cos1234 url: jdbc:mariadb://localhost:3306/cosdb?serverTimezone=Asia/Seoul jpa: hibernate: ddl-auto: none show-sql: true
Data Source
Database Connection Pooling 기술(이해를 위한 참고 자료)
톰캣, 데이터베이스에서도 사용하는 기술. 일을 효율적으로 할 수 있다.야모리(YAML)
.yml 확장자를 가진 XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 ‘사람이 쉽게 읽을 수 있는’ 데이터 직렬화 양식이다. 현재 표준화되어 있는 .json 보다 경량이지만 공백 한칸, 두칸의 차이마져 지켜야하는 엄격한 문법을 사용하기 때문에 자동완성 기능을 사용하는 것을 추천한다.View Resolver 설정
prefix : 직역하면 접두사라는 의미로 파일 경로의 앞부분을 미리 잡아주는 역할을 한다.
suffix : 직역하면 접미사라는 의미로 파일 경로의 마지막 부분을 미리 잡아주는 역할을 한다.
서버가 port already used일 경우
원인
- jsp에서 사용했던 Tomcat이 실행되이 있을 때
해결방법 : 사용 중인 포트 죽이기
맥에서 현재 열려있는 포트 찾기 : sudo lsof -PiTCP -sTCP:LISTEN
맥에서 특정 포트 찾기 : sudo lsof -i :포트번호
맥에서 특정 포트 죽이기 : sudo kill -9 PID번호
데이터 베이스 참고 게시글

