Spring Boot


Kotlin์ผ๋ก ํ๋ก์ ํธ ์งํ ์ค์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๊ฒ ๋์๋ค. @DataJpaTest class MemberRepositoryTest @Autowired constructor(private val memberRepository: MemberRepository) : BehaviorSpec() { init { given("Member Entity ์์ฑ") { val member = Member("123456", "ํ ์คํธ ๋๋ค์") `when`("์์ฑํ Member Entity๋ฅผ ์ ์ฅ") { val savedMember = memberRepository.save(member) then("Entity ์ ์ฅ ์ฑ๊ณต") { savedMember.kakaoId shouldBe member.kakaoId saved..


์ธํผ์์ ์งํํ ๊ณตํตํ๋ก์ ํธ ๋ API ๋ช ์ธ์๋ก Swagger๊ฐ ์๋ Spring Rest Docs๋ฅผ ์ฑํํ๋ค. ๊ทธ ๋ ์ ์ฉํ๋ ๋ฒ์ ๋ ธ์ ์ ๋์ถฉ ์ ์ด๋จ๋๋ฐ ์ด๋ฒ์ ์ ์ฉํ๋ฉด์ ๊น๋ํ๊ฒ(?) ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. ๐๐ป ๋ด๊ฐ ์๊ฐํ์ ๋ Spring Rest Docs์ ์ฅ์ - ํ ์คํธ๊ฐ ์ฑ๊ณตํด์ผ ๋ฌธ์ํ๊ฐ ๋๊ธฐ๋๋ฌธ์ ํญ์ ์ต์ ํ ๋์์๊ณ ํ์ง์ ๋ณด์ฅํ ์ ์๋ค. - ๋ฌธ์ํ ๋์ ๋ Swagger๋ณด๋ค๋ ํ๋ก ํธ๊ฐ ์ฝ๊ฒ ์ดํดํ ์ ์๋ค๊ณ ์๊ฐํ๋ค. - Request, Response์ ๊ดํ ์ค๋ช ์ ์ด๋ ธํ ์ด์ ์ด ์๋ ํ ์คํธ ์ ์์ฑํ ์ ์์ด spring ์๋ฒ์ ์ฝ๋๊ฐ ์ข ๋ ๊น๋ํด๋ณด์ธ๋ค. ๐๐ป Spring Rest Docs์ ๋จ์ - ํ ์คํธ ์ฝ๋ ์ง๋๊ฒ ๋๋ฌด๋๋ฌด๋๋ฌด ๊ท์ฐฎ๋ค... ์ ๋ง๋ก... ๋จ์ ์ ์ ๊ทน๋ณตํ๋ฉด ๋ฟ๋ฏํ..


1. ์ดํด๋ฆฝ์ค๋ฅผ ํจ ํ Java EE๋ก ์ค์ ๋์ด ์๋์ง ํ์ธํ๋ค. (Java EE๊ฐ ์๋ ๋ค๋ฅธ ๊ฑธ๋ก ์ค์ ๋์ด ์๋ค๋ฉด ๋ฐ๋ก ์ผ์ชฝ ๋ฒํผ์์ ๋ณ๊ฒฝํ ์ ์๋ค.) 2. Dynamic Web project๋ฅผ ์์ฑํ๋ค. 3. ํ๋ก์ ํธ ์ด๋ฆ์ ์ ๋ ฅํ๊ณ ๋ด ํ๋ก์ ํธ๊ฐ ์คํ๋ WAS๋ฅผ ์ค์ ํ๋ค. 4. ํ๋ก์ ํธ ์์ฑ์๋ฃ...! (๋ง์ฝ WebContent๊ฐ ์กด์ฌํ์ง ์๊ณ src/main/webapp์ด ์กด์ฌํ๋ค๋ฉด ์๋ง ์ดํด๋ฆฝ์ค ๋ฒ์ ์ด 2021 ์ด์์ผ ๊ฒ์ด๋ค...!) ํ๋ก์ ํธ์ Properties์์ Web Project Settings๋ฅผ ํ์ธํด๋ณด๋ฉด Context root๋ผ๋ ๊ฒ์ด ์ค์ ๋์ด ์๋ค. Context root๋ WAS์์ ์ฌ๋ผ๊ฐ ๋ด ์ ํ๋ฆฌ์ผ์ด์ (ํ๋ก์ ํธ)์ ๋ฃจํธ ์ฃผ์๋ฅผ ๋งํ๋ค. ๋ง์ฝ localhost์์ ์คํํด๋ณธ๋ค๋ฉด ..


* Backend๋ฅผ ๊ณต๋ถํ๊ธฐ์ ์์ ๊ฐ๋จํ๊ฒ ์ ์ฒด์ ์ธ Web ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ณ ๊ฐ์! 1. Client : data๋ฅผ ๊ฐ์ง๊ณ ์์ฒญ(request)ํ๊ณ , ์์ฒญ์ ๋ํ ์๋ต(response)์ ๋ฐ๋ ๊ณณ 2. Web Server static content(HTML pages, files, ...)๋ฅผ ์ ๋ฌํ๋ค. Http request์ Http response๋ง ์ฒ๋ฆฌํ๋ค. 3. Application Server : ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ํ business logic์ ์ฒ๋ฆฌํ๊ณ dynamic content(Servlet)์ ์์ฑํ๋ค. https://www.educative.io/edpresso/web-server-vs-application-server Web server vs. Application server C..