์ „์ฒด ๊ธ€

Service์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ณ  ์‹ถ์€๋ฐ public์œผ๋กœ ๋˜์–ด์žˆ๋Š” ์ „์ฒด ๋กœ์ง์ด ์•„๋‹Œ private์œผ๋กœ ๋œ ๊ธฐ๋Šฅ์ด ๋‚˜๋ˆ„์–ด์ง„ ๋ฉ”์„œ๋“œ์˜ ๊ธฐ๋Šฅ๊ฒ€์ฆ์„ ํ•˜๊ณ  ์‹ถ๋‹ค. ๊ทธ๋ž˜์„œ public์œผ๋กœ ๋ณ€๊ฒฝํ•ด์„œ ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์™„์„ฑํ–ˆ๋Š”๋ฐ ์ฐพ์•„๋ณด๋‹ˆ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ธฐ ์œ„ํ•ด ServiceImpl ํด๋ž˜์Šค ๋‚ด์— ์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜๋˜์ง€ ์•Š์€ public ๋ฉ”์„œ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ”ผํ•ด์•ผ ํ•  ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค๋Š” ํŠน์ • ๊ณ„์•ฝ(Contract)์„ ์ •์˜ํ•˜๊ณ , ์ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค๋“ค์€ ํ•ด๋‹น ๊ณ„์•ฝ์„ ์ง€์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ธํ„ฐํŽ˜์ด์Šค์— ์ •์˜๋˜์ง€ ์•Š์€ ๋ฉ”์„œ๋“œ๋ฅผ ํด๋ž˜์Šค ๋‚ด์—์„œ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด, ์ฝ”๋“œ์˜ ์ผ๊ด€์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ผ๊ณ  ํ•œ๋‹ค. ๋งž๋Š” ๋ง์ธ๋ฐ ๊ทธ๋ ‡๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒŒ ์ข‹์„๊นŒ? Reflection ๋ฆฌํ”Œ๋ ‰์…˜ ์ถ”์ฒœํ•˜๋Š” ..
ํ˜„์žฌ ๋„๋ฉ”์ธ์˜ ๋‚ ์งœ์™€ ์ƒˆ๋กœ์šด ๋‚ ์งœ๋ฅผ ์ž…๋ ฅํ•˜๋Š” ๊ณผ์ •์—์„œ java.time.LoclaDate ์—์„œ equals() ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ isEquals() ๋„ ์žˆ์–ด์„œ ํ™•์ธํ•ด ๋ดค๋‹ค. equals ๋Š” ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋™๋“ฑํ•˜๋ฉด ๋œ๋‹ค -> ๋‚ด์šฉ์ด ๊ฐ™์€๊ฐ€? isEqula ์€ ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋„ ๋™๋“ฑํ•ด์•ผ ํ•œ๋‹ค -> ๊ฐ™์€ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š”๊ฐ€? ํ•˜์ง€๋งŒ ๋‚ด๊ฐ€ ์›ํ–ˆ๋˜๊ฑด ๋‘˜๋‹ค ์•„๋‹ˆ์˜€์Œ ๋„๋ฉ”์ธ์— ์žˆ๋Š” ๋‚ ์งœ ์ž์ฒด๊ฐ€ null ์ผ ์ˆ˜ ์žˆ๋‹ค. equals ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ฃผ์ฒด๊ฐ€ ๋˜๋Š” object ๋Š” null์ด๋ฉด ์•ˆ๋œ๋‹ค. ์•ˆ์ „ํ•œ ๋น„๊ต๋ฅผ ์œ„ํ•ด java.util.Obejcts ์— ์žˆ๋Š” equals๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทผ๋ฐ ๋‘˜๋‹ค null ์ด๋ฉด true ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— null์ด ๋„˜์–ด์˜ค๋ฉด return ํ•ด๋ฒ„๋ฆฌ๋Š” ๋กœ์ง์„ ์ถ”๊ฐ€ํ–ˆ๋‹ค. public void updat..
์šฐ๋ฆฌ์—๊ฒŒ ๋‚จ์€ ๋ชจ๋“  ๊ฐ์ •์€ ์šฐ๋ฆฌ๊ฐ€ ์Šค์Šค๋กœ ์„ ํƒํ•œ ๊ฒƒ์ด๋‹ค. ์˜ค๋Š˜ ํ•œ ์ผ ์•„์ง ๋๋‚˜์ง€ ์•Š์€ PR ์ฝ”๋“œ ์ˆ˜์ •ํ•˜๊ธฐ NULL์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ๋งˆ๋ผ ์˜ค๋ฒ„๋กœ๋“œํ•  ๋•Œ ๋‹ค๋ฅธ ๊ณณ์—์„œ ํ•„์š”ํ•˜์ง€ ์•Š์€ ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•˜๋Š๋ผ null ์„ ์ „๋‹ฌํ–ˆ๋Š”๋ฐ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์—๋Ÿฌ ใ…Ž null -> ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๋กœ ๋นˆ ๊ฐ์ฒด ์ „๋‹ฌ ํ•˜๋ฃจ ์š”์•ฝ ์˜ค๋Š˜ ๋ณธ ๊ธ€ https://post.naver.com/viewer/postView.nhn?volumeNo=24272458&memberNo=16714554
DFS ๋งˆ์ง€๋ง‰ ๋…ธ๋“œ๊นŒ์ง€ ํƒ์ƒ‰ ํ›„ ๋‹ค๋ฅธ ๋…ธ๋“œ ํƒ์ƒ‰ : stack ์‹œ์ž‘ ๋…ธ๋“œ push ์‹œ์ž‘ ๋…ธ๋“œ pop popํ•œ ๋…ธ๋“œ์˜ ์ž์‹๋…ธ๋“œ ํƒ์ƒ‰ popํ•œ ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ๋“ค push (๋”์ด์ƒ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋Š”) popํ•œ ๋…ธ๋“œ ์ถœ๋ ฅ ์Šคํƒ์ด ๋น„์›Œ์ง€๋ฉด ๋ * ์žฌ๊ท€ ์‚ฌ์šฉํ•  ์‹œ ๊ฐ„์ง€๋‚จ BFS ์ฃผ์œ„ ๋…ธ๋“œ ํƒ์ƒ‰ > ์ž์‹์˜ ์ฃผ์œ„๋…ธ๋“œ ํƒ์ƒ‰ : queue ์‹œ์ž‘๋…ธ๋“œ add ์‹œ์ž‘ ๋…ธ๋“œ remove removeํ•œ ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ ํƒ์ƒ‰ removeํ•œ ๋…ธ๋“œ์˜ ์ž์‹ ๋…ธ๋“œ๋“ค add (๋”์ด์ƒ ์ž์‹ ๋…ธ๋“œ๊ฐ€ ์—†๋Š”)removeํ•œ ๋…ธ๋“œ ์ถœ๋ ฅ queue stack ๊ณผ queue ์˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ด์šฉํ•ด ๋จผ์ € ๋“ค์–ด๊ฐ„ ๋…ธ๋“œ๋ฅผ ํƒ์ƒ‰ํ• ์ง€ (bfs) ๋‚˜์ค‘์— ๋“ค์–ด๊ฐ„ ๋…ธ๋“œ์˜ ์ž์‹์„ ํƒ์ƒ‰ํ• ์ง€ (dfs) ์˜ค๋Š˜ ํ•œ ์ผ bfs, dfs ๊ตฌ์กฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ๊ณต๋ถ€ํ–ˆ๋‹ค. ์˜ˆ์ƒ๋œ ๊ฒฐ๊ณผ๋ฌผ์ด ..
๋ชธ ์ƒํƒœ๊ฐ€ ๋ณ„๋กœ๋‹ค..๐Ÿ˜ฏ ์˜ค๋Š˜ ํ•œ ์ผ ์šด์˜... ํ•˜๋ฃจ ์š”์•ฝ ์˜ค ์ด๊ฑฐ ๊ฐ„๋‹จํ•ด ๋ณด์ด๋„ค? ์˜ˆ์ƒ ๊ฐœ๋ฐœ๊ธฐ๊ฐ„ +3์ผ ์•„ ์ด๊ฑฐ ์ข€ ๊นŒ๋‹ค๋กญ๊ณ  ์–ด๋ ค์›Œ๋ณด์ด๋Š”๋ฐ? 1์‹œ๊ฐ„์ด๋‚ด ํŒ๋‹จ๋ ฅ ๋ญ์•ผ ์˜ค๋Š˜ ๋ณธ ๊ธ€
์˜ค๋Š˜ ํ•œ ์ผ ์‚ฌ๋‚ด์—์„œ ํ•˜๋Š” ๊ฐœ๋ฐœ์ž ํšŒ์˜์—์„œ ์šด์˜ ์šฐ์„ ์ˆœ์œ„์— ๋Œ€ํ•ด ์–˜๊ธฐํ–ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์˜ค๋ฅ˜+๊ฐœ์„ ์ž‘์—…์„ ๊ฐ™์ด ํ•ด์™”๋Š”๋ฐ. ์ด์ œ๋Š” ์˜ค๋ฅ˜ ์ˆ˜์ • ํ›„ ๊ฐœ์„ ์ž‘์—…์€ ์ผ์ • ์žก๊ณ  ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ถ”๊ฐ€๊ฐœ๋ฐœ๊ฑด์ด ์žˆ์–ด ๋ฆฌ์•กํŠธ๋ฅผ ๋ณด๋Š”๋ฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ๋ชจ๋ฅด๋‹ˆ ์—„์ฒญ ํ—ค๋งธ๋‹ค. ๊ฒฐ๊ตญ ์˜ค๋Š˜ ๋ชปํ•จ ํŒ€์žฅ๋‹˜์ด BFS์— ๋Œ€ํ•ด ๋ฌผ์–ด๋ดค๋‹ค. ์ž˜ ๋ชจ๋ฅด๋‹ˆ ๋Œ€๋‹ต์„ ๋ชป ํ–ˆ๋Š”๋ฐ ์ด์ œ ์•Œ์•„๊ฐ€์•ผํ•  ์—ฐ์ฐจ๋ผ๊ณ  ํ•˜์…จ๋‹ค. ํšŒ์‚ฌ์—์„œ ๋Œ€๋‹ต์„ ์ž˜ ๋ชปํ–ˆ์„ ๋•Œ ํ•ญ์ƒ ์šฐ์šธํ–ˆ๋Š”๋ฐ ์ตœ๊ทผ๋ถ€ํ„ฐ ๊ตํ†ต์ˆ˜๋‹จ์„ ์ด์šฉํ• ๋•Œ ํ‹ˆํ‹ˆ์ด ์ฑ…์„ ์ฝ์–ด์„œ ๋ถˆ์•ˆํ•˜์ง€ ์•Š์•˜๋‹ค. ํ•˜๋ฃจ ์š”์•ฝ ๊ฐœ๋ฐœ์ž๋ฅผ ํ•˜๋ฉด์„œ ๋ถˆ์•ˆํ•˜์ง€ ์•Š๋Š” ๋ฐฉ๋ฒ• : ๊ณ„์† ๊ณต๋ถ€ํ•˜๋ฉด ๋Œ ์˜ค๋Š˜ ๋ณธ ๊ธ€ https://youtu.be/tvX9f8FqMFI?si=lyxi7bjRSWBUd6OL
ํšŒ์‚ฌ์—์„œ ์šด์˜์„ ๋‹ด๋‹นํ•˜๊ฒŒ ๋˜์–ด์„œ ์กฐ๊ธˆ์”ฉ ๋ฐฐ์›Œ๊ฐ€๋ฉด์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ์žˆ๋‹ค. ์ฒ˜์Œ์—๋Š” ์˜ค๋ฅ˜๊ฐ€ ์žˆ์œผ๋ฉด ํ•ด๋‹น ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ๊ฐœ์„ ์ž‘์—…์„ ํ•ด๋‚˜๊ฐ”์ง€๋งŒ... ์ƒ๊ฐ๋ณด๋‹ค ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์—†๋‹ค๋Š” ๊ฑธ ๋Š๋‚€๋‹ค. ์˜ค๋ฅ˜๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ธฐ์กด ์ž‘์—…์— ๋Œ€ํ•œ ์ถ”๊ฐ€ ์ž‘์—…๋„ ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ •์‹ ์ด ์—†๋‹ค ๐Ÿฅฒ ๋˜ํ•œ, ์ถ”๊ฐ€ ์ž‘์—…์— ๋Œ€ํ•ด ๊ธฐ์กด ์šด์˜์ž‘์—…์ด ์–ธ์ œ ๋“ค์–ด์˜ฌ์ง€, ์–ผ๋งˆ๋‚˜ ๋ณต์žกํ• ์ง€ ๋ชจ๋ฅด๋‹ˆ ๊ฐœ๋ฐœ๊ธฐ๊ฐ„ ์„ค์ •์— ์‹ ์ค‘ํ•ด์ ธ์•ผ๊ฒ ๋‹ค. ์˜ค๋Š˜ ํ•œ ์ผ ์ถ”๊ฐ€ ๊ฐœ๋ฐœ๊ฑด ์™„๋ฃŒ/๊ฒ€์ˆ˜๋ฐ›์•„ ์ถ”๊ฐ€์‚ฌํ•ญ ์ˆ˜์ • ์˜ค๋ฅ˜๊ฑด ์›์ธ ํŒŒ์•… ํ›„ ์˜ค๋ฅ˜ ๋ฐ์ดํ„ฐ ์ˆ˜์ • ํ•˜๋ฃจ ์š”์•ฝ ์˜ค๋ฅ˜ ์ˆ˜์ •/๋ฐ์ดํ„ฐ ์š”์ฒญ ๋“ฑ ์ต์ˆ™ํ•ด์ง€๊ณ  ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์€ ๋น ๋ฅด๊ณ  ์ •ํ™•ํ•˜๊ฒŒ ๋๋‚ด๋„๋ก ๋…ธ๋ ฅํ•˜๊ธฐ ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„ ์ •ํ•  ๋•Œ ์‹ ์ค‘ํ•˜๊ธฐ ์˜ค๋Š˜ ๋ณธ ๊ธ€ https://news.hada.io/topic?id=11711
๋ณ‘ํ•ฉํ•˜๋Š” ๋ฐฉ๋ฒ• ๊ธฐ๋ก CellRangeAddress region1 = new CellRangeAddress(0,0,1,2); sheet.addMergedRegion(region1); CellRangeAddress region2 = new CellRangeAddress(0,0,3,4); sheet.addMergedRegion(region2); CellRangeAddress region3 = new CellRangeAddress(0,0,5,6); sheet.addMergedRegion(region3); CellRangeAddress region4 = new CellRangeAddress(0,1,0,0); sheet.addMergedRegion(region4); Row row = sheet.createRow(0..
json ์œผ๋กœ ๊ฐ’์„ ๋ฐ›์œผ๋ฉด ํ‚ค์™€ ๊ฐ’ ์„ ๋งคํ•‘ํ•ด์„œ ์ด๋ฉ”์ผ์„ ์ „์†กํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ํ‚ค๋ฅผ ๊ณ„์† ๋ชป์ฐพ๋Š”๊ฒŒ ์ด์ƒํ•ด์„œ ํ™•์ธํ•ด๋ณด๋‹ˆ null ๊ฐ’์„ ๊ฐ€์ง„ ํ•„๋“œ๋Š” ์ œ์™ธํ•˜๊ณ  ์ง๋ ฌํ™”๋ฅผ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. https://github.com/google/gson/blob/main/UserGuide.md#null-object-support ๊ธฐ๋ณธ์ ์œผ๋กœ Gson ์€ null ๊ฐ’์„ ๊ฐ€์ง„ ํ•„๋“œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์ง๋ ฌํ™” ํ•˜๊ณ  ์žˆ์–ด์„œ,, serializeNulls() ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ null ๊ฐ’์„ ํฌํ•จํ•˜๋Š” Gson ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ด์•ผ ํ•œ๋‹ค. Gson gson = new GsonBuilder().serializeNulls().create(); String json = gson.toJson(exampleObject); ์™œ ๊ธฐ๋ณธ๊ฐ’์ด null ๊ฐ’์„ ์ œ..
ํšŒ์‚ฌ์—์„œ ๋ฐฅ์„ ๋จน๋Š”๋ฐ ์กฐ์—˜ ์˜จ ์†Œํ”„ํŠธ์›จ์–ด ์–˜๊ธฐ๊ฐ€ ๋‚˜์™€์„œ ๋‹ค ์ฝ์ง€ ๋ชปํ•œ ์ด ์ฑ…์„ ๋‹ค์‹œ ํ•œ๋ฒˆ ํŽผ์ณ ๋ณด์•˜๋‹ค ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ๊ธ€์„ ์ฝ์–ด๋ณด๊ณ  ์žˆ์—ˆ๋Š”๋ฐ ๋ฐ”๋กœ ๋‹ค์Œ์žฅ์— ์œ ๋‹ˆ์ฝ”๋“œ์™€ ๋ฌธ์ž ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ๋‚˜์™€์„œ ์ฒ˜์Œ ๋ณด๋Š” ๊ฒƒ ๋งˆ๋ƒฅ ํฅ๋ฏธ๋กญ๊ฒŒ ์ฝ์—ˆ๋‹ค. ์ €์ž๋Š” ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ๋ชจ๋ฅธ๋‹ค๋ฉด ๋งน์„ธ์ฝ” ์ž ์ˆ˜ํ•จ์—์„œ 6๊ฐœ์›” ๋™์•ˆ ์–‘ํŒŒ ๊ป์งˆ์„ ๊นŒ๋Š” ๋ฒŒ์น™์„ ์ค€๋‹ค๊ณ  ํ•ด์„œ ์—ด์‹ฌํžˆ ์ฝ์—ˆ๋‹ค... ์ „์†ก๋˜๋Š” ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ง€๊ธˆ์€ Unicode๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ด์ „์—๋Š” ASCII ์™€ ๊ฐ™์€ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ASCII๋Š” 7๋น„ํŠธ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์–ด์„œ 0~127๊นŒ์ง€์˜ ์ˆซ์ž๋ฅผ ์ด์šฉํ•ด ์˜๋ฌธ ์•ŒํŒŒ๋ฒณ, ์ˆซ์ž, ํŠน์ˆ˜ ๋ฌธ์ž ๋“ฑ์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. (๋งจ ์™ผ์ชฝ 1๋น„ํŠธ๋Š” ํ†ต์‹  ์žฅ๋น„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ œ์–ด ๋น„ํŠธ๋ฅผ ์œ„ํ•ด ์˜ˆ์•ฝ๋œ ๊ณต๊ฐ„์ด์—ˆ๊ณ  ์‹ค์ œ๋กœ๋Š” 7๋น„ํŠธ..
1์›” 1์ผ์— ์†Œ๋ž˜์‚ฐ ๊ฐ€์„œ ์ง€ํ‚ค์ง€ ๋ชปํ•  ์—ฌ๋Ÿฌ ๋ชฉํ‘œ๋“ค์„ ๋‹ค์งํ–ˆ๋˜๊ฒŒ ์ตœ๊ทผ์ผ ๊ฐ™์€๋ฐ ๋ฒŒ์จ 3๋ถ„๊ธฐ๋‹ค. ํšŒ๊ณ  ์“ฐ๋Š” ์ผ์€ ์ •๋ง ๊ท€์ฐฎ์ง€๋งŒ ๋ญ˜ํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์ข‹๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ๋‹ฌ์— ์–ด๋–ค๊ฑธ ํ• ์ง€๋„ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ‰์†Œ์—๋Š” ์ƒ๊ฐ์„ ํ•ด๋„ ๊ธˆ๋ฐฉ ์žŠ๊ธฐ ๋•Œ๋ฌธ์—... ๋‹ค์Œ ๋‹ฌ์—๋Š” ์–ด๋–ค ๊ฒŒ์‹œ๋ฌผ์„ ์ฝ์—ˆ๋Š”์ง€, ์–ด๋–ค ์ƒ๊ฐ์„ ํ–ˆ๋Š”์ง€๋„ ์จ์•ผ๊ฒ ๋‹ค. 7์›”์— ๋‚˜๋Š” ๋ญ˜ ํ–ˆ์„๊นŒ? ํŒ€์žฅ๋‹˜๊ณผ์˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋Š”๋ฐ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋งŒ๋“ค์–ด์ฃผ๋ฉด ํ•ด๋‹น ์ •๋ณด๋ฅผ ๊ฐ€๊ณตํ•ด์„œ ์ด๋ฉ”์ผ, ์•Œ๋ฆผํ†ก์„ ๋ณด๋‚ด๋Š” ๋ถ€๋ถ„์„ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ ๋งˆ์นจ. ํŒ€์žฅ๋‹˜์ด ์•Œ๋ฆผํ†ต์ง€์„œ๋ฒ„ ๊ฑด์„ค์„ ์ง„ํ–‰์ค‘์ด์…จ๋‹ค. ์•„์ง ์˜ˆ์•ฝ๋ฐœ์†ก ๊ธฐ๋Šฅ์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์‚ด์ง์ฟต ์–น์–ด์„œ PR ํ–ˆ๋Š”๋ฐ ์ˆ˜๋งŽ์€ ๊ด€์‹ฌ๊ณผ ๋Œ“๊ธ€๋กœ ์‚ผ์ง„ ์—๋ฐ” ๊ธฐ๊ฐ ๋˜์—ˆ๋‹ค. ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ตœ๋Œ€ํ•œ '๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ' ์ฒ˜๋Ÿผ ๋งŒ๋“œ๋ ค๊ณ  ..
ํ…Œ์ŠคํŠธ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด์„œ ๋ฐ˜ํ™˜๊ฐ’ ์—†๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ…Œ์ŠคํŠธํ•ด์•ผํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” Message๋ฅผ ๋ณด๋‚ด๋Š” ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ๋ณด๋‚ด๊ณ , ๋กœ๊ทธ ์ €์žฅ ํ›„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฐ’์ด ์—†๋‹ค. ๋‚˜๋Š” ์ด ๋‚ด๋ถ€์—์„œ ๋ฐ์ดํ„ฐ ์ •์ œ๊ฐ€ ๋๋‚œ ํ›„ ๋งˆ์ง€๋ง‰์— private send(RequestDto request) ์— ์ „๋‹ฌ๋˜๋Š” RequestDto ๋ฅผ ์•Œ๊ณ  ์‹ถ์—ˆ๋‹ค. private sendMessageList(){ // ๋ฐ์ดํ„ฐ ์ •์ œ send(reqeust); } private send(RequestDto request){ // ์‹ค์ œ๋กœ ์ „์†ก } ์ด๋•Œ, ArgumentCaptor ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. @Test void sendMessageTest() { sendService.sendMessageList(new Oth..
์• ์ •์“ฐ
์• ์ •์ฝ”๋”ฉ ๐Ÿ’ป