Spring/Spring boot

프로젝트 과정에서 알고 있는 내용 정리(1. spring boot 생성하기.)

Dev dreamer 2022. 12. 7. 17:10

프로젝트를 진행하는 과정에서 기능구현만 열심히하고 정작 어떻게 작동하는지에 대한 이해가 부족한거같아서

 

간단하게 아는 부분을 중간정리 해보고자 한다.

 

 

 

일단 가장 처음에 Spring boot 프로젝트 생성하는 것에 대해 알아보자.

 

https://start.spring.io/

 

위의 주소에 들어가면 다음과 같은 화면을 만들 수 있다.

 

1.maven gradle

 

처음 학원에서 프로젝트는 maven 을 통해서 진행했다.

 

일단 maven greadle 중에서 gradle 이 더 성능적으로 우수하다?! 정도로 이해하고 있다.

 

특히 AWS(아마존 웹서비스) 등에 서버를 올릴 때 Gradle 을 이용하면 maven 보다 훨씬 수월하게 올릴수 있다고 한다.

 

그래서 maven 으로 한참 프로젝트를 만들던 도중 gradle로 바꾸는 과정을 거쳐야 했다.

 

maven 이든 gradle 이든 프로젝트를 하기 위해서 급하게 사용하긴 해서 아직 익숙하지 않지만.

 

gradle 로 옮길때 백엔드와 프론트 엔드를 한공간에 넣고

 

build를 한 후에 실행하는 과정으로 둘을 함께 실행할 수 있었다.

 

또 프론트와 백엔드를 한공간에 모아놓고 하다보니 포트번호가 백엔드에서 지정한 포트번호로 온전히 이용이 가능해서

 

@CrossOrigin 을 통한 포트번호를 연결해주는 어노테이션을 빼도 됐다.

 

 

2. 프로젝트를 만들때 Spring Boot 버전이 굉장히 중요하다!

(maven과 버전 일치시키기!)

 

처음에 강사님이 하라는 데로 아무생각없이 2.76 으로 만들었었다.

그리고 한동안 까맣게 잊고 프로젝트 만드는데 집중했었다.

 

그러다가 이메일 인증을 구현하기 위해 관련 dependecy 를 받고 있었는데

내가 봤던 블로그에서는 dependency 를 gradle 로 알려줬었다( 당시에는 maven 으로 작업중이었다.)

 

그래서 알려준 gradle 을 복사해서 뒤에 maven 만 붙여서 google에 치니까 관련 maven 을 다운받을 수 있었다.

 

그때 아무생각없이 맨위에 있는 가장 최신 버전을 다운받았다.

 

그런데 계속 오류가 났다.. 도대체 이유가 뭐지 뭐지? 정말 한동안 모르는 오류의 수많은 영어들과 씨름하면서 계속 원인을 찾으려고 애썼다. 그러다가 이것저것 모든걸 건드려보다가 우연히 spring boot 의 버전이 생각났다.

 

그리고 dependency를 받을때 여러 버전이 있다는게 생각이 났다(사실 확신은 없었다.)

dependency 를 다시 다운받고 실행하니까 이메일인증이 가능했다.

 

3. jar / war 중에 jar 를 사용 해준다!

 

강사님께 정말 감사한것중에 하나는 현업에서 오래근무하셨고 또 현업에서 학원에 오신지 얼마 안되셔서 교육에 집착하는 것이 아닌 정말 학생들이 현업에 나갔을때 어떤 기술이 필요할지 생각해주시고 학생들을 설득해서 기존의 커리큘럼이 아닌 현업에서 가장 많이 쓰는 기술들을 선정해서 알려주셨다.

 

덕분에 React 와 Jpa를 통한 프로젝트를 진행 할 수 있었다.

 

그리고 Jquery 나 jsp 배우고 사용하는 과정을 생략했다.

 

이 얘기를 왜 jar / war 얘기하는데 꺼내냐면

 

위에 jsp 가 war 와 연관되어 있기 때문이다.

 

Thymeleaf 도 1주일 정도 배웠는데 그때 강사님이 말씀해주신게 spring 에서 jsp 가 아닌 thymeleaf 를 밀어주는 이유중에 큰 이유가 war 가 아닌 jar 를 이용하기 위해서라고 한다.

 

백엔드에서 가장 핫한 spring 에서 jar 를 이용을 권장한다는데 이미 말 끝난거 아닐까? 

 

 

 

Spring boot 생성에 대해서 나의 지식은 여기까지~