본문 바로가기

개인 Project/01. 꽃 관련 웹사이트 제작기

01. 새로 시작하는 것이 오히려 좋을 수 있다.

Spring MVC와 JPA 일부분을 수강한 후에 활용해서 프로젝트를 진행하고 싶었다.

재미있는 주제가 떠오르긴 했지만, 그 전에 처참한 이전 프로젝트를 볼 때 마다 다시 짜고 싶다는 생각이 항상 들었었는데, 이번 기회에 바꿔보려고 한다.

 

2년 전에 웹 프로그래밍 과목을 수강하면서 '꽃 추천 웹 사이트 제작'이라는 팀 프로젝트를 진행했었다.

해당 시즌에 다른 팀 프로젝트도 여럿 겹치면서 미루고 미루다 4일 정도 걸려서 만든 프로젝트였는데, 볼 때 마다 너무  쪽팔리다는 생각이 들었다.

 

나름 첫번째 웹 사이트 프로젝트였고, 처음 웹에 흥미를 느꼈던 것 같다. 당시에는 추천시스템에 꽃혀서 머신러닝 관련 교육을 수강하러 가기도 했지만, 결국 교육하면서 진행한 프로젝트에서도 웹을 맡았던 것 보면 그 때부터 웹에 흥미를 느낀 것 같다. 

 

여튼, 기존의 프로젝트의 경우 JSP + oracle DB를 활용하여 진행하였다. 따로 web에 올리지는 않았고 local에서만 돌리는 것을 확인하고 끝냈었는데 말도 안되는 코드들을 뒤집어 엎고 새롭게 spring으로 바꿔보려고 한다.

 

Spring에 내장 Tomcat이 있기 때문에 굳이 tomcat을 깔지 않고 Spring boot에서 JSP를 활용할 수 있도록 설정하고 돌렸을 때 마주친 하드코딩된 path들과 말도 안되는 디렉토리 구조들을 보고 절망했ㄷ...

 

Spring boot doc 

JSP를 사용하는 웹 어플리케이션의 경우 war 파일을 생성하여 직접 tomcat과 같은 서버에 올려 사용했다.

실행가능한 jar파일의 경우 jsp를 support하지 않고, Spring의 내장 WAS인 Undertow는 JSP를 지원하지 않는다고 한다.

 

이를 해결하기 위해 spring 프로젝트 생성시 jar가 아닌 war로 설치를 하고 따로 war를 위한 디렉토리 구조를 설정해 주어야 한다.

war 디렉토리 구조

src/main/webapp/WEB-INF 에 정적인 파일들을 저장해둔다.

기존의 spring의 경우 default path 값으로 resources를 두고 있고 이러한 구조를 권장하지는 않는다.

src/main/webapp은 권장하지 않음.

하지만 임시로 JSP를 돌리면서 천천히 수정해나가기 위해서 처음에는 JSP를 돌리기 위해 정해둔다.

이후 JSP시 사용시 필요한 jstl과 jsp 엔진역할을 위한 tomcat-embed-jasper을 라이브러리에 추가해준다.

이후에 더 편리함을 위해서 application 설정에서 mvc view의 prefix와 suffix를 변경해줄 수 있지만, 오래 쓰지 않을 예정이기 때문에 넘어간다.

mvc에 관련된 내용은 공부한 내용을 복습하면서 기록할 예정이다.

 

또한 이 프로젝트를 잡아 두고서, Spring을 공부하면서 계속해서 적용하면서 가지고 놀 사이드 프로젝트이자 toy project로 생각하고 있어서 우선 지금 계획은 다음과 같다.

1. 현재 프로젝트의 규모가 크지 않기 때문에 빠르게 파악하여 기존 설계대로 먼저 작성하는데 초점을 둔다.

2. DB는 h2 메모리 db를 먼저 사용하고 이후에 교체하도록 한다.

3. JSP 템플릿은 Spring에서 권장하고 있는 thymeleaf를 사용한다.

 

빠르게 Spring으로 전환하는데 목적을 두고 진행하는 것이 목표이다.