๐Ÿ“ Language

    Spring๊ณผ SpringBoot

    Spring๊ณผ SpringBoot

    ์Šคํ”„๋ง๊ณผ ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” versus๊ฐ€ ์•„๋‹ˆ๋ผ with์ด๋‹ค. 1. Spring ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ž๋ฐ”์—์„œ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ธ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. 1) ํŠน์ง• ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์ง•์€ ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection)๊ณผ ์ œ์–ด์˜ ์—ญ์ „(Inversion Of Control)์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๊ณ  ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜์—ฌ ํ€„๋ฆฌํ‹ฐ ๋†’์€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. // 1. DI ์—†๋Š” ์˜ˆ์ œ: ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’๋‹ค. // MyController๋Š” MyService ํด๋ž˜์Šค์— ์˜์กดํ•œ๋‹ค. // ๊ทธ๋ž˜์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„  new MyService();๋กœ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์–ป์–ด์•ผ ํ•œ๋‹ค. // ๊ทธ๋Ÿฐ๋ฐ MyController์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Mock..

    [JAVA] ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

    [JAVA] ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

    ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ 1. ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋Š” ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์ž…์ถœ๋ ฅ๋œ๋‹ค. ์ŠคํŠธ๋ฆผ์€ ๋‹จ์ผ ๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ์†์ ์œผ๋กœ ํ˜๋Ÿฌ๊ฐ€๋Š” ๊ฒƒ์„ ๋งํ•˜๋Š”๋ฐ ๋ฌผ์ด ๋†’์€ ๊ณณ์—์„œ ๋‚ฎ์€ ๊ณณ์œผ๋กœ ํ๋ฅด๋“ฏ์ด ๋ฐ์ดํ„ฐ๋Š” ์ถœ๋ฐœ์ง€์—์„œ ๋„์ฐฉ์ง€๋กœ ํ˜๋Ÿฌ๊ฐ„๋‹ค. ์ด๋•Œ, ํ”„๋กœ๊ทธ๋žจ์ด ์ถœ๋ฐœ์ง€๋ƒ ๋„์ฐฉ์ง€๋ƒ์— ๋”ฐ๋ผ์„œ ์‚ฌ์šฉํ•˜๋Š” ์ŠคํŠธ๋ฆผ์˜ ์ข…๋ฅ˜๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ๋„์ฐฉ์ง€์ด๋ฉด ํ˜๋Ÿฌ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์•ผ ํ•˜๋ฏ€๋กœ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ˜๋Œ€๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์ถœ๋ฐœ์ง€๋ฉด ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•œ๋‹ค. 2. ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์ข…๋ฅ˜ java.io ํŒจํ‚ค์ง€์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. 1) ๋ฐ”์ดํŠธ(Byte) ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ ๊ทธ๋ฆผ, ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋“ฑ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. InputStream: ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค OutputSt..

    [JAVA] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ

    [JAVA] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ

    ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ์ถ”๊ฐ€, ์‚ญ์ œ, ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„ ํด๋ž˜์Šค๋ฅผ java.util ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ด๋“ค์„ ์ด์นญํ•ด์„œ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ ๋ถ€๋ฅธ๋‹ค. ์ปฌ๋ ‰์…˜์€ ๊ฐ์ฒด์˜ ์ €์žฅ์„ ๋œปํ•˜๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ๋ž€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ •ํ•ด๋†“์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งํ•˜๋Š”๋ฐ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์‹ค์ œ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ปฌ๋ ‰์…˜(๊ตฌํ˜„) ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 1. List ์ปฌ๋ ‰์…˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ๋•Œ ์ž๋™ ์ธ๋ฑ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜๋ฉฐ ์ด ์ธ๋ฑ์Šค๋กœ ๊ด€๋ฆฌ๋œ๋‹ค. ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ์ฒด์˜ ๋ฒˆ์ง€๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— null๊ณผ ์ค‘๋ณต ์ €์žฅ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ €์žฅ ์šฉ๋Ÿ‰์ด ์ž๋™์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค. ๋ฉ”์„œ๋“œ ์„ค๋ช… boolean add(E e) ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ๋งจ ๋์— ์ถ”๊ฐ€ํ•ฉ..

    [JAVA] ์Šค๋ ˆ๋“œ

    [JAVA] ์Šค๋ ˆ๋“œ

    ์Šค๋ ˆ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ฉด ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›๋Š”๋ฐ, ์‹คํ–‰ ์ค‘์ธ ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ”„๋กœ์„ธ์Šค๋ผ ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์—์„œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ์Šค๋ ˆ๋“œ๋ผ ํ•œ๋‹ค. 1. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์šด์˜์ฒด์ œ๋Š” ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ์ ์ ˆํžˆ ํ• ๋‹นํ•ด์ฃผ๊ณ  ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰์‹œํ‚จ๋‹ค. ์ด๋•Œ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์ด ๊ผญ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋œปํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์‹œ์— ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ๋„ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ 2๊ฐœ ์‹คํ–‰ํ–ˆ๋‹ค๋ฉด 2๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์ด๋‹ค. ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด๋Š” ๋™์˜์ƒ ์žฌ์ƒ๊ณผ ..

    [JAVA] ๊ธฐ๋ณธ API ํด๋ž˜์Šค

    [JAVA] ๊ธฐ๋ณธ API ํด๋ž˜์Šค

    ๊ธฐ๋ณธ API ํด๋ž˜์Šค API๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•˜๋Š”๋ฐ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค ๋ฐ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ชจ์Œ์„ ๋งํ•œ๋‹ค. 1. java.lang ํŒจํ‚ค์ง€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์˜ ๊ธฐ๋ณธ์ ์ธ ํด๋ž˜์Šค๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํŒจํ‚ค์ง€์ด๋‹ค. java.lang ํŒจํ‚ค์ง€์— ์žˆ๋Š” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋Š” import ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 1) Object ํด๋ž˜์Šค ์ž๋ฐ” ํด๋ž˜์Šค์˜ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค๋กœ ์‚ฌ์šฉ๋˜๋ฏ€๋กœ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” Object ํด๋ž˜์Šค์˜ ์ž์‹์ด๊ฑฐ๋‚˜ ์ž์† ํด๋ž˜์Šค์ด๋‹ค. ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•  ๋•Œ ๋‹ค๋ฅธ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜์ง€ ์•Š๋”๋ผ๋„ ์•”์‹œ์ ์œผ๋กœ Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๊ฒŒ ๋œ๋‹ค. Object ํด๋ž˜์Šค์˜ ํ•„๋“œ๋Š” ์กด์žฌํ•˜์ง€ ์•Š๊ณ  ์ƒ์„ฑ์ž์™€ ๋ฉ”์†Œ๋“œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๋ชจ๋“  ๊ฐ์ฒด๋Š” Object ํƒ€์ž…์œผ๋กœ ์ž๋™ ํƒ€์ž… ๋ณ€ํ™˜๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋งค๊ฐœ ํƒ€์ž…์„ Object..

    [JAVA] ์ค‘์ฒฉ ํด๋ž˜์Šค์™€ ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค

    ์ค‘์ฒฉ ํด๋ž˜์Šค์™€ ์ค‘์ฒฉ ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค๋“ค์€ ์„œ๋กœ ๊ธด๋ฐ€ํ•œ ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์ƒํ˜ธ์ž‘์šฉ์„ ํ•œ๋‹ค. ํด๋ž˜์Šค๊ฐ€ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์™€ ๊ด€๊ณ„๋ฅผ ๋งบ๋Š” ๊ฒฝ์šฐ์—๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์œผ๋‚˜ ํŠน์ • ํด๋ž˜์Šค์™€ ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๊ฒฝ์šฐ์—๋Š” ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. 1. ์ค‘์ฒฉ ํด๋ž˜์Šค ์ค‘์ฒฉ ํด๋ž˜์Šค๋ž€ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธํ•œ ํด๋ž˜์Šค๋ฅผ ๋งํ•œ๋‹ค. ์ค‘์ฒฉ ํด๋ž˜์Šค๋ฅผ ์ด์šฉํ•˜๋ฉด ๋‘ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„๋“ค์„ ์„œ๋กœ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ณ  ์™ธ๋ถ€์—๋Š” ๋ถˆํ•„์š”ํ•œ ๊ด€๊ณ„ ํด๋ž˜์Šค๋ฅผ ๊ฐ์ถค์œผ๋กœ์จ ์ฝ”๋“œ์˜ ๋ณต์žก์„ฑ์„ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. class ClassNameA { // 1. ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„ ํด๋ž˜์Šค: A ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” B ํด๋ž˜์Šค class NestedClassNameB { // ์ƒ์„ฑ์ž // ์ธ์Šคํ„ด์Šค ํ•„๋“œ, ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ // ์ •์  ํ•„๋“œ, ์ •์  ๋ฉ”์†Œ๋“œ (๋ถˆ๊ฐ€๋Šฅ) } // ..