Backend/SpringBoot

[VSCode] 코틀린 기반 SpringBoot 설정 (윈도우)

Dean83 2024. 10. 21. 10:57

자바 기반으로 되어 있는것은 간편하게 설정이 가능하나, 코틀린 기반으로 된 스프링부트 설정하는데에 애를 먹었다. 

 

굳이 VSCode가 아닌 다른 IDE를 사용하면 되는데 VSCode를 쓴 이유는, 범용적이고 여러 방면에서 쓸 수 있기 때문이다.

프론트엔드 개발을 하든지, 기타 다른 개발을 할때도 사용이 가능하고 무료이기 때문에 기를 쓰고 VSCode 세팅법을 찾았다.

 

VSCode를 쓰지 않아도 된다면, 무료툴인 https://spring.io/tools 를 쓰는걸 추천한다

  • 이 중 spring tools for eclipse 버전을 설치하면 된다.
 

Spring | Tools

 

spring.io


물론 코틀린 기반이 아닌 Java 기반은 VSCode에서도 매끄럽게 잘 동작 한다. 
기본적인 VSCode 설치나 JDK 설치 등은 워낙 잘 나와 있으므로 넘어간다. 

 

  • 코틀린 컴파일러 설치
    • VSCode에서 코틀린을 사용하기 위해서 반드시 설치해야 한다.
    • https://github.com/JetBrains/kotlin/releases  여기서 원하는 버전을 찾아 누른 후 쭉 내리면, kotlin-compiler.xxx.zip 이 있다. 반드시 compiler.zip을 받자. kotlin-native 아니다.
    • 압축을 풀고, 압축 푼 폴더 -> bin 폴더 경로를 환경설정에 추가 하자. 

 

  • VSCode Extension 추가
    • Code Runner
    • Spring Initializr
    • 그외 각종 Kotlin, Spring boot extension 들을 받아준다. 
    • gradle 로 검색하여 java나 spring boot, kotlin 관련된 것들을 받아준다. 

 

  • 프로젝트 생성
    • VSCode 상단 -> View -> Command Palett -> Spring Initalizr : Create Gradle Project 클릭
    • 프로젝트 이름, 자바버전, 스프링 버전, 사용 언어 (자바, 코틀린중 선택) 을 설정한다
    • Dependency 설정에서, 롬복, Spring Web 등을 추가한다.
      • 롬복 : getter, setter 등을 어노테이션을 통해 자동으로 생성해주는 라이브러리
    • 테스트를 위해 프로젝트 폴더 -> resources 폴더 -> static 폴더 (위의 dependency 에서 spring web 을 선택했으면 생겨 있다) -> index.html 추가 하여 내용을 적절히 적는다.

 

  • 프로젝트 빌드 및 실행
    • Java 를 언어로 선택하였다면, 그냥 상단의 실행버튼 혹은 소스코드 함수 시작점에 Run을 클릭하면 되나, 코틀린은 터미널에서 빌드 -> 실행 과정을 거쳐야 한다.
    • Java 를 언어로 선택하였다면, Spring Boot Dashboard (Extension 에서 추가) 에서 실행 할 수 있다.
      • 해당 extension은 코틀린은 지원하지 않는다. 
    • 코틀린 기반으로 빌드, 실행하기 위해선 다음을 따른다
      • 터미널에서 gradlew 가 있는 위치로 이동한다 (dir...)
      • ./gradlew jar   명령어 실행 (빌드 명령어)
      • ./gradlew bootrun 명령어 실행 (빌드 + 실행 명령어)
    • 브라우저에서 localhost:8080 으로 접근 가능하다. 
    • 만일 VSCode 좌측에 Gradle 아이콘이 뜬다면, https://dean83.tistory.com/231 여기를 참조하여 빌드, 실행 할 수 있다. 
      • 나같은 경우 안뜨다가, VSCode 상단 메뉴중 File -> Add Folder to workspace -> 프로젝트 내부 폴더 전체 선택 (gradle, bin, src 등등)
      • VSCode 껐다가 다시 켠 다음 백그라운드 작업이 완료될때 까지 기다리니 떴다.
      • => 폴더를 열 때 프로젝트 폴더 -> gradle, bin, src 등등 폴더가 있는 상태에서 선택하여 여니 떴다.


  • 스프링부트 기본 구조
    • 크게 다음의 구조로 이루어 진다.  
    • Entity 생성
      • DB 테이블 및 컬럼 매핑 클래스
      • DTO로 확장 가능하다.
    • Repository 생성
      • Entity를 이용해 DB CRUD 동작 수행하는 인터페이스
        • findby 함수 활용
    • Service 생성
      • Repository 인터페이스를 외부에 감추고, 서비스에서 이용하여 DB CRUD 동작을 한다.
      • 컨트롤러에서 서비스를 이용해 Repository 동작을 수행
    • Controller 생성
      • url 주소를 매핑하여 Service를 통해 데이터 입력, 조회 후 리턴