AWS/Spring 프로젝트 생성 ~ Deploy

프로젝트 생성 DAY1

min민 2023. 6. 3.

 

Spring 프로젝트 생성 ~ Deploy 카테고리는 순수 공부 트래킹을 위해서 작성됐습니다.

공부하면서 막힌부분, 추가로 습득하고싶은 내용들이 담겨있습니다.

 

 

 

 

 

나는 오늘부터 인텔리제이를 사용해서, 자바 스프링 언어로 AWS를 활용해 배포까지 가능한 프로젝트를 공부하려고한다.

 

블로그의 내용은 프로젝트를 진행하면서 막힌부분, 꼭 정리한 부분이 체크될것이며, 순수 공부 트래킹을 위해서 작성하려고한다.

 

 

 

v.1 인텔리제이 프로젝트 생성.

원래는 spring initializr(https://start.spring.io/)로 편하게 프로젝트를 생성했지만 해당 프로젝트의 목표는 세세한 부분까지 짚어가면서 넘어가는것이다.

 

 

 

DSL? = 도메인 특화 언어(Domain-Specific Language)

Gradle은 프로젝트의 빌드 및 종속성 관리를 위한 강력한 빌드 도구이며, Gradle DSL을 사용하여 프로젝트 설정할 수 있다.  Gradle DSL은 Groovy 또는 Kotlin 언어를 기반으로 작성될 수 있다. 이 DSL을 사용하여 빌드 스크립트에 필요한 구성 요소를 정의하고 Gradle 플러그인을 설정할 수 있다. 프로젝트의 종속성, 테스트 구성, 빌드 태스크 등을 정의하는 데 사용된다.

 

결국 DSL은 

DSL(Domain-Specific Language)은 특정 도메인이나 작업 영역에 특화된 언어다. DSL은 해당 도메인의 요구사항에 맞추어 간결하고 이해하기 쉬운 문법을 제공하여 작업을 더 효율적으로 수행할 수 있도록 도와준다.

DSL을 사용하는 이유 중 하나는 개발자의 생산성을 향상시키는 것이다. 특정 도메인에 맞는 언어를 사용하면 해당 도메인에 대한 이해도가 높아지고, 문제를 해결하기 위한 코드를 더욱 직관적이고 간결하게 작성할 수 있다.

 

- KOTLIN 

해당 프로젝트를 마친후에는 JAVA를 KOTLIIN으로 옮기는 공부를 할 예정이다. (개인적으로 코틀린 좋아함)

 

 

그래서 GROOVY는 뭐지?

컴퓨터 프로그래밍 언어야. 결국엔 도메인 빌드를할때 KOTLIN을 쓸것인지, GROOVY 를 사용할것인지 체크하는 부분이었고, JAVA 보다는 좀 더 간결하고 편리하게 작성하기 위해서 작업의 효율성을 위해서 KOTLIN 혹은 GROOVY로 빌드하는것임. 

 

또한, GROOVY는 동적 타이핑 기능을 가지고 있는데, 변수의 타입을 미리 정하지 않고도 사용할 수 있다. 그래서 프로그램을 작성하는데 편하게 사용할 수 있는것임.

또한, GROOVY는 클로저라는 특별한 기능을 제공하기도함. 클로저는 코드를 블록 단위로 그룹화하고 재사용 할 수 있는 기능이다. 이렇게 하면 코드를 더욱 효율적으로 작성할 수 있게됨.

또한, GROOVY는 스크립팅 언어로 활용하기도 하는데 스크립팅 언어는 한줄 또는 몇줄의 코드를 작성해서 작업을 수행하는 수 있는 언어인데, 이렇게 사용하면 더 빠르고 간단하게 프로그램을 만들 수 있다.

 

결국 GROOVY는 JAVA와 비슷하지만 더 편리한 문법이기 때문에 사용하는것임. 

 

의문: 그러면 DSL에 JAVA가 없고 KOTLIN이나 GROOVY로 쓰는 이유는 뭐지? 

Java는 범용 프로그래밍 언어로 다양한 도메인에 사용되지만, 특정 도메인에 맞는 작업을 수행하기 위해선 추가적인 코드와 복잡성이 증가할 수 있다.

 

이에 비해 Kotlin과 Groovy는 각각 JVM 언어로서 DSL 개발에 더 적합한 특징을 가지고 있다.

 

Kotlin은 정적 타입 언어로, Java와의 상호 운용성이 뛰어나면서도 좀 더 간결하고 표현력이 높은 문법을 제공한다. Kotlin은 DSL 개발에 용이한 특성을 갖추고 있어, Gradle에서 Kotlin DSL을 사용하여 빌드 스크립트를 작성하거나, 안드로이드 앱 개발 등 다양한 도메인에서 DSL을 개발할 때 사용될 수 있다.

 

 

Groovy는 동적 타입 언어로, 간결한 문법과 메타프로그래밍 기능을 갖추고 있어 DSL 개발에 많이 활용된다. Groovy는 Gradle에서 기본적으로 사용되는 DSL 언어이며, Gradle의 강력한 기능을 활용하면 빌드 및 자동화된 작업을 보다 쉽게 처리할 수 있다.

 

따라서 DSL 개발을 위해 Kotlin이나 Groovy와 같은 언어를 선택하는 것은 해당 도메인에 최적화된 언어를 사용하여 개발 생산성을 높이기 위함이다. 이러한 DSL 언어들은 특정 도메인에 대한 이해와 작업의 편의성을 제공하여 개발자가 더욱 효율적으로 작업을 수행할 수 있도록 도와준다.

 

 

grale 설정

ext: build.gradle에서 사용하는 전역변수를 설정하겠다는 의미임.

위는 springbootversion을 전역변수로 생성하고, 그 값을 2.1.7 release로 하겠다는 의미임. 즉 spring boot grale plulgin라는 스프링 부트 그래들 플러그인의 2.1.7 release를 의존성으로 받겠다는 의미다. 

 

 

io.spring dependency-management 플러그인은 스프링 부트의 의존성들을 관리해주는 플러그인이라 꼭 추가해주어야한다. 

 

완성된 gradle 코드 ↓

plugins {
    id 'java'
    id 'eclipse'
    id 'org.springframework.boot' version '2.7.11'
    id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}

group = 'com.mins-study'
version = '1.0-SNAPSHOT'
sourceCompatibility = '11'


configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
    jcenter()
}


dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-web'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

tasks.named('test') {
    useJUnitPlatform()
}

 

댓글