์ฐ๋ฆฌ์๊ฒ ๋จ์ ๋ชจ๋ ๊ฐ์ ์ ์ฐ๋ฆฌ๊ฐ ์ค์ค๋ก ์ ํํ ๊ฒ์ด๋ค. ์ค๋ ํ ์ผ ์์ง ๋๋์ง ์์ 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..
๊ธ์ต ์น๋ฃ๋ ๋๋ง๋ค ํ๊ณ ๋ฅผ ์์ฑํ๊ธฐ๋ก ๋ง์ ๋จน์๋๋ฐ ์ด๋ฐ์ ๋ฐ ์
๋ฌด ํ๊ณ๋ก ๋ฏธ๋ฃจ๋ค๊ฐ ์๊ฐ์ด ์กฐ๊ธ ๋น์ด์ ์์ฑํ๊ฒ ๋์๋ค. ์ต๊ทผ ๋ช๊ฐ์๋์ ์ปค๋ฆฌ์ด๋ฆฌ ์๋์ผ๋ก ์ค๋ ์ถ์ฒ ๊ฒ์๋ฌผ์ ์ด์ฌํ ์ฝ์๋ ๊ฒ ๊ฐ๋ค. ๋ช๊ฐ๋ ๋๋ฌด ์ข์์ ์ ๋ฆฌํด์ ๋ธ๋ก๊ทธ ๊ธ์ ์์ฑ ํ๊ณ ๋ช๊ฐ๋ ์ฝ๋ค๊ฐ ๋ถ๋งํฌ์์ ์ฉ๋์ค์ด๋ค... ์ด๋ฐ ๊ธ์ ์๋์ผ๋ก ๋ฐ์์ ๋ณด๋ค๋ณด๋ฉด ์๋๊ฒ๋ ํญ์ ์๋กญ๊ณ ์ข๋ ๊น์ ๋ด์ฉ์ ๋ณด๊ฒ๋๋ฉด ์์ฑ์์ ์ ๋ฌธ์ฑ๊ณผ ๋ง์ธ๋์ ์ค๋ ์ธ๋ค. 4์์ ํ์ฌ์์ ๋ชฉํ์ค์ ๊ณผ ํผ๋๋ฐฑ์ ๋ฐ์๋ค. ์ด๋ฒ ๋ถ๊ธฐ ๋ชฉํ์ ๋ํด ๊ณ ๋ฏผ์ ๋ง์ด ํ๋๋ฐ ๊ธฐ์กด์๋น์ค ๊ณ ๋ํ๋ฅผ ์ด์ ๋์๊ณ ์ถ๊ฐ์ ์ผ๋ก ํ
์คํธ ๋์
์ ๋ํ ๊ธฐ๋ฐ์ ๋ง๋ค์ด๋ณด๋๊ฒ ์ด๋ป๋๋ ์ ์์ ๋ฐ์๋ค! ์๋น์ค ๊ฐ๋ฐ์ด ์๋ ์ฝ๋ ํ์ง์ ๋ํ ๋ชฉํ๋ผ๋!!! ๐คฉ๐คฉ ๐คฉ ๊ทํ๋ค ๊ทํด ๐คฉ ๋๋ฌด ์ฌ๋ฏธ์์๊ฒ ๊ฐ์๊ณ (๋ด๊ฐ ..
Java ์ ์ผ๋ฐ์ ์ธ ๋ฌธ์ ์ค ํ๋๋ ๋์ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ผ๋ก ์ธํด ์ฑ๋ฅ, ์ถฉ๋์ด ๋ฐ์ํ ์ ์๋ค๊ณ ํ๋ค. ์ต์ ํ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋ ๊ฐ์๋ฅผ ์ํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํด๋ณด์ 1. Primitive type(์์ํ์
) ์ ์ฌ์ฉํ์. ์ฐธ์กฐํ์
๋ณด๋ค ์์ํ์
์ ์ฌ์ฉํ๋ค. ์์ํ์
์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฒด ์์ฑ ์ค๋ฒํค๋๋ฅผ ๋ฐฉ์งํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ์ฝํ ์ ์๋ค. + ๋ํ ์์ํ์
์ ์คํ ๋ฉ๋ชจ๋ฆฌ ์์ ๋ฐ๋ก ์ฝ๊ณ , ์ฐธ์กฐํ์
์ ์คํ ๋ฉ๋ชจ๋ฆฌ์์ ํ ๋ฉ๋ชจ๋ฆฌ์ ์์น๋ฅผ ๊ตฌํด์จ ๋ค์์ ๋ค์ ํ ๋ฉ๋ชจ๋ฆฌ์ ๊ฐ์ ๊ฐ์ ์ฝ์ด์์ผ ํด์ ์ฑ๋ฅ์ ์ ๋ฆฌํ๋ค. 2. ๋ถํ์ํ ๊ฐ์ฒด ์์ฑ ํ์ง๋ง์. String s = "์ ์ ์ฐ"+" ์
๋๋ค"; ํด๋น ์ฝ๋ ํ์ค์ "์ ์ ์ฐ ์
๋๋ค" ์ ๋ํ ์ ๋ฌธ์์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ญ๋๋ค. ๋์ StringBuilder ๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ..