๐ Language/โ JAVA
![[Spring][ํผ๊ณต] 1. ์ค๋น](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9fMdr%2Fbtq8IeXD3H4%2FD2Kn7aKIMsAGLOQI4FTQ10%2Fimg.png)
[Spring][ํผ๊ณต] 1. ์ค๋น
์ค๋น ์๋ ์น์ด ์๋ ๋ค๋ฅธ ๋ถ์ผ(๊ฒ์)์์ ๊ฐ๋ฐ์ ํ๊ณ ์๋๋ฐ, ์ด๋ฒ์ ์น, ํนํ Back End ๊ณต๋ถ๋ฅผ ํ๋ฉฐ ์ด๋ป๊ฒ ํผ์ ๊ณต๋ถํ๊ณ ์๋์ง ๊ธฐ๋ก ๋ชฉ์ ์ผ๋ก ์ฐจ๋ก์ฐจ๋ก ์์ฑํ๋ ค ํ๋ค. ๋จผ์ , ์๋ฐ์์ ๊ฐ์ฅ ๋์ค์ ์ด๊ณ ๋ง์ด ์ฌ์ฉํ๋ค๋ Spring์ ๊ณต๋ถํ ๊ฒ์ด๋ค. ์ ํ๋ธ ๊ฐ์๋ ์ธํ๋ฐ ๊ฐ์๋ฅผ ํตํด ์ ์ฒด์ ์ธ ํต์ฌ ๊ฐ๋ ์ ๋๋ง ๊ณต๋ถ๋ฅผ ํ ๋ค ์ฑ ์ ํตํด ์ข ๋ ์ฌํ ๊ฐ๋ ์ ๊ณต๋ถํ ๊ฒ์ด๋ค. 1. ํ์ํ ์ฌ์ ์ง์ ์๋ฐ ํ๋ก๊ทธ๋๋ฐ: ์ฌ์ฉํ ๋ฒ์ ์ 11์ด๊ณ 'ํผ์ ๊ณต๋ถํ๋ ์๋ฐ'๋ผ๋ ์ฑ ์ ํตํด ๊ธฐ๋ณธ์ ์ธ ๊ฐ๋ ๋ง ๊ณต๋ถํ๋ค. ์์ง ์๋ฐ๋ฅผ ํตํด ํ๋ก์ ํธ๋ฅผ ์งํํ ๊ฒฝํ๋ ์๊ณ ๋ง์ด ์จ๋ณด์ง๋ ์์์ ๋ถ์กฑํ ์ ์ด ๋ง์ง๋ง, ์ฐจ๊ทผ์ฐจ๊ทผ ๊ณต๋ถํ๊ธฐ์ ์๊ฐ๋ ๋ถ์กฑํ๊ณ ๋นจ๋ฆฌ ์ค์ ํ๋ก์ ํธ๋ฅผ ํ๊ณ ์ถ๊ธฐ์ Spring์ ์จ๋ณด๋ฉฐ ํจ๊ป ๊ฒฝํ์ ์์ ์๊ฐ..
![Maven(๋ฉ์ด๋ธ)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcJrBrB%2Fbtq5wwfiVoW%2Fvk1kNbbyvL5JNfSIQKGkO0%2Fimg.png)
Maven(๋ฉ์ด๋ธ)
Maven(๋ฉ์ด๋ธ) 1. ๋น๋(Build) ์์ค ํ์ผ์ ์ปดํจํฐ์์ ์คํํ ์ ์๋ ๋ ๋ฆฝ ์ํํธ์จ์ด ๊ฐ๊ณต๋ฌผ๋ก ๋ณํํ๋ ๊ณผ์ ๋๋ ๊ทธ์ ๋ํ ๊ฒฐ๊ณผ๋ฌผ์ด๋ค. ์์ฑํ ์์ค(.java), ํ๋ก์ ํธ์์ ์ฐ์ธ ํ์ผ ๋ฐ ์์(.xml, .jpg, .jar, .properties)์ JVM์ด๋ ํฐ์บฃ ๊ฐ์ WAS๊ฐ ์ธ์ํ ์ ์๋ ๊ตฌ์กฐ๋ก ํจํค์ง ํ๋ ๊ณผ์ ๋ฐ ๊ฒฐ๊ณผ๋ฌผ์ด๋ผ๊ณ ํ ์ ์๋ค. 1) ๋น๋ ๋๊ตฌ(Build Tool)๋? ํ๋ก์ ํธ ์์ฑ, ํ ์คํธ ๋น๋, ๋ฐฐํฌ ๋ฑ์ ์์ ์ ์ํ ์ ์ฉ ํ๋ก๊ทธ๋จ์ด๋ค. ๊ณ์ํด์ ๋์ด๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ถ๊ฐ, ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฒ์ ๋๊ธฐํ์ ์ด๋ ค์์ ํด์ํ๋ค. ์ต๊ทผ ๋ํ์ ์ธ ๋น๋ ๋๊ตฌ๋ก๋ Maven, Gradle์ด ์๋ค. ๋ณต์กํ ํ๋ก์ ํธ, ๋ฉํฐ ํ๋ก์ ํธ์ ๊ฒฝ์ฐ๋ Gradle์ด ๋ง์ด ์ฌ..
![JSP์ Servlet](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdgdUBP%2Fbtq42AQveW6%2FnTse3MsOjmJcOTphKhgP6K%2Fimg.png)
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](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdknsKM%2Fbtq4qzyDkXQ%2FyCfXa8vgcPuPR5tjEqITy1%2Fimg.png)
Spring๊ณผ SpringBoot
์คํ๋ง๊ณผ ์คํ๋ง ๋ถํธ๋ versus๊ฐ ์๋๋ผ with์ด๋ค. 1. Spring ์คํ๋ง ํ๋ ์์ํฌ๋ ์๋ฐ์์ ๊ฐ์ฅ ๋์ค์ ์ธ ์์ฉํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ํ๋ ์์ํฌ์ด๋ค. 1) ํน์ง ๊ฐ์ฅ ์ค์ํ ํน์ง์ ์์กด์ฑ ์ฃผ์ (Dependency Injection)๊ณผ ์ ์ด์ ์ญ์ (Inversion Of Control)์ด๋ค. ์ด๋ฌํ ๊ฐ๋ฐ ๋ฐฉ์์ ์ฌ์ฉํ๋ค๋ฉด ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ ์ ์๊ณ ๋จ์ ํ ์คํธ๋ฅผ ์ฉ์ดํ๊ฒ ํ์ฌ ํ๋ฆฌํฐ ๋์ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํ ์ ์๋ค. // 1. DI ์๋ ์์ : ๊ฐ์ฒด ๊ฐ์ ๊ฒฐํฉ๋๊ฐ ๋๋ค. // MyController๋ MyService ํด๋์ค์ ์์กดํ๋ค. // ๊ทธ๋์ ์ธ์คํด์ค๋ฅผ ์ป๊ธฐ ์ํด์ new MyService();๋ก ๊ฐ์ฒด์ ์ธ์คํด์ค๋ฅผ ์ป์ด์ผ ํ๋ค. // ๊ทธ๋ฐ๋ฐ MyController์ ๋ํ ๋จ์ ํ ์คํธ๋ฅผ ์ํด Mock..
![[JAVA] ์
์ถ๋ ฅ ์คํธ๋ฆผ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F97On4%2Fbtq3KeuUVjA%2F6RGOBVLbw1O6KYLolQ7UbK%2Fimg.png)
[JAVA] ์ ์ถ๋ ฅ ์คํธ๋ฆผ
์ ์ถ๋ ฅ ์คํธ๋ฆผ 1. ์ ์ถ๋ ฅ ์คํธ๋ฆผ ์๋ฐ์์ ๋ฐ์ดํฐ๋ ์คํธ๋ฆผ์ ํตํด ์ ์ถ๋ ฅ๋๋ค. ์คํธ๋ฆผ์ ๋จ์ผ ๋ฐฉํฅ์ผ๋ก ์ฐ์์ ์ผ๋ก ํ๋ฌ๊ฐ๋ ๊ฒ์ ๋งํ๋๋ฐ ๋ฌผ์ด ๋์ ๊ณณ์์ ๋ฎ์ ๊ณณ์ผ๋ก ํ๋ฅด๋ฏ์ด ๋ฐ์ดํฐ๋ ์ถ๋ฐ์ง์์ ๋์ฐฉ์ง๋ก ํ๋ฌ๊ฐ๋ค. ์ด๋, ํ๋ก๊ทธ๋จ์ด ์ถ๋ฐ์ง๋ ๋์ฐฉ์ง๋์ ๋ฐ๋ผ์ ์ฌ์ฉํ๋ ์คํธ๋ฆผ์ ์ข ๋ฅ๊ฐ ๊ฒฐ์ ๋๋ค. ํ๋ก๊ทธ๋จ์ด ๋์ฐฉ์ง์ด๋ฉด ํ๋ฌ์จ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ๋ฐ์์ผ ํ๋ฏ๋ก ์ ๋ ฅ ์คํธ๋ฆผ์ ์ฌ์ฉํ๊ณ ๋ฐ๋๋ก ํ๋ก๊ทธ๋จ์ด ์ถ๋ฐ์ง๋ฉด ์ถ๋ ฅํด์ผ ํ๋ฏ๋ก ์ถ๋ ฅ ์คํธ๋ฆผ์ ์ฌ์ฉํ๋ค. 2. ์ ์ถ๋ ฅ ์คํธ๋ฆผ์ ์ข ๋ฅ java.io ํจํค์ง์๋ ์ฌ๋ฌ ๊ฐ์ง ์ข ๋ฅ์ ์คํธ๋ฆผ ํด๋์ค๋ฅผ ์ ๊ณตํ๊ณ ์๋ค. 1) ๋ฐ์ดํธ(Byte) ๊ธฐ๋ฐ ์คํธ๋ฆผ ๊ทธ๋ฆผ, ๋ฉํฐ๋ฏธ๋์ด ๋ฑ์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ถ๋ ฅํ ๋ ์ฌ์ฉํ๋ค. InputStream: ์ ๋ ฅ ์คํธ๋ฆผ ์ต์์ ํด๋์ค OutputSt..
![[JAVA] ์ปฌ๋ ์
ํ๋ ์์ํฌ](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc6yNCS%2Fbtq3bu64bdE%2FFErJFe7pJxgA0Id7Bo95Kk%2Fimg.png)
[JAVA] ์ปฌ๋ ์ ํ๋ ์์ํฌ
์ปฌ๋ ์ ํ๋ ์์ํฌ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ฒด๋ค์ ํจ์จ์ ์ผ๋ก ์ถ๊ฐ, ์ญ์ , ๊ฒ์ํ ์ ์๋๋ก ์ธํฐํ์ด์ค์ ๊ตฌํ ํด๋์ค๋ฅผ java.util ํจํค์ง์์ ์ ๊ณตํ๋๋ฐ, ์ด๋ค์ ์ด์นญํด์ ์ปฌ๋ ์ ํ๋ ์์ํฌ๋ผ ๋ถ๋ฅธ๋ค. ์ปฌ๋ ์ ์ ๊ฐ์ฒด์ ์ ์ฅ์ ๋ปํ๊ณ ํ๋ ์์ํฌ๋ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ ํด๋์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋งํ๋๋ฐ ์ปฌ๋ ์ ํ๋ ์์ํฌ๋ ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ ์ํ ์ธํฐํ์ด์ค์ ์ค์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ๋ค์ํ ์ปฌ๋ ์ (๊ตฌํ) ํด๋์ค๋ฅผ ์ ๊ณตํ๋ค. 1. List ์ปฌ๋ ์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ๋ ์๋ ์ธ๋ฑ์ค๊ฐ ๋ถ์ฌ๋๋ฉฐ ์ด ์ธ๋ฑ์ค๋ก ๊ด๋ฆฌ๋๋ค. ๊ฐ์ฒด ์์ฒด๋ฅผ ์ ์ฅํ๋ ๊ฒ์ด ์๋ ๊ฐ์ฒด์ ๋ฒ์ง๋ฅผ ์ฐธ์กฐํ๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ null๊ณผ ์ค๋ณต ์ ์ฅ๋ ์ ์๋ค. ๋ฐฐ์ด๊ณผ ๋ค๋ฅด๊ฒ ์ ์ฅ ์ฉ๋์ด ์๋์ผ๋ก ์ฆ๊ฐํ๋ค. ๋ฉ์๋ ์ค๋ช boolean add(E e) ์ฃผ์ด์ง ๊ฐ์ฒด๋ฅผ ๋งจ ๋์ ์ถ๊ฐํฉ..