728x90
반응형
대학 과정 속에서 자바를 처음 접하였고, 흥미가 생겨 더욱 깊이 있게 배우고 싶다는 생각이 들었다.
이제 막 졸업을 앞두고 있는데 아직 배워야 할 지식이 차고 넘친다고 생각을 하였고, 그 지식 중에서 가장 먼저 Spring을 배워보려고 한다.
보다 퀄리티 있는 Spring 강의를 찾고 있었는데 검색을 해보니 많은 사람들이 인프런에 김영한 강사님을 추천해주어서 나도 빠르게 수강신청하였다.
전반적인 Spring에 대한 설명을 마친 후 바로 Project를 생성하였다.
빌드 관리 도구로 강사님은 Maven과 Graddle이 있다고 설명을 해주셨는데 더욱 깊이 알고 싶다는 생각에 전반적인 내용을 정리하는 시간을 가져본다.
빌드 관리 도구
소스코드에서 어플리케이션 생성을 하면서 여러가지 여부 라이브러리를 사용하는데, 이 빌드 관리 도구는 사용자가 직접 관리할 필요 없이 필요한 라이브러리들을 자동으로 관리한다.
초기의 Java 빌드 도구로는 Apach Ant를 많이 사용했지만 스크립트 작성도 많고, 라이브러리 의존관리가 되지 않는다는 불편함으로
최근에는 Maven과 Graddle이 많이 사용되고 있다.
수행하는 작업
- 종속성 다운로드
- 소스코드를 바이너리코드로 컴파일
- 바이너리 코드를 패키징
- 테스트 실행
- 프로덕션 시스템에 배포
사용이유
대규모 프로젝트에선 빌드프로세스를 수동으로 호출이 실용적이지 않다. 무엇을 빌드할지, 어떤 순서로 할지, 어떤 의존성이 있는지 모두 추적하기 쉽지 않기 때문이다. 빌드도구를 사용하면 이를 일관되게 할 수 있다.
메이븐(Maven)
자바 전용 프로젝트 Lifecycle 관리 목적 빌드 도구이며 Apache Ant 불편함을 해결코자 만들어졌으며, 스프링에서 사용된다.
특징
- Maven은 필요한 라이브러리를 특정 문서(pom.xml)에 정의해 놓으면 내가 사용할 라이브러리 뿐만 아니라 해당 라이브러리가 작동하는데에 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해서 자동으로 다운받아 준다.
- Maven은 중앙 저장소를 통한 자동 의존성 관리를 중앙 저장소(아파치재단에서 운영 관리)는 라이브러리를 공유하는 파일 서버라고 볼 수 있고, 메이븐은 자기 회사만의 중앙 저장소를 구축할수도 있다.
- 간단한 설정을 통한 배포 관리가 가능 하다.
그래들(Graddle)
그래들(Graddle)은 그루비(Groovy)를 기반으로 한 빌드 도구이다.
Ant 와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스로 공개된 빌드 도구이다.
특징
- 의존성 관리를 위한 다양한 방법을 제공하고 빌드 스크립트를 XML 언어가 아닌 JVM에서 동작하는 스크립트 언어 ‘그루비’ 기반의 DSL(Domain Specific Language)를 사용한다.
- 그루비(Groovy)는 자바 문법과 유사하여 자바 개발자가 쉽게 익힐 수 있는 장점이 있으며 Gradle Wrapper를 이용하면 Gradle이 설치되지 않은 시스템에서도 프로젝트를 빌드할 수 있다.
- 메이븐(Maven)의 pom.xml을 Gradle 용으로 변환할 수도 있으며 Maven의 중앙 저장소도 지원하기 때문에 라이브러리를 모두 그대로 가져다 사용할 수 있다.
728x90
'Spring' 카테고리의 다른 글
스프링 vs 스프링 부트 (1) | 2023.06.07 |
---|---|
application.properties과 application.yml 차이 (1) | 2023.02.06 |