๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๋ฐ˜์‘ํ˜•

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.
๋ฐ˜์‘ํ˜•