Spring

Spring ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ์„ค์ • [ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ / ๋นŒ๋“œ ์‹คํ–‰]

2021. 6. 5. 22:45
๋ชฉ์ฐจ
  1. ํŒŒ์ผ์ƒ์„ฑ
  2. ๊ธฐ๋ณธ ์„ธํŒ…
  3. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ดํŽด๋ณด๊ธฐ
  4. ์›น ํŽ˜์ด์ง€ ์ƒ์„ฑ
  5. ๋™์ ํŽ˜์ด์ง€ ๋™์ž‘ ์›๋ฆฌ

๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๊ฐœ๋ฐœํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋จผ์ € ์—ฌ๋Ÿฌ๊ฐ€์ง€๋ฅผ ๊ณต๋ถ€ํ•ด๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค!

( ํ•˜๋‚˜ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ์ ์„ฑ์— ์•ˆ๋งž์œผ๋ฉด ๋‹ค๋ฅธ๊ฑฐ ๊ณต๋ถ€ํ•ด๋ด์•ผ์ง€!)

๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋ง‰ํ˜”๋˜ ๊ฒƒ, ์˜ค๋Š˜ ๊ณต๋ถ€ํ•œ ๊ฒƒ์„ ๋ณต์Šตํ•˜๋Š” ์ฐจ์›์—์„œ ๋ธ”๋กœ๊ทธ๋ฅผ ์“ธ ๊ฒƒ์ด๋‹คโœฆโ€ฟโœฆ ์—ด์‹ฌํžˆ ์“ธ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ผ๋ฉฐ...

 

๊ทธ๋ž˜์„œ ์ฒ˜์Œ ๊ณต๋ถ€ํ•˜๊ธฐ๋กœ ํ•œ ๊ฑด spring! 

๋‚ด๊ฐ€ ํ•œ๋™์•ˆ ๊ณต๋ถ€ํ•  ๊ฑฐ์˜ ๋ชจ๋“  ๊ฒƒ์€ ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ ๊ณต๋ถ€ํ•œ ๊ฒƒ์ด๋‹ค.

์•„์ง ์‹œ์ž‘์— ๋ถˆ๊ณผํ•˜์ง€๋งŒ ๊ฐ•์‚ฌ๋‹˜ ๋„ˆ๋ฌด ์ž˜ ๊ฐ€๋ฅด์น˜๋Š” ๊ฒƒ ๊ฐ™์•„ ๋งŒ์กฑ ์ค‘(เน‘หƒฬตแด—ห‚ฬต)ูˆ

 

์•„์ง ๋งŽ์ด ๋ฐฐ์šฐ์ง€ ์•Š์€ ์ž…์žฅ์—์„œ ์“ฐ๋ ค๋‹ˆ๊นŒ ๋ถ€์กฑํ•œ ๊ฒƒ์ด ๋งŽ์„ ๊ฒƒ ๊ฐ™๋‹คใ… ใ… 

๋‚˜์ค‘์— ๋ณธ๋‹ค๋ฉด '์ด๋•Œ ์ด๋Ÿฐ ๊ฒƒ๋„ ๋ชฐ๋ž๋‹ค๋‹ˆ! '๋ผ๊ณ  ์ƒ๊ฐํ•˜๋Š” ๋‚ ์ด ์˜ค๊ฒ ์ง€? ใ…Žใ…Ž

 

 

์ฝ”๋”ฉ์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ IntelliJ๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๊น”์•˜๋‹ค!

์ž๋ฐ”๋Š” ์ด๋ฏธ ๊น”๋ ค์žˆ์—ˆ์ง€๋งŒ, 8๋ฒ„์ „์ด์–ด์„œ 11๋ฒ„์ „์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ ํ–ˆ๋‹ค.

 

ํŒŒ์ผ์ƒ์„ฑ

์Šคํ”„๋ง ๋ถ€ํŠธ ์Šคํƒ€ํ„ฐ์— ๋“ค์–ด๊ฐ€์„œ ์Šคํ”„๋ง ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค.

https://start.spring.io/

์˜ˆ์ „์—๋Š” Maven์„ ๋งŽ์ด ์ผ์—ˆ๋Š”๋ฐ, ์š”์ฆ˜์—๋Š” Gradle๋กœ ์˜ฎ๊ฒจ๊ฐ„ ์ถ”์„ธ๋ผ๊ณ  ํ•œ๋‹ค! ๊ทธ๋ž˜์„œ Gradle ์„ ํƒ!

 

spring ์—”์ง„์œผ๋กœ๋Š” Thymeleaf ์™€ Spring Web์„ ์„ ํƒํ–ˆ๋‹ค! 

 

thymeleaf ํ…œํ”Œ๋ฆฟ ์—”์ง„์€ ๋™์  page๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ํ•œ ๊ฒƒ์ด๋‹ค.๋™์  ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ…œํ”Œ๋ฆฟ ์—”์ง„์—๋Š” FreeMarker, Groovy, Thymeleaf, Mustache๊ฐ€ ์žˆ๋Š”๋ฐ, ๋‚˜๋Š” thymeleaf๋ฅผ ์„ ํƒํ–ˆ๋‹ค. (๋ฌผ๋ก  ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋”ฐ๋ผํ•œ ๊ฒƒ์ด๊ธด ํ•˜์ง€๋งŒใ…‹ใ…‹ใ…‹)thymeleaf๊ฐ€ ์˜ˆ์ „์—๋Š” ๋ณ„๋กœ์˜€๋Š”๋ฐ ์š”์ฆ˜๋“ค์–ด ๊ธฐ๋Šฅ์ด ๊ฝค ๊ดœ์ฐฎ๋‹ค๊ณ  ํ•œ๋‹ค.

 

์ €๋ ‡๊ฒŒ ์„ ํƒ์„ ํ•˜๊ณ  generate๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ์„œ ํŒŒ์ผ์„ ๋‹ค์šด ๋ฐ›์•˜๋‹ค !์ผ์ผํžˆ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ์ด๋ ‡๊ฒŒ ์‰ฝ๊ฒŒ ํŒŒ์ผ์„ ๋ชจ๋‘ ๋‹ค์šด ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค๋‹ˆ...์•ฝ๊ฐ„ ์‹ ์„ธ๊ณ„๋ฅผ ๋ณด๋Š” ๊ธฐ๋ถ„..

 

IntelliJ์—์„œ ์ด ํŒŒ์ผ์„ ์—ด์–ด์ฃผ๋Š”๋ฐ ์ค‘์š”ํ•œ ๊ฒƒ์ด ์žˆ๋‹ค!!!

 

ํŒŒ์ผ์„ ์—ด์ง€ ๋ง๊ณ  ์ด ํŒŒ์ผ์—์„œ build.gradleํŒŒ์ผ์„ ์—ด์–ด์•ผํ•œ๋‹ค. ์ด๊ฒƒ๋•Œ๋ฌธ์— ํ•œ์ฐธ ์• ๋จน์—ˆ๋‹ค...๋ฐ”๋ณด

 

๊ธฐ๋ณธ ์„ธํŒ…

1. project JDK๋ฅผ ์ž๋ฐ”11๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๊ธฐ

์ €๊ธฐ ๋นจ๊ฐ„ ๋ถ€๋ถ„์„ 11๋กœ ๋ฐ”๊ฟ”์•ผํ•œ๋‹ค. java 11๋ฒ„์ „์ด ์•„๋‹ˆ๋ฉด ์ž‘๋™์ด ์ž˜ ์•ˆ๋  ์ˆ˜๋„ ์žˆ๋‹ค.

 

2. Gradle JDK์„ค์ •

์ € ๋นจ๊ฐ„ ๋ถ€๋ถ„์„ IntelliJ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.

์ดˆ๊ธฐ ์„ค์ •์€ gradle๋กœ ๋˜์–ด์žˆ๋Š”๋ฐ, gradle๋กœ ์„ค์ •์„ ํ•ด๋†“๋Š”๋‹ค๋ฉด ์‹คํ–‰์‹œํ‚ฌ ๋•Œ ์†๋„๊ฐ€ ๋А๋ฆด ์ˆ˜๊ฐ€ ์žˆ๋‹ค. IntelliJ๋กœ ์„ค์ •ํ•ด์„œ java๋ฅผ ์ฆ‰์‹œ ๋„์šฐ๋Š”๊ฒŒ ์†๋„๊ฐ€ ํ›จ์”ฌ ๋น ๋ฅด๋‹ค!

 

 

๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ดํŽด๋ณด๊ธฐ

์•„์ง ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ค‘์š”์„ฑ์„ ์ž˜ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, ์•ž์œผ๋กœ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋งŽ์ด ๋ณด๊ณ  ๋ฐฐ์›Œ์•ผ๊ฒ ๋‹ค(เธ‡ โ€ขฬ€_โ€ขฬ)เธ‡

 

์™ผ์ชฝ ํ•˜๋‹จ์— ์žˆ๋Š” ๋„ค๋ชจ๋ฅผ ํด๋ฆญํ•˜๊ณ , ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์— ์žˆ๋Š” gradle์„ ํด๋ฆญํ•˜๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋“ค์ด ์ญ‰ ๋ณด์ธ๋‹ค!

์ €๊ธฐ์— ์žˆ๋Š” Dependencies๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ„์˜ ์˜์กด๊ด€๊ณ„์ด๋‹ค. ์ด๊ฑธ ํด๋ฆญํ•˜๋ฉด ๋œ๋‹ค !

 

์—ฌ๊ธฐ์—์„œ ์ค‘์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ logging์ด๋ผ๊ณ  ํ–ˆ๋‹ค. 

ํ˜„์—…์— ์žˆ์œผ์‹  ๋ถ„๋“ค์€ ๊ผญ logging์„ ์‚ฌ์šฉํ•˜์‹ ๋‹ค๊ณ  ํ•œ๋‹ค. logging์„ ์‚ฌ์šฉํ•ด์•ผ ์‹ฌ๊ฐํ•œ error๋“ค๋งŒ ๋”ฐ๋กœ ๋ชจ์•„๋‘๊ณ , logํŒŒ์ผ ๊ด€๋ฆฌ๊ฐ€ ์‰ฝ๋‹ค๊ณ  ํ•œ๋‹ค. System.out.println์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋ณด๋‹ค logging์„ ์‚ฌ์šฉ์„ ๋” ์ง€ํ–ฅํ•ด์•ผ๊ฒ ๋‹ค.

(์ €๊ธฐ์— ์žˆ๋Š” logback์ด๋ž‘ slf4j๋„ ๊ณต๋ถ€ํ•ด์„œ ํฌ์ŠคํŒ…์— ์˜ฌ๋ ค๋ด์•ผ๊ฒ ๋‹ค!)

 

์›น ํŽ˜์ด์ง€ ์ƒ์„ฑ

์ดˆ๊ธฐ์— ์„ค์ •๋˜์–ด์žˆ๋Š” mainํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ณ , localhost:8080์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด ์ด๋Ÿฐ ํ™”๋ฉด์ด ๋œฌ๋‹ค.

error๋ผ๊ณ  ๋– ์„œ ์—ฅ ๋ญ๊ฐ€ ์ž˜๋ชป๋๋‚˜? ์‹ถ์—ˆ์ง€๋งŒ ์™„์ „ํžˆ ์ด์ƒํ•œ url์„ ์ณค์„ ๋•Œ๋Š”

์ด๋Ÿฐ ํŽ˜์ด์ง€๊ฐ€ ๋œฌ๋‹ค!

 

์ธํ„ฐ๋„ท์ด๋ž‘ ์—ฐ๊ฒฐ๋œ๋‹ค๋Š” ๊ธฐ๋ถ„์ด ๋„ˆ๋ฌด ์ƒˆ๋กญ๊ณ  ์‹ ๊ธฐํ•˜๋‹ค!!

์ €๊ธฐ์— ์ด์ œ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์ณ๋ดค๋‹ค.

์ฝ”๋“œ๋ฅผ ์น˜๊ธฐ ์•ž์„œ, Welcome Page๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ! 

์ŠคํŠธ๋ง๋ถ€ํŠธ์— ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ธํŒ…๋œ ์›ฐ์ปดํŽ˜์ด์ง€ ์œ„์น˜๋Š” static์— ์žˆ๋Š” index.html์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋จผ์ € ์ฐพ์•„๋ณด๊ณ  ์—†์œผ๋ฉด ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ฐพ๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ๋‚˜๋„ staticํŒŒ์ผ์— index.htmlํŒŒ์ผ์„ ์ƒ์„ฑํ–ˆ๋‹ค!

<!DOCTYPE HTML>
<html>
<head>
    <title>Hello</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
Hello
<a href="hello">hello</a>
</body>
</html>

 

์ด๋ ‡๊ฒŒ ๋˜๋ฉด ๊ทธ๋ƒฅ ์ •์  ํŽ˜์ด์ง€๋ฅผ ์ƒ์„ฑํ•œ ๊ฒƒ์ด๋‹ค. 

์•„๊นŒ ๋™์  ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ thymeleaf๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋™์  ํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

 

main -> java -> hello.hellospring์— controller๋ผ๋Š” ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๊ณณ์— HelloController ์ž๋ฐ”ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์—ˆ๋‹ค.

package hello.hellospring.controller;


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class HelloController {

    @GetMapping("hello")
    public String hello(Model model){
        model.addAttribute("data","hello!!");
        return "hello";
    }
}

controller๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” @Controller๋ฅผ ๊ผญ ์จ์ค˜์•ผํ•œ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ  ๋ Œ๋”๋งํ•  helloํŒŒ์ผ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ

main -> resources -> templates ์— hello.htmlํŒŒ์ผ์„ ๋งŒ๋“ค์—ˆ๋‹ค.

*์—ฌ๊ธฐ์„œ๋„ ์Šคํ”„๋ง๋ถ€๋“œ ๊ธฐ๋ณธ์ ์œผ๋กœ resources์— templates์˜ html์„ ๋จผ์ € ์ฐพ๊ธฐ ๋•Œ๋ฌธ์— ์ €๊ธฐ์— ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ์ฃผ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

<!DOCTYPE HTML>
<html xmlns:th="http://www/thymeleaf.org">
<head>
    <title>Hello</title>
</head>
<body>
<p th:text="'์•ˆ๋…•ํ•˜์„ธ์š”. ' + ${data}">์•ˆ๋…•ํ•˜์„ธ์š”, ์†๋‹˜</p>
</body>
</html>

์ €๊ธฐ์— ์“ฐ์—ฌ์žˆ๋Š” th๋Š” thymeleaf์˜ th์ด๊ณ , ${data}๋Š” ์•ž์— ๋„ฃ์—ˆ๋˜ key๊ฐ’์ด data์ธ value๊ฐ€ ์˜ค๊ฒŒ ๋œ๋‹ค.

xmlns:th="http://www/thymeleaf.org ๋Š” ๊ผญ ์จ์ค˜์•ผ thymeleaf ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ํ…œํ”Œ๋ฆฟ ์—”์ง„์ด ์„ ์–ธ๋๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. 

 

์ด๋ ‡๊ฒŒ ํ•˜๊ณ  ๋‹ค์‹œ ์ปดํŒŒ์ผ ํ•œ๋‹ค!

๊ทธ๋Ÿฌ๊ณ  localhost:8080/hello์— ์ ‘์†ํ•˜๋ฉด

 

์ด๋ ‡๊ฒŒ ๋‚˜์˜จ๋‹ค!!

 

์ด๋ ‡๊ฒŒ ๋œ๋‹ค๋ฉด ๊ธฐ๋ณธ์ ์ธ ํ”„๋กœ์ ํŠธ ๋งŒ๋“œ๋Š” ๊ฑด ๋์ด๋‚œ๋‹ค.

 

๋™์ ํŽ˜์ด์ง€ ๋™์ž‘ ์›๋ฆฌ

์›น๋ธŒ๋ผ์šฐ์ €์—์„œ localhost:8080/hello๋ผ๊ณ  ๋˜์ ธ์ฃผ๋ฉด ๋‚ด์žฅํ•˜๊ณ  ์žˆ๋Š” ํ†ฐ์บฃ์˜ ์„œ๋ฒ„์—์„œ ํ™•์ธํ•œ๋‹ค.

ํ™•์ธํ•œ ํ†ฐ์บฃ์€ ์Šคํ”„๋ง์—๊ฒŒ ๋˜์ง€๊ณ , ์Šคํ”„๋ง์˜ HelloControllerํŒŒ์ผ์—์„œ GetMapping("hello") ์ € ํฐ๋”ฐ์˜ดํ‘œ ์•ˆ์— ์žˆ๋Š” ๋‹จ์–ด๋ž‘ ๊ฐ™๋‹ค๋ฉด controller์— ์žˆ๋Š” method๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

(์—ฌ๊ธฐ์„œ GetMapping์€ html์˜ get, post method๋ž‘ ๊ฐ™์€ ์˜๋ฏธ์ด๋‹ค.)

์ด๋•Œ, spring์ด medel์„ ๋งŒ๋“ค์–ด์„œ ๋„ฃ์–ด์ค€๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ๋ชจ๋ธ์€ ์œ„์— ์ฝ”๋“œ์— ์žˆ๋Š” Model์„ ๋งํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

model.addAttribute("data","hello!!"); ์ด๋ ‡๊ฒŒ ์จ์คฌ๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ชจ๋ธ์˜ key๊ฐ’์€ data, value๊ฐ’์€ hello!!์ด๋‹ค. 

 

๊ทธ๋Ÿฌ๊ณ  return hello๋ฅผ ํ•˜๋ฉด, ๊ทธ ์ด๋ฆ„์— ํ•ด๋‹นํ•˜๋Š” ํŒŒ์ผ์— ๋„˜๊ฒจ์„œ ๋ Œ๋”๋งํ•˜๊ฒŒ ๋œ๋‹ค.

${data}๋Š” ๋„˜๊ฒผ๋˜ model์˜ key๊ฐ’์ด๊ณ , ์ด๊ฑธ ๊บผ๋‚ด์„œ hello!!๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. 

 

 


์•„์ง spring์ด ๋ฌด์—‡์„ ์˜๋ฏธํ•˜๋Š”์ง€ ์ž˜์€ ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ ๋‚ด๊ฐ€ ์ž˜ ๋”ฐ๋ผ๊ฐ€๊ณ  ์žˆ๋Š” ๊ฑฐ์˜€์œผ๋ฉด ์ข‹๊ฒ ๋‹ค !

 

์ด ๋ธ”๋กœ๊ทธ ์“ฐ๋Š” ๊ฒƒ๋„ ์€๊ทผ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“œ๋Š”๊ตฌ๋‚˜..! ๊ทธ๋ž˜๋„ ๊ณต๋ถ€์ผ์ง€๋ฅผ ์—ด์‹ฌํžˆ ์จ๋ด์•ผ๊ฒ ๋‹ค ํ™”์ดํŒ… ูฉ(เน‘โ€ขฬ€oโ€ขฬเน‘)ูˆ

์ด spring๊ฐ™์˜ ๋“ฃ๋Š” ๊ฒƒ๋„ ๊ธฐ์ดˆ์ง€๋งŒ, ์ด๊ฑธ ๋“ฃ๊ธฐ ์œ„ํ•ด์„œ๋Š” html๊ณผ java์˜ ๊ธฐ๋ณธ๊ธฐ๋„ ์žˆ์–ด์•ผ ํ•˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค. 

์ด๋ฏธ ๊ธฐ๋ณธ์ ์ธ๊ฑด ์•Œ๊ณ ์žˆ์ง€๋งŒ ์ตœ๊ทผ์— ์ข€ ๊นŒ๋จน์€ ๊ฒƒ ๊ฐ™๊ธฐ์—.. html์ด๋ž‘ java๋„ ์ถ”๊ฐ€์ ์œผ๋กœ ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค. 

'Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

H2 DB ๋‹ค์šด๋กœ๋“œ [์„ค์น˜ / ์„œ๋ฒ„ ์‹คํ–‰]  (0) 2021.06.27
Spring [ ํšŒ์› ๋“ฑ๋ก/์กฐํšŒ/ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ/์Šคํ”„๋ง]  (0) 2021.06.25
Spring [์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ / ํšŒ์› ์„œ๋น„์Šค ์Šคํ”„๋ง๋นˆ ๋“ฑ๋ก]  (0) 2021.06.25
Spring [ํšŒ์› ๊ด€๋ฆฌ / ๋ฐฑ์—”๋“œ]  (0) 2021.06.21
Spring ๊ธฐ์ดˆ๋‹ค์ง€๊ธฐ [์ •์ ์ปจํ…์ธ  / MVC / API]  (0) 2021.06.10
  1. ํŒŒ์ผ์ƒ์„ฑ
  2. ๊ธฐ๋ณธ ์„ธํŒ…
  3. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์‚ดํŽด๋ณด๊ธฐ
  4. ์›น ํŽ˜์ด์ง€ ์ƒ์„ฑ
  5. ๋™์ ํŽ˜์ด์ง€ ๋™์ž‘ ์›๋ฆฌ
'Spring' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Spring [ ํšŒ์› ๋“ฑ๋ก/์กฐํšŒ/ํšŒ์› ๊ด€๋ฆฌ ์˜ˆ์ œ/์Šคํ”„๋ง]
  • Spring [์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„ / ํšŒ์› ์„œ๋น„์Šค ์Šคํ”„๋ง๋นˆ ๋“ฑ๋ก]
  • Spring [ํšŒ์› ๊ด€๋ฆฌ / ๋ฐฑ์—”๋“œ]
  • Spring ๊ธฐ์ดˆ๋‹ค์ง€๊ธฐ [์ •์ ์ปจํ…์ธ  / MVC / API]
DAHLIA CHOI
DAHLIA CHOI
DAHLIA CHOI
๐ŸŒผ dali's log ๐ŸŒผ
DAHLIA CHOI
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (103)
    • Spring (42)
    • JAVA & OOP (8)
    • AWS (2)
    • DevOps (5)
    • Network (7)
    • DB (5)
    • Algorithm (9)
      • BOJ (6)
      • PROGRAMMERS (2)
      • LEETCODE (0)
    • Books (5)
    • ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ… (5)
    • ํšŒ๊ณ  (0)
    • ๊ธฐํƒ€ (5)
    • FRENCH (1)
    • ํ•„์‚ฌ (2)
    • ๊ฒฝํ—˜ (5)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
DAHLIA CHOI
Spring ํ”„๋กœ์ ํŠธ ํ™˜๊ฒฝ์„ค์ • [ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ / ๋นŒ๋“œ ์‹คํ–‰]
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.