๐Ÿ“ Language/โœ JAVA

    [Spring][ํ˜ผ๊ณต] 1. ์ค€๋น„

    [Spring][ํ˜ผ๊ณต] 1. ์ค€๋น„

    ์ค€๋น„ ์›๋ž˜ ์›น์ด ์•„๋‹Œ ๋‹ค๋ฅธ ๋ถ„์•ผ(๊ฒŒ์ž„)์—์„œ ๊ฐœ๋ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ด๋ฒˆ์— ์›น, ํŠนํžˆ Back End ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉฐ ์–ด๋–ป๊ฒŒ ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋Š”์ง€ ๊ธฐ๋ก ๋ชฉ์ ์œผ๋กœ ์ฐจ๋ก€์ฐจ๋ก€ ์ž‘์„ฑํ•˜๋ ค ํ•œ๋‹ค. ๋จผ์ €, ์ž๋ฐ”์—์„œ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ด๊ณ  ๋งŽ์ด ์‚ฌ์šฉํ•œ๋‹ค๋Š” Spring์„ ๊ณต๋ถ€ํ•  ๊ฒƒ์ด๋‹ค. ์œ ํŠœ๋ธŒ ๊ฐ•์˜๋‚˜ ์ธํ”„๋Ÿฐ ๊ฐ•์˜๋ฅผ ํ†ตํ•ด ์ „์ฒด์ ์ธ ํ•ต์‹ฌ ๊ฐœ๋… ์ •๋„๋งŒ ๊ณต๋ถ€๋ฅผ ํ•œ ๋’ค ์ฑ…์„ ํ†ตํ•ด ์ข€ ๋” ์‹ฌํ™” ๊ฐœ๋…์„ ๊ณต๋ถ€ํ•  ๊ฒƒ์ด๋‹ค. 1. ํ•„์š”ํ•œ ์‚ฌ์ „ ์ง€์‹ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋ž˜๋ฐ: ์‚ฌ์šฉํ•œ ๋ฒ„์ „์€ 11์ด๊ณ  'ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๋Š” ์ž๋ฐ”'๋ผ๋Š” ์ฑ…์„ ํ†ตํ•ด ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…๋งŒ ๊ณต๋ถ€ํ–ˆ๋‹ค. ์•„์ง ์ž๋ฐ”๋ฅผ ํ†ตํ•ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๊ฒฝํ—˜๋„ ์—†๊ณ  ๋งŽ์ด ์จ๋ณด์ง€๋„ ์•Š์•„์„œ ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์ง€๋งŒ, ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถ€ํ•˜๊ธฐ์—” ์‹œ๊ฐ„๋„ ๋ถ€์กฑํ•˜๊ณ  ๋นจ๋ฆฌ ์‹ค์ „ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ณ  ์‹ถ๊ธฐ์— Spring์„ ์จ๋ณด๋ฉฐ ํ•จ๊ป˜ ๊ฒฝํ—˜์„ ์Œ“์„ ์ƒ๊ฐ..

    Maven(๋ฉ”์ด๋ธ)

    Maven(๋ฉ”์ด๋ธ)

    Maven(๋ฉ”์ด๋ธ) 1. ๋นŒ๋“œ(Build) ์†Œ์Šค ํŒŒ์ผ์„ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ€๊ณต๋ฌผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ • ๋˜๋Š” ๊ทธ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ด๋‹ค. ์ž‘์„ฑํ•œ ์†Œ์Šค(.java), ํ”„๋กœ์ ํŠธ์—์„œ ์“ฐ์ธ ํŒŒ์ผ ๋ฐ ์ž์›(.xml, .jpg, .jar, .properties)์„ JVM์ด๋‚˜ ํ†ฐ์บฃ ๊ฐ™์€ WAS๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ํŒจํ‚ค์ง• ํ•˜๋Š” ๊ณผ์ • ๋ฐ ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 1) ๋นŒ๋“œ ๋„๊ตฌ(Build Tool)๋ž€? ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ, ํ…Œ์ŠคํŠธ ๋นŒ๋“œ, ๋ฐฐํฌ ๋“ฑ์˜ ์ž‘์—…์„ ์œ„ํ•œ ์ „์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ณ„์†ํ•ด์„œ ๋Š˜์–ด๋‚˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ถ”๊ฐ€, ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ„์ „ ๋™๊ธฐํ™”์˜ ์–ด๋ ค์›€์„ ํ•ด์†Œํ•œ๋‹ค. ์ตœ๊ทผ ๋Œ€ํ‘œ์ ์ธ ๋นŒ๋“œ ๋„๊ตฌ๋กœ๋Š” Maven, Gradle์ด ์žˆ๋‹ค. ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ, ๋ฉ€ํ‹ฐ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ๋Š” Gradle์ด ๋งŽ์ด ์‚ฌ..

    JSP์™€ Servlet

    JSP์™€ Servlet

    JSP์™€ Servlet ๊ธฐ๋Šฅ์˜ ์ฐจ์ด๋Š” ์—†๊ณ  ์—ญํ• ์˜ ์ฐจ์ด๋งŒ ์žˆ๋‹ค. ํ•˜๋Š” ์ผ์€ ๋™์ผํ•˜๋‹ค. 1. Web Service์˜ ๊ธฐ๋ณธ์ ์ธ ๋™์ž‘ ๊ณผ์ • ์‚ฌ์šฉ์ž๊ฐ€ ์›น ํŽ˜์ด์ง€ form(HTML Form)์„ ํ†ตํ•ด ์ž์‹ ์˜ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. (Input) Servlet์˜ doGet() ๋˜๋Š” doPost() ๋ฉ”์„œ๋“œ๋Š” ์ž…๋ ฅํ•œ form data์— ๋งž๊ฒŒ DB ๋˜๋Š” ๋‹ค๋ฅธ ์†Œ์Šค์—์„œ ๊ด€๋ จ๋œ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•œ๋‹ค. ์ด ์ •๋ณด๋ฅผ ์ด์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋งž๋Š” ์ ์ ˆํ•œ ๋™์  ์ฝ˜ํ…์ธ (HTML Page)๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ œ๊ณตํ•œ๋‹ค. (Output) 2. Servlet ์›น ๊ธฐ๋ฐ˜์˜ ์š”์ฒญ์— ๋Œ€ํ•œ ๋™์ ์ธ ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•œ Server Side์—์„œ ๋Œ์•„๊ฐ€๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. Java ์ฝ”๋“œ ์•ˆ์— HTML ์ฝ”๋“œ๊ฐ€ ์‚ฝ์ž…๋œ ํ˜•ํƒœ๋กœ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค์ด๋‹ค. ์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ๋งŒ๋“  ํ‘œ์ค€์ด๋‹ค. d..

    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) ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ๋งจ ๋์— ์ถ”๊ฐ€ํ•ฉ..