Home
Backend Engineering
Kotlin을 사용한 Spring Boot 개발기 - Controller (@RequestParam, @PathVariable)
울이
울이
December 28, 2021
1 min

Table Of Contents

01
Spring Boot 와 Kotlin
02
Kotlin으로 Controller 작성하기

Kotlin을 사용해서 SpringBoot를 개발 해 보려고 한다.

심심하기도 하고(?) 해서, Spring으로 다시 개발 프로젝트 하나 해보자! 라는 생각을 하게 되었고 만드는 김에 Kotlin으로 만들어보자 하는 생각이 들어서 시작을 해 보게 되었다.

두서가 없을 수 있지만, 개발하면서 찾아 보는 내용들을 정리해야겠다.

Spring Boot 와 Kotlin

세팅과 관련된 글은 이미 많은 분들이 작성 해 주셨기때문에 따로 적지 않으려고 한다. (다들 이미 너무 잘 정리 해주셨다)

LinkedIn 과 비슷한 프로젝트를 만들어 보려고 한다. 데모 프로젝트지만 많은 사람들을 연결 할 수 있는 경험들을 해 보고싶다.

Kotlin으로 Controller 작성하기

User와 관련 된 컨트롤러를 먼저 작성했다.

Image.png
Image.png

가장 기본이 되는 Application.kt가 들어있는 패키지 내에, Controller 패키지를 세팅하고 아래에 kotlin 파일을 만들었다.


테스트니까, GetMapping에서 인사를 해보자 - queryParam

컨트롤러로 뭘 할까 생각하다가 GetMapping으로 간단하게 테스트를 해 보자! 라는 생각이 들었다. GetMapping으로 GET 요청들을 받아주려고 했고, 들어오는 queryParam을 정해서 확인하는 코드를 작성했다.

query parameter를 받아주는 어노테이션은 @RequestParam 이다.

package com.example.linkwithbackend.controller

import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.*
import java.util.*

@Controller
@RestController
@RequestMapping("/user")
class UserController {

    @GetMapping()
    fun getUser(@RequestParam(required = false) name: Optional<String>): String {
        return "Hello ${name.orElse("World")}"
    }
}

Query Parameter가 안들어 올 수 있다는 생각을 했고, 그럼에도 잘 동작하게 하고 싶어 옵션을 주고싶었다.

이전에 Java기반의 Spring과는 다르게 (required=false) 로만 옵션을 준 것이 아니라, 파라미터 변수의 자료형에 Optional<T> 를 주었다.

변수(query parameter) 가 들어온다면 들어온 것을 보여주고, 아니라면 World 를 출력하도록 return 값을 만들어서 각각의 상황에 대응하도록 만들었다.

Image.png
Image.png


테스트니까, GetMapping에서 인사를 해보자 - PathVariable

Query Parameter 말고도, url path에 변수를 주는 방법도 체크 해 보자.

url들은 http://www.abcd.com/user/1 맨 뒤의 1과 같이, 나타내고자 하는 resource의 가변적인 변수를 주기도 한다. GET 요청에서 뿐 아니라 많은 곳에서 사용 할 수 있기에 한번 간단히 사용해봤다.

@GetMapping("/{idx}")
    fun getUserDetail(@PathVariable("idx") idx:Int):String{
        return "Hello User Detail $idx"
    }

아까와 같은 컨트롤러 내부에서 작성을 했고, idx라는 변수를 PathParam으로 잡았다. 이 변수를 받아주는 어노테이션은 @PathVarable이고, 저장 했던 변수 이름을 그대로 사용하면 된다.

Image.png
Image.png


Next Todo

다음 포스트에서는 POST 와 관련된 친구들을 간단히 살펴보고, Return 객체를 잘 설정 해 봐야겠다. 그리고 이어서 간단한 느낌을 잡았으니 이제 사용자 정보와 관련된 기능들을 개발 해 봐야겠다

  • 사용자 테이블만들기
  • 사용자 CRUD
  • 로그인

Tags

#Spring#Java#Kotlin#RequestParam#PathVariable
Previous Article
Kotlin을 사용한 Spring Boot 개발기 - Controller (@requestBody, Dto 생성하기)
울이

울이

개발자 울이

경험하고 사용하고 개선하는 것, 그리고 소통하면서 성장하는 것을 좋아합니다.

Expertise

Backend
Frontend
Data Engineering

Social Media

githublinkedinwebsiteinstagram

Related Posts

ActiveMQ와 JMS를 사용한 SpringBoot 메시지
ActiveMQ와 JMS를 사용한 SpringBoot 메시지
December 24, 2022
1 min
© 2023, All Rights Reserved.

Quick Links

Home

Social Media