본문 바로가기
개발관련/Spring(BE)

Spring Boot - Java Spring Framework 시작하기

by yjoo_ 2023. 10. 31.

 

 

GitHub - Jym-lab/learn-spring-boot: 스프링부트 공부용 repo

스프링부트 공부용 repo. Contribute to Jym-lab/learn-spring-boot development by creating an account on GitHub.

github.com

 

드디어 미루고 미뤄왔던 Spring을 시작하기로 했다.

 

자바민국에서 스프링을 미뤄왔던 이유는 여러가지 이유가 있는데

1. 생각보다 공부할 내용이 많다

나는 어떤 프레임워크나 언어를 공부할 때 좀 더 여러가지 방면을 공부하는 편이다.

 

간단하게 말해서 입문용 서적에는 나오지 않는 내용들을 찾아서 공부한다.

 

입문용 서적에 나오지 않는 이유는 저자가 일단 아무것도 모르는 사람을 이해시키기 위해서

 

꼭 필요한 내용만 거르고 작성하다보니 자세한 내용들이 조금 생략될 때가 있다.

 

또한 서적에는 최신 기술 동향 같은 것들이 업데이트가 잘 되지 않는다.

 

그런 것들을 꼭 찾아서 공부하곤 한다.

 

이러한 것들을 하나 둘씩 공부하다 보면 디버깅할 때 큰 도움이 되기 때문이다.

 

"이건 이 것 때문에 문제가 생긴 것 같다. 한번 찾아보자" 같은 대응이 가능해진다.

 

꾸준히 하나의 프레임워크를 공부하다보면 자연스레 경험이 쌓여 얻어질 내용들이지만

 

누군가에게 내가 알고있는 것에 대해 정확하게 설명하고 싶다. 라는 마음가짐을 갖고 공부하던게 큰 것 같다.

 

아무튼 그런 관점에서 스프링은 너무나도 내용이 방대하게 느껴졌다.

 

그래서 도저히 공부할 엄두가 안났다.

2. 내가 자바를 안좋아한다.

두번째 이유는 이게 다다.

 

비슷한 C++, C#을 했지만, 안드로이드 스튜디오의 부정적인 경험이 많아서 그런지 정말 하기 싫었다.

 

주력 언어가 C이기도 했기에 (내가 그래서 회사 일은 임베디드를 하고있나...?) 객체지향이 익숙하지도 않았고

 

그래도 결국은 넘어서야 하는 관문임을 알기에 이렇게 시작하게 됐다.

자 이제 본격적으로 시작해보자

1. Intellij 설치하기

인텔리제이를 설치하는 방법은 간단하다.

 

링크를 클릭한 뒤, 스크롤을 좀만 아래로 내리면 IntelliJ IDEA Community Edition을 설치할 수 있다.

이걸 설치하도록 하자. 이정도는 다들 설치 할 수 있겠지? 구태여 설명을 하진 않겠다.

2. JDK 설치하기

인텔리제이로 자바를 실행하기 위해선 JDK가 필요하다. JDK는 통상적으로 11과 17버전을 많이 쓰는 듯하다.

 

인텔리제이에 JDK를 설치하는 것이 다 있으니 잘 확인해보자 Setting에서 설치할 수 있다.

3. Spring Framework 프로젝트 생성하기

Spring Framework 프로젝트 생성은 이 곳에서 할 수 있다.

다음과 같이 세팅해주고, Generate를 해주자.

 

프로젝트가 만들어질텐데 그걸 인텔리제이로 실행하기만 하면 된다.

 

자 이제 스프링을 시작하기 위한 준비가 끝났다.

 

내가 공부하면서 알게 된 내용들을 정리해보면서 진행할 것이다.

 

오늘은 Gradle과 Maven이 무엇인지 개념정도만 이해하고 넘어가도록 한다.

 

프로젝트를 생성할 때 Gradle과 Maven이라는 선택지가 있는데 이건 무엇일까?

 

빌드 도구 (Build Tool)

우리는 일반적으로 프로그래밍 한 소스 코드와 리소스들(jpg, html, properties)등을 묶어서

 

실행 가능한 산출물로 만들어내는 과정을 빌드라고 한다.

 

빌드에는 우리가 처음 프로그래밍을 배울 때 부터 공부한 컴파일 - 링크의 과정이 포함되어 있다.

 

그렇다면 척 봐도 빌드 도구는 빌드를 돕는 것이란 걸 알겠다.

 

빌드 도구는 빌드 과정을 자동화하여 관리하는 역할을 한다.

 

그래서 빌드 관리 도구 또는 빌드 자동화 도구라고도 불린다.

 

개발자가 작성한 스크립트를 패키징 하거나, 테스트 자동 수행, 의존성 자동 주입, 배포까지 수행이 가능하다.

 

1) Maven

Maven은 LifeCycle을 가진 프로젝트 관리 도구다.

빌드 시 소스 코드를 빌드하는 과정을 사이클로 갖고 있으며 개발자가 수정 가능하다는 듯 하다.

또한 pom.xml로 외부 라이브러리 패키지 의존성을 관리한다.

2) Gradle

가장 최근에 나온 자바 빌드 도구로 Groovy문법을 사용한다.

빌드 속도가 최대 100배까지 빨라진다.

xml을 사용하지 않고 Groovy문법을 사용하기 때문에 관리하기가 편하다.

Android의 표준 빌드 시스템으로 채택되어있다.

 

Groovy?

그루비는 JVM에서 실행되는 스크립트 언어다. Java문법과 유사하나 빌드할 필요가 없다는 장점이 있다.

그렇다면 무엇을 선택해야 할까?

사실 고민할 필요가 있나 싶다.

 

프로젝트가 커질 수록 빌드 시간이 늘어난다.

 

또한 대형 프로젝트에선 xml은 태그를 열고 닫는 문법 덕에 꽤 복잡한 구성을 갖고있다.

 

그렇다면 빌드속도가 빠르고, xml이 아닌 groovy를 사용하는 Gradle이 유리하지 않을까?

 

그러니 인텔리제이에서 만약 사용하는 빌드 도구가 Maven이라면 꼭 Gradle로 바꿔 주도록 하자.