๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ

(374)
[ํ”„๋กœ๊ทธ๋ž˜๋ฐ] ์˜์—ญ ํŠนํ™” ์–ธ์–ด, Domain Specific Language ์ถœ์ฒ˜https://devfoxstar.github.io/development/dsl/ ๋„๋ฉ”์ธ ํŠนํ™” ์–ธ์–ด (DSL - Domain Specific Language)์ •์˜ DSL - Domain Specific Language…devfoxstar.github.iohttps://ko.wikipedia.org/wiki/%EB%8F%84%EB%A9%94%EC%9D%B8_%ED%8A%B9%ED%99%94_%EC%96%B8%EC%96%B4 ๋„๋ฉ”์ธ ํŠนํ™” ์–ธ์–ด - ์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „์œ„ํ‚ค๋ฐฑ๊ณผ, ์šฐ๋ฆฌ ๋ชจ๋‘์˜ ๋ฐฑ๊ณผ์‚ฌ์ „. ๋„๋ฉ”์ธ ํŠนํ™” ์–ธ์–ด(Domain-specific language)๋Š” ํŠน์ •ํ•œ ๋„๋ฉ”์ธ์„ ์ ์šฉํ•˜๋Š”๋ฐ ํŠนํ™”๋œ ์ปดํ“จํ„ฐ ์–ธ์–ด์ด๋‹ค. ์ด๋Š” ์–ด๋Š ๋„๋ฉ”์ธ์—์„œ๋‚˜ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฒ”์šฉ ์–ธ์–ด(General-purpose la..
[Java] I/O Stream ์ถœ์ฒ˜https://blog.naver.com/jwyoon25/221300691133 ์ž๋ฐ” ์ŠคํŠธ๋ฆผ API์™€ I/O'์ž๋ฐ” ๋„คํŠธ์›Œํฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ'์˜ ๋‹ค์Œ ์ฑ•ํ„ฐ๋Š” ์ŠคํŠธ๋ฆผ(stream)์ด๋‹ค. ์ž๋ฐ”์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์“ฐ๋Š” ๋™์ž‘, ์ฆ‰ ...blog.naver.com Head First JavaChatGPThttps://www.geeksforgeeks.org/java-io-tutorial/ Java IO Tutorial - GeeksforGeeksA Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and prac..
[Java] ๋ฎคํ…์Šค Mutex & ์„ธ๋งˆํฌ์–ด Semaphore ์ถœ์ฒ˜ChatGPT 1. ๋ฎคํ…์Šค MutexMutaul Exclusion์˜ ์•ฝ์ž.ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ๊ณต์œ  ์ž์›์— ์ ‘๊ทผํ•˜๋„๋ก ๋ณด์žฅํ•œ๋‹ค.Lock Mechanism ์ž ๊ธˆ ๋งค์ปค๋‹ˆ์ฆ˜๋ฝ(lock)์€ ์ž์›์„ ์‚ฌ์šฉํ•  ๋Œ€ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์˜ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•˜๊ณ , ์ž์›์˜ ์†Œ์œ ๊ถŒ์„ ๊ฐ–๋Š” ๋ฐฉ์‹์ด๋‹ค. ๋ฎคํ…์Šค๋Š” ์ž์›์„ ์ž ๊ทธ๋Š”(lock) ์—ญํ• ์„ ํ•˜๋ฉฐ, ๊ทธ ์ž์›์€ ๋ฎคํ…์Šค๋ฅผ ์†Œ์œ ํ•œ ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.Lock Mechanism์˜ ์ž‘๋™ ๋ฐฉ์‹์Šค๋ ˆ๋“œ๋Š” ์ž์›์— ์ ‘๊ทผํ•  ๋•Œ ๋ฝ์„ ํš๋“ํ•œ๋‹ค.์ž์› ์‚ฌ์šฉ์ด ๋๋‚˜๋ฉด ๋ฝ์„ ํ•ด์ œํ•ด ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.ํŠน์ง•๋ฝ์„ ์‚ฌ์šฉํ•˜๋Š” ์Šค๋ ˆ๋“œ๋งŒ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ณ , ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ๋Š” ๋ฝ์ด ํ•ด์ œ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•ด์•ผ ํ•œ๋‹ค.๋ฎคํ…์Šค๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ์˜ ์ ‘๊ทผ๋งŒ์„ ํ—ˆ์šฉํ•ด ์Šค๋ ˆ๋“œ ์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค.๊ตฌํ˜„์ž๋ฐ”์—์„œ๋Š” synchron..
[Java] Thread-Safeํ•œ Singleton ๊ฐ์ฒด ์ถœ์ฒ˜ChatGPThttps://simyeju.tistory.com/121 Java] Multi Thread ํ™˜๊ฒฝ์—์„œ Singleton ํŒจํ„ด์„ Thread Safeํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐMulti Thread ํ™˜๊ฒฝ์—์„œ Singleton ํŒจํ„ด์„ Thread Safeํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๊ธฐ ํ•ด๋‹น ๊ธ€๊ณผ ๊ด€๋ จ๋œ Singleton Pattern์„ ํ…Œ์ŠคํŠธ ํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” git์ฃผ์†Œ๋ฅผ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ— https://github.com/SimYeJu/HelloSingletonPattern/tree/main/src โ“Singlesimyeju.tistory.comhttps://www.initgrep.com/posts/design-patterns/thread-safety-in-java-singleton-pattern Explore Different..
[Java] volatile ํ‚ค์›Œ๋“œ - ๋ณ€์ˆ˜์˜ ๊ฐ€์‹œ์„ฑ, ์žฌ์ •๋ ฌ ๋ฐฉ์ง€ ์ถœ์ฒ˜ChatGPTvolatile ํ‚ค์›Œ๋“œ๋Š” Java์—์„œ ๋ณ€์ˆ˜์˜ ๊ฐ€์‹œ์„ฑ(visibility)๋ฅผ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ™์€ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•  ๋Œ€, ๊ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ฉ”์ธ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ๋ฐ”๋กœ ์ฝ๊ณ  ์“ฐ๋„๋ก ๋ณด์žฅํ•˜๋Š” ์—ญํ• ์„ ํ•œ๋‹ค.๋ณ€์ˆ˜์˜ ๊ฐ€์‹œ์„ฑ : ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ–ˆ์„ ๋•Œ, ๊ทธ ๋ณ€๊ฒฝ๋œ ๊ฐ’์„ ๋‹ค๋ฅธ ์Šค๋ ˆ๋“œ์—์„œ ๋ฐ”๋กœ ๋ณผ ์ˆ˜ ์žˆ๋Š”์ง€์˜ ์—ฌ๋ถ€. ๊ฐ€์‹œ์„ฑ์€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ค‘์š”ํ•œ ๊ฐœ๋…์œผ๋กœ, ๊ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณ€์ˆ˜์˜ ์ตœ์‹  ์ƒํƒœ๋ฅผ ๋ณด์žฅ๋ฐ›์„ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.์ž๋ฐ”์˜ ๋ณ€์ˆ˜ ๊ฐ€์‹œ์„ฑ ๋ฌธ์ œ์ž๋ฐ”์—์„œ๋Š” ๊ฐ€๊ฐ€ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ณ€์ˆ˜๋ฅผ ์ž์‹ ์˜ CPU ์บ์‹œ ๋˜๋Š” ๋ ˆ์ง€์Šคํ„ฐ์— ์ €์žฅํ•˜๊ณ , ์—ฌ๊ธฐ์— ์ €์žฅ๋œ ๊ฐ’์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ฐ™์€ ๋ณ€์ˆ˜์— ์ ‘๊ทผํ•˜๋”๋ผ๋„ ๋‹ค๋ฅธ ๊ฐ’์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ• ..
[Java] Thread์˜ stop()๊ณผ interrupt()์˜ ๋น„๊ต ์ถœ์ฒ˜ChatGPT์ž๋ฐ” 8 ์†Œ์Šค ์ฝ”๋“œhttps://cano721.tistory.com/165 [Java] ์“ฐ๋ ˆ๋“œ 5 - ์“ฐ๋ ˆ๋“œ์˜ ์‹คํ–‰์ œ์–ด(sleep, interrupt, join, yield)์“ฐ๋ ˆ๋“œ์˜ ์Šค์ผ€์ค„๋ง ๊ด€๋ จ ๋ฉ”์„œ๋“œ ๋ฉ”์„œ๋“œ ์„ค ๋ช… static void sleep(long millis) static void sleep(long millis, int nanos) ์ง€์ •๋œ ์‹œ๊ฐ„(์ฒœ๋ถ„์˜ 1์ดˆ ๋‹จ์œ„)๋™์•ˆ ์“ฐ๋ ˆ๋“œ๋ฅผ ์ผ์‹œ์ •์ง€์‹œํ‚จ๋‹ค. ์ง€์ •ํ•œ ์‹œ๊ฐ„์ด ์ง€๋‚˜๊ณ  ๋‚˜๋ฉด,cano721.tistory.com  ์ž๋ฐ”์˜ Thread.stop() ๋ฉ”์†Œ๋“œ๋Š” ์Šค๋ ˆ๋“œ๋ฅผ ๊ฐ•์ œ๋กœ ์ข…๋ฃŒ์‹œํ‚ค๋Š” ์œ„ํ•œ ํ•จ์ˆ˜๋กœ deprecated ๋๋‹ค. stop()์˜ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•ด interrupt() ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์Šค๋ ˆ๋“œ๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•œ๋‹ค.  Threa..
[Java] ์Šค๋ ˆ๋“œ ์ƒ๋ช…์ฃผ๊ธฐ ์ถœ์ฒ˜ChatGPThttps://www.baeldung.com/java-thread-lifecycle  ์ž๋ฐ”์˜ ์Šค๋ ˆ๋“œ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ์™œ ์•Œ์•„์•ผ ํ•˜๋Š”๊ฐ€๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํšจ๊ณผ์ ์œผ๋กœ ์ž‘์„ฑํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด๋‹ค.1. ์ž์› ๊ด€๋ฆฌ์Šค๋ ˆ๋“œ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์‹œ์Šคํ…œ ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์Šค๋ ˆ๋“œ์˜ ์ƒํƒœ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํ•„์š”ํ•˜์ง€ ์•Š์€ ์Šค๋ ˆ๋“œ๊ฐ€ ๊ณ„์† ์‹คํ–‰๋˜๋ฉด ์ž์› ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.2. ๋™๊ธฐํ™” ๋ฌธ์ œ ํ•ด๊ฒฐ์Šค๋ ˆ๋“œ๊ฐ€ ์–ธ์ œ ์‹คํ–‰๋˜๊ณ  ์–ธ์ œ ๋ฉˆ์ถ”๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๋ฉด ๋™๊ธฐํ™” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋œ๋‹ค. ์ž˜๋ชป๋œ ๋™๊ธฐํ™”๋Š” ๋ฐ๋“œ๋ฝ์ด๋‚˜ ๋ ˆ์ด์Šค ์ปจ๋””์…˜๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.๋ฐ๋“œ๋ฝ Deadlock : ๋‘ ๊ฐœ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๊ฐ€ ์„œ๋กœ ์ƒ๋Œ€๋ฐฉ์˜ ์ž์›์„ ๊ธฐ๋‹ค๋ฆฌ๋ฉฐ ๋ฌดํ•œํžˆ ๋Œ€๊ธฐํ•˜๋Š” ์ƒํƒœ. ์ด ์ƒํƒœ์—์„œ๋Š” ์–ด๋–ค ์Šค๋ ˆ..
[์ž๋ฃŒ๊ตฌ์กฐ] ํ•ด์‹œ ์ถฉ๋Œ Hash Collision ์ถœ์ฒ˜https://ryu-e.tistory.com/87 ํ•ด์‹œ(Hash)์™€ ํ•ด์‹œ ์ถฉ๋Œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•1. ํ•ด์‹œ๋ž€? ๐Ÿ’ก ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ž„์˜์˜ ๊ธธ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ์ •๋œ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋กœ ๋งคํ•‘ ํ•ด์‹œ ํ•จ์ˆ˜: ๋ฐ์ดํ„ฐ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ž„์˜์˜ ๊ธธ์ด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜ํ•™์  ์—ฐ์‚ฐ์„ryu-e.tistory.com https://www.geeksforgeeks.org/introduction-to-hashing-2/ Introduction to Hashing - GeeksforGeeksA Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming ..