์๋ฐ6 ์ ๋ฌด ํจ์จ์ ์ฌ๋ ค์ฃผ๋ Intellij ๋จ์ถํค (์๋์ฐ ๊ธฐ์ค) ์ธํ ๋ฆฌ์ ์ด์์ ํ์ฉํ ์ ์๋ ๋จ์ถํค ์ ๋ฆฌ 1. ๋ผ์ธ ๋ณต์ฌ CTRL + D 2. ๋ผ์ธ ์ญ์ CTRL + Y 3. ๋ผ์ธ ์๋ก ์ด๋ SHIFT + ALT + โฌ๏ธ 4. ๋ผ์ธ ์๋๋ก ์ด๋ SHIFT + ALT + โฌ๏ธ 5. ํ๊ธ์์ฉ ์ ํ SHIFT + โฌ ๏ธ/โก๏ธ 6. ๋จ์ด๋ณ๋ก ์ ํ SHIFT + CTRL + โฌ ๏ธ/โก๏ธ 7. ์์ฐ๋ import ์ง์ฐ๊ธฐ CTRL + SHIFT + O 8. ๋ณ์ ์ด๋ฆ ์์ฑ CTRL + ALT + V 9. ์ ์ฒด ์ฐพ๊ธฐ SHIFT ๋๋ฒ 10. ๋ค๋ก๊ฐ๊ธฐ CTRL + ALT + โฌ ๏ธ 11. ์์ผ๋ก ๊ฐ๊ธฐ CTRL + ALT + โก๏ธ 12. ํ๋ก์ ํธ ํด๋ ๋ทฐ๋ก ์ด๋ ALT + 1 13. ๋ธ๋ญ ์ฝ๋ฉํธ( /* */) CTRL + SHIFT + / 14. ์ฝ๋ ์ ๊ณ ํผ์น๊ธฐ CTRL + โ/โ 15... 2024. 2. 25. Spring Boot file upload download rest api ์์ - 1 ๐ ์คํ๋ง ๋ถํธ๋ก ํ์ผ ์ ๋ก๋ ๋ค์ด๋ก๋ ๊ตฌํ ๋ฐฉ๋ฒ ์ฒซ ํ์ฌ์ ์์ต๊ณผ์ ๋ก ํ์ผ ์ ๋ก๋ ๋ค์ด๋ก๋ ๊ธฐ๋ฅ์ ๋ง๋ ์ ์ด ์๋๋ฐ ๊ฒ์์ ํ๋ฉด JSP๋ก ๊ตฌํ๋ ์์ ๊ฐ ๋ง์์ ํ๋ก ํธ๊ฐ React๋ Vue์ผ๋ ์ด๋ป๊ฒ ํ์ผ ์ ๋ก๋ ๋ค์ด๋ก๋ ๊ตฌํํด์ผ ํ๋์ง ๋ง๋งํ์๋ค. ๋คํ์ด ๊นํ๋ธ์์ ์ ์ ๋ฆฌ๋ ์ฝ๋๋ฅผ ์ฐพ์์ ๊ณผ์ ๋ฅผ ์ ๋ง๋ฌด๋ฆฌ ํ ์ ์์์ง๋ง ํด๋น ๊นํ๋ธ ์์ ๋ฅผ ์ฐธ๊ณ ํด์ ๊ตฌํ ํ ๋ ์์ฌ์ ๋ ์ ๊ณผ ๊ทธ๋๋ ์ ๋ชฐ๋๋ ๊ฒ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. 1๏ธโฃ Failed to perform cleanup of multipart items ์๋ฌ ์ฒ๋ฆฌ ๋ฐฉ๋ฒ ์คํ๋ง ๋ถํธ ๋ฒ์ ๋ณ๊ฒฝ์์ inputStream.close() ์ถ๊ฐํ๋ ๊ฑธ๋ก ์์ - Caused by: java.io.IOException: Cannot delete ๊ฒฝ๋ก\ํ์ผ์ด๋ฆ.. 2024. 2. 19. ์๋ฐ iterators๋? ๐ฃ Java Iteration ๐ฃ Java์์ Map ์ํํ๋ ๋ฐฉ๋ฒ์ ๋ณด๋ฉด for๋ฌธ์ ์ฌ์ฉํ ๋ฐฉ๋ฒ๊ณผ iterator๋ฅผ ์ฌ์ฉํ ๋ฐฉ๋ฒ 2๊ฐ์ง๊ฐ ์๋ค. ๊ทธ๋ฐ๋ฐ iterator๋ก Map์ ์ํํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ธํ ๋ฆฌ์ ์ด์์๋ ํฅ์๋ for๋ฌธ์ผ๋ก ๋ณ๊ฒฝํ ์ ์๋ค๊ณ ํ๋ค. ์ธํ ๋ฆฌ์ ์ด์์ ์ถ์ฒํ๋๋๋ก enhanced 'for' loop์ผ๋ก ๋ฐ๊ฟ๋ณด๋ฉด ๊ธฐ์กด์ ์์ฑํ for๋ฌธ์ ํ์ฉํ Map ์ํ๋ฐฉ๋ฒ๊ณผ ๋๊ฐ์ด ๋ณ๊ฒฝ๋๋๋ฐ ํฅ์๋ for๋ฌธ์ ์ฌ์ค iterator object๋ฅผ ์ฌ์ฉํด์ ์ํํ๋ ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ธฐ ์ฝ๊ณ ์์๊ฒ ๋ฐ๊ฟ๋์ ๊ฒ์ผ๋ก ๋ณผ ์ ์๋ค. (๋ฌผ๋ก , iterator๋ฅผ ์ฌ์ฉํ๋ฉด ์ํํ๋ ๋์ค์ ์ญ์ ๊ฐ ๊ฐ๋ฅํ์ง๋ง ํฅ์๋ for๋ฌธ์ ConcurrentModificationException์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ์ํ ๋์ค.. 2024. 2. 11. ์๋ฐ์์ Map ์ํ ๋ฐฉ๋ฒ ๐ฃ Java์์ Map ์ํํ๋ ๋ฐฉ๋ฒ ๐ฃ ์๋ฐ์์ Map์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ฆด ๋ entrySet(), keySet() ๊ทธ๋ฆฌ๊ณ values()๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ ๊บผ๋ด์ฌ ์ ์๋ค. entrySet() : Map.Entry ํด๋์ค์ ์์ ๋ฐํ. entry.getKey() ๋ key๋ฅผ ๋ฐํํ๊ณ , entry.getValue()๋ value ๋ฆฌํด keySet() : ๋งต์ ์๋ ๋ชจ๋ keys๋ฅผ set์ผ๋ก ๋ฐํ values() : ๋งต์ ์๋ ๋ชจ๋ values๋ฅผ set์ผ๋ก ๋ฐํ Map ์ธํ Map map = new HashMap(); @BeforeEach void setUp() { map.put(1, "๋ธ๊ธฐ"); map.put(2, "์ฌ๊ณผ"); map.put(3, "๊ทค"); map.put(4, "๋ฐ๋๋"); map.put(.. 2024. 1. 27. Lambdas and Stream Streams API ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํฌํจํ๋ ์ปฌ๋ ์ ์ด๋ผ๋ ์ฐ๋ฆฌ๊ฐ ์ป๊ณ ์ ํ๋ ์ ๋ณด๋ ๋น์ทํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, '์ด๋ฌํ ์กฐ๊ฑด์ ๋ง๋ ์์ดํ ์ ์ค', '์ด๋ฌํ ๋ฐฉ๋ฒ์ ํ์ฉํด์ ๋ชจ๋ ์์ดํ ์ ๋ฐ๊ฟ์ค, ' '์ค๋ณต๋ ๋ฐ์ดํฐ๋ ์ง์์ค', ๋๋ '์ด๋ฐ ๋ฐฉ๋ฒ์ผ๋ก ์์๋ค์ ์ ๋ ฌํด ์ค' ๋ฑ์ ์ปฌ๋ ์ ์ ์์ฒญํ๋ค๊ณ ์๊ฐํด ๋ณด์. ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด for๋ฌธ๊ณผ Iterator๋ฅผ ์ด์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ฐ ์ปฌ๋ ์ ํด๋์ค์ ๋ง๋ ๋ฉ์๋๋ฅผ ์ฌ์ฉํด ์๋ค. List๋ฅผ ์ ๋ ฌํ ๋๋ Collections.sort()๋ฅผ ์ฌ์ฉํ๊ณ ๋ฐฐ์ด์ ์ ๋ ฌํ ๋๋ Arrays.sort()๋ฅผ ์ฌ์ฉํ๋ค. Streams API๋ ๋ฐ์ดํฐ ์์ค๋ฅผ ์ถ์ํ ํด์ ๋ฐ์ดํฐ ์์ค๊ฐ ๋ฌด์์ด๋ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๋ค๋ฃฐ ์ ์๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํด ์ค๋ค. ๊ทธ๋์ ์ฐ.. 2023. 1. 19. Garbage Collection in Java ๊ฐ๋น์ง ์ฝ๋ ์ ์ด๋? ํ์ ์๋ ์ ์ฐ๋ ๊ฐ์ฒด๋ค์ ์๋ฐ๊ฐ ์์์ ์ฒญ์ํด ์ฃผ๋ ๊ฒ์ด๋ผ๊ณ ์๊ณ ์์๋๋ฐ ๊ฒ์์ ํด๋ณด๋...... ์ด๋ ๊ฒ ์ฝ๊ฒ ๋๋ผ ์ ์๋ GC๊ฐ ์๋์๋ค..๐ฅ Garbage Collection์ด๋? ๊ฐ๋น์ง ์ปฌ๋ ์ ์ ์ฐธ์กฐ(reference)๋์ง ์๋ ๊ฐ์ฒด๋ค์ ์ ๋ฆฌํด ์ค์ RAM์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ๋ณดํ๋ค. ์ ํํ๋ Heap ์์ญ์ธ๋ฐ, ๋ชจ๋ ๊ฐ์ฒด๋ Heap์ ์์ฑ๋๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ํ ๋ ๊ณ ๋ คํด์ผ ํ ์ฌํญ์ผ๋ก ๋ ๊ฐ์ง๊ฐ ์๋๋ฐ ์ฒซ ๋ฒ์งธ๋ก๋ Responsiveness, ๋ ๋ฒ์งธ๋ Throughput์ด๋ค. ์ค๋ช ์ ํ์๋ฉด, Responsiveness๋ ์ผ๋ง๋ ๋น ๋ฅธ ์๊ฐ ์์ ์์ฒญํ ๋ฐ์ดํฐ์ ๋ํด ์ ํ๋ฆฌ์ผ์ด์ ์ด ์๋ตํ๋๊ฐ์ด๊ณ Throughput์ ์ฃผ์ด์ง ์๊ฐ ๋ด์ ์ฒ๋ฆฌํ ์ ์๋ ์์ ์ด์ .. 2022. 10. 28. ์ด์ 1 ๋ค์