※IDEA 는 유료버전입니다. 맛보기 순대.
새 프로젝트를 만들어 줍니다.
Java, Gradle - Groovy, 21, Jar check! → [ Next ]

저희는 3.2.2 버전을 사용합니다. 사진보고 전부 체크해주세요!


![최종으로 이렇게 7개 체크!하고 [Create]하세요!](https://image.inblog.dev?url=https%3A%2F%2Fwww.notion.so%2Fimage%2Fhttps%253A%252F%252Fprod-files-secure.s3.us-west-2.amazonaws.com%252F856bb7c3-0327-47da-91c8-dd13a27d6ed0%252Ff110dcbe-2a0d-4692-8b37-3714d946d45a%252FScreenshot_72.png%3Ftable%3Dblock%26id%3Df3beda45-a0b4-41f5-bcae-405607f49a47%26cache%3Dv2&w=2048&q=75)
처음으로 사용해 볼 메서드 입니다.
package com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloController { public HelloController(){ System.out.println("HelloController 컴포넌트 스캔됨"); } @GetMapping("/hello") public void home(){ System.out.println("home 호출됨"); } }
IOC (Inversion of Control = 제어의 역전) 오늘 꼭! 알아가셔야 합니다.
객체를 생성하려면 @RestController 어노테이션을 사용하셔야 합니다. IOC가 자신의 영역(static)에 자료형을 담습니다. 원래 개발자가 객체를 생성하지만 spring이 하는 겁니ㅏㄷ.
메인 클래스 입니다.
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }

웹브라우저에서 http://localhost:8080/hello 로 접근할 수 있습니다.


이번엔 두 엔드포인트가 같게 해봅니다.
@GetMapping("/hello") // hello public void home(){ System.out.println("home 호출됨"); } @GetMapping("/hello") // 동일하죠 public String hello(){ String name = "홍길동"; return "<h1>hello"+name+"</h>"; }
❗❗실행중인 메인 클래스를 다시 실행해주세요❗❗

————홍길동 실행중————


랜덤한 수를 포함한 문자열을 반환하는 메소드를 추가해봐요~
@GetMapping("/random") public String hello(){ Random r = new Random(); int num = r.nextInt(5)+1; return "<h1>Random"+num+"</h>"; }
/hello 처럼 동일한 대답이 온다면 정적 데이터로 캐싱해서 쓰는게 조흣ㅂ니ㅏ. HTTP 헤더 중 하나로, 브라우저나 다른 캐시 저장소에 응답의 복사본을 저장하지 말아야 함을 나타냅니다.
/random은 동적 데이터니까 캐싱할 필요가 없죠
∴캐시하지 않음 (아직 어디쓰는 지 모르겠어요 추후에 사용하겠습니다~)
Cache-Control: no-store
Share article