์ ์ฒด ๊ธ (387) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ [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 .. [Java] Retrofit2์์ Annotation์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์ดํผ๊ธฐ ์ถ์ฒhttps://github.com/square/retrofit GitHub - square/retrofit: A type-safe HTTP client for Android and the JVMA type-safe HTTP client for Android and the JVM. Contribute to square/retrofit development by creating an account on GitHub.github.comChatGPT๋ชฉํ์ปค์คํ Annotation ํ์ฉ๋ฒ์ Retrofit์ ํตํด์ ๋ฐฐ์ด๋ค. ์ด๋ป๊ฒ ๊ธฐ๋ฅ์ ๊ตฌํํ๋์ง ์ดํ๋ค.์์ธํ Annotation ์ฌ์ฉ ๋ฐ ๊ตฌํ ์ฌํญ๊น์ง๋... ๐ ๋ถ๋ด์ค๋ฌ์์.Retrofit์์ Annotation์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ์ฅ์ ์ฝ๋์ ๊ฐ๋ ์ฑ ํฅ์An.. [Java] PriorityQueue ์ถ์ฒChatGPT์๋ฐ 8 ์์ค์ฝ๋PriorityQueue๋ ์๋ฐ์ ํ(queue) ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ ํด๋์ค ์ค ํ๋๋ก, ์ฐ์ ์์์ ๋ฐ๋ผ ์์๋ค์ ๊ด๋ฆฌํ๋ ํ์ด๋ค. PriorityQueue๋ ํ(Heap) ์๋ฃ๊ตฌ์กฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ฉฐ, ์ฝ์ ๋ ์์๋ค์ ํน์ ์ฐ์ ์์์ ๋ฐ๋ผ ์ ๋ ฌํ์ฌ, ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์์๊ฐ ๋จผ์ ์ฒ๋ฆฌ๋๋๋ก ํ๋ค.๊ด๋ จ ๊ธ -> [Java] Queue ์ธํฐํ์ด์ค๊ด๋ จ ๊ธ -> [์๋ฃ ๊ตฌ์กฐ][Java] ํ Heap 1. PriorityQueue์ ์ฃผ์ ํน์ง์ฐ์ ์์ ๊ธฐ๋ฐPriorityQueue๋ ์ผ๋ฐ์ ์ธ ํ์ ๋ฌ๋ฆฌ, ์์๋ค์ด ์ฐ์ ์์์ ๋ฐ๋ผ ์ ๋ ฌ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋๋ฉฐ, Comparator๋ฅผ ์ ๊ณตํ๋ฉด ์ฌ์ฉ์ ์ ์ ์ฐ์ ์์๋ก ์ ๋ ฌํ ์ ์๋ค.ํ(Heap) ์๋ฃ๊ตฌ์กฐ๋ด๋ถ์ ์ผ๋ก.. [์๋ฃ ๊ตฌ์กฐ]์ด์ง ํ Binary Heap ์ถ์ฒ ChatGPT์ด์ง ํ (Binary Heap)์ ์์ ์ด์ง ํธ๋ฆฌ์ ํ ํํ๋ก, ํ ํน์ฑ์ ๋ง์กฑํ๋ ์๋ฃ๊ตฌ์กฐ์ด๋ค. ์ด์ง ํ์ ์ฃผ๋ก ์ต์ ํ(Min Heap)๊ณผ ์ต๋ ํ(Max Heap) ๋ ๊ฐ์ง ์ ํ์ผ๋ก ๋๋๋ค. ์ต์ ํ Min Heap๋ถ๋ชจ ๋ ธ๋๊ฐ ํญ์ ์์ ๋ ธ๋๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ค. ๋ฐ๋ผ์ ๋ฃจํธ ๋ ธ๋์๋ ํธ๋ฆฌ์์ ๊ฐ์ฅ ์์ ๊ฐ์ด ์์นํ๋ค.์ต๋ ํ Max Heap๋ถ๋ชจ ๋ ธ๋๊ฐ ํญ์ ์์ ๋ ธ๋๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ์ ๊ฐ์ ๊ฐ์ง๋ค. ๋ฐ๋ผ์ ๋ฃจํธ ๋ ธ๋์๋ ํธ๋ฆฌ์์ ๊ฐ์ฅ ํฐ ๊ฐ์ด ์์นํ๋ค. 1. ์ด์ง ํ์ ํน์ฑ์์ ์ด์ง ํธ๋ฆฌ Complete Binary Tree์ด์ง ํ์ ์์ ์ด์ง ํธ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ์ ์งํด์ผ ํ๋ค. ์ฆ, ๋ชจ๋ ๋ ๋ฒจ์ ๊ฐ๋ ์ฐจ ์์ผ๋ฉฐ, ๋ง์ง๋ง ๋ ๋ฒจ์ ์ผ์ชฝ๋ถํฐ ์ฐจ๋ก๋๋ก ๋ ธ๋๊ฐ ์ฑ์์ ธ์ผ ํ๋ค.ํ ์์ฑ .. ์ด์ 1 ยทยทยท 4 5 6 7 8 9 10 ยทยทยท 49 ๋ค์