[Spring Boot] Hello World ์ถœ๋ ฅํ•˜๊ธฐ

DANIยท2023๋…„ 9์›” 22์ผ
0
post-thumbnail

๐Ÿ“• ์Šคํ”„๋ง๋ถ€ํŠธ(Spring Boot)๋ž€?

์ž๋ฐ”์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ๋กœ ๊ธฐ์กด ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ(Spring Framework)์— ํ†ฐ์บฃ ์„œ๋ฒ„๋ฅผ ๋‚ด์žฅํ•˜๊ณ  ์—ฌ๋Ÿฌ ํŽธ์˜ ๊ธฐ๋Šฅ๋“ค์„ ์ถ”๊ฐ€ํ•˜์—ฌ ๊พธ์ค€ํ•œ ์ธ๊ธฐ๋ฅผ ๋ˆ„๋ฆฌ๊ณ  ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

โ“ ์Šคํ”„๋ง๋ถ€ํŠธ(Spring Boot)์˜ ์žฅ์ 

โœ… ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” ํŠผํŠผํ•˜๋‹ค.
โœ… ์Šคํ”„๋ง๋ถ€ํŠธ์—๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ์ด ์ค€๋น„๋˜์–ด ์žˆ๋‹ค.
โœ… ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” WAS(Web Application Server)๊ฐ€ ๋”ฐ๋กœ ํ•„์š” ์—†๋‹ค.
โœ… ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” ์„ค์ •์ด ์‰ฝ๋‹ค.




๐Ÿ“– ์Šคํ”„๋ง๋ถ€ํŠธ ๋ง›๋ณด๊ธฐ

๋ธŒ๋ผ์šฐ์ € ์ฃผ์†Œ์ฐฝ์— http://localhost:8080/hello ๋ผ๋Š” URL์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ๋ธŒ๋ผ์šฐ์ € ํ™”๋ฉด์— "Hello World"๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ์›น ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•ด๋ณด์ž!

์—ญ์‹œ ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์‹œ์ž‘์€ "Hello World"์ง€..!!

1. ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ ์ƒ์„ฑํ•˜๊ธฐ

์šฐํด๋ฆญ ํ›„ ์Šคํ”„๋ง ์Šคํƒ€ํ„ฐ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

์Šคํ”„๋ง๋ถ€ํŠธ ๋ฒ„์ „๊ณผ ์Šคํ”„๋ง ์›น์— ์ฒดํฌ ํ›„ Finish




2. HelloController๋ผ๋Š” ํด๋ž˜์Šค ์ƒ์„ฑ

package com.mysite.sbb;

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

@Controller // ์ปจํŠธ๋กค๋Ÿฌ์˜ ๊ธฐ๋Šฅ(์ž๋ฐ”๋กœ ์น˜๋ฉด main) ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์˜๋ฏธ
public class HelloController {
	
	@GetMapping("/hello") 
	// http://localhost:8080/hello /hello url๊ณผ hello()๋ฉ”์„œ๋“œ๋ฅผ ๋งคํ•‘ํ•œ๋‹ค
	
	@ResponseBody
	// hello() ๋ฉ”์„œ๋“œ์˜ ๋ฆฌํ„ด๊ฐ’์ด ๋ฌธ์ž์—ด ๊ทธ ์ž์ฒด์ž„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
	public String hello() {
		return "Hello World";
	}

โ“ ์ ์šฉ๋œ ์• ๋„ˆํ…Œ์ด์…˜


  • @Controller
    : ์ปจํŠธ๋กค๋Ÿฌ์˜ ๊ธฐ๋Šฅ(์ž๋ฐ”๋กœ ์น˜๋ฉด main) ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์˜๋ฏธ
  • @GetMapping("/hello")
    : http://localhost:8080/hello /hello url๊ณผ hello()๋ฉ”์„œ๋“œ๋ฅผ ๋งคํ•‘ํ•œ๋‹ค
  • @ResponseBody
    : hello() ๋ฉ”์„œ๋“œ์˜ ๋ฆฌํ„ด๊ฐ’์ด ๋ฌธ์ž์—ด ๊ทธ ์ž์ฒด์ž„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.



3. ๋กœ์ปฌ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐ




๐Ÿ”ต ์‹คํ–‰ ๊ฒฐ๊ณผ

๐Ÿšซ Error ๋ฐœ์ƒ

๐Ÿ˜‚ ์™œ ๋‚˜๋Š” ํ—ฌ๋กœ ์›”๋“œ๋ถ€ํ„ฐ ์•ˆ ๋œจ๋Š” ๊ฑฐ์ง€...? ๐Ÿ˜‚ 404์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค!


โ— ์˜ค๋ฅ˜ ์ฐพ๊ธฐ

์šฐํด๋ฆญ ํ›„ Rus As -> Run Configurations

8080ํฌํŠธ๊ฐ€ ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ด๋ผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ํ•œ๋‹ค!



๐Ÿ”‘ ํ•ด๊ฒฐ ๋ฐฉ์•ˆ


โœ… 1. ํ˜„์žฌ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

โœ… 2. ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํ–‰ ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

โœ… 3. static์— index.htmlํŒŒ์ผ ์ƒ์„ฑ



๐Ÿ”‘ 1. ํ˜„์žฌ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•œ๋‹ค.

โœ” cmd์ฐฝ ์—ด๊ณ  ๋ช…๋ น์–ด "netstat -ano" ์ž…๋ ฅ

โœ” 8080 ํฌํŠธ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋Š” 16460 ์ข…๋ฃŒ ์‹œํ‚ค๋Š” ๋ช…๋ น์–ด "taskkill /f /pid 16460" ์ž…๋ ฅ

โœ” ๋กœ์ปฌ์„œ๋ฒ„ ์žฌ์—ฐ๊ฒฐ

๐Ÿ˜‚ ์‘.. ์•ˆ๋ผ... ์นจ์ฐฉํ•˜๊ฒŒ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜์ž...!




๐Ÿ”‘ 2. ์‹คํ–‰ํ•˜๋ ค๊ณ ํ•˜๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํ–‰ ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค.

โœ” application.properties์—์„œ ํฌํŠธ ๋ฒˆํ˜ธ 80์œผ๋กœ ๋ณ€๊ฒฝ server.port=80

โœ” ๋กœ์ปฌ์„œ๋ฒ„ ์žฌ์—ฐ๊ฒฐ

๐Ÿ˜‚ ์—ฌ์ „ํžˆ ์•ˆ๋œ๋‹ค.. ๊ฒ€์ƒ‰ํ•ด๋ณด๋‹ˆ index.html ํŒŒ์ผ์„ ์ƒ์„ฑํ•ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค!



๐Ÿ”‘ src/main/resources -> static -> index.html ํŒŒ์ผ ์ƒ์„ฑ


๋“œ๋””์–ด ๋๋‹ค..

๐Ÿ’ก ์Šคํ”„๋ง ๊ตฌ๋™ ์‹œ ์ฒ˜์Œ์—๋Š” ๋ฌด์กฐ๊ฑด index.html ์„ ์ฐพ๊ฒŒ ์„ค์ •์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— index.html์„ ๋งŒ๋“ค์–ด๋‘์ง€ ์•Š์œผ๋ฉด ์ด๋Ÿฐ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค







โœจ ์ด๋ฒˆ ์ฑ•ํ„ฐ์—์„œ ๋ฐฐ์šด ๋ถ€๋ถ„

โœ… 404์—๋Ÿฌ ๋ฐœ์ƒ์‹œ ํ•ด๊ฒฐ๋ฐฉ์•ˆ

๐Ÿ“ ๊ณต๋ถ€ํ•  ๋ถ€๋ถ„

โœ… spring ๊ตฌ๋™ ์‹œ index.html์„ ์ฐพ๋Š” ์ด์œ ?

0๊ฐœ์˜ ๋Œ“๊ธ€