- Django
- 스프링부트
- 프로그래머스
- AWS
- jpa
- join
- Git
- 자바
- java
- 1차원 배열
- PYTHON
- Docker
- SSL
- DI
- ORM
- 문자열
- spring security 6
- springboot
- nginx
- spring
- @transactional
- sql
- select
- 스프링
- string
- spring boot
- 데이터베이스
- mysql
- spring mvc
- session
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
개발하는 자몽
[Spring, 이클립스] Gradle 프로젝트 생성, Spring MVC 환경 구축 본문
현업에서 Spring Boot를 많이 사용하지만 Spring 또한 잘 알아야 DevOps나 다른 개발자와의 협업이 수월하다고 해서 공부한다.
계획은 다음과 같다. (1~5 : 환경 세팅, 6 : 테스트, 7 : 구축한 환경에서 코딩)
- Eclipse 설치
- Gradle Project 생성
- Spring MVC 할 수 있도록 환경 설정 <- 폴더 구조도 고민할 것
- Tomcat 설치 (for 서버)
- MyBatis로 DB 연결, 필요한 dependency 추가
- 테스트 (1~5번 과정이 잘 됐는지 확인)
- 게시판 만들기
이번 포스팅에서는 다음을 다룬다. (이클립스 설치는 다루지 않는다.)
- Gradle Project 생성
- Spring MVC 환경 구축
- Gradle과 Maven
Gradle Project 생성
1. 이클립스를 실행
- 실행 후 바로 프로젝트를 생성하지 말고 먼저 gradle을 설치한다. 다음 링크를 참고하자.
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 ~ : 컴파일부터 실행 시까지 의존하는 라이브러리 지정에 사용
- 의존문 종류
- repositories : gradle이 필요한 라이브러리를 자동으로 다운로드 하기위해 사용하는 저장소
그 외에도 plugin, war에 대해 찾아보았다.
plugin : https://kathak33.tistory.com/14
war : https://gptjs409.github.io/java/2019/08/06/war-jar.html
이제 Spring MVC 환경 구축을 시작해보자. (아래 링크의 내용 기반으로 진행)
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 설정
3. 패키지 생성
패키지 생성부터는 Spring MVC 패키지 구조를 고민해야한다. 이 부분에 대해서는 좀 더 공부하고 수정/추가할 예정이다.
참고
패키지 구조 포스팅
4. 서버 생성
3번 완료 후 채울 예정이며, 서버는 Tomcat을 설치부터하고 생성하자.
Gradle과 Maven
Maven이란?
Apache Maven은 자바용 프로젝트 관리 도구이다. 프로젝트 진행 시 자신이 작성한 코드 외에도 많은 라이브러리들을 활용해서 개발을 한다. 이 때 사용되는 라이브러리들의 수는 상당히 많아서 관리하기가 힘든데, 이러한 문제를 해결해주는 도구가 Maven이다. 즉, 프로젝트를 진행하면서 사용하는 많은 라이브러리들을 관리해주는 도구이다.
Maven은 특정 라이브러리가 작동하는데 필요한 다른 라이브러리들까지 관리하여 네트워크를 통해 자동으로 다운로드/업데이트 한다.
Gradle이란?
Gradle은 Groovy를 이용한 빌드 배포 도구(Build Tool)로 안드로이드 앱을 만들 때 필요한 공식 빌드시스템이다. Java, C/C++, Python 등과 같은 여러 가지 연어를 지원한다.
그래서 왜 Gradle?
아래에 링크와 함께 잘 정리하신 분의 글을 내 방식대로 간단하게 남긴다.
Groovy는 Java 가상 머신에서 실행되는 스크립트 언어로 소스코드를 그대로 실행한다. 또한 Java와 호환되고, Java 클래스 파일을 그대로 Groovy 클래스로 사용할 수 있다. 문법도 Java에 매우 가까워서 Java를 보다 사용하기 쉽게 한 것으로 느낄 수 있다.
"간편하게 사용할 수 있는 Java"라고 할 수 있는 Groovy를 사용하여 빌드 처리를 작성하고 실행하는 것이 Gradle이다. Maven은 XML 기반의 빌드 처리를 작성한다. 간단한 내용이라면 상관 없지만, 복잡한 내용을 작성하게 되면 XML 기반에 의한 묘사는 상당히 어려워진다. Java 프로그래머인데 빌드 관리만을 위해 다른 언어를 사용하지 않으면 안된다는 것은 어쩐지 납득할 수 없는 느낌도 든다.
Gradle은 Java와 거의 비슷한 코드를 작성해서 빌드 처리를 관리할 수 있다. 이런 면이 Java 프로그래머로 압도적으로 받아들이기 쉬운지도 모른다.
출처 및 참고
'Java > Spring' 카테고리의 다른 글
[Spring] VO와 DAO (0) | 2022.02.10 |
---|---|
[Spring Boot] 패키지 구조 (0) | 2022.01.07 |
스프링 부트 공부 (5), 회원 관리 예제 - 백엔드 (0) | 2022.01.04 |
스프링 부트 공부 (4), 스프링 웹 개발 기초 (0) | 2022.01.03 |
스프링 부트 공부 (3), View 환경설정, 빌드 및 실행 (0) | 2022.01.03 |