| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ์ฝํ๋ฆฐ ์คํ
- CI/CD
- ํ์ฝํ
- ๋ฐฐ๋น์ฃผ
- ์๊ณ ๋ฆฌ์ฆ
- kotlin ์๊ณ ๋ฆฌ์ฆ
- pnpm
- ๋ฏธ๊ตญ์ฃผ์
- ๋ฐฑ์ค
- ์๋ฐ
- Kotlin
- ์ฝํ๋ฆฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ ์๊ณ ๋ฆฌ์ฆ
- ๋ฐฑ์ค ์ฝํ๋ฆฐ
- Swift
- ๋ฏธ๊ตญ๋ฐฐ๋น์ฃผํฌ์
- js
- java ์ฝ๋ฉ ํ ์คํธ
- ํ์ด์ฌ
- ์ฝํ๋ฆฐ ์๊ณ ๋ฆฌ์ฆ
- ์๋ฐ์คํฌ๋ฆฝํธ
- Java
- kotlin algorithm
- linux
- python
- Vue.js
- GIT
- vue3
- javascript
- Today
- Total
๋ชฉ๋กProgramming (99)
๐ ์ ์ด์ ๋จธ๋ฆฟ์์ผ๋ก
์ฝ์ง๋ง ๋ณต์กํ ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ ๐ค ๋ค์ต์คํธ๋ผ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ธ๊น? โ๏ธ์ต๋จ ๊ฒฝ๋ก๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋์ด๋ค. ํน์ ์ง์ ์์ ๋ชฉํ ์ง์ ์ผ๋ก ๊ฐ์ฅ ์ ์ ๋น์ฉ์ ๋ค์ด๋ฉฐ ๊ฐ์ผํ ๋ ์ฌ์ฉํ ์ ์๋ค. ์) 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์ ๊ฐ์ด ๋ฐ๋ก ์ฐ๊ฒฐ๋ ๊ฒฝ๋ก๋ ์์ ๋, ๋น์ฉ์ ๋ฌดํ(์ํฅ์ ์ฃผ์ง ์๋ ์์ฃผ ํฐ ๊ฐ)์ผ๋ก ํ๋ค..
์๊ฐ ์ WebSocket์ ์ฌ์ฉํ์๋? Spring-boot WebSocket ์ฌ์ฉ๋ฒ(์ค์ ๋ฒ) ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์์ฑํด๋ณด๊ธฐ ๋ฐ์ํ ๋ฌธ์ ์ ํด๊ฒฐ ๋ฐฉ๋ฒ ใด HTTP session ๊ฐ์ ธ์ค๊ธฐ -> interception ์ฌ์ฉ ใด DB๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ๊ธฐ์กด ๋ฉ์์ง ์ ์ฅํ๊ธฐ -> Session Storage ์ฌ์ฉํ๊ธฐ ์ต๊ทผ ์์ฑ ์ค์ธ ๊ฐ์ธ ํ๋ก์ ํธ์์ ์น์ ์ ์ํ ํด๋ผ์ด์ธํธ์ ์ค์๊ฐ ์ฑํ ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํด๋ณด๋ ค๊ณ ํ๋ค. ๐ค ์ WebSocket์ ์ฌ์ฉํ์๋? ์ฌ๊ธฐ์ ๋งํ๋ ์น ์์ผ์ Spring Framework์ STOMP๊ฐ ์๋ ์์ JavaScript๋ฅผ ํ์ฉํ ์์ ์ ๋๋ค. jquery๋ ์ฌ์ฉํ์ง ์์ต๋๋ค. WebSocket์ด ํ์ํ๋ ์ด์ ์์๋งํ๋ฏ ์ค์๊ฐ ๋ผ์ด๋ธ ์ฑํ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ถ์๋ค. ํ์ง๋ง, ๊ธฐ..
์์ 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(๊ฐ) "์ฒซ๋ฒ์งธ ๊ฐ" "๋๋ฒ์งธ ๊ฐ" "์ธ๋ฒ์งธ ๊ฐ" "๋ค๋ฒ์งธ ๊ฐ" "๋ค์ฏ๋ฒ์งธ ๊ฐ" "์ฌ์ฏ๋ฒ์งธ ๊ฐ" ..
๊ฐํน ์๋ฐ์คํฌ๋ฆฝํธ์์ 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 ๋ฌดํ ๋ก๋ฉ ํด๊ฒฐ๋ฒ์ต๊ทผ ํ์๋ค๊ณผ ์งํํ๋ ๊ฐ์ธ ํ๋ก์ ํธ์์ DB์กฐ์์ ํ๋๊ฒฝ์ฐ๊ฐ ๋ง๋ค๋ณด๋ DBeaver๊ฐ ๋ฌดํ๋ก๋ฉ์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ฅผ ์ข ์ข ๋ชฉ๊ฒฉํ๊ฒ ๋์ต๋๋ค. ๋ณดํต ์ฟผ๋ฆฌ๋ฌธ์ ์๋ฅ๋ ์ธ๋ถ์์ธ์ ์ํด์ ์ ์ ์ข ๋ฃ๋์ง ์์ ์ํ์์ ๋ค๋ฅธ ๊ณณ์์ SQL๋ช ๋ น์ ์คํํ๊ธฐ์ DBeaver๊ฐ ์ด๋ฅผ ์ธ์ํ์ง ๋ชปํ๊ณ ๊ณ์ ์คํ์ ์์ฒญํ๋ค๊ฐ ๋ฌดํ ๋ก๋ฉ(dead lock)์ด ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ ์์ต๋๋ค. ์์Java ์ ํ๋ฆฌ์ผ์ด์ ์ ํตํด query ์คํ -> ์ค๋ฅ -> "DB ๋๊ธฐ ์ค"DBeaver๋ฅผ ํตํด query ์คํ -> "DB ๋๊ธฐ ์ค"์ด ๋๋ ๋ ๊น์ง ๊ธฐ๋ค๋ฆผ... -> ๋ฌดํ ๋ก๋ฉ์ด๋ฐ ๋ชจ์ต ํน์ ๋ฐ๋์ ๊ฒฝ์ฐ์ ๋๋ค. ๊ฐ์ฅ ๊ฐ๋จํ ํด๊ฒฐ๋ฒ์ ์ฌ์ฉํ๋ DB ์ ์ ๊ฒฝ์ฐ MySQL ์๋น์ค๋ฅผ ์ฌ์์ํ๋ ๊ฒ (๊ฐ์ธ ..
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..
Java๋ด์ ๋ด์ฅ๋์ด์๋ GUI์ธ ์ค์(swing)์ ์ด์ฉํ์ฌ ๊ฐ๋จํ ํ ์ด ํ๋ก๊ทธ๋จ(๊ฐ๊ณ๋ถ ํ๋ก์ ํธ)์ ์์ฑํ์์ต๋๋ค. ์ด๋ค ๊ธฐ๋ฅ์ ์ด๋ป๊ฒ ๋ง๋ค์๋์ง ์๊ฐํด์ผํ ๋ถ๋ถ์ด ์ด๋ค ๊ฒ ์์์ง ํ๊ณ ํ๊ธฐ ์ํด ๊ธฐ๋กํฉ๋๋ค. ใใใ๋ฐ๋ก๊ฐ๊ธฐ ๋ก๊ทธ์ธ ํ์๊ฐ์ ํ ์คํธ ํ๋ ํํธ ์ฝ์ ํ ์ด๋ธ ๋ฐ์ดํฐ ์ฝ์ ํ ์ด๋ธ ์๋ก๊ณ ์นจ ํ ์ด๋ธ ํ ์ญ์ โถ๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์์ด๋ ํน์ ๋น๋ฐ๋ฒํธ๋ฅผ ๊ธฐ์ ํ๋ ํ ์คํธํ๋(textfield)๊ฐ ๊ธฐ์ ๋์ง ์์ผ๋ฉด ํ๋จ ๋ผ๋ฒจ์ ๊ฒฝ๊ณ ๋ฌธ์ ์์ฑ. ์ณ์ง ์์ ์์ด๋๋ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ์ ๋, ๊ฒฝ๊ณ ๋ฌธ GUI ์์ฑ. ๋ก๊ทธ์ธ ๋ฒํผ์ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํด์ฃผ๋ ๋ฉ์๋ actionListener ๊ฐ์ฒด๋ฅผ ์์ฑํด ๋ ํด์ฃผ๊ณ ํ ์คํธ๊ฐ ๋น์ด์์ ๋, ์ ํํ๋ idHint, pwHint ๋ฌธ์์ด๊ณผ ๋์ผํ ๊ฒฝ์ฐ ๋ผ๋ฒจ ๊ฒฝ๊ณ ๋ฌธ์ด ๋ณด์ผ ์ ์๊ฒ ํด ..
โถInputStream / Sytem.in.read() ImputStream์ ์ฌ์ฉ์์ ์ ๋ ฅ์ ๋ฐ์ ์ ์๋ ์ญํ ์ ํ๋ค. ์ฌ์ฉ์ ์ ๋ ฅ์ ์์ฃผ ์ฐ์ด๋ ํด๋์ค์ธ Scanner์ ๋ค๋ฅธ ๋์์ ๋ณด์ด๋๋ฐ, ๊ฐ์ฅ ํฐ ํน์ง์ 1byte ๋จ์๋ก ์ ๋ ฅ์ ๋ฐ์์จ๋ค๋ ์ ์ด๋ค. Sytem.in.read()์ ์ฌ์ฉ์ ์ ๋ ฅ์ ์์ ์ ์ฅํ๋ ๋ฒํผ(Buffer)์์ ์ ์ฅ๋ ๊ฐ์ ํ๋์ฉ ๊ฐ์ ธ์จ๋ค. ์ด read()์ return ๊ฐ์ byte๋จ์์ ๋ฐ์ดํฐ ํน์ -1(๋ฒํผ์ ๊ฐ์ด ์์ ๋)์ด๋ค. โถ์์คํค์ฝ๋ ๊ฐ์ผ๋ก ์ ์ฅ read() ๋ฉ์๋๋ก ๋ฆฌํดํ ๊ฐ์ ๋ณ์์ ์ ์ฅํ๊ฒ ๋ ํ ๋ฐ, ์ด๋ ์ฌ์ฉ์ ์ ๋ ฅ ๊ฐ์ ๋ฆฌํด ๊ฐ์ธ byte๋จ์(0~255)์ ๋ง์ถ์ด ์์คํค์ฝ๋ ๊ฐ์ ์ ์ฅํ๊ฒ ๋๋ค. ๋ณ์ a์ ์ฌ์ฉ์ ์ ๋ ฅ์ผ๋ก ๋ฌธ์ 'a'๋ฅผ ๋ฐ์ผ๋ฉด ๋ฌธ์ 'a..
โถ ์ธํฐํ์ด์ค(Interface) ๋? ์๋ฐ์์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค๋, ์ถ์ ํด๋์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ถ์๋ ํ์ ๋ง๋ค์ด ๊ฐ๋ฐ์ ํผ์ ์ด ์๊ฒ๋ ๋์์ฃผ๋ ์ญํ ์ ํ๋ ๊ฐ์ฒด์ด๋ค. ํ์ ์ ํ๋ ๊ฐ๋ฐ์๋ค๋ผ๋ฆฌ์ ์ํํ ์์ฌ์ํต์ ์ํด์ ์์ฑ๋ ๊ฐ๋ ์ผ๋ก ์ธํฐํ์ด์ค๋ผ๋ ์ด๋ฆ์ ๊ฐ์ง๋ ๊ฒ ๊ฐ๋ค. โถ ์ถ์ ํด๋์ค์ ๋ฌด์์ด ๋ค๋ฅผ๊น? ์ถ์ ํด๋์ค๋ ํธ๋ฆฌ ํ์์ผ๋ก ์์ ํด๋์ค์ ํ์ ํด๋์ค๋ก ๋๋์ด์ง๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ด๋ค. ํ์ ํด๋์ค๋ ์์ ํด๋์ค์์ ์ถ์ํ์ํจ ์์ฑ์ ํน์ ๋ฉ์๋๋ฅผ ์ ์ํ๋ฉด์ ๋ ๊ตฌ์ฒดํ๋์ด๊ฐ๋ค. ๋ฐ๋ฉด์, ์ธํฐํ์ด์ค๋ ํธ๋ฆฌ ๊ตฌ์กฐ์ ๊ฐ์ ์์ง์ ๊ตฌ์กฐ๊ฐ ์๋ ์ํ์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค. ์์ง์ ๊ตฌ์กฐ๋ฅผ ๊ฐ๋ ์ถ์ ํด๋์ค๋ ํ๋์ ์์ ํด๋์ค์๊ฒ๋ง ์์๋ฐ์ ์ ์์ง๋ง, ์ํ์ ๊ตฌ์กฐ์ ์ธํฐํ์ด์ค๋ ํ๋์ ํด๋์ค๊ฐ ์ฌ๋ฌ ์ธํฐํ์ด..
์๋ฐ์ ์ ๊ทผ ์ ์ด์ default / public(package) / private / protected / static / final โถ default(package) ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์ ๊ทผ ์ ์ด์๋ก ์๋ต์ด ๊ฐ๋ฅํ๋ค. => ์ ๊ทผ ์ ์ด์๋ฅผ ์๋ตํ๋ฉด default๋ก ์ค์ ๋๋ค. default๋ ๊ฐ์ ํจํค์ง ๋ด์ ์๋ class๋ผ๋ฉด ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค. 1๋ฒ ํจํค์ง์ 1๋ฒ ํด๋์ค๋ฅผ ์ ์ํ์๋ค. 2๋ฒ ํจํค์ง๋ฅผ ๋ง๋ค๊ณ 2๋ฒ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ 2๋ฒ ํด๋์ค์ 1๋ฒ ํด๋์ค๋ฅผ ๋ถ๋ฌ์ค๊ธฐ(import)๋ฅผ ํ์ ๋, ์ค๋ฅ ๋ฐ์ => ๊ฐ์ ํจํค์ง ์์์๋ง ๋ถ๋ฌ์ค๊ธฐ ๊ฐ๋ฅ โถ public ์ด๋ฆ์ฒ๋ผ ์ด๋์๋ ๋ถ๋ฌ์ฌ ์ ์๋ค. ๋ค๋ฅธ ํจํค์ง ์์ ๋ค๋ฅธ ํด๋์ค์์๋ ๋ถ๋ฌ์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. testPackage1 ํจํค์ง์ ์๋ TestClass2 ..