์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ฐ์ดํฐํ์
- ๋ฐฑ์ค9012
- stream
- ์คํธ๋ฆผ
- java
- ๋ฐฑ์ค11053 #ํ์ด์ฌ #python
- ์ฟ ํกDB
- ์คํ์์ด
- ์
- ๋ฌธ์์ด
- ์ฐ์ฐ์
- ์คํ
- StringBuilder
- ํ๋ฐฉ์ฟผ๋ฆฌ
- ๋ฐฐ์ด
- ์๋ฐ
- ์ฟ ํกERD
- ๋ฐฑ์ค9093
- ๋
- ์ฐ
- StringBuffer
- ๋ฐฑ์ค1874
- Today
- Total
๋ชฉ๋ก๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ (142)
Tech Log ๐ ๏ธ
๋๋ฉ์ธ ์๋น์ค ์ฌ๋ฌ ์ ๊ทธ๋ฆฌ๊ฑฐํธ๊ฐ ํ์ํ๊ณ ์ฑ ์์ด ์ ๋งคํ ๋ ๋๋ฉ์ธ ์๋น์ค๋ฅผ ์ด์ฉํ ์ ์๋ค. ๋๋ฉ์ธ ์๋น๋ ๋ค์ ์ํฉ์ ์ด์ฉ๋๋ค. 1. ๊ณ์ฐ๋ก์ง 2. ์ธ๋ถ ์์คํ ์ฐ๋์ด ํ์ํ ๋ก์ง ๋๋ฉ์ธ ์๋น์ค๋ ์ํ ์์ด ๋ก์ง๋ง ๊ตฌํํ๋ค. ๋๋ฉ์ธ ์๋น์ค๋ฅผ ์ ๊ทธ๋ฆฌ๊ฑฐํธ ๊ฐ์ฒด์ ์ฃผ์ ํ๋ฉด ์๋๋ค! ์ธ๋ถ ์์คํ ์ฐ๋๊ณผ ๋๋ฉ์ธ ์๋น์ค public interface API { ... } ๋๋ฉ์ธ ๋ก์ง ๊ด์ ์์ ์ธํฐํ์ด์ค๋ฅผ ์์ฑํด์ผํ๋ค. ์์ฉ ์๋น์ค๋ ์ด ๋๋ฉ์ธ ์๋น์ค๋ฅผ ์ด์ฉํด์ ๊ธฐ๋ฅ์ ์ํํ๋ค. ๋๋ฉ์ธ ์๋น์ค์ ๋ก์ง์ด ๊ณ ์ ๋์ด ์์ง ์์ผ๋ฉด , ๋๋ฉ์ธ ์๋น์ค ์์ฒด๋ฅผ ์ธํฐํ์ด์ค๋ก ๊ตฌํํ ์ ์๋ค. ๋๋ฉ์ธ ์๋น์ค์ ๊ตฌํ์ด ํน์ ๊ธฐ์ ์ ์์กดํ๊ฑฐ๋ ์ธ๋ถ API๋ฅผ ์ฌ์ฉํ๋ค๋ฉด ์ถ์ํํด์ผํ๋ค.
ํํ ์์ญ๊ณผ ์์ฉ ์์ญ ์์ฉ ์์ญ๊ณผ ํํ ์์ญ์ ์ฌ์ฉ์์ ๋๋ฉ์ธ์ ์ฐ๊ฒฐํด์ฃผ๋ ๋งค๊ฐ์ฒด ์ญํ ์ด๋ค. ํํ ์์ญ์ ์ฌ์ฉ์์ ์์ฒญ์ ํด์ํ๊ณ ๊ทธ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ์์ฉ ์๋น์ค๋ฅผ ์คํํ๋ค. ์์ฉ ์์ญ์ ์ค์ ์ฌ์ฉ์๊ฐ ์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ ์์ญ์ ์๋ก ์๊ตฌํ๋ ํ๋ผ๋ฏธํฐ์ ํ์์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ์์ฒญ์ ๋ณํํด์ผํ๋ค. ์ฌ์ฉ์๊ฐ ์ํธ์์ฉ์ ํํ ์์ญ์ด ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ์์ฉ ์๋น์ค๋ ํํ ์์ญ์ ์์กดํ์ง ์์์ผํ๋ค. ์์ฉ ์๋น์ค์ ์ญํ ์ฌ์ฉ์์ ์์ฒญ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ฆฌํฌ์งํฐ๋ฆฌ์์ ๋๋ฉ์ธ ๊ฐ์ฒด๋ฅผ ๊ฐ์ ธ์ ์ฌ์ฉํ๋ค. public Result func(Req req){ // ๋ฆฌํฌ์งํฐ๋ฆฌ์์ ์ ๊ทธ๋ฆฌ๊ฑฐํธ๋ฅผ ๊ตฌํจ Agg agg = AggRepository.finById(req.getId()); // ์ ๊ทธ๊ฑฐํธ์ ๋๋ฉ์ธ ๊ธฐ๋ฅ ์คํ ad..
์ ๊ทธ๋ฆฌ๊ฑฐํธ ๊ฐ์ฒด ๋ชจ๋ธ์ด ๋ณต์กํด์ง๋ฉด ๊ฐ๋ณ ๊ตฌ์ฑ์์ ์์ฃผ๋ก ๋ชจ๋ธ์ ์ดํดํ๊ฒ ๋๊ณ ์ ๋ฐ์ ์ธ ๊ตฌ์กฐ๋ ํฐ ์์ค์์ ๋๋ฉ์ธ ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ ํ๊ธฐ ์ด๋ ค์์ง๋ค. -> ์์ ์์ค์์ ๋ชจ๋ธ์ ์กฐ๋งํด์ผํ๋๋ฐ , ์ ๊ทธ๋ฆฌ๊ฑฐํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค. ์ ๊ทธ๋ฆฌ๋ฆฌ๊ฑฐํธ๋ ๋ณต์กํ ๋๋ฉ์ธ์ ๋จ์ํ ๊ตฌ์กฐ๋ก ๋ง๋ค์ด์ค๋ค. ์ ๊ทธ๋ฆฌ๊ฑฐํธ์ ์ํ ๊ฐ์ฒด๋ ์ ์ฌํ๊ฑฐ๋ ๋์ผํ ๋ผ์ดํ ์ฌ์ดํด์ ๊ฐ์ง๋ฉฐ ๋ค๋ฅธ ์ ๊ทธ๋ฆฌ์ปคํธ์ ์ํ ๊ฐ์ฒด๋ ๋ค๋ฅธ ์ ๊ทธ๋ฆฌ์ปคํธ์ ์ํ์ง ์๋๋ค. ์ ๊ทธ๋ฆฌ๊ฑฐํธ ๋ฃจํธ ์ ๊ทธ๋ฆฌ๊ฑฐํธ ์ ์ฒด๋ฅผ ๊ด๋ฆฌํ ์ฃผ์ฒด๊ฐ ํ์ํ๋ฐ, ์ด ์ฑ ์์ ์ง๋ ๊ฒ์ด ๋ฃจํธ ์ํฐํฐ์ด๋ค. ex) Order -> (OrderLine) , (Orderer) , (Address) ํต์ฌ ์ญํ ์ ์ ๊ทธ๋ฆฌ๊ฑฐํธ์ ์ผ๊ด์ฑ์ด ๊นจ์ง์ง ์๋๋ก ํ๋ ๊ฒ์ด๋ค. ๋ฃจํธ๋ ์ ๊ทธ๋ฆฌ๊ฑฐํธ๊ฐ ์ ๊ณตํด์ผํ ๋๋ฉ์ธ์ ๊ตฌํํ๋ค. ์ ๊ทธ..
๋ค ๊ฐ์ ์์ญ ํํ ์์ญ HTTP ์์ฒญ์ ํ์๋ก ํ๋ ํ์์ผ๋ก ๋ณํํด์ ์์ฉ ์์ญ์ ์ ๋ฌํ๊ณ ๋ค์ ์๋ต์ HTTP ์๋ต์ผ๋ก ๋ณํํ์ฌ ์ ์ก ex) mvc ํ๋ ์์ํฌ ์์ฉ ์์ญ(์๋น์ค ๊ณ์ธต) ๋๋ฉ์ธ ์์ญ์ ๋ชจ๋ธ์ ์ฌ์ฉํด์ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ค. ๋ก์ง์ ์ง์ ์ํํ๊ธฐ ๋ณด๋จ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๋ก์ง ์ํ์ ์ํ ๋๋ฉ์ธ ์์ญ ๋๋ฉ์ธ ๋ชจ๋ธ์ ๊ตฌํํ๊ณ ํต์ฌ ๋ก์ง์ ๊ตฌํ public cancelOrder(String orderId) { Order order = findOrderById(orderId); // ๋๋ฉ์ธ ๋ชจ๋ธ์ ์์ ... } ์ธํ๋ผ ์คํธ๋ญ์ณ ์์ญ ๋ ผ๋ฆฌ์ ๊ฐ๋ ๋ณด๋ค๋ ๊ตฌํ ๊ธฐ์ ์ ๋ค๋ฃฌ๋ค. ex) DB ,SMTP , ์นดํ์นด ๊ณ์ธต ๊ตฌ์กฐ ์ํคํ ์ฒ ์ํคํ ์ฒ๋ ๋ณดํต ํํ -> ์์ฉ -> ๋๋ฉ์ธ -> ์ธํ๋ผ์ค..
์๊ตฌ ์ฌํญ ์๊ตฌ์ฌํญ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ์ง ๋ชปํ๋ฉด ์๋ฑํ ๊ธฐ๋ฅ์ ๋ง๋ค๊ฒ ๋๋ค. (Garbage in , Garbage out) -> ์ฝ๋ฉ์ ์์ ์๊ตฌ์ฌํญ์ ์ฌ๋ฐ๋ฅด๊ฒ ์ดํดํ๋ ๊ฒ์ด ์ค์ํ๋ค ! ๋๋ฉ์ธ ๋ชจ๋ธ ํน์ ๋๋ฉ์ธ์ ๊ฐ๋ ์ ์ผ๋ก ํํํ ๊ฒ์ ๋๋ฉ์ธ ๋ชจ๋ธ์ด๋ผ๊ณ ํ๋ค. ๋๋ฉ์ธ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ๊ด๊ณ์๋ค์ด ๋์ผํ ๋ชจ์ต์ผ๋ก ์ดํดํ ์ ์์ผ๋ฉฐ, ์ฌ๋ฌ๊ฐ์ง ์ข ๋ฅ๋ก ๋ชจ๋ธ๋ง ํ ์ ์๋ค. ex) ๊ฐ์ฒด , ์ํ ๋ค์ด์ด๊ทธ๋จ, ๊ทธ๋ํ ๋๋ฉ์ธ ๋ชจ๋ธ ํจํด ๋๋ฉ์ธ ๊ณ์ธต์ ๋๋ฉ์ธ์ ํต์ฌ ๊ท์น์ ๊ตฌํํ๋ค. ์๋์ ์ฝ๋๋ ์ฃผ๋ฌธ ์ํ์ ๋ฐ๋ผ ๋ฐฐ์ก์ง๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ ๊ฐ์ ๋ํ ์ฝ๋๋ฅผ ๋๋ฉ์ธ ๋ชจ๋ธ ํจํด์ผ๋ก ๊ตฌํ public class Order { private OrderState state; private ShippingInfo inf..
๊ฐ์ swagger ์ ์ฉ ํ ์ผ๋ถ API์ ๋ํด์ ๋ชจ๋ ๋๊ฐ์ Request Body๊ฐ ๋ณด์ด๋ ํ์์ด ๋ฐ์ํ์๋ค. ์์ธ ์ฐ๋ฆฌ๋ sealed interface ๋ด๋ถ์ ์ค์ฒฉ ํด๋์ค๋ก dto๋ฅผ request ๋ผ๋ ์ด๋ฆ์ผ๋ก ๋ง๋ค์ด์ฃผ์๋๋ฐ, swagger์์ ๋๊ฐ์ ์ด๋ฆ์ record๋ค์ ๊ตฌ๋ถํ์ง ๋ชปํ๊ฒ ์์ธ์ด์๋ค. ํด๊ฒฐ ํด๋น ๋ธ๋ก๊ทธ์์ application.yml์ ์ค์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค๋ ๊ฒ์ ์๊ฒ๋์๋ค. swagger ์ฌ์ฉ์ ํจํค์ง๊ฐ ๋ค๋ฅธ ๋์ผ ํด๋์ค๋ฅผ ๊ตฌ๋ณํ์ง ๋ชปํ๋ ์ด์ swagger ์ฌ์ฉ์ ํจํค์ง๊ฐ ๋ค๋ฅธ ๋์ผ ํด๋์ค๋ฅผ ๊ตฌ๋ณํ์ง ๋ชปํ๋ ์ด์ ์ฌ๋ฌ๋ช ์ ๊ฐ๋ฐ์๊ฐ ํ์ด๋ก ๊ฐ๋ฐ์ ํ๋ค๋ณด๋ฉด ํด๋์ค๋ช ์ ๋์ผํ์ง๋ง ํจํค์ง๋ฅผ ๋ค๋ฅด๊ฒ ํด์ ์์ฑํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ค๋ณต ํด๋์ค๊ฐ ์๋๋ผ ์์ฐํ ๋ค๋ฅธ ํด๋์ค์ธ๋ฐ ๋ช ์นญ์ด ..
๋ฌธ์ ์ํฉ JWT ํ ํฐ ๊ฒ์ฆ ์ค๋ฅ ์ ํํฐ์์ ๋ฐ์ํ ์์ธ๊ฐ ์์ธ ํธ๋ค๋ฌ์ ์กํ์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ ์์ธ ์ ์ญ ๋ฒ์์ ์์ธ ํธ๋ค๋ฌ๋ @RestControllerAdvice ์ด๋ ธํ ์ด์ ๋ฅผ ๋ถ์ฌ์ ๋ง๋ค์ด์ฃผ์๋ค. ํ์ง๋ง ํด๋น ์ด๋ ธํ ์ด์ ์ ์ปจํธ๋กค๋ฌ์์ ๋ฐ์ํ ์์ธ๋ง ์ฒ๋ฆฌํ ๋ฟ ํํฐ ๋จ์ ์์ธ๋ ์ฒ๋ฆฌํ์ง ์๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ํํฐ์์ ๋ฐ์ํ ์์ธ๋ฅผ ์ฒ๋ฆฌํด์ค ํํฐ๊ฐ ํ์ํ๋ค ! ๋ฐ๋ผ์ ๋ง์ผ JWT ๊ฒ์ฆ์ด ์คํจํ์ ์์ ์๋ฌ ์ฝ๋์ ๋ฉ์์ง๋ฅผ Response๋ก ์๋ตํด์ค ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ฑํ์๋ค. ๊ทธ ๊ฒฐ๊ณผ JWT ํํฐ์์์ ์์ธ์ฒ๋ฆฌ๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ง๊ณ ์๋ ๊ฒ์ ํ์ธํ์๋ค.
์ปฌ๋ ์ ์ปฌ๋ ์ ์ธํฐํ์ด์ค๋ ์ฌ๋ฌ ๊ฐ์ฒด์ ๋ฌถ์์ ๋ํด ์ ๊ฐ๊ฐ ๋ค๋ฅธ ์๋ฏธ๋ฅผ ์ ๋ฌํ๋ค. ์ฃผ๋ก ์ฑ๋ฅ์ ๊ด๋ จ๋ ํ๋ก๊ทธ๋๋จธ์ ์๋๋ฅผ ์ ๋ฌํ๋ค. ์ปฌ๋ ์ ์ด ํํํ๋ 3๊ฐ์ง ๊ฐ๋ 1. ํฌ๊ธฐ - ๋ฐฐ์ด์ ํฌ๊ธฐ๋ ์์ฑ ์ ๊ณ ์ ๋์ง๋ง, ๋๋ถ๋ถ์ ์ปฌ๋ ์ ์ ์ค๊ฐ์ ํฌ๊ธฐ๋ฅผ ์์ ํ ์ ์๋ค. 2. ์์ ๊ฐ ์์ - ์์์ ์์์ ๋ํ ์ ๋ณด๊ฐ ํ์ํ๋ค๋ฉด ์์๋ฅผ ๋ณด์ ํ๋ ์ปฌ๋ ์ ์ ์ฌ์ฉํด์ผํ๋ค. 3. ๋ ์์ฑ - ์ผ๋ถ ์ฐ์ฐ์ ๊ฒฝ์ฐ ์ด๋ค ์์๊ฐ ์ปฌ๋ ์ ์ ์ํด์๋ ์ง ํน์ ๋ช๋ฒ ๋ํ๋ฌ๋์ง ์ค์ํ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ธํฐํ์ด์ค ๋ฐฐ์ด ๊ฐ์ฅ ๋จ์ํ ์ธํฐํ์ด์ค์ด๋ค. ์ ์ฐ์ฑ ๋ฌธ์ ๋ฅผ ์ ์ธํ๊ณ ์ฑ๋ฅ์ด ์ค์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค. Iterable ์์๋ฅผ ์ฃผ๊ฐํ๋ ๊ฒ์ ๋ง์ ์ ์์ง๋ง ์์๊ฐ ์ง์์ง ์ํ์ด ์๋ค. Collection Iterable์ ์์ํ๋ฉฐ ์ฌ๋ฌ ๋ฉ์..
์กฐํฉ ๋ฉ์๋ ์ถ์ํ ์์ค์ด ๋น์ทํ ๋ฉ์๋ ํธ์ถ๋ก ํ๋์ ๋ฉ์๋๋ฅผ ๊ตฌ์ฑํ๋ผ ๊ด๋ จ๋ ์ฝ๋๋ง ๋ชจ์๋๊ณ ๊ด๋ จ์ฑ์ด ๋จ์ด์ง๋ ์ฝ๋๋ ๋ถ๋ฆฌ! ๋ฉ์๋๋ฅผ ๊ตฌ์ฑํ ๋๋ ์ถ์ธก์ด ์๋ ์ฌ์ค์ ๊ทผ๊ฑฐํ๋ผ -> ์ผ๋จ ๋์ํ๋ ์ฝ๋๋ฅผ ๋ง๋ค๊ณ ๊ตฌ์ฑ ๋ฐฉ์ ๊ฒฐ์ ์๋ ์ ์ํ ์ด๋ฆ ๋ฉ์๋์ ์ด๋ฆ์ ํตํด์ ์๋๋ฅผ ์ ๋ฌํ๊ณ ๊ทธ ์ธ ์ ๋ณด๋ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๋ฌํ๋ผ Customer.linearSearch(String id) // x Customer.find(String id) // o ๋ฉ์๋ ๊ฐ์์ฑ ๋ฉ์๋๋ฅผ ์ ๊ฒ ๋ ธ์ถ์ํค๋ฉด ์ ์ฐ์ฑ์์ ์ด๋์ ์ป์ ์ ์์ ๊ฐ์์ฑ์ ์ ํํ ๋ ๊ณ ๋ คํด์ผํ ์ฌํญ ๋๊ฐ์ง 1. ๋ฏธ๋์ ์ ์ฐ์ฑ 2. ๊ฐ์ฒด ์ฌ์ฉ ๋น์ฉ ๋จผ์ ์ ํ์ ์ธ ๊ฐ์์ฑ์ ์ ํํ๊ณ ํ์์ ๋ฐ๋ผ ์ฐจ์ธฐ ํ์ฅ์ํค์ ! ์ค๋ฒ๋ก๋ ๋ฉ์๋ ์ค๋ฒ๋ก๋๋ ํ๋ผ๋ฏธํฐ ํ์ ๋ง ๋ค๋ฅผ..
MQTT ๋? MQTT ํ๋กํ ์ฝ์ ๊ธฐ๊ณ ๊ฐ ํต์ ์ ์ํด ์ค๊ณ๋ ํต์ ๋ฐฉ์์ ๋๋ค. REST ํต์ ๋ฐฉ์๊ณผ๋ ๋ค๋ฅด๊ฒ ์๋ฒ ๊ฐ ์ง์ ํต์ ์ด ์๋ ์ค๊ฐ์ ์ค๊ณ ์๋ฒ๋ฅผ ๋๊ณ ๊ฒ์-๊ตฌ๋ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํฉ๋๋ค. ์ ํ๋ ๋ฆฌ์์ค๋ก ํต์ ์ ํด์ผํ๋ IOT์ ํน์ฑ์ผ๋ก ์ธํด, ๊ตฌํ์ด ์ฝ๊ณ ํจ์จ์ ์ธ ํต์ ์ด ๊ฐ๋ฅํ MQTT ํ๋กํ ์ฝ์ ์ฌ์ฉํฉ๋๋ค. MQTT์ ํน์ง ํ์ฅ์ฑ MQTT๋ ์ ์ ์ ๋ ฅ๊ณผ ์ต์ํ์ ์ฝ๋๋ก ์ฌ๋ฌ ๋๋ฐ์ด์ค์ ํต์ ํ ์ ์์ต๋๋ค. ๋ํ ๋ชจ๋ ๋๋ฐ์ด์ค๋ ์ ํ์์ด ์ ๋ณด(ํ ํฝ)๋ฅผ ๊ตฌ๋ ํ๊ฑฐ๋ ๊ฒ์ํ ์ ์์ต๋๋ค. ๋ง์ฝ ํต์ ๊ฐ๋ฅํ ๋๋ฐ์ด์ค๋ฅผ ๋๋ฆฌ๊ณ ์ถ๋ค๋ฉด ๋จ์ํ ๋๋ฐ์ด์ค๊ฐ ํด๋น ํ ํฝ์ ๊ตฌ๋ ํ๋ฉด ๋ฉ๋๋ค. ์ ๋ขฐ์ฑ ๊ธฐ์กด ๋ฌด์ ํต์ ์ ์ ๋ณด์ ์์ค์ด ์์์ง๋ง MQTT๋ ๋ธ๋ก์ปค๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ณด๊ด , ๊ด๋ฆฌํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ฉ..