# 02. Controller 만들기

## <span style="white-space: pre-wrap;">01. 컨트롤러 만들기 </span>

**프로젝트를 생성했으니 이제 예시로 페이지를 만들어 보려한다.**

**http://localhost:8080/hello 라는 URL을 만들어 테스트할 것이며,**

**해당 요청을 받기 위해선 컨트롤러를 만들어서 사용하여야 한다.**

**\* 컨트롤러는 클라이언트에서 받은 요청을 관리하는 자바의 클래스이다.**  
  
  
**프로젝트의 메인 파일을 우클릭하여 Class를 새로 만들어 준다**

![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-08/scaled-1680-/zM8OHUpxjGPEDbRE-image.png)

**컨트롤러 명을 입력 후 생성해준다.**

![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-08/scaled-1680-/lqu3bWfnZwJ8DGAu-image.png)

**정상적으로 컨트롤러 클래스가 생성됨을 확인**

![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-08/scaled-1680-/kaXkLWjJSCtlGTii-image.png)

**위 코드는 그냥 기본 템플릿이므로 아래와 같이 내용을 추가해주자**

```java
package com.example.demo;

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

@Controller
public class HelloController {
    @GetMapping("/hello")
    @ResponseBody
    public String hello() {
        return "Hello World";
    }
}
```

**\* 파이썬만 해보고 자바를 아직 몰라서 조금 헷갈린다.**

**@ 표시가 java에선 무슨 의미일까**

**-&gt; 어노테이션이라고 한다.**

**-&gt; 컴파일러, 런타임, 프레임워크에 "이 코드에 이런 의미가 있다." 알려주는 것**

**-&gt; 주석과는 다른 개념, 어노테이션은 컴파일러, 프레임워크가 읽고 동작을 바꾸기도 함**

**@Controller**

**-&gt; HelloController 클래스가 컨트롤러의 기능을 수행한다고 알려줌**

**@GetMapping("/hello")**

**-&gt; URL 요청이 발생하면 hello 메서드가 실행됨을 의미**

**-&gt; Get 방식의 URL 요청을 사용 -&gt; @GetMapping 사용**

**-&gt; Post 방식의 URL 요청을 사용 -&gt; @PostMapping 사용**

**@ResponseBody**

**-&gt; 메서드의 출력 결과가 문자열 그 자체임을 나타냄**

**-&gt; 해당 어노테이션이 없으면 "hello World"라는 html파일을 찾음**

**-&gt; 해당 어노테이션을 사용해 "hello World"라는 문자열 자체를 출력 (명령어로써 동작하지 않도록)**

**-&gt; 반대되는 예로 위의 "/hello" 는 @ResponseBody어노테이션이 적용되어 있지 않기 때문에 /hello 라는 html 파일을 찾아 '매핑'한다.**

**-&gt; 매핑한다. = 특정 URL 경로를 서버의 특정 메서드와 연결**

## 02. 로컬 서버 실행하기

**앞에서 사용자 요청을 철히하는 컨트롤러를 만들었으니 제대로 작동하는지 확인해보자**

**그러기 위해선 로컬 서버를 실행하여야 한다.**

**Boot Dashboard 기능에서 프로젝트를 선택한 후 재생버튼을 눌러주자.**

![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-08/scaled-1680-/54E0GX1JRadjomvr-image.png)

**로딩 마크가 돌아가면서 서버가 실행됨을 확인**

![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-08/scaled-1680-/WdlDntnlFGWsdvhK-image.png)

**이제 테스트를 위해 브라우저를 열고** [**http://localhost:8080/hello**](http://localhost:8080/hello "로컬호스트") **로 진입해보자**

![image.png](https://www.ochidstudy.com/uploads/images/gallery/2025-08/scaled-1680-/QjXGElKESTUFVfZR-image.png)

**정상적으로 웹서버가 구동되어, 접근이 가능함을 확인**