์ฒ์ ๊ฐ๋ฐ ๊ณต๋ถ๋ฅผ ์์ํ์ ๋ ๊ฐ๋ฐ ์ ๊ณ์ ์ง์์ ๊ณต์ ํ๋ ๋ฌธํ ๋๋ถ์ ์ ๋ง ๋ง์ ๋์์ ๋ฐ์์ต๋๋ค.
์ ๋ ์ธ์ ๊ฐ ์ด๋ ํ ํํ๋ก๋ ๊ธฐ์ฌ๋ฅผ ํ๊ณ ์ถ๋ค๋ ๊ฟ์ ๊ฐ์ง๊ณ ์์๊ณ , ๊ฐ์๋ฅผ ์ ์ํ๊ฒ ๋์์ต๋๋ค.
์ ํ๋ธ: https://www.youtube.com/@ejoongseok
Courses
Reviews
- Real-world! TDD through Spring Boot Product-Order API Development
- Real-world! TDD through Spring Boot Product-Order API Development
- Real-world! TDD through Spring Boot Product-Order API Development
- Real-world! TDD through Spring Boot Product-Order API Development
- Real-world! TDD through Spring Boot Product-Order API Development
Posts
Q&A
BeforeEach ๋ฅผ ํ์ ํด๋์ค์์ ๋ค์ ์ฌ์ฉํ๋๊ฒ์ ๋ํด์ ์ง๋ฌธ ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ jisu3316๋ ์ข์ ์๋์ด์ ๊ฑฐ ๊ฐ์ต๋๋ค. Connection refused๊ฐ ๋๋ ์ด์ ๋ก ์ง์๋๋ ๋ถ๋ถ์ ํ์ ํด๋์ค์ setup๊ณผ ์์ํ ApiTest์ setup์ด ๋ฉ์๋ ๋ช ์ด ๊ฐ์์ override๋๋ฉด์ ์์ํด๋์ค์ setup์ ์คํ์ํค์ง ์์์ ๊ทธ๋ฌ๋๊ฑฐ ๊ฐ์ต๋๋ค.ํ์ํด๋์ค์ @BeforeEach์ ๋ฉ์๋๋ช ์ ์์ํด๋์ค์ ๋ฌ๋ฆฌ ํด์ฃผ์๋ฉด ๋ฌธ์ ์์ด ์ํ๋ ๊ฑฐ๊ฐ์ต๋๋ค ใ ใ
- 1
- 1
- 491
Q&A
TRUNCATE TABLE ์ AUTO_INCREMENT ์ปฌ๋ผ 1๋ก ์ด๊ธฐํ
์๋ ํ์ธ์ pgrrr119 ๋!๋ง์ํด์ฃผ์ ๋๋ก MySQL์์ TRUNCATE TABLE์ ํ ๊ฒฝ์ฐ AUTO_INCREMENT ์ปฌ๋ผ ๊ฐ์ด ์ด๊ธฐ๊ฐ์ผ๋ก ์ฌ์ค์ ๋์ด AUTO_INCREMENT๋ฅผ 1์ผ๋ก ๋ค์ ๋ณ๊ฒฝํ๋ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ํ์๊ฐ ์์ต๋๋ค.https://dev.mysql.com/doc/refman/8.0/en/truncate-table.htmlH2๋ TRUNCATE TABLE์ ์คํํ๋๋ผ๋ IDENTITY๊ฐ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ฌ์ค์ ๋์ง ์์ต๋๋ค!https://www.h2database.com/html/commands.html#truncate_tableIDENTITY๋ฅผ ์ด๊ธฐํ ํ๊ธฐ ์ํด์๋ ์์์์์ฒ๋ผ ALTER TABLE 'TABLE_NAME' ALTER COLUMN COLUMN_NAME RESTART WITH 1;๋๋ TRUNCATE TABLE 'TABLE_NAME' RESTART IDENTITY;์ ๊ฐ์ด TRUNCATE TABLE ๋ช ๋ น์ด ๋ค์ RESTART IDENTITY๋ฅผ ์ถ๊ฐํด์ฃผ์๋ฉด ๋ฉ๋๋ค!์ค์ ๋ก ID๋ฅผ 1์ผ๋ก ์ฌ์ค์ ํ๋ ์ฟผ๋ฆฌ๋ฅผ ์ฃผ์์ฒ๋ฆฌํ๊ณ ์ ์ฒด ํ ์คํธ๋ฅผ ์คํํ๋ฉด ํ ์คํธ ๊ฒฉ๋ฆฌ๊ฐ ์๋์ ํ ์คํธ๊ฐ ์คํจํ๋๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค!
- 2
- 1
- 3.2K
Q&A
POJO๋ก ๊ฐ๋ฐ ํ ์คํ๋ง์ผ๋ก ์ ํ, ์ดํ JPA ์ ํํ๋ ์ด์
์๋ ํ์ธ์ ๋ง์ดํด ๋!POJO๋ก ๊ฐ๋ฐํ ํ ์คํ๋ง์ผ๋ก ์ ํํ๊ณ ๋ง์ง๋ง์ JPA๋ก ์ ํํ๋ ์ด์ ๋ ์ฃผ๋ก ์ค๊ณ ๋ฐ ๊ฐ๋ฐ ๊ณผ์ ์์์ ํจ์จ์ฑ๊ณผ ์ ์ฐ์ฑ ๋๋ฌธ์ ๋๋ค. ์ฒ์๋ถํฐ JPA๋ก ๊ฐ๋ฐํ๋ ๊ฒ๋ ๊ฐ๋ฅํ์ง๋ง, ์ด๋ ๊ฒ ์ ๊ทผํ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋จ์ ์ด ์์ต๋๋ค.๋ฐ์ดํฐ ์ค์ฌ์ ์ค๊ณ: JPA๋ฅผ ์ฒ์๋ถํฐ ์ฌ์ฉํ๊ฒ ๋๋ฉด, ๋ฐ์ดํฐ ์ค์ฌ์ ์ค๊ณ๊ฐ ๋์ค๊ธฐ ์ฝ์ต๋๋ค. ์ด๋ก ์ธํด ๊ฐ์ฒด์งํฅ์ ์ธ ์ค๊ณ ์์น์ด ๋ฌด์๋๊ฑฐ๋ ํฌ์๋ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, POJO๋ฅผ ๋จผ์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด์งํฅ์ ์ธ ์ค๊ณ ์์น์ ์ถฉ์คํ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ผ๋ฉฐ, ์ดํ์ JPA๋ก ์ ํํ๋ฉด์ ๊ฐ์ฒด์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ด์ ์ฐ๋์ ์์ํ๊ฒ ํ ์ ์์ต๋๋ค.๊ฐ๋ฐ ์๊ฐ: JPA๋ฅผ ์ฒ์๋ถํฐ ์ฌ์ฉํ๋ฉด, ์ด๊ธฐ ๊ฐ๋ฐ ์๊ฐ์ด ์๋์ ์ผ๋ก ๋ ๋ง์ด ์์๋ฉ๋๋ค. ๋ฐ๋ฉด์ POJO๋ก ๋จผ์ ๊ฐ๋ฐํ๋ฉด, ๊ธฐ๋ฅ ๊ตฌํ์ ์ง์คํ์ฌ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์์ผ๋ฉฐ, ์ดํ ์คํ๋ง ๋ฐ JPA๋ก ์ ํํ๋ฉด์ ํ์ํ ๋ถ๋ถ๋ง ์ ์ง์ ์ผ๋ก ์์ ํด ๋๊ฐ ์ ์์ต๋๋ค.๋ฐ๋ผ์, POJO๋ก ๊ฐ๋ฐํ ํ ์คํ๋ง๊ณผ JPA๋ก ์ ํํ๋ ์ ๊ทผ ๋ฐฉ์์ ๊ฐ์ฒด์งํฅ์ ์ธ ์ค๊ณ ์์น์ ์ค์ํ๋ฉด์๋ ๊ฐ๋ฐ ์๊ฐ์ ์ค์ด๊ณ ์ ์ฐํ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ ๋๋ค.
- 4
- 1
- 1.2K
Q&A
TestRestTemplate ๋์ ์ RestAssured๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๊ฐ ์์๊น์?
์๋ ํ์ธ์ ์์ํ ๋ !์์์์ RestAssured๋ฅผ ์ฌ์ฉํ ์ด์ ์ ๋ํด์๋ ์ด์ ์ ๋ค๋ฅธ๋ถ๊ป์ ์ง๋ฌธํด์ฃผ์ ๋ด์ฉ์ ๋ํ ๋ต๋ณ๊ณผ ๋น์ทํ ๊ฑฐ๊ฐ์์ ๋งํฌ๋ฅผ ๋จ๊ฒจ๋๋ฆฝ๋๋ค!RestAssured๋ฅผ ์ฌ์ฉํ๋ฉด Spring์์กด์ฑ ์์ด API์์ฒญ์ ํ ์คํธํด๋ณผ ์ ์์ด์ ์ฌ์ฉํ์ต๋๋ค!๊ฐ์ฌํฉ๋๋ค!
- 0
- 1
- 1.1K
Q&A
API ํ ์คํธ๋ก ์ ํํ๊ธฐ
์๋ ํ์ธ์ enble_777 ๋!!์์์์ var ํ์ ์ ์ฌ์ฉํ๊ฑด ์ํฉ์ ๋ฐ๋ผ varํ์ ์ ์ฌ์ฉํ๋๊ฒ ํ์ ์ ๋ช ์ํ๋๊ฑฐ๋ณด๋ค ๊ฐ๋ ์ฑ์ ๋์์ด ๋ ์ ์๋ค๊ณ ์๊ฐ๋์ด์ ์ฌ์ฉํ์ต๋๋ค !๊ฐ์ฌํฉ๋๋ค!
- 0
- 1
- 927
Q&A
์ฝ๋ ์คํ์ผ์ ๋ํด์ ์ง๋ฌธ๋๋ฆฝ๋๋ค.
์๋ ํ์ธ์ ์์ํ ๋!!์ฐ์ ์ง๋ฌธ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค.1.๋ณ์์ final ํค์๋๋ฅผ ๋ถ์ด๋ ์ด์ ๋ ๋ณ๊ฒฝ์ด ํ์ ์๋ ๋ณ์๋ฅผ ๋ถ๋ณ์ผ๋ก ๋ง๋ค์ด์ ์ฝ๋์ ์์ ์ฑ์ ๋์ด๊ณ , ๋ณ์์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ ์ค๋ฅ๋ฅผ ๋ฐฉ์งํ๋ ์ฐจ์์์ ๊ฐ์ด ๋ณ๊ฒฝ๋์ง ์๋ ๋ชจ๋ ๋ณ์๋ฅผ ๋ถ๋ณ์ผ๋ก ๋ง๋ญ๋๋ค.๋ฌด๋ถ๋ณํ๊ฒ setter๋ฅผ ๋ง๋ค์ง ์๋๊ฒ๊ณผ ๋น์ทํ ๊ด์ ์ผ๋ก ์ดํดํด์ฃผ์๋ฉด ๋ ๊ฑฐ๊ฐ์ต๋๋ค. 2.ํด๋์ค์ public์ ์ง์ฐ๋ ์ด์ ๋ public์ ์ด๋์๋ ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ํ์ฉํ๋ ๊ฒ์ด์ง๋ง package-private์ ๊ธฐ๋ณธ์ผ๋ก ํจ์ผ๋ก์จ ๊ฐ์ํจํค์ง ๋ด์์๋ง ์ ๊ทผ ๊ฐ๋ฅํ๋๋ก ์ ํํ์ฌ, ์ ๊ทผ ๋ฒ์๋ฅผ ๋ ๋ช ํํ๊ฒ ํํ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ ์คํธ ํด๋์ค์ public์ ์ง์ฐ๋๊ฒ์ด๋ผ๋ฉด public์ผ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ง์ฐ๋ ๊ฒ์ ๋๋ค! 3.๋ฉ์๋๋ฅผ static์ผ๋ก ์ ์ธํ๋ ์ด์ ๋ Steps๋ฅผ ๋ง์ํ์๋๊ฒ์ผ๋ก ์ดํด๊ฐ ๋๋๋ฐ์, static ๋ฉ์๋๋ฅผ ์ฌ์ฉํจ์ผ๋ก์จ ์ธ์คํด์ค ์์ฑ์์ด ๋ฐ๋ก ํธ์ถํ๊ธฐ ์ํด์ static์ผ๋ก ๋ฉ์๋๋ฅผ ์ ์ธํ์ต๋๋ค.
- 2
- 1
- 1.1K
Q&A
ApiTest์์ MockMvc๋ฅผ ์ฌ์ฉํ ํ ์คํธ๊ฐ ์๋
์๋ ํ์ธ์ ๊น๋ํธ๋ ! ๋ต๋ณ์ด ๋ฆ์ด์ ์ฃ์กํฉ๋๋ค.์์ ์์๋ ๊ฐ ๋๋ฉ์ธ๋ณ API๋ฅผ ์์ฒญํ๋ Steps๋ผ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ํด๋น ๊ฐ์ฒด๋ก API์์ฒญ์ ํ๊ณ ์์ต๋๋ค. Steps ๊ฐ์ฒด๋ Spring ์์กด์ฑ์ด ์์ด API ์์ฒญ์ ๋ณด๋ด ๋ณผ ์ ์์ต๋๋ค.mockMvc๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ Steps๊ฐ mockMvc์์กด์ฑ์ ์ฃผ์ ๋ฐ๊ฑฐ๋ ํด์ ์ฌ์ฉํด์ผ ๋ ๊ฒ ๊ฐ์๋ฐ์!๊ทธ๋์ ์ข ๋ ๊ฐ๋จํ๊ฒ ์ฌ์ฌ์ฉ ํ๊ธฐ ์ํด RestAssured๋ฅผ ์ฌ์ฉํ์ต๋๋ค.๊ฐ์ฌํฉ๋๋ค!
- 1
- 3
- 1.3K
Q&A
port์ adapter์ ๋ํด
์๋ ํ์ธ์ Minkyu Ha๋!์ด๋ฒ ๊ฐ์์์ ์ฌ์ฉ๋ port์ adapter๋ ํฅ์ฌ๊ณ ๋ ์ํคํ ์ฒ, ํฌํธ & ์ด๋ํฐ ๋ฑ์ผ๋ก ๋ถ๋ฆฌ๊ณ ์๋ ๊ตฌ์กฐ์์ ๋งํ๋ ์์๋ฐ์ด๋ ํฌํธ, ์์๋ฐ์ด๋ ์ด๋ํฐ๋ผ๊ณ ์ดํดํ์๋ฉด ๋ ๊ฑฐ๊ฐ์ต๋๋ค. ์์๋ฐ์ด๋ ํฌํธ๋ฅผ ์ด์ฉํด ์ ํ๋ฆฌ์ผ์ด์ ์ฝ์ด๋ฅผ ์ธ๋ถ(DB, API, ๋ฑ...)์ ๋ถ๋ฆฌํ์ฌ,์ ํ๋ฆฌ์ผ์ด์ ์ฝ์ด๋ฅผ ์ฝ๊ฒ ํ ์คํธ ํ๊ณ , ์ธ๋ถ์ ๋ณ๊ฒฝ์ผ๋ก ๋ถํฐ ์ฝ์ด๋ฅผ ๋ณดํธํ๋ ค๋ ์๋๋ก ์ฌ์ฉํ์ต๋๋ค.
- 1
- 1
- 918
Q&A
.ast
์๋ ํ์ธ์ ํํํ๋!ํ ์คํธ์์ .ast๋ก assertThat์ ์์ฑํ๋๊ฒ์IDE๋ฅผ ์ถ๊ฐ๋ก ์ค์ ํด์ผ ํ๋๋ฐ์!์ ๊ฐ ์์์์ ์ฌ์ฉํ ๋จ์ถํค์ ํด ์ฌ์ฉ๋ฒ์์์ ๋ง์ง๋ง์ [๋ฆฌ๋ทฐ๋ฐ์]์ด๋ผ๋ ์์์ ๋ชจ์๋จ์ต๋๋ค!.ast์ ์ค์ ๋ฐฉ๋ฒ์ ์๋์๊ฐ์ต๋๋ค!(์ฌ์ง)Before: $EXPR$.astAfter: assertThat($EXPR$).isEqualTo("");์ ์ ํฉ๋๋ค.(์ฌ์ง)+๋ฒํผ์์ด์ฝ์ ํด๋ฆญํ์ ๋ค Java๋ฅผ ์ ํํด์ฃผ์๊ณ (์ฌ์ง)org.assertj.core.api.Assertions.assertThat($EXPR$).isEqualTo("$END$");use static import possible์ ์ฒดํฌํด์ฃผ์๋ฉด ๋ฉ๋๋ค! ๊ฐ์ฌํฉ๋๋ค! ๐
- 1
- 1
- 560
Q&A
API ํ ์คํธ๋ก ์ ํํ๊ธฐ ์์์์..
์๋ ํ์ธ์ doxxx93๋!์๋ฆฌํ๊ฒ ์ ์บ์นํ์ จ๊ตฐ์!๐ApiTest๋ฅผ extendsํ๋ฉด์ SpringBootTest์ด๋ ธํ ์ด์ ์ ์ง์ฐ๋ ์ด์ ๋ ์ด๋ฏธ ApiTestํด๋์ค์ SpringBootTest๊ฐ ๋ถ์ด์๊ธฐ ๋๋ฌธ์ ๋๋ค! ์์ ์ดํ์ ์๋ฌ๊ฐ ๋์ ๋ค๋ฉด ApiTest์ SpringBootTest๋ฅผ ํ์ธํด์ฃผ์๊ธฐ ๋ฐ๋๋๋ค! ์๋ฌด๋๋ ์ ๊ฐ ๊ฐ์๋ฅผ ๋๋ฌด ๋น ๋ฅด๊ฒ ์งํํ๋ค๋ณด๋์์์ ์์ฒญํ์๋ฉด์ ๋์น์ ๋ถ๋ค์ด ๋ง์ผ์ค๊ฑฐ๊ฐ์๋ฐ์๐ญ ์ง๋ฌธ ๊ฐ์ฌํฉ๋๋ค!!๐
- 18
- 5
- 1.3K