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

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

[Java] ์ŠคํŠธ๋ฆผ โœจ์ž๋ฐ” ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐโœจ๐Ÿ“‹ [Java] Functional Interface (ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค)๐Ÿ“‹ [Java] ๋žŒ๋‹ค์‹, ๋ฉ”์„œ๋“œ์ฐธ์กฐ ๐Ÿ“‹ [Java] ์ŠคํŠธ๋ฆผ  โœ… ์™ธ๋ถ€ ๋ฐ˜๋ณต์ž๋ฅผ ์ด์šฉํ•œ ๋ฐ˜๋ณต ์ž‘์—…Collection์— ๋Œ€ํ•ด ํŠน์ • ๋ฐ˜๋ณต ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ๋•Œ, for๋ฌธ์ด๋‚˜ Iterator๋ฅผ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.์ด for๋ฌธ์ด๋‚˜ Iterator๋ฅผ ์™ธ๋ถ€ ๋ฐ˜๋ณต์ž๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์™ธ๋ถ€ ๋ฐ˜๋ณต์ž๋Š” ์ปฌ๋ ‰์…˜ ์™ธ๋ถ€์— ์กด์žฌํ•˜๋ฉด์„œ, ์ปฌ๋ ‰์…˜ ๋‚ด๋ถ€์— ์žˆ๋Š” ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์™€์„œ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์™ธ๋ถ€ ๋ฐ˜๋ณต์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ๋ฐ˜๋ณต ์ž‘์—…์„ ์ œ์–ดํ•ด์•ผ ํ•œ๋‹ค. ๋”๋ณด๊ธฐ์™ธ๋ถ€ ๋ฐ˜๋ณต์ž ์‚ฌ์šฉ ์˜ˆ์‹œ import java.util.Arrays;import java.util.Iterator;import java.util.List;publi.. 2025. 1. 10.
[Java] ๋žŒ๋‹ค์‹, ๋ฉ”์„œ๋“œ์ฐธ์กฐ โœจ ์ž๋ฐ” ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ โœจ๐Ÿ“‹ [Java] Functional Interface (ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค)๐Ÿ“‹ [Java] ๋žŒ๋‹ค์‹, ๋ฉ”์„œ๋“œ์ฐธ์กฐ ๐Ÿ“‹ [Java] ์ŠคํŠธ๋ฆผ โœ… ๋žŒ๋‹ค์‹์ด๋ž€?- ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ถ”์ƒ๋ฉ”์„œ๋“œ๋ฅผ ์ต๋ช…์˜ ๊ตฌํ˜„ ๊ฐ์ฒด๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํ‘œํ˜„์‹์ด๋‹ค.- Java8๋ถ€ํ„ฐ ๋„์ž…๋˜์—ˆ๋‹ค.- ๋žŒ๋‹ค์‹์„ ์‚ฌ์šฉํ•˜๋ฉด, ๊ฐ„๊ฒฐํ•˜๊ณ  ์ง๊ด€์ ์ธ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ๐Ÿฅ ๋žŒ๋‹ค์‹์˜ ๊ธฐ๋ณธ ํ˜•ํƒœ(ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„ 1, ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„ 2, ...) -> { ๊ตฌํ˜„๋ถ€ }๊ด„ํ˜ธ ๋‚ด๋ถ€: ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์žˆ๋‹ค๋ฉด ํŒŒ๋ผ๋ฏธํ„ฐ ์ด๋ฆ„์„ ๋‚˜์—ดํ•˜๊ณ , ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†๋‹ค๋ฉด ์•„๋ฌด ๊ฒƒ๋„ ์ ์ง€ ์•Š๋Š”๋‹ค.์ค‘๊ด„ํ˜ธ ๋‚ด๋ถ€ : ๋ฉ”์„œ๋“œ ๊ตฌํ˜„๋ถ€๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.  - ๊ด„ํ˜ธ ์•ˆ์— ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž…์„ ์ ๋Š”๋‹ค๊ณ  ํ•ด์„œ ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.    ๊ทธ๋Ÿฌ๋‚˜ ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž… ์ •๋ณด๋Š” ํ•จ.. 2025. 1. 9.
[Java] Functional Interface (ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค) โœจ์ž๋ฐ” ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐโœจ๐Ÿ“‹ [Java] Functional Interface (ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค)๐Ÿ“‹ [Java] ๋žŒ๋‹ค์‹, ๋ฉ”์„œ๋“œ์ฐธ์กฐ ๐Ÿ“‹ [Java] ์ŠคํŠธ๋ฆผ ๐ŸฅJava์—์„œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๊ณ  ์‹ถ์€๋ฐ, ์–ด๋–ป๊ฒŒ ํ•จ์ˆ˜๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์„๊นŒ?์ž๋ฐ”์—์„œ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๊ฐ์ฒด๋งŒ์„ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.์ž๋ฐ”์—์„œ ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฉ”์„œ๋“œ ์ž์ฒด๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์ „๋‹ฌํ•  ์ˆ˜๋Š” ์—†๋‹ค.๊ทธ๋ž˜์„œ ์ž๋ฐ”์—์„œ๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฐ์ฒด์ฒ˜๋Ÿผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜๋Š”๋ฐ, ๋ฐ”๋กœ “ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค”์ด๋‹ค.โœ… Functional Interface๋ž€?ํ•จ์ˆ˜ํ˜• ์ธํ„ฐํŽ˜์ด์Šค(Functional Interface)๋Š” abstract method๋ฅผ ๋”ฑ ํ•œ ๊ฐœ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค.์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด, ๋‹จ ํ•˜๋‚˜์˜ ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค๋กœ ๊ฐ์‹ผ ํ˜•ํƒœ.. 2025. 1. 9.
CGI ํ”„๋กœ๊ทธ๋žจ โœจ ์›น ๊ธฐ์ˆ ์€ ์–ด๋–ค ํ๋ฆ„์œผ๋กœ ๋ฐœ์ „ํ–ˆ์„๊นŒ โœจ๐Ÿ“„ CGI ํ”„๋กœ๊ทธ๋žจ๐Ÿ“„ Servlet๊ณผ ์„œ๋ธ”๋ฆฟ ์ปจํ…Œ์ด๋„ˆ๐Ÿ“„ WAS (์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„)  โœ… ์›น์„œ๋ฒ„ - ์›น์„œ๋ฒ„๋ž€, ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ HTTP ์š”์ฒญ์„ ๋ฐ›์•„์„œ, HTML์ด๋‚˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ ๋“ฑ์˜ ์ •์  ์ปจํ…์ธ ์„ ์‘๋‹ตํ•ด์ฃผ๋Š” ์„œ๋ฒ„์ด๋‹ค. - ์ฆ‰ ์‚ฌ์šฉ์ž์™€ ์ •์ ์ธ ์ปจํ…์ธ ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค. - ๋™์ ์ธ ์›น ์ปจํ…์ธ ๋Š” ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค. - ์ข…๋ฅ˜: Apache, Nginx, IIS โœ… CGI ํ”„๋กœ๊ทธ๋žจ์˜ ๋“ฑ์žฅ์›น์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์— ๋Œ€ํ•ด ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ ์‘๋‹ตํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ๋งŒ ํ•œ๋‹ค.์›น์„œ๋ฒ„๋Š” ์š”์ฒญ ์‹œ๊ฐ„, ์œ„์น˜, ์‚ฌ์šฉ์ž ๋“ฑ ์š”์ฒญ ์กฐ๊ฑด์— ๋”ฐ๋ผ์„œ ๊ฐ๊ฐ ๋‹ค๋ฅธ ์‘๋‹ต์„ ๋™์ ์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†๋‹ค. ์ด๋Ÿฐ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•ด,  ์›น์„œ๋ฒ„์™€ ํ•จ๊ป˜ CGI ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค. CGI ํ”„๋กœ๊ทธ๋žจ.. 2025. 1. 7.
[Java] JRE์™€ JDK โœ… JRE (Java Runtime Environment)- ์ž๋ฐ” ์‹คํ–‰ ํ™˜๊ฒฝ์„ ์œ„ํ•œ ๋„๊ตฌ๋“ค์ด ํฌํ•จ๋˜์–ด ์žˆ๋Š” ํŒจํ‚ค์ง€์ด๋‹ค.- ์ปดํŒŒ์ผ๋œ ์ž๋ฐ” ๋ฐ”์ดํŠธ์ฝ”๋“œ(.class)๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก, ํ•„์š”ํ•œ ๋ชจ๋“  ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.    - ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž‘์„ฑํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋‹จ์ˆœํžˆ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค๊ณ  ํ•ด์„œ ๊ทธ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๋ฐ”๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค.        ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์ œ๊ณตํ•˜๋ ค๋ฉด JVM์ด ์žˆ์–ด์•ผํ•˜๊ณ , ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌํ˜„์ฒด์˜ ๋ฐ”์ดํŠธ ์ฝ”๋“œ๋“ค๋„ ์žˆ์–ด์•ผ ํ•œ๋‹ค.        ์ด๋Ÿฐ ๋ชจ๋“  ๊ฒƒ๋“ค์„ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ JRE์ด๋‹ค.- JRE๋Š” JVM๊ณผ, ์ž๋ฐ” ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ”์ดํŠธ์ฝ”๋“œ ๋“ฑ์„ ํฌํ•จํ•œ๋‹ค. โœ… JDK (Java Development Kit)- JDK๋Š” JRE๋ฅผ ํฌํ•จํ•˜๊ณ , ์ถ”๊ฐ€๋กœ ์ž๋ฐ” ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๋„๊ตฌ๋“ค์„ .. 2025. 1. 2.
[Java] Java์˜ ํŠน์ง•, Java ์‹คํ–‰ ๊ณผ์ •, ์ธํ„ฐํ”„๋ฆฌํ„ฐ์™€ JIT ์ปดํŒŒ์ผ๋Ÿฌ โœ… Java์˜ ํŠน์ง•- Java๋Š” JVM ๊ธฐ๋ฐ˜์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์ด๋‹ค.- Java ํ”„๋กœ๊ทธ๋žจ์€ ์šด์˜์ฒด์ œ ์œ„์—์„œ ๋ฐ”๋กœ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, JVM ์œ„์—์„œ ์‹คํ–‰๋œ๋‹ค.    ๋”ฐ๋ผ์„œ Java ํ”„๋กœ๊ทธ๋žจ์€ ์–ด๋– ํ•œ ํ•˜๋“œ์›จ์–ด๋“  JVM์ด ์„ค์น˜๋˜์–ด ์žˆ๊ธฐ๋งŒ ํ•˜๋‹ค๋ฉด,    ์šด์˜์ฒด์ œ์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  (์ฆ‰, ์ž๋ฐ” ์‹คํ–‰ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ ๋„) ๋™์ž‘ํ•œ๋‹ค.    (WORA - Write Once, Run Anywhere) - ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๊ณผ ํ•ด์ œ์— ์ง์ ‘ ๊ด€์—ฌํ•  ์ฑ…์ž„์„ ๊ฐ–์ง€ ์•Š๋Š”๋‹ค.        ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด JVM์ด ์ž๋™์œผ๋กœ ํ• ๋‹นํ•ด์ค€๋‹ค.        ๋ฉ”๋ชจ๋ฆฌ ํ•ด์ œ๋Š” JVM์˜ ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์— ์˜ํ•ด ์ž๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค.    ์ฆ‰, ๊ฐœ๋ฐœ์ž๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ ˆ๋ฒจ๋งŒ ์‹ ๊ฒฝ ์“ฐ๋ฉด ๋˜๊ณ , OS ๋ ˆ๋ฒจ๊นŒ์ง€๋Š” ์‹ ๊ฒฝ ์“ฐ.. 2025. 1. 2.
728x90