NodeJS에서 Spring 전환하기 1

장달진·2024년 4월 19일

프로젝트 생성하기

NestJS개발자에서 Spring 개발자로 전환하려고 시도해보는 이야기

프로젝트 생성

spring initializr 을 사용해서 Spring Boot 만들기

예전에 안드로이드 개발을 했던걸 경험 삼아 언어는 다 기억이 나니까 Kotlin으로 시작해보자

프로젝트 생성

나에게 가장 익숙한 Gradle - Kotlin을 선택하였다.
버전은 Stable로 보이는 3.2.5

아래의 프로젝트 정보는 개인에 맞게 수정하도록 하자

Java 버전의 경우 22는 글을 쓴 기준 너무 최근이고 혹시 모를 호환성 문제가 있을 수도 있기에 21로 선택하였다

타입스크립트마냥 버전 올렸다고 징징거릴 수도 있으니까..?

의존성

의존성은 나중에 추가해도 되지만 npm과 비교하면 상당히 편리하게 되어 있는 것 같다. Node진영은 이니셜라이저가 없어서 프로젝트 생성 후에 다 알아서 추천해주는데 여긴 프로젝트 생성할 때 추가 할 수 있다니 조으다!

RESTful관련 프로젝트를 진행할 거니까 Spring Web을 추가하고
디비는 바로 사용할 수 있는 JDBC를 지원하는 H2를 추가했다.

프로젝트 실행하기

IDE를 뭐로 쓸까 고민을 하다가 그래도 기존에 쓰던 VS Code를 계속 사용하려고 했는데 Extension이 뭔가 잘 작동하지 않고 자바 17버전까지만 지원하는 것 같다. Kotlin 버전을 인식을 못하는건지 자꾸 빨간줄이 뜬다 :(

지인들에게 물어본 결과 IntelliJ 사용하는게 건강에 좋을거라고 알려주셔서 사용하기로 했다
회사에게 요청하면 결제는 해주긴 하지만 첫걸음이니까 대학생 시절의 배고픈 시절을 생각하며 Community버전을 사용해보록 하자
IntelliJ CE

안드로이드 하던 시절이 생각났다. 새로운 UI도 있는 것 같긴한데 예전이라도 했던 기억이 있어서 구버전을 그대로 사용해보자
Home

최초 생성하고 나서 main.ktStudyApplication.kt가 따로 있는게 마음에 안 들어서 합쳐보았다
JvmStatic을 별로 사용하고 싶지 않았는데 main.kt가 맘에 안들었다

package daljin.spring.study

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication

@SpringBootApplication
class StudyApplication {
    companion object {
        @JvmStatic
        fun main(args: Array<String>) {
            runApplication<StudyApplication>(*args)
        }
    }
}

NodeJS에서 node ./index.js처럼 실행하는 것이 없어서 당황했다.
설정 버튼
이 부분에 들어가서 Configurations를 추가해줘야 실행된다. 커맨드로도 가능한 것 같으나 아직은 초보자라 넘어가자

configuration
모듈이 main / test가 기본적으로 생성되고 main에 들어있으니까 cp는 study.main을 선택했고 main()의 위치를 찾아서 연결해주도록 하자

실행 터미널 1
그러고 Run을 누르면 이러한 이미지를 볼 수 있다. 정상적으로 실행됐으며

실행 터미널 2
스프링에는 내장 Tomcat이 있나보다. 옛날 JSP 할때는 톰캣 다운 받고 지정해줬던 것으로 기억하는데 스프링이 왜 흥했는지 아는 부분이지만 Node에도 ExpressJS부터 있다고요

다음 시간에는 어노테이션을 부셔보자!

profile
아무것도 모르는 개발자

0개의 댓글