๋ฐฑ์๋ ๊ฐ๋ฐ
69
Api Test build ์ฝ๋ ๋ถ์
class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @AfterEach // ๊ฐ ํจ์ ๋๋ ๋ ๋ง๋ค ์คํํ๋ผ public void afterEach() { repository.clearStore(); // repository ํจํค์ง์ ์๋ clearStore ๋งค์๋ ์ด์ฉํด๋ผ // clearStore()๋ Store ๋ด์ key-value ์๋ค์ ์ง์ฐ๋ ๋งค์๋ } @Test public void save() { Member member = new Member(); member.setName("spring"); repository.save(member); Member result ..
2022.11.30
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
ํ์ ๋๋ฉ์ธ๊ณผ ๋ ํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ
1. Member Class //Member class ๋ง๋ค๊ธฐ package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId()//ID ์กฐํ { return id; } public void setId(Long id) //id ์ค์ (์ธ์๋ก ๋ค์ด์จ ์ค์๊ฐ ํด๋น ๊ฐ์ฒด์ id) { this.id = id; } public String getName()//Name ์กฐํ { return name; } public String setName(String name)//Name ์ค์ (์ธ์๋ก ๋ค์ด์จ String์ด ํด๋น ๊ฐ์ฒด์ name ) { this.name = name; } } // ..
2022.11.29
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
Web ์ ํ๋ฆฌ์ผ์ด์
๊ณ์ธต ๊ตฌ์กฐ
1. ์ปจํธ๋กค๋ฌ: ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ์ ์๋์ด ์๋ ๊ณณ. 2. ์๋น์ค: ๋น์ฆ๋์ค ๋ก์ง์ด ๊ตฌํ๋์ด ์๋ ๊ณณ (ex- ID ์ค๋ณต์ ๋ถ๊ฐ ํ๋๋ก, ํ๋ฃจ 300๋ง์ ์ด์ ์ด์ฒด๋ ๋ถ๊ฐ๋ฅ ํ๋๋ก) DB์์ญ๊ณผ ๋๋ฉ์ธ ์์ญ ์ฐ๊ฒฐํด์ฃผ๋ ๋งค๊ฐ์ฒด ์ญํ 3. Repository: Domain ์์ญ์์ ๋ฐ์์จ ๊ฐ์ฒด๋ค์ DB์ ์ ์ฅํ๊ณ ๊ด๋ฆฌ (Domain์ ๋ํ CRUD ์ญํ ) 4. Domain: DB ํ
์ด๋ธ๊ณผ 1๋1 ๋์(mapping)๋๋ ๊ฐ์ฒด (getter-์กฐํ, setter-์ค์ ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ค.) ์ธ์ด ๊ฑฐ ํ์ธ ๊ทธ๋ฆผ ๋ณด๊ณ ๊ฐ ๊ฐ์ฒด๋ค ์ค๋ช
2022.11.29
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
Spring ์น ๊ฐ๋ฐ ๊ธฐ์ด - API
1. api ๋? ํ ์ํํธ์จ์ด์์ ๋ค๋ฅธ ์ํํธ์จ์ด๋ก ์์ฒญ์ ๋ณด๋ด๊ฑฐ๋ ๋ฐ์ ์ ์๋ ์๋จ. 2. ์ฝ๋๋ถ์ (1) @ResponseBody์ ๋ํ ์ค๋ช
@GetMapping("hello-string") @ResponseBody //์ปจํธ๋กค๋ฌ๊ฐ ๋ฐํ ๊ฐ์ http body๋ถ์ ์ง์ ๋ฃ์ด์ฃผ๊ฒ ๋ค. public String helloString(@RequestParam("name") String name) { return "hello " + name; /* para์ spring์ ๋ฃ์ผ๋ฉด hello spring์ด ๋ ๊ฒ์. ์ฌ๊ธฐ์ view์ด๋ฐ ๊ฑธ๋ก ๊ทธ์ ๋ง๋ template ์ฐพ์ ๊ฐ ๋ฃ๋ ๊ณผ์ ์์ด ๋ฐ์ดํฐ๊ฐ ๊ทธ๋๋ก ์น ๋ธ๋ผ์ฐ์ ์ ๋ค์ด๊ฐ. ๋ฐ์ดํฐ ์๋ณธ ๋ณด๊ธฐ๋ฅผ ํด๋ ์ฝ๋๊ฐ ์ ๋จ๊ณ ์ฐ๋ฆฌ๊ฐ ๋ฃ์ ์คํธ๋ง์ด ๊ทธ๋๋ก ๋ธ. *..
2022.11.29
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
Spring Web ๊ฐ๋ฐ ๊ธฐ์ด - MVC ์๋์๋ฆฌ
1.MVC๋? -model view controller Controller๋ ์๋ view์ ์ผ๋ถ์๋๋ฐ, ๋๋ฌด ๋ด์ฉ์ด ๋ณต์กํด์ ๋๋ก ์ชผ๊ฐฐ๋ค. view == ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๋ฐ ์ง์คํ๋ part model, Controller == ๋น์ฆ๋์ค ๋ก์ง์ด๋ ์์ฒญ ๋ด์ฉ ์ฒ๋ฆฌ์ ์ง์คํ๋ part 2. ์ฝ๋ ๋ถ์ @Controller public class HelloController { @GetMapping("hello") public String hello(Model model){ model.addAttribute("data","hello!!"); return "hello"; } // hello-mvc ์กฐํ(GET)์ ๋๋นํ mapping์ ์ถ๊ฐ @GetMapping("hello-mvc") public String ..
2022.11.29
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
Spring Web ๊ฐ๋ฐ ๊ธฐ์ด - ์ ์ ์ปจํ
์ธ ์๋์๋ฆฌ
1.์ ์ ์ปจํ
์ธ ๋? ํ์ผ,html์ ์ ํ ๋ด์ฉ์ ๊ทธ๋๋ก ์น์ ๋ฐํ ํ๋ ๊ฒ. //resource์ static์ hello-static.html์ด๋ผ๋ ํ์ผ์ ๋ง๋ ๋ค. ๋ฐ์ ํด๋น ํ์ผ์ ๋ด์ฉ ์ ์ ์ปจํ
์ธ ์
๋๋ค. 2. ์๋์๋ฆฌ 1) ์น ๋ธ๋ผ์ฐ์ ๊ฐ localhost8080/hello_static.html GET(์กฐํ) ์์ฒญ 2) ๋ด์ฅ ์น ์๋ฒ์ธ tomcat์ด ํด๋น ์์ฒญ ๋ฐ์์ springboot์ ์ ๋ฌ 3) ์คํ๋ง๋ถํธ๋ ํด๋น ๋ด์ฉ๊ณผ ๋์(mapping ๋๋)ํ๋ ์ปจํธ๋กค๋ฌ๊ฐ ์๋์ง ์ดํด๋ด. 4) ์์ผ๋ฉด resource/static์ ๋ค์ด๊ฐ ํด๋น hello_static.html์ด๋ผ๋ ํ์ผ์ด ์๋ ์ดํด๋ด 5) ์๋ค๋ ๊ฑธ ํ์ธ ๊ทธ๋๋ก ์น์ ๋ฐํ (๋ฐ๋ก ๋ณํ ๊ณผ์ ์ ๊ฑฐ์น์ง ์๋๋ค.) 3. ์ธ์ด ๊ฑฐ ํ์ธ ์ ์ ์ปจํ
์ธ ์ ..
2022.11.29
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
์๋์ฐ ๋ช
๋ น ํ๋กฌํํธ์์ jar ํ์ผ Build ํ๋ ๋ฒ
1. ๋ช
๋ น ํ๋กฌํํธ ์ฐฝ์ ๋์ฐ๊ณ , IDE์์ ๋ง๋ java ํด๋์ค๊ฐ ์๋ ํด๋๋ก ์ด๋ํ๋ค. A. ์๋์ฐ์์ ๋๋ ํ ๋ฆฌ ์ด๋: cd, ๋๋ ํ ๋ฆฌ ๋ด์ฉ๋ฌผ ๋ณด๊ธฐ:dir 2. gradlew ํ์ผ์ด ์๋ ๊ฒ์ ํ์ธํ๊ณ buildํ๋ค. gradlew build A. ๊ทธ๋ฌ๋ฉด ๋ ๋๋ ํ ๋ฆฌ ์์ build ํด๋๊ฐ ๋ง๋ค์ด ์ก์ ๊ฒ์ด๋ค. B. Cd build/libs๋ฅผ ํ๋ค. 3. Java -jar hello-spring-0.0.1-SNAPSHOT.jar ๋ก ํด๋น ํด๋์ jar ํ์ผ ์คํ 4. ๋ก์ปฌ ํธ์คํธ ํ๊ณ ๋ค์ด๊ฐ ์คํ๋ ๊ฒ์ ํ์ธ
2022.11.29
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
Spring Boot - ๋์ํ๋ ํ์ด์ง ๋ง๋ค๊ธฐ
1. ์๋ฆฌ ์ค๋ช
1) ์น ๋ธ๋ผ์ฐ์ ์์ localhost:8080/hello๋ฅผ GET(์กฐํ)ํ๋ค. -(์น ๋ธ๋ผ์ฐ์ ์ Http URL์ ์น๋ ํ์ ์์ฒด๊ฐ GET ํ์์ด๋ค.) 2) ์คํ๋ง๋ถํธ๊ฐ ๋ด์ฅํ Tomcat์ด๋ ์น ์๋ฒ๊ฐ ์ด๊ฑธ ๋ฐ์์ ์คํ๋ง๋ถํธ์๊ฒ ์ฒ๋ฆฌํ ์ ์๋์ง ๋ฌผ์ด๋ณธ๋ค. 3) ์คํ๋ง๋ถํธ๋ helloController๊ฐ GetMapping("hello")๋ ๊ฑธ ๊ฐ์ง๊ณ ์๋ค๋ ๊ฑธ ํ์ธํ๊ณ ์ฌ๊ธฐ์ ์ผ์ ์ฒ๋ฆฌํ๋๋ก ์์ฒญ๊ณผ ๋งค์นญ ์์ผ์ค๋ค. -(GetMapping("hello") == ~URL/hello๋ก ์กฐํ ์์ฒญ์ด ๋ค์ด์ค๋ฉด ๋ฐ์ public ํจ์๋ก ์์ฒญ์ ๋์ํ๋ผ.) -(public ํจ์๋ model์ด๋ผ๋ ๊ฑธ ๊ฐ์ง๊ณ ์์ -> model์ attribute์ ๊ฐ attribute ๋ณ value๋ฅผ ๊ฐ์ง.) ..
2022.11.28
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC
API์ REST_API์ ๋ํด
*REST_API๋ ๋ฌด์์ธ๊ฐ? -> REST๋ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ ์์ด์ ๊ฐ๋ฐ์๋ค์ด ๋๋ฆฌ ์ฌ์ฉํ๋ ํ๋์ ‘ํ์’์ด๋ค. -> ๋ฐ๋ผ์ RESTAPI๋ REST๋ ํ์์ API์ด๋ค. 1. API๋? ํ Software๊ฐ ๋ค๋ฅธ Software๋ก ์์ฒญ์ ๋ณด๋ด๊ฑฐ๋ ๋ฐ์ ์ ์๊ฒ ํ๋ ์๋จ Ex_ ์๋ฆฌ์ฌ(Database)์ ์๋(Server) ์ฌ์ด์ ์ง์์ ๊ด๊ณ ์ง์์ ์๋(server)์ ์ฃผ๋ฌธ(์์ฒญ or ๋ช
๋ น)์ ๋ฐ์ ์๋ฆฌ์ฌ(DB)์๊ฒ ์ ๋ฌ ๋ค์ ์๋ฆฌ(์์ฒญ์ ๋ํ ๊ฐ)๋ฅผ ์๋์๊ฒ ์ ๋ฌ 2. REST๋ ํ์์ API๋ ๋ฌด์์ธ๊ฐ? (1) REST๋ ํ์์ ๋ฌด์์ธ๊ฐ? REST๋ ๋ค์๊ณผ ๊ฐ์ ํ์์ ๊ฐ์ง๋ค. a. ์์์ ๋ช
์๋ HTTP URL์ ๊ท์ฝ์ ๋ฐ๋ผ์ ํ์ํ๋ค. b. CRUD ์์
์ HTTP_METHOD์ธ GET,..
2022.11.26
๋ฐฑ์๋ ๊ฐ๋ฐ/SpringMVC