<항해99>Maven vs Gradle(Spring 공부정리)

박건영(Parkgunyoung)·2022년 5월 20일
0

til

목록 보기
6/17

Rest Controller 란?

Rest - 서버의 응답이 JASON 형식임을 나타냄.
*HTML,CSS등을 주고받을 때는 Rest를 붙이지 않음

Controller-서버가 요청하면 받고 돌려주는 자동 응답기 같은 것이다.

*클라이언트의 요청(Request)를 전달받는 코드를 Controller라고 부름

JSON만을 돌려주는 것은 RestController라고 부른다!


Gradle 과 Maven 이란??

두 가지 모두 빌드 도구로써 Spring에서 프로젝트 생성시 둘 중 하나를 선택해야 한다!
Maven의 경우 스프링 프로젝트에서 pom.xl이란 이름으로 사용이되고,
Gradle은 스프링부트, 안드로이드에서 사용이된다고 한다.

그럼 두 방식이 어떤 차이가 있는지 알아보기에 앞서 빌드도구 가 무엇인지 알아보자.


빌드도구란?

프로젝트에서 작성한 java코드와 프로젝트 내에 필요한 각종 xml, properties. jar 파일 들을 JVM 이나 WAS가 인식할 수 있도록 패키징 해주는 빌드과정**을 빌드자동화도구 라고 이해하면 될 것 같다.

두 가지 모두 프로젝트 생성, 테스트 빌드, 배포 등의 작업을 위한 전용 프로그램이다.
프로젝트를 진행하면서 각종 외부 라이브러리들을 다운로드 받아야 할 상황이 많은데 이런 라이브러리들을 하나씩 다운받지 않고 빌드도구 설정파일에 필요한 라이브러리 종류와 버전들, 종속성 정보 등을 명시하면 자동으로 설정파일을 통해 자동으로 다운로드 해주고 관리를 해주는 도구이다.


차이점

Maven


pom.xml을 이용한 정형화되어진 빌드 시스템으로 다양한 라이브러리들을 관리하고 네트워크를 통해 다운을 받아준다.

Maven은 Apache Ant라는 빌드도구의 대안으로 만들어졌다. Maven의 방식은 외부저장소에서 필요한 라이브러리와 플러그인을 다운하고, 로컬시스템의 캐시에 모두 저장한다.

<위는 메이븐의 코드이다>

Maven의 특징은 그 라이브러리와 연관되어진 라이브러리들까지 거미줄처럼 모두 연동되어져 관리가 된다. 즉, 네트워크를 통해 연관된 라이브러리까지 같이 업데이트를 해주기에 편리하다.


Gradle


Ant와 Maven의 장점을 모아 개발되어 2012년에 출시된 Groovy를 이용한 빌드 자동화 시스템이다. Android 빌드 도구로 채택이 되어졌으며 JAVA,C/C++,Phython 등의 여러가지 언어를 지원하고 빌드 스크립트를 통해 사용할 어플리케이션 버전, 라이브러리들을 설정할 수 있다. Gradle은 큰 규모로 예상되어지는 multi-projct 빌드를 도울 수 있게 디자인되어졌다.

<위는 Gradle을 이용한 코드>

Maven과 달리 Groovy를 사용하기 때문에 동적인 빌드는 Groovy스크립트로 플러그인을 호출하거나 직접 변수선언, if, for 등의 로직이 구현 가능해 코드를 간결하게 구성할 수 있다. Gradle은 프로젝트의 어느부분이 업데이트 되어졌는지 알기 때문에, 빌드에 점진적으로 추가 가능하고 업데이트가 이미 반영된 빌드의 부분은 더이상 재실행 되지 않는다.(이부분으로 인해 빌드 시간이 훨씬 단축 되어진다.


<Groovy란>

JAVA 가상 머신에서 실행되는 스크립트 언어이다. JAVA와 마찬가지로 소스코드를 작성하고 JAVA 가상 머신에서 동작하지만, JAVA와 달리 소스코드를 컴파일 할 필요가 없다. 스크립트 언어이며 소스코드를 그대로 실행시킨다.

특징은 JAVA와 호환되고,JAVA 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다. 문법도 자바와 가까워 JAVA보다 쉽다고 느낄 수 있다고한다. Maven은 XML을 기반으로 작성하여 JAVA 프로그래머인데도 빌드관리를 하려면 다른 언어를 사용해야하지만 Groovy를 기반한 Gradle을 이용하면 JAVA와 거의 비슷한 코드를 작성하여 빌드를 관리할 수 있다!(역시 groovy everywhere는 틀리지 않았어...!)


두 방식의 차이점을 비교하니 Gradle이 좀 더 스크립트의 길이와 가독성 면에서 우세하고 빌드 속도 테스트에서도 Gradle이 우세했다. Gradle은 멀티 프로젝트에 적합하기도 하고 빌드 속도에 있어서는 10배에서 100배까지도 빠르다고한다! 아묻따 Gradle써야겠따! ㅎㅎ

꿀Tip

Maven에서 Gradle로 마이그레이션이 가능하다고 한다!

profile
쓰러지면어때일어나면그만인걸

0개의 댓글