์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- docker network
- docker
- GoogleLogin
- db์ํคํ ์ณ
- ์ฝํ
- CICD
- node.js mysql ์ฐ๋
- @scheduler
- ์๋ฐ
- Personal Access Token
- ํฐ์คํ ๋ฆฌ์ฑ๋ฆฐ์ง
- java์ฑํ
- oauth
- ์๊ณ ๋ฆฌ์ฆ
- injection๊ณต๊ฒฉ
- SpringBoot
- Java
- React
- ํฌ๋ก์ค์ฌ์ดํธ ์คํฌ๋ฆฝํธ
- spring
- dockerhub
- ๋์์ธํจํด
- ์ค๋ธ์
- ์ฝ๋ฉํ ์คํธ
- spring scheduler
- ๋ ผ๋ธ๋กํน
- Jenkins
- MySQL
- Node.js
- db์ ๋ต
- Today
- Total
๋ชฉ๋ก๐ป Java/ใ คJava(Basic) (5)
<Hello Hosung๐/>

๋์์ธ ํจํด์ด๋ ?๋์์ธ ํจํด์ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ์์ฃผ ๋ฐ์ํ๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ๋๋ค. ๋์์ธ ํจํด์ ํน์ ํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ด๋ฏธ ๊ฒ์ฆ๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ฉฐ, ์ด๋ฅผ ํตํด ์ฝ๋์ ํจ์จ์ฑ๊ณผ ์ ์ง ๋ณด์์ฑ์ ๋์ผ ์ ์์ต๋๋ค. ๋์์ธ ํจํด์ ๋ถ๋ฅ๋์์ธ ํจํด์ ์ผ๋ฐ์ ์ผ๋ก ์ธ ๊ฐ์ง ์ฃผ์ ๋ฒ์ฃผ๋ก ๋๋ ์ง๋๋ค: ์์ฑ ํจํด (Creational Patterns): ๊ฐ์ฒด ์์ฑ๊ณผ ๊ด๋ จ๋ ํจํด ๊ตฌ์กฐ์ ํจํด (Structural Patterns): ํด๋์ค์ ๊ฐ์ฒด์ ๊ด๊ณ๋ฅผ ์กฐ์งํ๋ ํจํด ํ๋ ํจํด (Behavioral Patterns): ๊ฐ์ฒด ๊ฐ์ ์ํธ์์ฉ๊ณผ ์ฑ ์์ ์ ์ํ๋ ํจํด ์์ฃผ ์ฌ์ฉ๋๋ ์๋ฐ ๋์์ธ ํจํด(1) ์ฑ๊ธํค ํจํด (Singleton Pattern) ๋ชฉ์ : ํด๋์ค์ ์ธ์คํด์ค๊ฐ ํ๋๋ง ์กด..

Java์์ **์ง๋ ฌํ(Serialization)**๋ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ๋ณํํ์ฌ ํ์ผ์ ์ ์ฅํ๊ฑฐ๋ ๋คํธ์ํฌ๋ฅผ ํตํด ์ ์กํ ์ ์๋๋ก ๋ง๋๋ ๊ณผ์ ์ ๋๋ค. ๋ฐ๋๋ก, ๋ฐ์ดํธ ์คํธ๋ฆผ์ ๋ค์ ๊ฐ์ฒด๋ก ๋ณํํ๋ ๊ณผ์ ์ **์ญ์ง๋ ฌํ(Deserialization)**๋ผ๊ณ ํฉ๋๋ค. ์ง๋ ฌํ๋ ์ฃผ๋ก ๋ฐ์ดํฐ๋ฅผ ์์ํํ๊ฑฐ๋ ์๊ฒฉ ํต์ ์์ ๊ฐ์ฒด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ๋ ์ง๋ ฌํ๊ฐ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๋ธ๋ก๊ทธ์์๋ Java์์ ์ง๋ ฌํ๊ฐ ๋ฌด์์ธ์ง, ์ด๋ป๊ฒ ์ฌ์ฉํ๋์ง, ๊ทธ๋ฆฌ๊ณ ์์ ์ฝ๋๋ก ์ฝ๊ฒ ์ค๋ช ํด ๋ณด๊ฒ ์ต๋๋ค. 1. ์ง๋ ฌํ์ ๊ธฐ๋ณธ ๊ฐ๋ ์ง๋ ฌํ๋ ๊ฐ์ฒด์ ์ํ๋ฅผ ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ๋ณํํ์ฌ ์ ์ฅํ๊ฑฐ๋ ์ ์กํ ์ ์๋๋ก ํด์ฃผ๋ ๊ณผ์ ์ ๋๋ค. ์ง๋ ฌํ๋ ๊ฐ..

์๋ฐ ์ธํฐํ์ด์ค๋ ํด๋์ค๊ฐ ๋ฐ๋์ ๊ตฌํํด์ผ ํ๋ ๋ฉ์๋๋ฅผ ์ ์ธํ๋ ์ถ์์ ์ธ ํ์ ์ ๋๋ค. ์ธํฐํ์ด์ค๋ ๋ฉ์๋์ ์ ์ธ๋ง ํฌํจํ๊ณ , ๋ฉ์๋ ๋ณธ์ฒด(๊ตฌํ)๋ ํฌํจํ์ง ์์ต๋๋ค. ํด๋์ค๋ฅผ ๋ง๋ค ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํ(implement)ํ๋ฉด, ์ธํฐํ์ด์ค์ ์ ์๋ ๋ชจ๋ ๋ฉ์๋๋ฅผ ๋ฐ๋์ ๊ตฌํํด์ผ ํฉ๋๋ค. ์ธํฐํ์ด์ค์ ์ฃผ๋ ๋ชฉ์ ์ ๋คํ์ฑ์ ์ ๊ณตํ๊ณ , ๋์จํ ๊ฒฐํฉ์ ์ ๋ํ๋ ๊ฒ์ ๋๋ค. ์ฆ, ์๋ก ๋ค๋ฅธ ํด๋์ค๋ค์ด ๋์ผํ ๋ฉ์๋๋ฅผ ํตํด ๋์ํ ์ ์๋๋ก ํ์ฌ ์ฝ๋์ ์ ์ฐ์ฑ๊ณผ ํ์ฅ์ฑ์ ๋์ด๋ ์ญํ ์ ํฉ๋๋ค. ์ธํฐํ์ด์ค์ ๊ธฐ๋ณธ ๋ฌธ๋ฒ ์ธํฐํ์ด์ค๋ interface ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Animal์ด๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ , sound()๋ผ๋ ๋ฉ์๋๋ฅผ ์ ์ธํ ์ ์์ต๋๋ค.interface Animal { void..

Java์์ ํ์ผ ์ ์ถ๋ ฅ์ ๋ฐ์ดํฐ๋ฅผ ์ธ๋ถ ํ์ผ์ ์ ์ฅํ๊ฑฐ๋ ์ฝ์ด๋ค์ด๊ธฐ ์ํด ํ์์ ์ธ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ ์์์ฑ์ ๊ตฌํํ ์ ์์ด ์ฌ๋ฌ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋๋ฆฌ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฒ ํฌ์คํธ์์๋ ํ์ผ ์ ์ถ๋ ฅ์ ๊ธฐ๋ณธ ๊ฐ๋ ๊ณผ ์์ฃผ ์ฐ์ด๋ ํด๋์ค๋ค, ๊ทธ๋ฆฌ๊ณ ์ฝ๋ ์์ ๋ฅผ ํตํด ํ์ผ ์ ์ถ๋ ฅ์ ๊ฐ๋จํ ์์๋ณด๊ฒ ์ต๋๋ค. 1. ํ์ผ ์ ์ถ๋ ฅ ๊ธฐ๋ณธ ๊ฐ๋ Java์ ์ ์ถ๋ ฅ์ ์คํธ๋ฆผ(Stream) ๊ฐ๋ ์ ํตํด ์ด๋ฃจ์ด์ง๋๋ค. ์คํธ๋ฆผ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ์ ์กํ๋ ํ๋ฆ์ผ๋ก, Java๋ ์ด๋ฅผ ํตํด ํ์ผ๋ก๋ถํฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ฐ๋ ์์ ์ ์ํํฉ๋๋ค. ์ ์ถ๋ ฅ์๋ ํฌ๊ฒ ๋ ๊ฐ์ง ์ ํ์ด ์์ต๋๋ค๋ฐ์ดํธ ์คํธ๋ฆผ: InputStream, OutputStream์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ(byte) ๋จ์๋ก ์ฝ๊ณ ์๋๋ค. ์ฃผ๋ก ์ด๋ฏธ์ง, ..

์์ผ(Socket)์ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ ์ ์๊ฒ ํด์ฃผ๋ ์๋ฐฉํฅ ํต์ ์ฑ๋์ ๋๋ค. ์๋ฐ์์๋ java.net ํจํค์ง๋ฅผ ํตํด ์์ผ ํ๋ก๊ทธ๋๋ฐ์ ์ง์ํฉ๋๋ค. ์ด ๊ธ์์๋ ์๋ฐ ์์ผ ํต์ ์ ์ด์ฉํ์ฌ ๊ฐ๋จํ ์ฑํ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๋ฐฉ๋ฒ์ ์์๋ณด๊ฒ ์ต๋๋ค.1. ์์ผ ํต์ ์ ๊ธฐ๋ณธ ์ดํด์์ผ ํต์ ์ ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์์ต๋๋ค:์๋ฒ(Server): ๋ฐ์ดํฐ๋ฅผ ์์ ํ๊ณ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ๊ด๋ฆฌํ๋ ์ญํ ํด๋ผ์ด์ธํธ(Client): ์๋ฒ์ ์ ์ํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ์ญํ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋๊ธฐํ๋ฉฐ ์ฐ๊ฒฐ์ ์๋ฝํ๊ณ , ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์ฐ๊ฒฐ ์์ฒญ์ ๋ณด๋ ๋๋ค. ๋ฐ์ดํฐ๋ InputStream๊ณผ OutputStream์ ํตํด ์ฃผ๊ณ ๋ฐ์ต๋๋ค.2. ์ฑํ ์๋ฒ ๊ตฌํ์ฑํ ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ฐ๊ฒฐ์ ๋ฐ๊ณ , ๋ฉ์์ง๋ฅผ ํด๋ผ์ด..