๐Ÿ”ฅ #1 yml ์„ค์ • (Feat. Xml๊ณผ Json)

myeonjiยท2022๋…„ 2์›” 14์ผ
0

Xml, Json, yml ์ฐจ์ด

  • yml ๊ทœ์น™ : key์™€ value ์‚ฌ์ด์— ์ŠคํŽ˜์ด์Šค ํ•œ ์นธ, ๋“ค์—ฌ์“ฐ๊ธฐ ์ŠคํŽ˜์ด์Šค ๋‘ ์นธ
  • ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” yml์— ๋ชจ๋“  ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ๊ณ , yml ๊ทœ์น™์„ ์ง€์ผœ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.
  • json์„ ์“ธ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์šฉ๋ฒ•์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

< application.yml >

server:
  port: 8000
  servlet:
    context-path: /blog
    encoding:
      charset: UTF-8
      enabled: true
      force: true

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp

  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3307/blog?serverTimezone=Asia/Seoul
    username: yj
    password: yj0118

  jpa:
    open-in-view: true
    hibernate:
      ddl-auto: create
      naming:
        physical-strategy: org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
      use-new-id-generator-mappings: false
    show-sql: true
    properties:
      hibernate.format_sql: true

  jackson:
    serialization:
      fail-on-empty-beans: false

์œ„์—์„œ๋ถ€ํ„ฐ ๋œฏ์–ด๋ณด์ž!!

๐ŸŽƒ ์ฒซ๋ฒˆ์งธ server

server:
  port: 8080
  servlet:
    context-path: /

์›๋ž˜๋Š” ์œ„์ฒ˜๋Ÿผ ํฌํŠธ 8080์— ๋”ฐ๋กœ ์ปจํ…์ŠคํŠธ ํŒจ์Šค๋ฅผ ์ •ํ•ด์ฃผ์ง€ ์•Š์•„ ๊ทธ๋ƒฅ / ๋กœ ์‚ฌ์šฉํ–ˆ๋‹ค.
์˜ˆ๋ฅผ ๋“ค๋ฉด "localhost:8080/http/test" ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•œ ๊ฒƒ์ด๋‹ค.

server:
  port: 8000
  servlet:
    context-path: /blog

๋ณ€๊ฒฝํ•˜์—ฌ์„œ ์ด๋ ‡๊ฒŒ ์ง€์ •ํ•˜๊ฒŒ ๋˜๋ฉด "localhost:8000/blog/http/test" ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

๐ŸŽƒ ๋‘๋ฒˆ์งธ datasource

datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3307/blog?serverTimezone=Asia/Seoul
    username: yj
    password: yj0118

์ด์ „์— ์„ค์ •ํ–ˆ๋˜ ๊ฒƒ ๊ทธ๋Œ€๋กœ!! ์—ฌ๊ธฐ

๐ŸŽƒ ์„ธ๋ฒˆ์งธ spring - jspํŒŒ์ผ ์ธ์‹์„ ์œ„ํ•œ ์„ค์ •

@Controller // ๋ฐ์ดํ„ฐ ๋ฆฌํ„ด(Json ๋“ฑ)์ด ์•„๋‹Œ "ํŒŒ์ผ" ๋ฆฌํ„ด (<-> @RestController ๋ž‘์€ ๋‹ค๋ฆ„)
public class TempControllerTest {

    // http://localhost:8000/blog/temp/home
    @GetMapping("/temp/home")
    public String tempHome() {
        System.out.println("tempHome()");
        // ํŒŒ์ผ๋ฆฌํ„ด ๊ธฐ๋ณธ๊ฒฝ๋กœ : src/main/resources/static ์ธ๋ฐ
        // return "home.html"; ๋ผ๊ณ  ํ•˜๋ฉด
        // ํŒŒ์ผ๋ฆฌํ„ด ํ’€๊ฒฝ๋กœ : src/main/resources/statichome.html ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.

        // ๋”ฐ๋ผ์„œ ํŒŒ์ผ๋ฆฌํ„ด ๊ธฐ๋ณธ ๊ฒฝ๋กœ์— ๋ฆฌํ„ด๋ช…์„ /home.html ๋กœ ํ•˜๋ฉด
        // ํŒŒ์ผ๋ฆฌํ„ด ํ’€๊ฒฝ๋กœ : src/main/resources/static/home.html
        return "/home.html";
    }
}

์œ„์—๋Š” ํ…œํ”Œ๋ฆฟ ์—”์ง„์„ html์„ ์ผ์ง€๋งŒ, jsp๋ฅผ ์“ฐ๊ณ  ์‹ถ๋‹ค๋ฉด?
-> ์Šคํ”„๋ง๋ถ€ํŠธ๋Š” jsp๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ฆ‰, jsp๋ฅผ ๋ฆฌํ„ดํ•ด๋„ ์ •์ƒ๋™์ž‘ํ•˜์ง€ ์•Š๋Š”๋‹ค.

static ์•„๋ž˜๋Š” ์ •์ ํŒŒ์ผ์ด ์žˆ์–ด์•ผ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š”๋ฐ, jsp๋Š” ์ •์ ํŒŒ์ผ์ด ์•„๋‹ˆ๋‹ค. ๋™์ ํŒŒ์ผ์ด๋‹ค.

๋”ฐ๋ผ์„œ ํ•„์š”ํ•œ ๊ฒƒ!
< pom.xml >

<!-- JSP ํ…œํ”Œ๋ฆฟ ์—”์ง„ -->
		<dependency>
			<groupId>org.apache.tomcat.embed</groupId>
			<artifactId>tomcat-embed-jasper</artifactId>
		</dependency>  

< application.yml >

spring:
  mvc:
    view:
      prefix: /WEB-INF/views/
      suffix: .jsp

prefix๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ๋ฆฌํ„ดํ•  ๋•Œ ์•ž์— ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒฝ๋กœ๋ช…์ด๊ณ , suffix๋Š” ๋’ค์— ๋ถ™์—ฌ์ฃผ๋Š” ๊ฒฝ๋กœ๋ช…์ด๋‹ค.
๋”ฐ๋ผ์„œ src/main/webapp/WEB-INF/views ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง์ ‘ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.

	@GetMapping("/temp/jsp")
    public String tempJsp() {
        // prefix: /WEB-INF/views/
        // suffix: .jsp
        // return "/test.jsp";
        // ํ’€๊ฒฝ๋กœ๋Š” /WEB-INF/views//test.jsp.jsp ์ด ๋œ๋‹ค.

        // ํ•˜์ง€๋งŒ return "test"; ๋กœ ํ•œ๋‹ค๋ฉด
        // ํ’€๊ฒฝ๋กœ๋Š” /WEB-INF/views/test.jsp ์ด ๋˜์–ด ์ฐพ์•„์ง€๊ฒŒ ๋œ๋‹ค.
        return "test";
    }

์ด๋ฏธ ๋’ค์— ํ™•์žฅ์ž๋ช…์„ ์„ค์ •ํŒŒ์ผ๋กœ ์ถ”๊ฐ€ํ–ˆ์œผ๋ฏ€๋กœ, return์—๋Š” ์œ„์ฒ˜๋Ÿผ ํŒŒ์ผ์ด๋ฆ„ ๋งŒ์„ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

์ •๋ฆฌํ•˜์ž๋ฉด, !!!
๐Ÿ’ก ํ†ฐ์บฃ(์š”์ฒญํ•œ ํŒŒ์ผ ์ค‘ ์ž๋ฐ” ํŒŒ์ผ์ด ์žˆ์œผ๋ฉด ์ปดํŒŒ์ผ ํ•˜์—ฌ htmlํŒŒ์ผ๋กœ ๋ฒˆ์—ญํ•ด์„œ ์‘๋‹ตํ•˜๋Š” ์นœ๊ตฌ) :
์–ด? jsp ํŒŒ์ผ์ด๋„ค? ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ java ํŒŒ์ผ์ด๊ตฌ๋‚˜!
์›น ์„œ๋ฒ„์˜ ์•„ํŒŒ์น˜(์ •์ ํŒŒ์ผ ์‘๋‹ตํ•˜๋Š” ์นœ๊ตฌ)์•ผ! ์ด๊ฑด ๋„ˆ๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์•„๋‹ˆ๋‹ˆ๊นŒ ํ†ฐ์บฃ์ธ ๋‚ด๊ฐ€ ์ด ํŒŒ์ผ์„ ์ปดํŒŒ์ผ ํ•ด์„œ htmlํŒŒ์ผ๋กœ ์‘๋‹ตํ• ๊ฒŒ. ๊ทธ๋Ÿผ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์„๊ฑฐ์•ผ!

์—ฌ๊ธฐ์„œ ๋” ์ž์„ธํžˆ!

profile
๐Ÿ“š

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