Ruff! Ruff!
[Spring Boot] - 스프링부트 프로젝트 시작하기(Maven) 본문
본 게시물은 유튜브 채널 '어라운드 허브 스튜디오'의 스프링 부트 강의를 들으며 작성한 게시물입니다.
https://youtube.com/@around.hub.studio?si=wB1YEVq-ulj1r4Ao
1강
- 인텔리제이로 프로젝트 생성하고 ~ string 선택해서 프로젝트 만들기
- Type
- Maven: 조상격 빌드 툴 → 실무에선 메이븐이 많이 사용됨.
- Gradle: 그루비문법을 가져와서 메이븐과 어느정도 통합시킴
- 그룹: 도메인의 역할
- 아티펙트: 플젝 이름 사용하는 경우가 많음. 소문자로 많이 사용
- sdk: 1.8 선택
- 패키징
- jar: 자바아카이브 → 자바로만 이뤄진 압축판 파일 → 톰캣도 내장해서 실행할 수 있게 만들 것..
- war: 웹 어플리케이션 아카이브 → 웹에 띄우는 압축 파일들/ 자바런타임 → 환경만 세팅 되어 있다면 어디서든 사용 가능 → 웹 관련된 내용. 더 전문화 → 톰캣 등등,, 웹 컨테이너 필요함
- dependencies : 필요한 툴? 같은 거 추가해줌 (나중에 추가도 가능)
- 시큐리티 → 로그인 할 때 뭐 인증같은 거 등등 추가 할 수 있음
- lombok, spring configuration processor, spring web 추가
- 프로젝트 구조
- testproject(최상단)
- src
- main
- java
- 패키지 네임 (그룹과 아티펙트 기준) → com.example.testproject → 3개의 경로로 이뤄진 것 (com/ example/ testproject
- resources
- static
- templates
- application.properties → 프로젝트 하나가 하나의 어플리케이션 단위가 됨 → 그걸 가동하기 위해서 필요한 내용들 (데베 연결 등. → 데베 연결에 필요한 정보들)을 적음 (스프링부트에서 가장 중요한 내용)
- java
- test → 일반적으로 메인 패키지에 나오는 class에 맞게 일대일로 대응하게끔 test class도 만들어줘야함 → 위에 main을 test에서 테스트를 해보는 식 (실무에 적용 전에 테스트용 영역) → 패키지를 만들어서 프로그램을 실행하는데 test가 아니고 main에서 하면 기록에 다 남음. → 따라서 test에서 실행시키면 결과가 나오는 게 아니라 test 성공 이런 식으로 뜸. (진짜 test용. 파일에 있는 거 test하고 싶으면 test에서 실행. 단축키하면 main에 있는 게 test에서도 생성이 됨.)
- java
- com.example.testproject
- java
- main
- pom.xml → 메이븐을 사용할 때 사용되는 pom파일
- src
- dependency: 현재 잡혀있는 dependency 보여줌
- 버전: 1.0.0
- parent : 폼 파일 상단에 다른 폼 파일 설정 잡아주는 거 → 의존성 확인
- testproject(최상단)
2강
<Maven vs Gradle>
- 빌드 관리 도구 (개발에서 중요함 !)
-프로젝트에서 필요한 xml, properties, jar 파일들을 자동으로 인식하여 빌드해주는 도구
-소스코드를 컴파일, 테스트, 정적분석 등을 하여 실행 가능한 앱으로 빌드해줌
-외부 라이브러리를 참조하여 자동으로 다운로드 및 업데이트의 관리해줌
-프로젝트 정보 관리, 테스트 빌드, 배포 등의 작업을 진행해줌 → 빌드 관리 도구를 사용하는 주된 목적
→ Maven, Gradle, Ant는 자바의 대표적인 빌드 도구 - Maven이란?
- 자바의 대표적인 관리 도구였던 ant를 대체하기 위해 개발됨.
- 프로젝트의 외부 라이브러리를 쉽게 참조할 수 있게 pom.xml파일로 명시하여 관리
- 참조한 외부 라이브러리에 연관된 다른 라이브러리도 자동으로 관리됨 → 세세한 것까지 신경 쓸 필요가 없음
- 사용하는 이유
- 기존의 ant는 빌드의 기능만 있음 그외는 다 수동 → 개발자가 다 관리해야댐 → 메이븐은 자동으로 관리해줌 → 편리 + 라이브러리에 변동사항 있으면 자동으로 업데이트 해줌
- 단점: 대규모 형태면 xml형태로 다 관리해줘야해서 위상(단계)가 길어지고 많아지는 단점이 있음.
- ant는 라이프 사이클이 없음. (라이프 사이클: 빌드를 하기 위해서 커멘드를 통해 메이븐의 라이프사이클 단계를 밟아나갈 수 있으나 ant는 개발자가 수동으로 빌드 순서 등을 관리 해줘야함)
- 간단 사용법
- pom.xml 파일을 활용해 빌드 및 관리
- pom.xml의 역할
- 프로젝트 정보 관리
- 해당 플젝에서 사용하는 외부 라이브러리 관리
- 해당 플젝의 빌드 관련 설정
- 메이븐 대표 태그 설명
→ 그룹 아이디+아티펙트 아이디 = 도메인의 역할 (도메인 주소)
→ 아티펙트 아이디 : 프로그램의 정체성을 나타내는 키워드 등을 넣어주는 게 일반적. → 솔루션마다의 개념들이 각각 들어감 (겹치지 않게끔) → 약간 장고에서의 app의 개념인ㄱ ㅏ..?
→ 버전: 플젝의 버전 → 버저닝하는 방법(약속된 방법)이 따로 있음
→ depeendendies: 가장 중요. 의존성
→ build: 배포 때 사용되는 .. 그런 빌드에 필요한 정보들
3. Gradle이란?
- Groovy 스크립트를 활용한 빌드 관리 도구
- 안드로이드 플젝의 표준 빌드 시스템으로 채택
- 멀티 프로젝트의 빌드에 최적화 하여 설계됨
- Maven에 비해 더 빠른 처리 속도 → 최대 100배정도……..
- Maven에 비해 더 간결한 구성 가능 → xml형태면 태그니까 메이븐에 비해서 더 간결한 구성 가능
- 그래들과 메이븐 비교
- 그래들에 비해 메이븐 점유율이 아직은 더 높음 (그래들 점유율 오르는 중이긴 함) → 아직까진 실무에선 메이븐
- 그래들에 비해 메이븐의 성능이 떨어짐
- 메이븐에 비해 그래들이 대규모 플젝에서 성능이 좋음
- Maven: pom.xml | Gradle: build.gradle
- 그래들은 설치 없이 사용 가능
- 그래들 대표용어 설명
- repositories : 라이브러리가 저장된 위치 등 설정
- mavenCentral : 기본 메이븐 레포지토리
- dependencies : 라이브러리 사용을 위한 의존성 설정
- 대표적인 레포지토리 사이트
Maven Repository : https://mvnrepository.com/- 원하는 라이브러리 검색해서 라이브러리 추가하는 방법대로 추가하면 됨.
그래들을 배우는 게 더 간편하고 하니깐 그래들 추천함.. 그러나 본 영상에선 메이븐으로
'Java > Spring Boot' 카테고리의 다른 글
[Spring Boot] - 테스트코드 적용하기, 테스트 커버리지 확인하기 (0) | 2024.03.05 |
---|---|
[Spring Boot] - 유효성 검증, 예외처리, RestTemplate (0) | 2024.03.05 |
[Spring Boot] - API, Lombok, DB, JPA, LogBack (1) | 2024.03.02 |
[Spring Boot] - 디자인 패턴, API, Pom파일, Swagger (0) | 2024.02.28 |