본문 바로가기
Spring

2022-09-20 스프링(Spring)

by allwing12 2022. 9. 21.
package com.mysite.sbb;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class MainController {
    public static int i = 1;

    @RequestMapping("/sbb")
    @ResponseBody
    public String index() {
        System.out.println("sbb");
        return "sbb";
    }

    @GetMapping("/plus")
    @ResponseBody
    public int plus(int a, int b) {
        return a+b;
    }


    @GetMapping("/minus")
    @ResponseBody
    public int minus(int a, int b) {
        return a-b;
    }

    @GetMapping("/increase")
    @ResponseBody
    public int increase () {
        if (i < 3){
            ++i;
        } else if (i <= 3) {
            i = 1;
        }
        return i;
    }

    @GetMapping("/gugudan")
    @ResponseBody
    public String gugudan (int dan, int limit) {
        String result = "";
        for(int i = 1; i <= limit; i++) {
            result += dan + " * " + i + " = " + (dan * i) + "<br/>\n";
        }
        return result;
    }
}

 

스프링을 시작했다, 인텔리제이로 스프링을 시작을 했으며 sbb라는 데이터베이스를 만들고 시작했다.

위의 코드는 메인컨트롤러를 만들어서 덧셈,뺄셈,increase 라는 카운트 되는 것, 구구단을 만들었다.

스프링을 처음 시작하는데 구구단을 만들거나 덧셈,뺄셈,increase를 하는 건 어렵진 않았는데

아무래도 헷갈리는게 좀 많았던 것 같기도 하고 내가 어렵게 생각한게 많이 있는 것 같다.

 

우선 GetMapping 이나 RequestMapping 이 있는데 이 부분은 () 안에 있는 주소를 매핑해준다 생각하면 된다.

근데 RequestMapping은 어디에서나 사용을 할 수 있는거고 GetMapping은 이전에 포스트맨을 생각하면 된다.

GetMapping이 될 수 있고 PostMapping이 될 수 있는데 웹을 어떻게 만들거냐에 따라서 차이가 있다고 보면 된다.

그래서 시작 자체는 Mapping을 해주고 ResponseBody라는 것을 통해서 Body 에 표현할 것을 써내려간다.

 

그런데 ResponseBody 안에 있는 모든 내용을 렌더링 하는게 아니다.

우선 구구단을 예를 들면 GetMapping에 () 안에 쓴 /gugudan이라는 글이 있는데 일단 포트는 따로 정해놨다.

그래서 내가 gugudan 이라는 변수에 쓴 내용을 보기 위해서는 localhost:포트번호/gugudan에 들어가면 들어가진다.

그리고 gugudan 이라는 변수에 () 안에 int dan, int limit 라고 써놨는데 이것도 되게 신기했다.

주소안에 dan 과 limit 의 값을 넣어고 gugudan 변수 안에 쓴 for문 을 그 페이지에서 볼 수 있다.

예를 들어서 localhost:포트번호/gugudan?dan=8&limit=7 이런식으로 하면 for문을 통해 8단을 8*7까지를 볼 수 있다.

 

즉, 주소 안에 dan과 limit의 값에 따라 gugudan 변수에 선언된 for문안의 limit까지 값이 표현된다.

그렇기 때문에 꼭 시작할 땐 Mapping을 해야하고 ResponseBody 안에 렌더링 값을 써줘야 한다.

 

댓글