> For the complete documentation index, see [llms.txt](https://docs.sysout.co.kr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sysout.co.kr/web/back-end/what-is-spring-framework/spring-environment-setting/project.md).

# Project 생성

이 문서에서는 Spring Legacy Project 생성 방법에 대해서 다룬다.

## Spring Legacy 프로젝트 생성

File - New - Spring Legacy Project 메뉴를 선택하여 프로젝트 생성을 시작한다.

<div align="left"><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2FKES6vwv4jnVilliG4Uvo%2FAnimation.gif?alt=media&amp;token=ceae0e74-4486-43a6-aa5f-89e62d97b4fe" alt=""></div>

## 프로젝트 정보 입력

프로젝트 생성을 위해 몇 가지 정보를 입력해야 한다.

* project name - 프로젝트의 이름
* template - 프로젝트 형식
* top-level package - 최상위 패키지명

<div align="left"><img src="https://4208234536-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-M_TNZwLuHV9ipYLbvRq%2Fuploads%2FAFFKPHz116h3ZtBcLt79%2FAnimation.gif?alt=media&amp;token=b34f55e9-69c8-4bed-b251-787824921265" alt=""></div>

## top-level package 설정

Spring Framework를 포함한 Java EE 환경의 웹 애플리케이션은 <mark style="color:blue;">Apache Tomcat</mark>과 같은 웹 컨테이너 환경에서 구동 된다. 이 때 별도의 폴더 구분을 하지 않는 시스템이라면 top-level package에 의해서 폴더가 나누어진다. 따라서 top-level package는 다른 애플리케이션과 겹치지 않도록 설정해야 하며, 3단계 작성을 권장한다.

<mark style="color:blue;">`aaa.bbb.ccc`</mark> 형태로 작성하며, 앞 부분인 <mark style="color:blue;">aaa</mark>와 <mark style="color:blue;">bbb</mark> 자리에는 개발 그룹의 정보를 알 수 있도록 개발 그룹의 도메인을 뒤집어서 작성하는 것이 일반적이다. 예를 들어 <mark style="color:blue;">`google`</mark>이 개발한 애플리케이션의 경우 구글의 도메인 <mark style="color:blue;">`google.com`</mark> 을 뒤집은 <mark style="color:blue;">`com.google`</mark>이 패키지 시작 이름이 된다.&#x20;

마지막 자리에는 애플리케이션을 식별할 수 있는 이름을 넣는 것이 일반적이며, 예를 들어 네이버(naver.com)에서 개발한 지식인(kin) 서비스라면 다음과 같이 패키지 이름을 지정한다.

* com.naver.kin

Spring Legacy Project에서 설정한 top-level package는 자동으로 생성된 프로젝트의 root 패키지가 되며, 이후 배우게 될 Maven 프로젝트 정보에서 groupId와 ArtifactId로 나누어 저장된다.
