Programming (85) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [Network]TCP/IP๋ ๋ญ๊น? + UDP, Port ์์ IP๋? ใด IP address / ์์ดํผ ์ฃผ์ ใด IP์ ํ๊ณ์ (TCP์ ๋ฑ์ฅ ๋ฐฐ๊ฒฝ) TCP๋? ใด TCP ์ธ๊ทธ๋จผํธ ใด Port(ํฌํธ)๋? ใด 3-way handshake ใด TCP์ UDP์ ์ฐจ์ด์ IP(Internet Protocal)๋? IP๋ ์ธํฐ๋ท ํ๋กํ ์ฝ ํน์ ์ธํฐ๋ท ํต์ ๊ท์ฝ ์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค. ํต์ ๊ท์ฝ์ด๋๊ฒ ๋ฌด์จ ๋ง์ผ๊น? ์ธํฐ๋ท์ ์์ฃผ ๋ฉ๋ฆฌ ๋จ์ด์ ธ์๋ ๋ ์๋ฒ ํน์ ์ปดํจํฐ๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ฒํด์ฃผ๋ ์ญํ ์ ํด์ฃผ๋ ํธ๋ฆฌํ ์กด์ฌ์ด๋ค. ์ฐ๋ฆฌ๊ฐ ์ปดํจํฐ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ฉด(๋ฉ์ธ์ง๋, ๋ฉ์ผ ๊ฐ์ ๊ฒ์ ์ ์ก) ์ธ๊ณต์์ฑ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ์ ์๋ํธ์ ์ปดํจํฐ์๊ฒ ๋ฐ์ดํฐ๋ฅผ ์ ์กํด์ฃผ๋ ์ค ์์์ง๋ง(์ปดํจํฐ๋ฅผ ๊ณต๋ถํ๊ธฐ์ ์ ๋ ๊ทธ๋ ๊ฒ ์๊ฐํ์๋ค...) ์ฌ์ค ๊ทธ๋ ์ง ์๋ค. ์ปดํจํฐ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋, ์ ์ผ๋ก.. [Java] Kruskal's Algorithm ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ - ์ต์ ์ ์ฅ ํธ๋ฆฌ(MST) ์ต์ ์ ์ฅ ํธ๋ฆฌ MST(Minimun Spanning Tree) - ํฌ๋ฃจ์ค์นผ ์๊ณ ๋ฆฌ์ฆ ์๋ฐ ๊ตฌํ ๐ง ์ต์ ์ ์ฅ ํธ๋ฆฌ MST(Minimun Spanning Tree)๋? ์ต์ํ์ ๊ฐ์ค์น๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์ ์ ์ด ์ฐ๊ฒฐ๋์ด ์์ ์ ์๊ฒํ๋ ๊ธฐ๋ฒ์ด๋ค. ์์) ๋์๋ค์ ๋ชจ๋ ๋ค๋ฆฌ๋ก ์ฐ๊ฒฐ๋์ด์์ ๋, ๋ชจ๋ ๋์๋ฅผ ๊ฐ ์ ์๊ฒ ๋ค๋ฆฌ๋ฅผ ์ฐ๊ฒฐํ๋ ์ต์ํ์ ๋ค๋ฆฌ ๊ธธ์ด๋ง์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ (๋์๊ฐ ๊ฐ๋ก๋ฑ์ผ๋ก ๋ค๋ฆฌ๊ฐ ์ ์ ์ผ๋ก ๋ฐ๋์๋ ์๋ค.) ๋ค๋น๊ฒ์ด์ ์ ์ต๋จ ๊ฒฝ๋ก ๋ชจ๋ ์ ์ (node ํน์ vortex)๊ฐ ์ฐ๊ฒฐ๋ ์ ์๋ ๊ฒฝ๋ก ์ค ๊ฐ์ฅ ์ ์ ๊ฐ์ค์น(์ฌ๊ธฐ์ ๊ฑฐ๋ฆฌ)๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ๋ก ์ฃผ์์ฌํญ ์ฌ๊ธฐ์ ์ฐ๊ฒฐ์ด๋ ๋ค๋ฅธ ๋ ธ๋๋ฅผ ๊ฑฐ์ณ์ ๊ฐ๋ ๊ฒ์ ํฌํจํ๋ค. ๊ฐ์ ํน์ ๋ธ๋์น(๋ ธ๋๋ฅผ ์ด์ด์ฃผ๋ ์ , ๊ฑฐ๋ฆฌ)๋ ๋ฐฉํฅ์ฑ์ ๊ฐ์ง ์๋๋ค.(์ฐ๊ฒฐ๋ง ๋์ด์.. [Java] Dijkstra Path ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ(ft. ์ฐ์ ์์ ํ) ์ฝ์ง๋ง ๋ณต์กํ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๐ค ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ธ๊น? โ๏ธ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ด๋ค. ํน์ ์ง์ ์์ ๋ชฉํ ์ง์ ์ผ๋ก ๊ฐ์ฅ ์ ์ ๋น์ฉ์ ๋ค์ด๋ฉฐ ๊ฐ์ผํ ๋ ์ฌ์ฉํ ์ ์๋ค. ์) A์์ D๋ก ๊ฐ๋๋ฐ ๊ฑธ๋ฆฌ๋ ๋น์ฉ์ ์ต์ ๊ฐ์? A -> D = 5 A -> B -> D = 5 A -> C -> D = 3 ๋ฐ๋ผ์ ์ค์ ์ต์ ๋น์ฉ ์ง๋ถํ๋ ๊ฒฝ๋ก๋ A -> C -> D ์ด๋ค. ๐ฅธ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๋ก์ง 1. ์์์ง์ ๊ณผ ์ฐ๊ฒฐ๋ ๋ ธ๋๋ค๊ณผ์ ๋น์ฉ์ ๊ตฌํ๋ค. Result List ์ฐ๊ฒฐ๋ ๋ ธ๋ A B C D E ๋น์ฉ 0 3 1 5 ๋ฌดํ ์ถ๋ฐ ์ง์ ์ด A์ผ ๋, ์๊ธฐ ์์ ์๊ฒ ๊ฐ๋ ๋น์ฉ์ ์์ผ๋ 0 A์์ E์ ๊ฐ์ด ๋ฐ๋ก ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก๋ ์์ ๋, ๋น์ฉ์ ๋ฌดํ(์ํฅ์ ์ฃผ์ง ์๋ ์์ฃผ ํฐ ๊ฐ)์ผ๋ก ํ๋ค.. [JavaScript] String-boot ์น ์์ผ(WebSocket)์ ์ด์ฉํ ์ค์๊ฐ ์ฑํ ๊ตฌํ - Session Storage ํ์ฉํ๊ธฐ ์๊ฐ ์ WebSocket์ ์ฌ์ฉํ์๋? Spring-boot WebSocket ์ฌ์ฉ๋ฒ(์ค์ ๋ฒ) ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑํด๋ณด๊ธฐ ๋ฐ์ํ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ใด HTTP session ๊ฐ์ ธ์ค๊ธฐ -> interception ์ฌ์ฉ ใด DB๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐ์กด ๋ฉ์์ง ์ ์ฅํ๊ธฐ -> Session Storage ์ฌ์ฉํ๊ธฐ ์ต๊ทผ ์์ฑ ์ค์ธ ๊ฐ์ธ ํ๋ก์ ํธ์์ ์น์ ์ ์ํ ํด๋ผ์ด์ธํธ์ ์ค์๊ฐ ์ฑํ ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๋ ค๊ณ ํ๋ค. ๐ค ์ WebSocket์ ์ฌ์ฉํ์๋? ์ฌ๊ธฐ์ ๋งํ๋ ์น ์์ผ์ Spring Framework์ STOMP๊ฐ ์๋ ์์ JavaScript๋ฅผ ํ์ฉํ ์์ ์ ๋๋ค. jquery๋ ์ฌ์ฉํ์ง ์์ต๋๋ค. WebSocket์ด ํ์ํ๋ ์ด์ ์์๋งํ๋ฏ ์ค์๊ฐ ๋ผ์ด๋ธ ์ฑํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ถ์๋ค. ํ์ง๋ง, ๊ธฐ.. [์๋ฃ๊ตฌ์กฐ] Linked List๋? - Java ๊ตฌํ ์์ Linked list(๋งํฌ๋ ๋ฆฌ์คํธ) ๋? ใด Linked list์ List์ ์ฐจ์ด์ ใด Single Linked List์ Doubly Linked List ์ฐจ์ด์ (Doubly Linked List๊ฐ ํ์ํ ์ด์ ) Single Linked list ๊ตฌํ(JAVA) Doubly Linked list ๊ตฌํ(JAVA) ๐ค Linked list ๋ ๋ฌด์์ธ๊ฐ? List์์ ์ฐจ์ด์ ์ฐ๊ฒฐ๋ ๋ฆฌ์คํธ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๋ ๋งํฌ๋ ๋ฆฌ์คํธ๋ ์ผ๋ฐ ๋ฆฌ์คํธ(List)์ ์ฐจ์ด์ ์ ๋ณด๋ฉด์ ์ด์ผ๊ธฐํ ์ ์๋ค. ๊ธฐ๋ณธ์ ์ธ List๋ ์์ฐจ์ ์ผ๋ก ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋ ๋ฐฐ์ด ๊ตฌ์กฐ์ด๋ค. List ๊ตฌ์กฐ index(์์) 0 1 2 3 4 5 value(๊ฐ) "์ฒซ๋ฒ์งธ ๊ฐ" "๋๋ฒ์งธ ๊ฐ" "์ธ๋ฒ์งธ ๊ฐ" "๋ค๋ฒ์งธ ๊ฐ" "๋ค์ฏ๋ฒ์งธ ๊ฐ" "์ฌ์ฏ๋ฒ์งธ ๊ฐ" .. [JavaScript] ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ disabled, display ์์ฑ ์ถ๊ฐ, ํด์ (๋ณ๊ฒฝ) ๊ฐํน ์๋ฐ์คํฌ๋ฆฝํธ์์ disabled ์์ฑ๊ณผ display ์์ฑ์ ๋ณ๊ฒฝํ ๋ ํท๊ฐ๋ฆฌ๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ํ์ํ ๋ ์ฐพ์๋ณด๊ธฐ ์ํด์ ๊ธ์ ์๋๋ค. JavaSctript๋ก disabled ์์ฑ ํ์ฑํ or ํด์ ํ๊ธฐ function disabledFalse() { document.querySelector('#name').disabled = false; document.querySelector('#email').disabled = false; document.querySelector('#phone').disabled = false; document.querySelector('#message').disabled = false; } ์ ์ฒ๋ผ ๋ด๊ฐ ์ํ๋ ์ ํ์๋ฅผ ์ ํํด์ค ํ .disabled ์์ฑ์ ๋ณ๊ฒฝํด์ฃผ๋ฉด ๋๋ค... [DBeaver / MySQL] ๋ฌดํ ๋ก๋ฉ(dead lock) ํด๊ฒฐ DBeaver / MySQL ๋ฌดํ ๋ก๋ฉ ํด๊ฒฐ๋ฒ์ต๊ทผ ํ์๋ค๊ณผ ์งํํ๋ ๊ฐ์ธ ํ๋ก์ ํธ์์ DB์กฐ์์ ํ๋๊ฒฝ์ฐ๊ฐ ๋ง๋ค๋ณด๋ DBeaver๊ฐ ๋ฌดํ๋ก๋ฉ์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ์ข ์ข ๋ชฉ๊ฒฉํ๊ฒ ๋์ต๋๋ค. ๋ณดํต ์ฟผ๋ฆฌ๋ฌธ์ ์๋ฅ๋ ์ธ๋ถ์์ธ์ ์ํด์ ์ ์ ์ข ๋ฃ๋์ง ์์ ์ํ์์ ๋ค๋ฅธ ๊ณณ์์ SQL๋ช ๋ น์ ์คํํ๊ธฐ์ DBeaver๊ฐ ์ด๋ฅผ ์ธ์ํ์ง ๋ชปํ๊ณ ๊ณ์ ์คํ์ ์์ฒญํ๋ค๊ฐ ๋ฌดํ ๋ก๋ฉ(dead lock)์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ ์์ต๋๋ค. ์์Java ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด query ์คํ -> ์ค๋ฅ -> "DB ๋๊ธฐ ์ค"DBeaver๋ฅผ ํตํด query ์คํ -> "DB ๋๊ธฐ ์ค"์ด ๋๋ ๋ ๊น์ง ๊ธฐ๋ค๋ฆผ... -> ๋ฌดํ ๋ก๋ฉ์ด๋ฐ ๋ชจ์ต ํน์ ๋ฐ๋์ ๊ฒฝ์ฐ์ ๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ํด๊ฒฐ๋ฒ์ ์ฌ์ฉํ๋ DB ์ ์ ๊ฒฝ์ฐ MySQL ์๋น์ค๋ฅผ ์ฌ์์ํ๋ ๊ฒ (๊ฐ์ธ .. [Java] XMLํ์ผ๊ณผ ์๋ฐ(Java)๋ก ํ์ฑ(parsing)ํ๊ธฐ xml์์ ํ์ผ ํ๊ตญ์ด 25 ์์ธ java๋ก xmlํ์ผ parsing ํ๊ธฐ XML ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ ์ฐจ๋ HTML ํ์ผ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ์ ์ฐจ์ ์ ์ฌํฉ๋๋ค. HTML์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์์ ํ๊ธฐ ์ํด์๋ ํ์ํ ํ๊ทธ๋ฅผ ์ธ์ํด์ค ํ์๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, document.getElementById("๊ฐ์ ธ์ฌ ํ๊ทธ์ Id") ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด์ ํน์ ์์ด๋๋ฅผ ๊ฐ์ง ํ๊ทธ๋ฅผ ์ธ์ํ ์ ์์ต๋๋ค. ์ด์ฒ๋ผ xmlํ์ผ ์ญ์ ํ๊ทธ๋ฅผ ์ธ์ํ๊ธฐ ์ํด์ ํ์ํ ์ ์ฐจ๋ ๋ฌธ์์ ์์ฒด ๊ฐ์ฒด์ธ document๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ ๋๋ค. import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.. ์ด์ 1 ยทยทยท 6 7 8 9 10 11 ๋ค์