Maven(๋ฉ”์ด๋ธ)
ยท
๐Ÿ“ Language/โœ JAVA
Maven(๋ฉ”์ด๋ธ) 1. ๋นŒ๋“œ(Build) ์†Œ์Šค ํŒŒ์ผ์„ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋…๋ฆฝ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ€๊ณต๋ฌผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ • ๋˜๋Š” ๊ทธ์— ๋Œ€ํ•œ ๊ฒฐ๊ณผ๋ฌผ์ด๋‹ค. ์ž‘์„ฑํ•œ ์†Œ์Šค(.java), ํ”„๋กœ์ ํŠธ์—์„œ ์“ฐ์ธ ํŒŒ์ผ ๋ฐ ์ž์›(.xml, .jpg, .jar, .properties)์„ JVM์ด๋‚˜ ํ†ฐ์บฃ ๊ฐ™์€ WAS๊ฐ€ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ๊ตฌ์กฐ๋กœ ํŒจํ‚ค์ง• ํ•˜๋Š” ๊ณผ์ • ๋ฐ ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. 1) ๋นŒ๋“œ ๋„๊ตฌ(Build Tool)๋ž€? ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ, ํ…Œ์ŠคํŠธ ๋นŒ๋“œ, ๋ฐฐํฌ ๋“ฑ์˜ ์ž‘์—…์„ ์œ„ํ•œ ์ „์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ณ„์†ํ•ด์„œ ๋Š˜์–ด๋‚˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ถ”๊ฐ€, ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉฐ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋ฒ„์ „ ๋™๊ธฐํ™”์˜ ์–ด๋ ค์›€์„ ํ•ด์†Œํ•œ๋‹ค. ์ตœ๊ทผ ๋Œ€ํ‘œ์ ์ธ ๋นŒ๋“œ ๋„๊ตฌ๋กœ๋Š” Maven, Gradle์ด ์žˆ๋‹ค. ๋ณต์žกํ•œ ํ”„๋กœ์ ํŠธ, ๋ฉ€ํ‹ฐ ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ๋Š” Gradle์ด ๋งŽ์ด ์‚ฌ..
JSP์™€ Servlet
ยท
๐Ÿ“ Language/โœ JAVA
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
ยท
๐Ÿ“ Language/โœ JAVA
์Šคํ”„๋ง๊ณผ ์Šคํ”„๋ง ๋ถ€ํŠธ๋Š” versus๊ฐ€ ์•„๋‹ˆ๋ผ with์ด๋‹ค. 1. Spring ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ž๋ฐ”์—์„œ ๊ฐ€์žฅ ๋Œ€์ค‘์ ์ธ ์‘์šฉํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค. 1) ํŠน์ง• ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŠน์ง•์€ ์˜์กด์„ฑ ์ฃผ์ž…(Dependency Injection)๊ณผ ์ œ์–ด์˜ ์—ญ์ „(Inversion Of Control)์ด๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถœ ์ˆ˜ ์žˆ๊ณ  ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜์—ฌ ํ€„๋ฆฌํ‹ฐ ๋†’์€ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. // 1. DI ์—†๋Š” ์˜ˆ์ œ: ๊ฐ์ฒด ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋†’๋‹ค. // MyController๋Š” MyService ํด๋ž˜์Šค์— ์˜์กดํ•œ๋‹ค. // ๊ทธ๋ž˜์„œ ์ธ์Šคํ„ด์Šค๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„  new MyService();๋กœ ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์–ป์–ด์•ผ ํ•œ๋‹ค. // ๊ทธ๋Ÿฐ๋ฐ MyController์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด Mock..
[JAVA] ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ
ยท
๐Ÿ“ Language/โœ JAVA
์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ 1. ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋Š” ์ŠคํŠธ๋ฆผ์„ ํ†ตํ•ด ์ž…์ถœ๋ ฅ๋œ๋‹ค. ์ŠคํŠธ๋ฆผ์€ ๋‹จ์ผ ๋ฐฉํ–ฅ์œผ๋กœ ์—ฐ์†์ ์œผ๋กœ ํ˜๋Ÿฌ๊ฐ€๋Š” ๊ฒƒ์„ ๋งํ•˜๋Š”๋ฐ ๋ฌผ์ด ๋†’์€ ๊ณณ์—์„œ ๋‚ฎ์€ ๊ณณ์œผ๋กœ ํ๋ฅด๋“ฏ์ด ๋ฐ์ดํ„ฐ๋Š” ์ถœ๋ฐœ์ง€์—์„œ ๋„์ฐฉ์ง€๋กœ ํ˜๋Ÿฌ๊ฐ„๋‹ค. ์ด๋•Œ, ํ”„๋กœ๊ทธ๋žจ์ด ์ถœ๋ฐœ์ง€๋ƒ ๋„์ฐฉ์ง€๋ƒ์— ๋”ฐ๋ผ์„œ ์‚ฌ์šฉํ•˜๋Š” ์ŠคํŠธ๋ฆผ์˜ ์ข…๋ฅ˜๊ฐ€ ๊ฒฐ์ •๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ๋„์ฐฉ์ง€์ด๋ฉด ํ˜๋Ÿฌ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์•ผ ํ•˜๋ฏ€๋กœ ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋ฐ˜๋Œ€๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ์ถœ๋ฐœ์ง€๋ฉด ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์„ ์‚ฌ์šฉํ•œ๋‹ค. 2. ์ž…์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ์˜ ์ข…๋ฅ˜ java.io ํŒจํ‚ค์ง€์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋‹ค. 1) ๋ฐ”์ดํŠธ(Byte) ๊ธฐ๋ฐ˜ ์ŠคํŠธ๋ฆผ ๊ทธ๋ฆผ, ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋“ฑ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ณ  ์ถœ๋ ฅํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. InputStream: ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ ์ตœ์ƒ์œ„ ํด๋ž˜์Šค OutputSt..
[JAVA] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ
ยท
๐Ÿ“ Language/โœ JAVA
์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ์ฒด๋“ค์„ ํšจ์œจ์ ์œผ๋กœ ์ถ”๊ฐ€, ์‚ญ์ œ, ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ตฌํ˜„ ํด๋ž˜์Šค๋ฅผ java.util ํŒจํ‚ค์ง€์—์„œ ์ œ๊ณตํ•˜๋Š”๋ฐ, ์ด๋“ค์„ ์ด์นญํ•ด์„œ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋ผ ๋ถ€๋ฅธ๋‹ค. ์ปฌ๋ ‰์…˜์€ ๊ฐ์ฒด์˜ ์ €์žฅ์„ ๋œปํ•˜๊ณ  ํ”„๋ ˆ์ž„์›Œํฌ๋ž€ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ •ํ•ด๋†“์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งํ•˜๋Š”๋ฐ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•œ ์ธํ„ฐํŽ˜์ด์Šค์™€ ์‹ค์ œ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๋‹ค์–‘ํ•œ ์ปฌ๋ ‰์…˜(๊ตฌํ˜„) ํด๋ž˜์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. 1. List ์ปฌ๋ ‰์…˜ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ๋•Œ ์ž๋™ ์ธ๋ฑ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜๋ฉฐ ์ด ์ธ๋ฑ์Šค๋กœ ๊ด€๋ฆฌ๋œ๋‹ค. ๊ฐ์ฒด ์ž์ฒด๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ์ฒด์˜ ๋ฒˆ์ง€๋ฅผ ์ฐธ์กฐํ•œ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— null๊ณผ ์ค‘๋ณต ์ €์žฅ๋  ์ˆ˜ ์žˆ๋‹ค. ๋ฐฐ์—ด๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ €์žฅ ์šฉ๋Ÿ‰์ด ์ž๋™์œผ๋กœ ์ฆ๊ฐ€ํ•œ๋‹ค. ๋ฉ”์„œ๋“œ ์„ค๋ช… boolean add(E e) ์ฃผ์–ด์ง„ ๊ฐ์ฒด๋ฅผ ๋งจ ๋์— ์ถ”๊ฐ€ํ•ฉ..
[JAVA] ์Šค๋ ˆ๋“œ
ยท
๐Ÿ“ Language/โœ JAVA
์Šค๋ ˆ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ฉด ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›๋Š”๋ฐ, ์‹คํ–‰ ์ค‘์ธ ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ”„๋กœ์„ธ์Šค๋ผ ํ•˜๊ณ  ํ”„๋กœ์„ธ์Šค ๋‚ด๋ถ€์—์„œ ์ฝ”๋“œ์˜ ์‹คํ–‰ ํ๋ฆ„์„ ์Šค๋ ˆ๋“œ๋ผ ํ•œ๋‹ค. 1. ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ์šด์˜์ฒด์ œ๋Š” ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก CPU ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ž์›์„ ํ”„๋กœ์„ธ์Šค๋งˆ๋‹ค ์ ์ ˆํžˆ ํ• ๋‹นํ•ด์ฃผ๊ณ  ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰์‹œํ‚จ๋‹ค. ์ด๋•Œ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์ด ๊ผญ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋œปํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋™์‹œ์— ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ํ•˜๋‚˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ๋ฉ€ํ‹ฐ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“ค๊ธฐ๋„ ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์–ด๋–ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ 2๊ฐœ ์‹คํ–‰ํ–ˆ๋‹ค๋ฉด 2๊ฐœ์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ƒ์„ฑ๋œ ๊ฒƒ์ด๋‹ค. ํ•œ ํ”„๋กœ์„ธ์Šค ๋‚ด์—์„œ ๋ฉ€ํ‹ฐ ํƒœ์Šคํ‚น์„ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด์ง„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๋„ ์žˆ๋‹ค. ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ฏธ๋””์–ด ํ”Œ๋ ˆ์ด์–ด๋Š” ๋™์˜์ƒ ์žฌ์ƒ๊ณผ ..