Spring/Spring ์
๋ฌธ
ํด๋์ค์์ Command + Shift + T : Create Test ํ์๊ฐ์
๋ฉ์๋ ํ
์คํธ class MemberServiceTest { MemberService memberService = new MemberService(); @Test void ํ์๊ฐ์
() { // ํ
์คํธ๋ ์ง๊ด์ ์ผ๋ก ์์๋ณด๊ธฐ ์ฝ๊ฒ ํ๊ธ๋ก ์์ฑํด๋ ๋ฌด๋ฐฉํ๋ค //given ๋ฌด์ธ๊ฐ ์ฃผ์ด์ก์ ๋ , ๋ฐ์ดํฐ Member member = new Member(); member.setName("hello"); //when ์ด๊ฒ์ ์คํํ์ ๋ , ๊ฒ์ฆ Long saveId = memberService.join(member); //then ๊ฒฐ๊ณผ๊ฐ ์ด๋ ๊ฒ ๋์จ๋ค , Member findMember = memberService.findOne(save..
Spring/Spring ์
๋ฌธ
ํ์ ์๋น์ค ํด๋์ค ๋ง๋ค๊ธฐ ํ์ Repository ์ domain์ ํ์ฉํ์ฌ ๋น์ฆ๋์ค ๋ก์ง์ ์์ฑ package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import java.util.Optional; public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); /** * ํ์ ๊ฐ์
*/ pu..
Spring/Spring ์
๋ฌธ
๊ฐ๋ฐํ ๊ธฐ๋ฅ์ ์คํํด์ ํ
์คํธํ ๋ ์๋ฐ์ main ๋ฉ์๋๋ฅผ ํตํด์ ์คํํ๊ฑฐ๋, ์น ์ ํ๋ฆฌ์ผ์ด์
์ ์ปจํธ๋กค๋ฌ๋ฅผ ํตํด์ ํด๋น ๊ธฐ๋ฅ์ ์คํํ๋ค. ์ด๋ฌํ ๋ฐฉ๋ฒ์ ์ค๋นํ๊ณ ์คํํ๋๋ฐ ์ค๋ ๊ฑธ๋ฆฌ๊ณ , ๋ฐ๋ณต ์คํํ๊ธฐ ์ด๋ ต๊ณ ์ฌ๋ฌ ํ
์คํธ๋ฅผ ํ ๋ฒ์ ์คํํ๊ธฐ ์ด๋ ต๋ค๋ ๋จ์ ์ด ์๋ค. ์๋ฐ๋ JUnit์ด๋ผ๋ ํ๋ ์์ํฌ๋ก ํ
์คํธ๋ฅผ ์คํํด์ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ค. ํ์ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ฉ๋ชจ๋ฆฌ ๊ตฌํ์ฒด ํ
์คํธ package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.junit.jupiter.api.Test; public class MemoryMemberRepositoryTest { MemoryMemberRepository reposit..
Spring/Spring ์
๋ฌธ
๋น์ฆ๋์ค ์๊ตฌ์ฌํญ ์ ๋ฆฌ ๋ฐ์ดํฐ: ํ์ID, ์ด๋ฆ ๊ธฐ๋ฅ: ํ์ ๋ฑ๋ก, ์กฐํ ์์ง ๋ฐ์ดํฐ ์ ์ฅ์๊ฐ ์ ์ ๋์ง ์์(๊ฐ์์ ์๋๋ฆฌ์ค) ํ์ ๋๋ฉ์ธ๊ณผ ๋ฆฌํฌ์งํ ๋ฆฌ ๋ง๋ค๊ธฐ ํ์ ๊ฐ์ฒด domain ํจํค์ง์ Member ํด๋์ค ์์ฑ hello.hellospring.domain package hello.hellospring.domain; public class Member { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { th..
Spring/Spring ์
๋ฌธ
API ๋? Application Programming Interface์ ์ฝ์. https://uhhyunjoo.tistory.com/50 [Spring] API ๋ฐฉ์ API ๋? Application Programming Interface์ ์ฝ์. Appllication Programming ์ ์์ฉ ํ๋ก๊ทธ๋๋ฐ์ ๋ปํ๊ณ , ์ธํฐํ์ด์ค๋ ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ ์์คํ
์ด ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ก ์ด์ด์ฃผ๋ ๊ฒฝ๊ณ๋ฅผ ๋ปํ๋ค. ์ฆ, API๋ ์ด์ uhhyunjoo.tistory.com Appllication Programming ์ ์์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค๋ ์๋ก ๋ค๋ฅธ ๋ ๊ฐ์ ์์คํ
์ด ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ก ์ด์ด์ฃผ๋ ๊ฒฝ๊ณ๋ฅผ ๋ปํ๋ค. ์ฆ, API๋ ์ด์์ฒด์ ์ ์์ฉํ๋ก๊ทธ๋จ ์ฌ์ด์ ํต์ ์ ์ฌ์ฉ๋๋ ์ธ์ด๋ ๋ฉ์์ง ํ์์ ๋งํ๋ค. ..
Spring/Spring ์
๋ฌธ
MVC: Model, View, Controller ์์ ์๋ view์์ ๋ชจ๋ ๊ฒ์ ๋ค ํ์์ ( ๋ชจ๋ธ 1 ๋ฐฉ์ ) --> ์ญํ ๋ถ๋ด Controller ๋น์ฆ๋์ค ๋ก์ง ๊ด๋ จ , ๋ด๋ถ์ ์ธ ๊ฒ์ ์ฒ๋ฆฌ์ ์ง์ค @GetMapping("hello-mvc") public String helloMvc(@RequestParam("name") String name, Model model){ model.addAttribute("name",name); return "hello-template"; } @ReuqestParam ์ ์ด์ฉํ ๊ฐ ๋ฐ์์ค๊ธฐ ๋๋ณด๊ธฐ public String helloMvc(@RequestParam("name") String name, Model model){ @RequestParam("๊ฐ์ ธ์ฌ ๋ฐ์ดํฐ์ ..
Spring/Spring ์
๋ฌธ
์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด -์ ์ ์ฝํ
์ธ ๊ทธ๋ฅ ํ์ผ์ ์น๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ -MVC์ ํ
ํ๋ฆฟ ์์ง Model/View/Controller , ํ
ํ๋ฆฟ ์์ง : html์ ๋์ ์ผ๋ก ๋ฐ๊พธ์ด ๋ณด๋ด์ค ์๋ฒ์์ ๋ณํ์์ ๋ฐ๊พธ์ด ๋ณด๋ -API Json ๋ฐ์ดํฐ ๊ตฌ์กฐ ํฌ๋งท์ผ๋ก ํด๋ผ์ด์ธํธ์ ์ ๋ฌ https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content Spring Boot Features Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, To..
Spring/Spring ์
๋ฌธ
๋น๋ํ๊ณ ์คํํ๊ธฐ ์ฝ์๋ก ์ด๋ 1. ./gradlew build 2. cd build/libs 3. java -jar hello-spring-0.0.1-SNAPSHOT.jar 4. ์คํ ํ์ธ ๋น๋ ์ฑ๊ณต .jar ํ์ผ ์๋ฒ์ ํ๋๋ง ๋ฃ์ด๋๊ณ ์คํํ๋ฉด ๊ฐ๋ ๋น๋,์ปดํ์ผ,๋ฐฐํฌ์ ๊ฐ๋
https://velog.io/@leede418/CS-Compile-Link-Build-%EB%9E%80 [CS] Compile, Link, Build ๋? CS ๊ธฐ์ด๋ฅผ ๋ค์ก์๊ฒธ Compile, Link, Build์ ๋ํด ์์๋ณด์. velog.io