개발하는 자몽

[Spring, 이클립스] Gradle 프로젝트 생성, Spring MVC 환경 구축 본문

Java/Spring

[Spring, 이클립스] Gradle 프로젝트 생성, Spring MVC 환경 구축

jaamong 2022. 1. 6. 16:57

현업에서 Spring Boot를 많이 사용하지만 Spring 또한 잘 알아야 DevOps나 다른 개발자와의 협업이 수월하다고 해서 공부한다.

 

계획은 다음과 같다. (1~5 : 환경 세팅, 6 : 테스트, 7 : 구축한 환경에서 코딩)

  1. Eclipse 설치
  2. Gradle Project 생성
  3. Spring MVC 할 수 있도록 환경 설정 <- 폴더 구조도 고민할 것
  4. Tomcat 설치 (for 서버)
  5. MyBatis로 DB 연결, 필요한 dependency 추가
  6. 테스트 (1~5번 과정이 잘 됐는지 확인)
  7. 게시판 만들기 

 

이번 포스팅에서는 다음을 다룬다. (이클립스 설치는 다루지 않는다.)

  • Gradle Project 생성
  • Spring MVC 환경 구축
  • Gradle과 Maven

 

Gradle Project 생성

1. 이클립스를 실행

  • 실행 후 바로 프로젝트를 생성하지 말고 먼저 gradle을 설치한다. 다음 링크를 참고하자.
 

이클립스에서 gradle 프로젝트 생성하기

나는 C > C++ > java > js 순으로 배웠다 요즘은 쭉 nodejs에서 npm, package.json 을 통해 모듈을 쉽게 설치하고 관리하였다 오랜만에 java로 돌아오니까 외부 라이브러리를 임포트 할 때 불편하게 느껴졌다

chinsun9.github.io

 

2. File > New > Others... 클릭

 

3. Gradle 찾고 Next 또 Next

 

4. Project name을 입력하고 Finish

 

5. Gradle Project 생성 완료 (test -> testGradleProject로 이름 변경함)

 

Spring MVC 환경 구축

Spring MVC

  • 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴
  • 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점
  • Model, View, Controller로 분리하여 개발하는 디자인 패턴

나의 목표는 Spring MVC 프레임워크를 이용하여 게시판을 만드는 것이다. 열심히 구글링을 해보자.

  • spring mvc 환경구축을 검색하면 첫번째로 build.gradle 파일을 수정을 하는 글들이 보였다.
    build.gradle 파일을 살펴보자.
    • # gradle build 명령어로 인해 실행되는 파일
    • gradle 명령으로 수행하는 처리는 build.gradle 파일의 내용을 바탕으로 실행 된다.
      • repositories : gradle이 필요한 라이브러리를 자동으로 다운로드 하기위해 사용하는 저장소
        • 저장소 종류
          • Maven 중앙 저장소 : mavenCentral()
          • JCenter 저장소 : jcenter()
      • Dependencies : 저장소에서 필요한 라이브러리를 사용하기 위한 문장
        • 의존문 종류
          • implementation ~ : 컴파일 시 의존하는(사용) 라이브러리를 지정
          • testCompile ~ : 테스트 컴파일(단위테스팅)에 사용하는 라이브러리를 지정
          • classpath ~ : 컴파일부터 실행 시까지 의존하는 라이브러리 지정에 사용

그 외에도 plugin, war에 대해 찾아보았다.

plugin : https://kathak33.tistory.com/14

war : https://gptjs409.github.io/java/2019/08/06/war-jar.html

 

 

이제 Spring MVC 환경 구축을 시작해보자. (아래 링크의 내용 기반으로 진행)

 

Eclipse+Gradle+Spring 웹 프로젝트 만들기! (이클립스, 그래들, 스프링) - [Web Project] 1편

(매번 환경설정 할 때마다 헷갈리는 경우가 많아 정리하려고 한다.) STS를 이용하는 방식과 조금 다릅니다. 이점 참고 ^0^ ( 최대한 간단 설치하고, 컴팩트하게 생성하려고 했습니다. ) 이클립스에

geonoo.tistory.com

1. build.gradle 수정

//언어
apply plugin: 'java'
apply plugin: 'war'

//jdk 버전 설정
sourceCompatibility = 1.8
targetCompatibility = 1.8

//라이브러리 저장소
repositories{
	jcenter()
}

//인코딩
tasks.withType(JavaCompile) {
	options.encoding = 'UTF-8'
}

//의존성 ; 외부 라이브러리
dependencies {
	testCompile fileTree(dir: 'webContent/WEB-INF/lib', include: ['*.jar'])
	compile fileTree(dir: 'lib', include: ['*.jar'])
	compile 'ch.qos.logback:logback-classic1.2.2'
}

//프로젝트 폴더이름
//war 설정
project.webAppDirName = 'WebContent'
war {
	archiveName = = "${baseName}.${extension}"
}​


2. Project 설정

프로젝트 명 우클릭 &amp;gt; Properties 클릭
Project Facets &amp;gt; Convert to faceted form...
위 노란 친구들 체크 후에 Apply and Close, Java는 본인이 설치한 버전으로 설정

 

3. 패키지 생성

패키지 생성부터는 Spring MVC 패키지 구조를 고민해야한다. 이 부분에 대해서는 좀 더 공부하고 수정/추가할 예정이다. 

 

참고

 

Spring framework MVC 패턴

Spring framework MVC를 사용하여 웹개발을 진행하면서, Package/Class 구조를 어떻게 구성해야 많은 고민을 하게 된다. 그동안 web을 개발하면서 느끼는것은 정답은 없으며 어떻게 만들든지 결과만 잘나

5takoo.tistory.com

패키지 구조 포스팅

 

[Spring Boot] 패키지 구조

여러 글을 찾아봤는데 크게 두 가지 방식으로 패키지 구조를 구성한다. 도메인형 패키지 구조 계층형 패키지 구조 개발의 규모나 성격, 회사에서 진행하는 방식에 따라 정해지는 것으로 보인다.

backend-jaamong.tistory.com

 

4. 서버 생성

3번 완료 후 채울 예정이며, 서버는 Tomcat을 설치부터하고 생성하자.

 

Gradle과 Maven

Maven이란?

Apache Maven은 자바용 프로젝트 관리 도구이다. 프로젝트 진행 시 자신이 작성한 코드 외에도 많은 라이브러리들을 활용해서 개발을 한다. 이 때 사용되는 라이브러리들의 수는 상당히 많아서 관리하기가 힘든데, 이러한 문제를 해결해주는 도구가 Maven이다. 즉, 프로젝트를 진행하면서 사용하는 많은 라이브러리들을 관리해주는 도구이다.

Maven은 특정 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운로드/업데이트 한다.

 

Gradle이란?

Gradle은 Groovy를 이용한 빌드 배포 도구(Build Tool)로 안드로이드 앱을 만들 때 필요한 공식 빌드시스템이다. Java, C/C++, Python 등과 같은 여러 가지 연어를 지원한다.

 

그래서 왜 Gradle?

아래에 링크와 함께 잘 정리하신 분의 글을 내 방식대로 간단하게 남긴다.

 

[Gradle] Gradle 준비

Gradle은 왜 주목 받고 있는 것인가? 우선은 Gradle가 어떤 도구인지를 이해한다. 그리고 Gradle을 사용할 수 있도록 설정하는 방법을 설명한다. Gradle이란? Gradle이란? Gradle은 Maven을 대체 빌드 도구(buil

araikuma.tistory.com

 

Groovy는 Java 가상 머신에서 실행되는 스크립트 언어로 소스코드를 그대로 실행한다. 또한 Java와 호환되고, Java 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다. 문법도 Java에 매우 가까워서 Java를 보다 사용하기 쉽게 한 것으로 느낄 수 있다. 
"간편하게 사용할 수 있는 Java"라고 할 수 있는 Groovy를 사용하여 빌드 처리를 작성하고 실행하는 것이 Gradle이다. Maven은 XML 기반의 빌드 처리를 작성한다. 간단한 내용이라면 상관 없지만, 복잡한 내용을 작성하게 되면 XML 기반에 의한 묘사는 상당히 어려워진다. Java 프로그래머인데 빌드 관리만을 위해 다른 언어를 사용하지 않으면 안된다는 것은 어쩐지 납득할 수 없는 느낌도 든다.
Gradle은 Java와 거의 비슷한 코드를 작성해서 빌드 처리를 관리할 수 있다. 이런 면이 Java 프로그래머로 압도적으로 받아들이기 쉬운지도 모른다.

 

 

 

출처 및 참고

 

Maven과 Gradle의 차이

Maven vs Gradle 우선 둘의 차이를 알기위해 각각 알아보았다. Maven같은경우는 스프링프로젝트에서 pom.xml이란 이름으로 쓰고, Gradle은 스프링부트, 안드로이드에서 쓰는걸로 알고있다. 처음에 단순히

hyojun123.github.io

 

메이븐(Maven)이란 무엇일까? 그래들(Gradle)은 무엇인가? maven gradle 차이는?

스프링으로 프로젝트를 공부하려는 중 메이븐과 그래들이라는 단어를 처음 듣게 되었고 메이븐과 그래들에 대해서 들어보긴 했지만 자세한 개념은 잘 모르고 또한 이러한 생각을 가지시는 분

okky.tistory.com

 

MVC란? (Spring MVC)

https://gmlwjd9405.github.io/2018/12/20/spring-mvc-framework.html [SpringMVC] Spring MVC Framework란 - Heee's Development Blog Step by step goes a long way. gmlwjd9405.github.io https://developer.mo..

u0hun.tistory.com

 

Gradle-02) build.gradle 파일 구조와 분석

build.gradle 파일  - # gradle build 명령어로 인해 실행되는 파일 (gradle 명령으로 수행하는 처리는 "build.gradle"의 파일의 내용을 바탕으로 실행 된다) 1. repositories - gradle이 필요한 라이브러리를 자..

galid1.tistory.com

 

 

Comments