Github 연동
프로젝트 생성보다 Github 연동을 먼저해준다.
Open Perspective 아이콘을 클릭한다.
Git을 선택하고 Open을 클릭한다.
그러면 왼쪽 Perspective 창에 Clone a Git repository가 뜨는데 클릭한다.
해당 Repository의 주소를 입력하고 Next를 클릭한다.
main 브랜치밖에 없으므로 Next를 클릭한다.
로컬 repository 디렉터리를 지정한다.
만약 실행중일 때 프로젝트를 공유하면 에러가 발생한다.
실행을 stop하고 공유를 하는 습관을 들여야한다.
깜빡하고 실행중일 때 프로젝트를 공유했다면
다시 프로젝트를 실행할 때 `ClassNotFoundException` 예외가 발생한다.
[프로젝트 우클릭] - [Maven] - [Update Project]를 클릭한다. (단축키 Alt + F5)
해당 프로젝트를 선택하고 OK를 클릭한다.
프로젝트와 Maven 설정 간의 불일치를 해결하고 종속성을 다시 동기화하는 기능이다.
프로젝트 생성
Create a project를 클릭한다.
Spring Starter Project를 선택 후 Next를 클릭한다.
프로젝트 이름과 빌드 관련된 정보 등을 입력한 후 Next를 클릭한다.
Build
작성한 소스 코드를 실행 가능한 형태로 변환하거나 배포할 수 있는 형태로 준비하는 과정
Type
Type은 자동화 빌드 도구를 선택할 수 있는데 Gradle과 Maven이 존재한다. Gradle이 나중에 나오고 기능이 더 많다. 각각의 기능을 살펴보자면 Maven은 `xml`파일로 구성되어 있다. 반면 Gradle은 Groovy와 Kotlin 언어로 구성되어 있다.
항목 | Maven | Gradle |
구성 파일 | XML (`pom.xml`) | Groovy/Kotlin DSL (`build.gradle`) |
성능 | 상대적으로 느림 | 빠르고 효율적 (병렬 빌드, 증분 빌드 지원) |
의존성 관리 | 중앙 저장소를 통해 의존성 관리 | 더 다양한 저장소 지원, 유연한 버전 관리 |
확장성 | 플러그인 기반, 커스터마이징이 어려움 | 스크립트 기반, 커스터마이징 용이 |
사용 용이성 | 설정 간단하고 일관성 있음 | 설정이 복잡하나 유연 |
커뮤니티 및 지원 | 넓고 오래된 커뮤니티 | Android에서 인기 높음 |
주요 사용 사례 | 단순한 Java 프로젝트 | 대규모, 복잡한 빌드, Android 개발 |
Language
Language는 Java뿐만 아니라 JVM 기반으로 돌아가는 Kotlin, Groovy 등이 있다.
Packaging
Packaging은 소프트웨어 프로젝트에서 빌드된 결과물을 특정 형식으로 패키징하거나 묶는 과정이다.
JAR (Java Archaive)
JAR 파일은 Java 애플리케이션을 패키징하는데 사용된다. Java 애플리케이션의 클래스 파일, 라이브러리, 리소스 파일 등을 하나의 압축 파일로 묶은 것이다.
- 웹 서버에는 탑재 안됨
- 만들 프로젝트를 Java 명령으로만 실행 가능
- 서버 설치 안해도 됨
WAR (Web Archaive)
WAR 파일은 웹 애플리케이션을 패키징하는데 사용된다. 웹 애플리케이션의 리소스(Servlet, JSP, HTML, CSS, JavaScript, 이미지 파일 등)와 클래스 파일을 포함한 모든 파일을 하나의 압축 파일로 묶은 것이다.
- 웹 서버에 탑재 가능
- 서버에 여러 홈페이지들을 따로 만들어서 합쳐야 하는 경우
- 서버 설치를 해도되고 안해도 됨
Coordinate
특정 리소스를 식별하는 고유한 값
- GroupId - 회사 정보 (프로젝트나 라이브러리 그룹)
- ArtifactId - 프로그램 정보 (특정 프로젝트나 라이브러리의 고유 이름)
- 회사의 도메인을 기준으로 패키지를 설계하면 충돌 없음
- 어떤 회사의 프로그램인지 확인 가능
- 패키지명은 GroupId와 ArtifactId가 합쳐진 형태이며 관례임
google.com -> com.google -> com.google.map
Version
프로젝트 버전 (x.y.x)
- x - 메이저 버전
- y - 마이너 버전
- z - 릴리즈 버전
- 0.0.1 - 기본 버전
- SNAPSHOT - 최종 버전이 아님 (개선할 수 있음)
- 1.0.0 - 정식 버전 (문제에 대해서 책임을 짐)
Package
패키지명
- 패키지명은 자동으로 변경되지않기 때문에 직접 변경해준다.
web을 검색하고 Spring Web을 선택하고 Next를 클릭한다.
여기서는 사용할 `dependecies`(라이브러리)를 선택한다.
Full Url은 웹에서 똑같이 프로젝트를 설정할 파일을 다운로드 받아주는 url을 명시한다.
Finish를 클릭한다.
프로젝트 실행
첫번째 방법
[프로젝트 우클릭] - [run as] - [spring boot app]를 순서대로 클릭한다.
두번째 방법
[Boot Dashboard] - [local] - [프로젝트이름 우클릭] - [run as] - [restart]를 순서대로 클릭한다.
그러나 막상 실행하면 에러가 발생한다...
포트번호가 Oracle에서 쓰고있던 8080번을 사용해서 그렇다.
Oracle은 1521, 2030, 8080번 포트를 사용하기 때문에 이 포트 번호들을 피해야 한다.
DBeaver를 실행하고 [system 계정 우클릭] - [SQL 편집기] - [SQL 편집기]를 클릭한다.
Oracle의 설정을 바꿔야하기 때문에 관리자 계정에서 실행한다.
다음과 같이 입력한 후 `Ctrl + Enter` 눌러 실행한다.
그러면 Oracle의 포트 번호가 변경된 것을 확인할 수 있다.
-- 오라클 포트를 변경하는 명령
call dbms_xdb.sethttpport(9090);
-- 현재 오라클 포트를 확인하는 명령
select dbms_xdb.gethttpport() from dual;
Spring Boot Devtools 추가
기존에 만든 프로젝트에 Spring Boot Devtools를 추가한다.
[Boot Dashboard] - [local] - [프로젝트이름 우클릭] - [Spring] - [Add Devtools]를 순서대로 클릭한다.
Spring Boot Devtools는 기존에 코드를 수정하면 다시 실행하지 않고 Ctrl + s를 통해 저장만 하면 실행되게 해주는 `dependency`이다. 물론 프로젝트를 만들 때, 추가 또한 가능하다.
'Java > Spring Boot' 카테고리의 다른 글
[Java / Spring Boot] View (JSP) (0) | 2025.01.09 |
---|---|
[Java / Spring Boot] Lombok과 JDBC 연결 (0) | 2025.01.08 |
[Java / Spring Boot] Spring 개념과 Controller (1) | 2025.01.08 |
[Java / Spring Boot] 프로젝트 구조와 네트워크 기본 개념 (0) | 2025.01.07 |
[Java / Spring Boot] Spring Boot 개발 환경 세팅 (0) | 2025.01.06 |