๋ฐ์ํ IT Blog404 JUnit5 assertThat vs assertAll vs assertSoftly ๐ JUnit5 assertThat vs assertAll vs assertSoftly ํ์ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ ๋ assertThat ํน์ assertAll ๋ด๋ถ์ assertThat์ ์์ฑํ์๋๋ฐ์, ์ด๋ฒ์ SoftAssertions์ assertSoftly๋ผ๋ ๊ฒ์ฆ ๋ฉ์๋๋ฅผ ์๊ฒ๋์ด ๊ฐ๋ตํ ์ ๋ฆฌํด๋ณด๊ณ ์ ํฉ๋๋ค. ๐ โ๏ธ ํ ์คํธ ์ฝ๋ import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.SoftAssertions.assertSoftly; import static org.junit.jupiter.api.Assertions.ass.. 2022. 9. 17. Git Sqaush๋ก ์ฌ๋ฌ ๊ฐ์ Commit logs ํฉ์น๊ธฐ(Git Rebase) ๐ Git Sqaush๋ก ์ฌ๋ฌ ๊ฐ์ Commit logs ํฉ์น๊ธฐ(Git Rebase) ์๋ ํ์ธ์, ์ด๋ฒ ํฌ์คํ ์์๋ ์ฌ๋ฌ ์ปค๋ฐ๋ค์ ํ๋๋ก ๋ฌถ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ณดํต git์ ์ฌ์ฉํ๋ค๋ณด๋ฉด ๋ถํ์ํ๊ฒ ์ปค๋ฐ์ ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. (์๋ฅผ ๋ค๋ฉด.. ๊ฐ๋ฐ ์๋ฒ์์ ํ ์คํธ๋ฅผ ์ํด ์ฟผ๋ฆฌ๋ ๋ฐ์ดํฐ ์กฐ์๋ฑ์ ๋ถํ์ํ ์์๊ฐ ์๊ฒ ์ต๋๋ค.) ๋ฌดํผ, ์ด๋ฌํ ํ ์คํธ๋ฅผ ์งํํ๋ ค๋ฉด ํ ์คํธ commit - ๋กค๋ฐฑ commit์ผ๋ก ์ต์ 2๋ฒ ์ด์ ๋ถํ์ํ ์ปค๋ฐ์ ์งํํ๊ฒ ๋ฉ๋๋ค. ์ด ๋, Git Squash๋ฅผ ํตํด ๋ถํ์ํ ์ปค๋ฐ ๋ก๊ทธ๋ฅผ ํ๋๋ก ๋ฌถ์ ์ ์์ต๋๋ค. ๋ํ Squash ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด Git Rebase๋ฅผ ์ฌ์ฉํด์ผ ํ๋๋ฐ์, ์ด๋ฌํ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ์ด๋ ฅ์ ๋ณด๋ค ๊น๋ํ๊ฒ ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด.. 2022. 9. 15. Github ๋ ํฌ์งํ ๋ฆฌ ์ปค๋ฐ ์ด๋ ฅ ์ ์งํ ์ฑ ๋ค๋ฅธ ๋ ํฌ์งํ ๋ฆฌ์ ๋ณต์ ํ๊ธฐ ๐ Github ๋ ํฌ์งํ ๋ฆฌ ์ปค๋ฐ ์ด๋ ฅ ๋ณด๊ดํ ์ฑ ๋ณต์ ํ๊ธฐ ๊ธฐ์กด ๋ ํฌ์งํ ๋ฆฌ ๋ด์ฉ์ ์๋ก์ด ๋ ํฌ์งํ ๋ฆฌ์ ์ด๋ ฅ์ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ๋ณต์ ๋ฅผ ํด์ผ ํ ๋๊ฐ ์๋๋ฐ์, ์ด ๋ ๋ค์๊ณผ ๊ฐ์ด ํ๋ฉด ๊ธฐ์กด ์ด๋ ฅ์ ์ ์งํ ์ฑ ๋ ํฌ์งํ ๋ฆฌ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํฉ๋๋ค. Design-Pattern-Study ํด๋๊ฐ ๊ธฐ์กด์ ์กด์ฌํ๋ ๋ ํฌ์งํ ๋ฆฌ์ด๊ณ , to ํด๋๊ฐ ์ด๋ํ ๋ ํฌ์งํ ๋ฆฌ์ ๋๋ค. ์ฆ, ๊ธฐ์กด Design-Pattern-Study ๋ ํฌ์งํ ๋ฆฌ์ ์ด๋ ฅ์ ๊ทธ๋๋ก ๋ณด๊ดํ ์ฑ to ๋ ํฌ์งํ ๋ฆฌ๋ก ์ฎ๊ฒจ๋ณด๊ฒ ์ต๋๋ค. ๐ฅ ์ ์ฒด ๊ณผ์ ์ ๋ช ๋ น์ด๋ก ๊ฐ๋จํ ๋ํ๋ด๋ฉด ๋ค์๊ณผ ๊ฐ์ต๋๋ค. // to ํด๋๋ก ์ด๋ cd to // main(master) ๋ธ๋์น๋ก ๋ณ๊ฒฝ git checkout main(master) // ๊ธฐ์กด ๋ ํฌ์งํ ๋ฆฌ url ์ถ๊ฐ : cloneํ ๋ ๋ณต์ฌ.. 2022. 9. 9. Spring Boot profiles ์ค์ ํ๊ธฐ ๐ Spring Boot profiles ์ค์ ํ๊ธฐ ์๋ ํ์ธ์, ์ด๋ฒ ํฌ์คํ ์์๋ ์คํ๋ง ๋ถํธ์์ ์ฌ๋ฌ profile์ ์ค์ ํ๊ณ , ์ค์ ๊ฐ๋ค์ ๊ฐ์ฒด์ ๋ฐ์ธ๋ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ์ค์ ๊ฐ๋ฐ์ ์งํํ๊ณ ์ด์์ ํ๋ค๋ณด๋ฉด ๊ฐ๋ฐ(dev), ํ ์คํธ(stage), ์ํ(alpha), ์์ฉ(prod) ๋ฑ ์ด์ํ๊ฒฝ์ ๋ฐ๋ผ ์๋ฒ๋ ์ค์ ๊ฐ๋ค์ด ์ฌ๋ฌ๊ฐ๋ก ๋๋ ์ ์๋๋ฐ์, ์คํ๋ง ๋ถํธ์์๋ ์ด๋ฌํ ์ค์ ์ ๊ฐ๋จํ ํ ์ ์์ต๋๋ค. ํด๋น ํฌ์คํ ์์๋ yml ํ์ผ์ ๊ธฐ์ค์ผ๋ก ์ค์ ์ ํด๋ณด๊ฒ ์ต๋๋ค. ๐คฏ ๐ yml ํ์ผ ์์ฑํ๊ธฐ resource ํ์ ํด๋์ ์์ฑํ yml ํ์ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. ๐ application.yml spring: profiles: active: - local group: local: - site.. 2022. 9. 5. Spring Thread, Transaction, Connection ๊ด๊ณ ๐ Spring Thread, Transaction, Connection ๊ด๊ณ ์๋ ํ์ธ์, ์ต๊ทผ ํ ๋น์ ์คํ๋ง ๋์๋ก ์คํฐ๋ ์ค ์๋์ ๋น์ทํ ์ง๋ฌธ์ด ์์์ต๋๋ค. "ํธ๋์ญ์ ์ด ์๋ก ์์ฑ๋ ๋ ์ค๋ ๋๊ฐ ์๋ก ์์ฑ๋ ๊น์?" ์ด์ ๊ด๋ จํ์ฌ ์๋์ ๊ด๊ณ๋ค์ ๋ํด ๊ฐ๋ตํ ์ ๋ฆฌํด๋ณด๊ณ ์ ํฉ๋๋ค. (๊ด๋ จ ์ฝ๋๋ GitHub์์ ํ์ธํ ์ ์์ต๋๋ค. ๐ ) Thread per transaction vs One thread for serveral transaction Thread per connection vs One thread for all connections ํ๋ฆฐ ๋ด์ฉ์ด ์กด์ฌํ ์ ์์ผ๋ ์ด๋ฌํ ๋ถ๋ถ์์๋ ํผ๋๋ฐฑ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค. ๐ (โป ํด๋น ํฌ์คํ ์ https://truehong.tistory.com/14.. 2022. 9. 3. IP ์ฃผ์(ํด๋์ค, CIDR, ์๋ธ๋ท ๋ง์คํฌ) ๐ IP ์ฃผ์ OSI 7๊ณ์ธต์์ ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์๋ ๊ณ์ธต์ 2๊ณ์ธต(๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต)๊ณผ 3๊ณ์ธต(๋คํธ์ํฌ ๊ณ์ธต) ์ ๋๋ค. 2๊ณ์ธต์ ๊ฒฝ์ฐ ๋ฌผ๋ฆฌ ์ฃผ์์ธ MAC์ฃผ์๋ฅผ ์ฌ์ฉํ๊ณ , 3๊ณ์ธต์ ๋ ผ๋ฆฌ ์ฃผ์์ธ IP ์ฃผ์๋ฅผ ์ฌ์ฉํฉ๋๋ค. (3๊ณ์ธต์์ ๋์ํ๋ ์ฅ๋น์ธ ๋ผ์ฐํฐ๊ฐ IP ์ฃผ์ ์ฒด๊ณ๋ฅผ ์ดํดํ๊ณ ์ต์ ์ ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ํจํท์ ํฌ์๋ฉํฉ๋๋ค.) IP ์ฃผ์๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์ฌ์ฉ์๊ฐ ๋ณ๊ฒฝ ๊ฐ๋ฅํ ๋ ผ๋ฆฌ ์ฃผ์ ์ฃผ์์ ๋ ๋ฒจ(Class)์ด ์กด์ฌ - ๊ทธ๋ฃน์ ์๋ฏธํ๋ ๋คํธ์ํฌ ์ฃผ์์ ํธ์คํธ ์ฃผ์๋ก ๋๋จ ๋๋ถ๋ถ์ ๋คํธ์ํฌ๊ฐ TCP/IP๋ก ๋์ํ๊ธฐ ๋๋ฌธ์ IP ์ฃผ์ ์ฒด๊ณ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ๋คํธ์ํฌ์ ๋งค์ฐ ์ค์ํ๊ธฐ์ ์ด๋ฒ ํฌ์คํ ์์๋ 3๊ณ์ธต ์ฃผ์์ธ IP ์ฃผ์์ ๋ํด ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๐ IP ์ฃผ์ ์ฒด๊ณ ํํ ์ฌ์ฉํ๋ IP ์ฃผ์.. 2022. 8. 22. Spring Data MongoDB Array field $elemMatch(MongoRepository Custom) ๐ MongoRepository Custom ๋ฐ $elemMatch ์ฌ์ฉํ๊ธฐ ์ต๊ทผ ์ฌ์ด๋ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ MongoDB๋ฅผ ์ฒ์์ผ๋ก ์ฌ์ฉํด๋ณด๊ณ ์์ต๋๋ค. ๊ฐ๋จํ ๋ก์ง์ Query Method๋ @Query ์ด๋ ธํ ์ด์ ์ผ๋ก ๊ฐ๋จํ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํด์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์์ผ๋, MongoDB์ ๊ฒฝ์ฐ ๋ฌธ๋ฒ์ ์ต์์น ์๋ค๋ณด๋ ์ง์ Repository๋ฅผ ์ปค์คํ ์ผ๋ก ์์ฑํด์ ๊ด๋ฆฌํ๋๊ฒ ๋ณด๋ค ํธ๋ฆฌํ ๋ฏ ํ์ฌ ์ปค์คํ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ์ ๋ํด ์๊ฐํ๊ณ ์ ํฉ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก ์ฝ๊ฐ ์ฝ์ง์ํ๋ Query ๋ฐ Criteria, $elemMatch๋ฅผ ํตํด MongoDB์์ Array field๋ฅผ ๊ฒ์ํ๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ์ถ๊ฐ์ ์ผ๋ก ์ดํด๋ณด๊ฒ ์ต๋๋ค. ๋ฌผ๋ก QueryDSL์ ์ ์ฉํ๋ฉด ์ข ๋ ํธํ๊ฒ ์์ฑ์ด ๊ฐ๋ฅํ ๊ฒ ๊ฐ์ผ๋, ์ถํ ๋ณ๊ฒฝ.. 2022. 8. 20. ๋งฅ ํฐ๋ฏธ๋์์ IntelliJ ์คํ์ด ์๋ ๋(idea .) ๐ ๋งฅ ํฐ๋ฏธ๋์์ IntelliJ ์คํ์ด ์๋ ๋(idea .) ํ์ ์๋ก์ด ํ๋ก์ ํธ๋ฅผ ์ธํ ๋ฆฌ์ ์ด๋ก ์คํํ ๋ ํฐ๋ฏธ๋์์ idea . ๋ช ๋ น์ด๋ก ๊ฐ๋จํ ์ธํ ๋ฆฌ์ ์ด๋ฅผ ์คํํ์๋๋ฐ, ์ด๋ฒ์ IntelliJ ๋ฒ์ ์ ๊ทธ๋ ์ด๋๋ฅผ ํ๋ฉด์ ์คํ์ด ์๋๋ ํ์์ด ์์์ต๋๋ค. ์ค๋ฅ๋ฅผ ๋์ถฉ ์ดํด๋ณด๋ฉด... /Applications/IntelliJ IDEA.app ์ openํ ์ ์๊ณ , ๊ทธ๋ฌํ ํ์ผ์ด ์๋ค๊ณ ๋์ค๋๋ฐ์ ์ ๋ ๋ฐ๋ก ์ค์ ํ ๊ฒ ์๋๋ฐ ์ด๋ฒ์ ์ธํ ๋ฆฌ์ ์ด์ ๋ฒ์ ์ ์ ๊ทธ๋ ์ด๋ ํ๋ฉด์ ๋ญ๊ฐ ๊ฒฝ๋ก๊ฐ ๊ผฌ์ธ ๊ฒ ๊ฐ์ต๋๋ค. ์ ์ค๋ฅ๋ ์๋ ์ค์ ์ ํตํด ํด๊ฒฐํ ์ ์์ต๋๋ค.. ๐ ์๋ ๊ธฐ์กด์๋ Tools > Create Command-line Launcher... ๋ฅผ ํด๋ฆญํ๋ฉด ๋ฐ๋ก ์ค์ ํ๋ ์ฐฝ์ด ๋์์๋๋ฐ, ์ด์ ํด๋ฆญํ๋ฉด ์๋์ .. 2022. 8. 9. ๊ฐ์ธ์ ์ผ๋ก ๊ตฌ๋ ํ๊ณ ์๋ ์๋น์ค๋ค ์๋ ํ์ธ์, ์ ๋ ํ์ ๋ง์ ๊ตฌ๋ ์๋น์ค๋ค์ ์ด์ฉํ๊ณ ์๋๋ฐ์, ์ด์ ๊ด๋ จํ์ฌ ๊ฐ๋ตํ ๋์ดํด๋ณด๊ณ ์ ํฉ๋๋ค. ์์ฆ์ ๊ตฌ๋ ์๋น์ค๋ค์ด ๊ต์ฅํ ๋ง์ด ์๊ฒจ๋๊ณ ์๊ณ , ์ ๋ํ ๊ตฌ๋ ํ๊ณ ์๋ ์๋น์ค๊ฐ ํ๋๊ฐ๊ฐ ์๋๋ค ๋ณด๋ ๋ด์ผ ํ ๊ฒ๋ค์ด ๋๋ฌด๋ ๋ง์์ง๊ณ ์๋ค์.. ๐ ์ ๋ ์ฃผ๋ก IT์ ๊ฒฝ์ , ์์ ๋ฑ์ ๊ตฌ๋ ์๋น์ค๋ฅผ ์ด์ฉํ๊ณ ์๋๋ฐ์, ์ ๊ฐ ๋์ดํ ๊ฒ ์ค์ ํ์ํ ๊ตฌ๋ ์๋น์ค๊ฐ ์๋ค๋ฉด ๊ตฌ๋ ์ ํตํด ์ธ์ฌ์ดํธ๋ฅผ ๋๋ฆฌ๋๊ฒ๋ ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๐ ๐ฅ IT Daily DevBlog ๋งค์ผ ์ค์ 10์, ์ด์ ๋ฑ๋ก๋ ๊ธ๋ค์ ํ์ธํ ์ ์์ต๋๋ค. ๋ณธ์ธ์ ๋ธ๋ก๊ทธ๋ฅผ ๋ฑ๋กํ๋ ค๋ฉด ๊นํ๋ธ์ ๋ณธ์ธ์ ๋ธ๋ก๊ทธ ์ฃผ์๋ฅผ ๋ฑ๋กํด์ผํ๋๋ฐ, ๊นํ๋ธ ์ฃผ์๋ฅผ ๊น๋จน์๋ค์ ใ ์์ฆ IT ๋งค์ฃผ ๋ชฉ์์ผ ์ ๋ , ๋ ์๋ค์ ์ฑ์ฅ์ ๋์์ด ๋๋ ์ฝํ ์ธ ๋ฅผ ๋ฐ์ ์ ์.. 2022. 7. 2. [Network] NAT(Network Address Translation) NAT(Network Address Translation) NAT(Network Address Translation)๋ ์ด๋ฆ ๊ทธ๋๋ก ๋คํธ์ํฌ ์ฃผ์๋ฅผ ๋ณํํ๋ ๊ธฐ์ ์ ๋๋ค. ์ฆ, IP ์ฃผ์๋ฅผ ๋ค๋ฅธ IP ์ฃผ์๋ก ๋ณํํด ๋ผ์ฐํ ์ ์ํํ ํด์ฃผ๋ ๊ธฐ์ ์ ๋๋ค. NAT๋ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋์ ๋คํธ์ํฌ ์ฃผ์์ ๋ค๋ฅธ ํ๋์ ๋คํธ์ํฌ ์ฃผ์๋ก ๋ณํํ๋ 1:1 ๋ณํ์ด ๊ธฐ๋ณธ์ด๋ IP ์ฃผ์์ ๊ณ ๊ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ฌ๋ฌ ๊ฐ์ IP๋ฅผ ํ๋์ IP๋ก ๋ณํํ๊ธฐ๋ ํฉ๋๋ค. ์์ ๊ฐ์ด ์ฌ๋ฌ ๊ฐ์ IP๋ฅผ ํ๋์ IP๋ก ๋ณํํ๋ ๊ธฐ์ ๋ NAT ๊ธฐ์ ์ค ํ๋์ด๊ณ , NAT๋ก ํต์นญํ์ฌ ๋ถ๋ฅด์ง๋ง ์ค์ ๊ณต์ ์ฉ์ด๋ NAPT(Network Address Port Translation)๋ผ๊ณ ํ๋๋ฐ์, ์ค์ ๋ก๋ PAT(Port Address Transl.. 2022. 6. 21. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 41 ๋ค์ ๋ฐ์ํ