[혼자 구현하는 웹 서비스] 1장 인텔리제이로 스프링 부트 시작하기

2020. 7. 1. 18:03책/스프링 부트와 AWS로 혼자 구현하는 웹 서비스

1장 인텔리제이로 스프링 부트 시작

'스프링 부트 시작하기'라는 교재를 통해 환경설정부터 배포까지의 과정을 한번 겪었던 나는, 

당시에 버전문제 때문에 꽤 많은 시간을 잡아먹었다.

이 책은 친구의 추천으로 보기 시작하였는데 버전이 비교적 최신이어서

구매하게 되었다. 이 책의 마지막까지 끝내고 나면 무중단 배포가 이루어진 하나의 애플리케이션을 

배포할 수 있을것으로 기대하고 있다. 더불어 환경설정부터 전 과정을 다시한번 반복하여 연습한다는 것에 

의의를 두고 정리를 시작하게 되었다.

 

1. 인텔리제이

자바 웹 개발에 있어 대표적인 개발 도구는 이클립스이다. 하지만 이클립스에 비해 인텔리제이가 갖는 여러 강점이 있다고 한다.

  • 강력한 추천기능
  • 훨씬 더 다양한 리팩토링과 디버깅 기능
  • 이클립스의 깃에비해 훨씬 높은 자유도
  • 프로젝트 시작할 때 인덱싱을 하여 파일을ㄹ 비롯한 자원들에 대한 빠른 검색 속도
  • HTML과 CSS, JS, XML에 대한 강력한 기능 지원
  • 자바, 스프링 부트 버전업에 맞춘 빠른 업데이트

실제로 많은 IT 서비스 회사에서 인텔리제이를 공식 IDE로 사용하고 있다고 한다.

 

2. 인텔리제이로 프로젝트 생성

나는 학생 1년 무료 쿠폰을 통해 얼티메이트 버전을 가지고 있었지만, 책에서 커뮤니티 버전을 사용했기 때문에 그대로 따라하기로 하여 진행하였다. 또한 스프링 이니셜라이저를 통해 프로젝트를 생성할 수 있었지만, 이렇게 진행할 경우 build.gradle의 코드가 어떠한 역할을 하는지, 이니셜라이저 외에 추가로 의존성 추가가 필요하면 어떻게 해야 할지등을 모를 수 있기 때문에 그냥 밑바닥에서 코드를 작성해 나가기로 하였다. 

 

 

gradle로 프로젝트를 생성한 후, 가장 먼저 스프링부트 프로젝트로 만들기 위해 build.gradle을 조작하였다. 

위와 같은 코드를 먼저 추가하였는데, ext는 전역변수를 선언하는 역할이다. 위의 코드는 spring-boot-gradle-plugin에서 2.1.9.RELEASE에 해당하는 버전을 의존성으로 받는다는 의미이다. 

 

다음은 플러그인 설정인데 아래의 네가지 플러그인은 필수적으로 항상 추가해주면 된다고 한다.

특히, io.spring.dependency-management플러그인은 스프링 부트의 의존성들을 관리해 주는 중요한 역할을 한다.

이후, dependencies에 spring-boot-starter-web 의존성을 추가하고 프로젝트를 시작한다.

이때 주의할 점은 버전을 명시하지 않아야만 맨위에 작성했던 springBootVersion의 버전을 따라가게 된다. 이렇게 관리해야 각 라이브러리들의 버전 관리가 한 곳에 집중되고, 버전 충돌ㄹ 문제도 해결되어 편하게 개발을 진행할 수 있게 된다. 

 

3. 깃허브 연동

인텔리 제이에서 command+shift+A 를통해 원하는 서비스를 검색할 수 있는데, share project on github서비스를 이용하여 프로젝트와 깃허브를 쉽게 연동할 수 있다. 이때, 불필요한 업데이트를 막기위해 .ignore 플러그인을 사용하였는데, 여기부터 얼티메이트 버전의 위대함을 느껴 바로 얼티메이트 버전으로 프로젝트를 재생성하였다... (그 용도는 따로 공부를 하니까 프로젝트를 진행하는 것 만큼은 편하게 하기위해서..)

얼티메이트 버전에서는 .gitignore파일이 이미 존재하고 위와 같이 기본적으로 ignore할 것들이 미리 셋팅 되어있다.