Unity 하면서 깃허브에 커밋하는 경험이 너무 재미있었고, 깃이랑 훨씬 더 연동이 잘 되는 스프링을 배우고 싶었다.
깃과 연동하는 과정도 더 잘 이해할 겸, 서버를 배워보고 싶어서 springboot를 이용한 웹 배포 프젝을 시작했다. 같이 프젝하는 팀원분들도 다 현직 서버개발자 분들이라서 하드 스킬은 물론 소프트 스킬까지 배울 수 있는 기회였다. 사실 프젝이 다 끝난 상태이고 그 때 당시 겪었던 버그나, 버전 차이 문제을 해결해가는 글을 써볼 예정이다! 이후에 스프링 부트를 사용할 때 내 기술 회고를 보면 도움이 많이 될 것 같다.
그리고 서버 특성상, 이클립스나 vscode같은 개발 도구가 아닌 인텔리제이가 스트링 부트 개발에 더 친숙하기 때문이다. git이랑 연동 잘 되는게 너무 편할 것 같다!
(1) 스프링 부트 개발에 인텔리제이를 고른 이유
- 자바 개발에 대한 모든 기능 지원
- Maven, Gradle과 같은 빌드 도구 기능 지원
- 깃& 깃허브와 같은 VCS기능 지원
- 스프링 부트의 경우 톰캣과 같은 별도의 외장 서버 없이 실행 가능
(2) 인텔리제이 설치하기
학교에서 Eclipse 개발 툴을 이용해서 자바를 배우고 있는데 인텔리제이를 이번에 처음으로 써봐서 너무 어색했다.
개발 툴도 너무 많고 각각 너무 다르다. 심지어 이클립스는 항상 light로 쓰는데 인텔리제이는 dark로 써서 괜히 더 어색한,,기분..
아무튼
인텔리제이를 설치하기 전에 젯브레인의 Toolbox-app을 다운받았다.
인텔리제이 버전관리도 쉽게 하고 앞으로 코틀린도 배울 거라서 다운 받았다.
따끈따끈 한 뉴 버전 인텔리제이를 다운받고
힙 메모리를 디폴드값인 750 MB으로 했다. 사실 내 pc 메모리는 16G라서 ~4096까지 가능한데
이런 메모리를 쓰면서 개발할 일은 없을 것 같기 때문에,,
(3) 프로젝트 생성하기
IntelliJ IDEA Coummunity Edition을 다운 받았다.
새 프로젝트를 만들기 위해 인텔리제이를 열면
이 화면을 볼 수 있다.
<2022.5.19일 기준> 또 업데이트가 되어서 배우는 거랑 시작 화면이 달라서 당황했다.
기존과 다르게 [새 프로젝트]를 눌러서 프로젝트를 생성한다
이름늘 적고 저장 위치를 정하도 자바로 개발할 것이기 때문에 언어는 java로 설정했다.
빌드 시스템은 그레이들 gradle로 골랐는데 밑에 나오겠지만 mavenCentral도 사용할 수 있도록 bulid.gradle을 설정했다.
(4) 그레이들 프로젝트를 스프링 부트 프로젝트로 변경하기
프로젝트 - src - bulid.gradle 파일의 코드를 수정했다.
벌써부터 난관이 있었는데..
원래 jcenter()을 이용할 예정이였는데
💡자꾸 이런식으로 오류가 발생했다. 오류를 해석해보니까 업데이트 때문에 2022.2.1일 이후로는 빌드에서 jcenter의 아티팩트를 해결할 수 없다고고,,
그래서 jcenter()을 두 개의 repositories에서 삭제하고 그냥 mavenCentral()만 적었다.
(나중에 문제 될지도 모르겠지만 나중에 오류나면 이건가 하고 확인하게 여기다 적어두기..)
그리고 확인차로 오른쪽 창에 gradle을 클릭해보면
이렇게 main에서는 spring-boot-start-web이, test에서는 spring-boot-start-web, spring-boot-start-test 의존성이 잘 받아졌던 걸 알 수 있다.
이 과정을 마치면 기본적인 스트링 부트 개발환경을 구축한 것이다.
(5) 인텔리제이에서 깃허브 사용하기
Action 창을 열어서 [GItHub에 프로젝트 공유]를 선택한다
name에는 만들고 싶은 레포지터리 이름을 입력하고
Remote는 origin으로 설정해준다
첫 번째 commit을 위한 창이 뜨는데, 여기서 .idea 디렉토리는 체크하지 않고 커밋한다..!
.idae 디렉토리는 프로젝트 실행시 자동으로 생성되는 파일들이기 때문에 깃허브에 올리지 않아도 되는 파일들이기 때문이다.
커밋 대상에서 제외했던 .idea 폴더를 앞으로의 모든 커밋 대상에서 제외하는 과정이 필요하다
인텔리제이에서는 .gitignore 파일에 대한 기본적인 지원이 없어서 .ignore 플러그인에서 지원하는 기능을 써야한다
.ignore 플러그인에서 지원하는 기능은
- 파일 위치 자동완성
- ignore 처리 여부 확인
- 다양한 ignore 파일 지원 등등이 있다.
Ctrl + Shift + A 눌러서 Action창을 연 다음에 plugins - Plugins Action을 선택한다.
플러그인 설치 팝업창을 열어서 marketplace에 들어간다.
marketplace에서 .ignore 플러그인을 검색하고 설치한다.
💡꼭! 여기서 인텔리제이를 재시작해줘야 설치된 플러그인이 적용된다!
생성목록 아래에 .ignore file - gitignore file(Git)을 선택해서 .gitignore 파일을 생성한다.
[Generator]을 눌러 .gitignore 파일을 생성한다.
인텔리제이에서 자동으로 생성되는 파일들을 모두 ignore 처리 하고 싶기 때문에
### IntelliJ IDEA ###
.gradle
.idea
를 추가해준다.
💡근데..! 여기서도 두개를 다 쓰니까 같은 패턴의 .gradle이 있다고 오류가 발생했다. 그냥 경고창이라서 무시하고 계속 했는데, 나중에는 커밋이 제대로 안 되길래 .gradle을 삭제하고 .idea만 사용했는데 잘 작동했다. 이게 왜 되는지 모르겠는데 ,, 흠,, 일단은 .gradle을 삭제하고 사용하고 있다.
commit 단축키인 Ctrl + K 을 눌러서 .gitignore 파일을 선택하고 메세지를 작성하고 commit을 누르면 커밋을 할 수 있다.
깃허브에 push하는 단축키인 Ctrl + Shift + K 을 눌러서 나오는 창에 push를 누르면 푸시를 할 수 있다.
내 깃허브 계정에 들어가 확인해보면
성공적으로 push된 것을 볼 수 있다.
이러한 과정으로 개발하는 과정에서 커밋과 푸시가 필요하면 인텔리제이를 활용해 바로 진행하고 개발을 할 수 있다.