๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

spring43

Spring - ์›น MVC ์˜ˆ์ œ (ํšŒ์› ์กฐํšŒ) Model addAttribute(String name, Object value) - value ๊ฐ์ฒด๋ฅผ name ์ด๋ฆ„์œผ๋กœ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋ทฐ ์ฝ”๋“œ์—์„œ๋Š” name์œผ๋กœ ์ง€์ •ํ•œ ์ด๋ฆ„์„ ํ†ตํ•ด์„œ value๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. Model addAttribute(Object value) - value๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค. value์˜ ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ œ์™ธํ•œ ๋‹จ์ˆœ ํด๋ž˜์Šค ์ด๋ฆ„์„ ๋ชจ๋ธ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๋•Œ ์ฒซ ๊ธ€์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. - value๊ฐ€ ๋ฐฐ์—ด์ด๊ฑฐ๋‚˜ ์ปฌ๋ ‰์…˜์ธ ๊ฒฝ์šฐ ์ฒซ ๋ฒˆ์งธ ์›์†Œ์˜ ํด๋ž˜์Šค ์ด๋ฆ„ ๋’ค์— "List"๋ฅผ ๋ถ™์ธ ๊ฑธ ๋ชจ๋ธ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋„ ํด๋ž˜์Šค ์ด๋ฆ„์˜ ์ฒซ์ž๋Š” ์†Œ๋ฌธ์ž๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ์ถœ์ฒ˜: https://devlogofchris.tistory.com/53 ํšŒ์›์กฐํšŒ ์ปจํŠธ๋กค๋Ÿฌ @GetMapping("/members.. 2023. 7. 4.
Spring - ์›น MVC ์˜ˆ์ œ (ํšŒ์› ๋“ฑ๋ก) ํšŒ์› ๋“ฑ๋ก ํผ ์ปจํŠธ๋กค๋Ÿฌ ์ƒ์„ฑ @Controller public class MemberController { // private final MemberService memberService = new MemberService(); private final MemberService memberService; //์ปจํŠธ๋กค๋Ÿฌ์™€ ์„œ๋น„์Šค๋ฅผ ์—ฐ๊ฒฐ @Autowired public MemberController(MemberService memberService) { this.memberService = memberService; } @GetMapping("/members/new") public String createForm() { return "members/createMemberForm"; } @PostMapping(.. 2023. 7. 4.
Spring - ์›นMVC ์˜ˆ์ œ (ํ™ˆํ™”๋ฉด ์ถ”๊ฐ€) HomeController ์ถ”๊ฐ€ @Controller public class HomeController { @GetMapping("/") public String home(){ return "home"; } } home.html๋กœ ๊ฒฝ๋กœ ์„ค์ •! ๐ŸŽ€ ์ •์ ์ปจํ…์ธ ๋ณด๋‹ค Controller์—์„œ์˜ ๋งคํ•‘์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’๋‹ค. 2023. 7. 4.
Spring - ์Šคํ”„๋ง๋นˆ๊ณผ์˜ ์˜์กด๊ด€๊ณ„2 ์ž๋ฐ” ์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ ./hello.hellospring/SpringConfig.java package hello.hellospring; import hello.hellospring.repository.JdbcTemplateMemberRepository; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import hello.hellospring.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springfram.. 2023. 7. 4.
Spring - ์Šคํ”„๋ง ๋นˆ๊ณผ ์˜์กด๊ด€๊ณ„1 ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ • ์ƒ์„ฑ์ž์— @Autowired ๊ฐ€ ์žˆ์œผ๋ฉด ์Šคํ”„๋ง์ด ์—ฐ๊ด€๋œ ๊ฐ์ฒด๋ฅผ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์—์„œ ์ฐพ์•„์„œ ๋„ฃ์–ด์ค€๋‹ค. ์ด๋ ‡๊ฒŒ ๊ฐ์ฒด ์˜์กด๊ด€๊ณ„๋ฅผ ์™ธ๋ถ€์—์„œ ๋„ฃ์–ด์ฃผ๋Š” ๊ฒƒ์„ DI (Dependency Injection), ์˜์กด์„ฑ ์ฃผ์ž…์ด๋ผ ํ•œ๋‹ค. ์ด์ „ ํ…Œ์ŠคํŠธ์—์„œ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ฃผ์ž…ํ–ˆ๊ณ , ์—ฌ๊ธฐ์„œ๋Š” @Autowired์— ์˜ํ•ด ์Šคํ”„๋ง์ด ์ฃผ์ž…ํ•ด์ค€๋‹ค. ์ฐธ๊ณ : helloController๋Š” ์Šคํ”„๋ง์ด ์ œ๊ณตํ•˜๋Š” ์ปจํŠธ๋กค๋Ÿฌ์—ฌ์„œ ์Šคํ”„๋ง ๋นˆ์œผ๋กœ ์ž๋™ ๋“ฑ๋ก๋œ๋‹ค. @Controller ๊ฐ€ ์žˆ์œผ๋ฉด ์ž๋™ ๋“ฑ๋ก๋จ ์Šคํ”„๋ง ๋นˆ์„ ๋“ฑ๋กํ•˜๋Š” 2๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ปดํฌ๋„ŒํŠธ ์Šค์บ”๊ณผ ์ž๋™ ์˜์กด๊ด€๊ณ„ ์„ค์ • ์ž๋ฐ”์ฝ”๋“œ๋กœ ์ง์ ‘ ์Šคํ”„๋ง ๋นˆ ๋“ฑ๋กํ•˜๊ธฐ 2023. 7. 4.
Spring - ํšŒ์›๊ด€๋ฆฌ์˜ˆ์ œ (ํšŒ์› ์„œ๋น„์Šค ํ…Œ์ŠคํŠธ) test์ฝ”๋“œ๋Š” ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ•ด๋„ ๋œ๋‹ค. test์ฝ”๋“œ๋Š” ์ด ์„ธ๊ฐœ์˜ ๋กœ์ง์œผ๋กœ ์ž‘์„ฑ๋  ์ˆ˜ ์žˆ๋‹ค. Given : ๋ฌด์—‡์ด ์ฃผ์–ด์ง„๋‹ค๋ฉด when : ์ด๊ฒƒ์„ ์‹คํ–‰ํ–ˆ์„๋•Œ then : ๊ฒฐ๊ณผ๊ฐ€ ์ด๊ฒƒ์ด ๋‚˜์™€์•ผํ•œ๋‹ค @BeforeEach : ๊ฐ ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ „์— ํ˜ธ์ถœ๋œ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์„œ๋กœ ์˜ํ–ฅ์ด ์—†๋„๋ก ํ•ญ์ƒ ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์˜์กด๊ด€๊ณ„๋„ ์ƒˆ๋กœ ๋งบ์–ด์ค€๋‹ค. package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertio.. 2023. 7. 4.