프레임워크(Framework)/Spring

[Spring] 1. 스프링 프로젝트 환경 설정 (스프링이란? 특징 및 개발 환경 설정) - Gradle

잇트루 2022. 7. 4. 23:05
반응형

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술'내용을 바탕으로 공부하여 정리한 것임을 알려드립니다.

스프링이란?

스프링은 기본적으로 스프링 프레임워크를 지칭하는 것으로 Java 플랫폼을 위한 웹 어플리케이션 개발 프레임워크입니다. 스프링은 Node.js와 Django, Flask 등과 함께 우리나라에서 웹 개발에 널리 사용되고 있는 프레임워크 중 하나입니다. 사실 스프링은 정말 다양한 기능들이 존재합니다. Spring Data, Spring Boot, Spring Security ... 이러한 수많은 기능들 중 제가 다루고자 하는 것은 Spring Framework입니다.

 

 

스프링 프레임워크의 특징

1. 의존성 주입(DI : Dependency Injection)

2. 제어의 역행(IoC : Inversion of Control) 

3. 관점지향 프로그래밍(AOP : Aspect Oriented Programming)

4. 모델-뷰-컨트롤러(MVC)

5. 다오(DAO : Decentralized Autonomous Organization)

6. ORM(Object Reational Mapping)

 

앞으로 각 기능들의 특징들에 대해 자세히 알아보고자 합니다.

 

 

개발 환경 구축

1. JDK 설치

JDK는 대표적으로 Oracle JDK와 OpenJDK가 있습니다.

 

Oracle JDK의 경우 보안 업데이트를 지속적으로 제공하나 기본적으로 유료 구독형 라이센스입니다. 하지만 비상업적인 용도에 한해서는 무료 사용이 가능합니다.

Oracle JDK 다운로드 링크: https://www.oracle.com/java/technologies/downloads/

 

OpenJDK는 자바 SE의 무료 오픈 소스 구현체로 Oracle JDK와는 기술적으로 큰 차이는 없으나 성능 이슈가 존재하기도 합니다.

OpenJDK 다운로드 링크: https://jdk.java.net/

 

그 외 OpenJDK 기반의 무료 배포판인 Zulu JDK도 있습니다.

Zulu JDK 다운로드 링크: https://www.azul.com/downloads/?package=jdk 

 

2. 통합 개발 환경(IDE) 설치

스프링 프레임워크를 사용하기 위한 IDE로는 대표적으로 인텔리제이(IntelliJ)와 이클립스(Eclipse)가 존재합니다. 취향에 따라 아무거나 사용하셔도 무방합니다.

 

IntelliJ IDEA 다운로드 링크: https://www.jetbrains.com/ko-kr/idea/download

Eclipse 다운로드 링크 : https://www.eclipse.org/downloads/

 

 

프로젝트 환경 설정

개발 환경 구축이 완료되면 스프링 홈페이지에서 프로젝트를 생성할 수 있습니다. 스프링 부트를 기반으로 프로젝트를 만들어주는 사이트로 스프링에서 운영하고 있습니다.

프로젝트 생성하기 링크 :  https://start.spring.io/

1. Project

프로젝트 빌드 관리 도구를 선택하는 것으로 메이븐(Maven) 또는 그래들(Gradle)을 고를 수 있습니다. 메이븐과 그래들은 필요한 라이브러리를 사용하기 위한 여러 기능을 제공하고 있습니다.

 

2. Language

Java, Kotlin, Groovy 세 가지 언어를 사용할 수 있으나 일반적으로 Java를 사용합니다.

 

3. Spring Boot

스프링 부트의 버전을 선택하는 것으로 SNAPSHOT과 M1~은 정식 릴리즈가 아니므로 일반적으로 정식 릴리즈된 버전의 가장 최신 버전을 사용하는 것을 추천드립니다. 

 

4. Project Metadata

프로젝트에 대한 정보를 입력하는 것으로 프로젝트 이름 또는 목적이나 소속된 그룹에 맞게 작성할 수 있습니다.

 

5. Dependencies

사용할 라이브러리를 참조하는 것으로 일반적으로 스프링 부트의 라이브러리를 설정하는 공간입니다. 예를 들어 웹 개발에는 Spring Web 라이브러리를 추가하여 사용할 수 있습니다. 부가적으로 웹 개발에 사용할 템플릿 엔진, 코드 작성에 도움을 주는 라이브러리 등을 추가하여 사용할 수 있습니다.

 

6. Packaging

프로젝트를 배포하기 위한 압축된 파일을 저장하는 것으로 .jar, .war 패키징 방식을 선택하는 것입니다. 따라서 배포 방식이 다르므로 목적에 맞게 설정하시면 됩니다. 일반적으로 Jar는 자바 프로젝트를 압축한 것으로 JRE만 있어도 실행이 가능하며 War는 별도의 웹 서버 또는 컨테이너가 필요한 환경에서 사용합니다. 일반적으로 Spring Boot 환경에서 개발할 경우 Jar를 사용하는 것이 일반적입니다.

 

7. Java

JDK 버전을 고르는 것으로 개발 환경 구축 당시 다운로드한 Java 버전을 선택하시면 됩니다.

 

각 목적에 맞게 설정하신 뒤 GENRATE를 버튼을 통해 프로젝트 파일을 다운로드할 수 있습니다.

zip 파일로 저장되어 압축을 푼 뒤, IntelliJ 또는 Eclipse IDE를 통해 프로젝트를 열어 프로젝트 개발 환경을 생성합니다. 본 게시글에서 사용한 IDE는 IntelliJ IDEA입니다.

처음 프로젝트를 불러오면 개발 환경을 설정하기 위한 라이브러리를 다운로드가 이루어지며 시간이 다소 소요될 수 있습니다. 따라서 인터넷이 연결된 환경이 필수적입니다.

 

화면 하단에는 외부 라이브러리를 설치하기 위한 다운로드가 진행중임을 나타내는 것이며 다운로드 완료 후 프로젝트 환경 설정이 끝나게 됩니다.

 

build.gradle

build.gradle 파일에는 start.spring.io에서 설정한 정보를 확인할 수 있으며, dependencies {} 안에 필요한 라이브러리를 추가 및 제거를 할 수 있습니다. 제가 설정한 것은 Spring Web과 Thymeleaf 템플릿 엔진을 추가하여 삽입된 것을 확인할 수 있습니다.

 

HelloSpringApplication.java

프로젝트를 실행시키기 위한 메인 메서드로 개발을 진행한 뒤 실행하면 작업한 것을 웹에서 확인할 수 있습니다.

 

실행화면

실행화면으로 무언가가 실행되고 있음을 알 수 있습니다.

 

웹 브라우저에서 localhost:8080을 입력한 뒤 접속하면 다음과 같은 에러 페이지가 뜨는 것을 확인할 수 있습니다.

이는 프로젝트 설정 후 아무런 작업을 하지 않았기 때문에 뜨는 에러페이지로 성공적으로 프로젝트 환경 설정을 한 것입니다.

반응형