Java/๐ Effective Java
์ ๋ค๋ฆญ์๋ฐ 5๋ถํฐ ์ฌ์ฉ ๊ฐ๋ฅ๊ฐ์ฒด๋ฅผ ๊บผ๋ผ ๋๋ง๋ค ํ๋ณํํ ํ์ ์์์ปฌ๋ ์
์ด ๋ด์ ์ ์๋ ํ์
์ ์ปดํ์ผ๋ฌ์ ์๋ ค์ค ๐ ์ปดํ์ผ๋ฌ๋ ์์์ ํ๋ณํ ์ฝ๋๋ฅผ ์ถ๊ฐํด๋์ค์ ์ธํฐํ์ด์ค ์ ์ธ์ ํ์
๋งค๊ฐ๋ณ์๊ฐ ์ฌ์ฉ๋จ ๐ ์ ๋ค๋ฆญ ํด๋์ค or ์ ๋ค๋ฆญ ์ธํฐํ์ด์ค = ์ ๋ค๋ฆญ ํ์
๋งค๊ฐ๋ณ์ํ ํ์
= List ๐ String์ ์ ๊ท ํ์
๋งค๊ฐ๋ณ์ E (List)์ ํด๋นํ๋ ์ค์ ํ์
๋งค๊ฐ๋ณ์ 26. Raw ํ์
์ ์ฌ์ฉํ์ง ๋ง๊ธฐ raw ํ์
์ด๋ ์ ๋ค๋ฆญ ํ์
์์ ํ์
๋งค๊ฐ๋ณ์๋ฅผ ์ ํ ์ฌ์ฉํ์ง ์์ ๋๋ฅผ ๋งํจex). List์ raw ํ์
์ List์ ๐ ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด, ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ณ ํ์ฐธ ๋ค์ธ ๋ฐํ์์์ผ ์์์ฑ ์ ์๊ธฐ ๋๋ฌธ ! โณ๏ธ ์ปฌ๋ ์
์ raw ํ์
์ ์ฌ์ฉํ ๊ฒฝ์ฐ // Stamp ์ธ์คํด์ค๋ง ์ทจ๊ธprivate f..
Database/MongoDB
ReactiveMongoRepository๋ ? ๋น๋๊ธฐ์ ์ด๊ณ ๋ฆฌ์กํฐ๋ธํ ๋ฐฉ์์ผ๋ก MongoDB์ ์ํธ์์ฉํ๋ ์ ์ฅ์ ์์ฑ๐ CRUD, ํ์ด์ง, ์ ๋ ฌ, ์ฟผ๋ฆฌ ์์ฑ ๊ธฐ๋ฅ ๋ฑ ์ ๊ณต T : repository์์ ๊ด๋ฆฌํ ๋๋ฉ์ธ ์ํฐํฐ ํ์
ID : ์ํฐํฐ์ ์๋ณ์(ID) ํ์
ReactiveMongoTemplateMongoDB์ ์ง์ ์ ์ธ ์ฟผ๋ฆฌ ์คํ์ ํ๊ฑฐ๋ ๋ณต์กํ ์ฟผ๋ฆฌ ๋ก์ง์ ๊ตฌํํ ๋ ์ฃผ๋ก ์ฌ์ฉReactiveMongoRepository๋ ์ฃผ๋ก ๋จ์ํ CRUD ์์
๊ณผ ๊ฐ๋จํ ์ฟผ๋ฆฌ์ ์ ํฉํ์ง๋ง, ReactiveMongoTemplate์ ๋ ์ธ๋ถ์ ์ด๊ณ ๋ณต์กํ ๋ฐ์ดํฐ ์์
์ ์ ๋ฆฌ โณ๏ธ ์์ ์ฝ๋ @Service@RequiredArgsConstructor@Slf4jpublic class ProductCategory..
Java/๐ Effective Java
23. ํ๊ทธ ๋ฌ๋ฆฐ ํด๋์ค๋ณด๋ค๋ ํด๋์ค ๊ณ์ธต ๊ตฌ์กฐ ํ์ฉํ๊ธฐํ๊ทธ ๋ฌ๋ฆฐ ํด๋์ค ๐ ์์ ํ๋๋ ์ธํฐํ์ด์ค, ์ด๊ฑฐํ(enum) ๋ฑ์ ํ์ฉํด์ ํน์ ๊ฐ์ฒด๊ฐ ์ด๋ค ์นดํ
๊ณ ๋ฆฌ์ ์ํ๋์ง ์๋ณclass Figure { enum Shape {RECTANGLE, CIRCLE}; // ํ๊ทธ ํ๋ - ํ์ฌ ๋ชจ์์ ๋ํ๋ธ๋ค. final Shape shape; // ๋ค์ ํ๋๋ค์ ๋ชจ์์ด ์ฌ๊ฐํ(RECTANGLE)์ผ ๋๋ง ์ฐ์ธ๋ค. double length; double width; // ๋ค์ ํ๋๋ ๋ชจ์์ด ์(CIRCLE)์ผ ๋๋ง ์ฐ์ธ๋ค. double radius; // ์์ฉ ์์ฑ์ Figure(double radius) { shape = Shape.CIRCLE; ..
Java/๐ Effective Java
18. ์์๋ณด๋ค๋ ์ปดํฌ์ง์
์ฌ์ฉ๋ค๋ฅธ ํจํค์ง์ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์์ํ๋ ์ผ์ ์ํ ๋ฉ์๋ ํธ์ถ๊ณผ ๋ฌ๋ฆฌ ์์์ ์บก์ํ๋ฅผ ๊นจ๋จ๋ฆผ ๐ ์์ ํด๋์ค๊ฐ ์ด๋ป๊ฒ ๊ตฌํ๋๋๋์ ๋ฐ๋ผ ํ์ ํด๋์ค์ ๋์์ ์ด์ ์๊ธธ ์ ์์์์ ํด๋์ค๋ ๋ฆด๋ฆฌ์ฆ๋ง๋ค ๋ด๋ถ ๊ตฌํ์ด ๋ฌ๋ผ์ง ์ ์๋๋ฐ, ๊ทธ๋ก ์ธํด ํ์ ํด๋์ค๊ฐ ์ค๋์ํ ์ ์์ โณ๏ธ ์์์ ์๋ชป ์ฌ์ฉํ ์ public class InstrumentedHashSet extends HashSet { private int addCount = 0; public InstrumentedHashSet(){ } public InstrumentedHashSet(int initCap, float loadFactor){ super(i..
๐ฉ๐ป ์ ๋ฆฌ๊ธ/๐ WIL
jwt.getClaimAsString()JSON Web Token (JWT) ์์ ํน์ ํด๋ ์์ ๋ฌธ์์ด๋ก ์ถ์ถํ๋ ๋ฉ์๋ โด๏ธ claim ์ด๋? ๐ JWT์ ํฌํจ๋ ์ ๋ณด๋ก, ์ฃผ๋ก ์ฌ์ฉ์ ์ ๋ณด๋ ๊ถํ ๋ฑ๊ณผ ๊ด๋ จ๋ ๋ฐ์ดํฐ๋ฅผ ๋ด๊ณ ์์ โณ๏ธ JWT ๊ตฌ์ฑHeader : ํ ํฐ ํ์
๊ณผ ํด์ฑ ์๊ณ ๋ฆฌ์ฆ ํฌํจPayload : ํด๋ ์ ๋ฐ์ดํฐ ํฌํจSignature : ํ ํฐ์ด ๋ณ์กฐ๋์ง ์์์์ ํ์ธํ๋ ์๋ช
getClaimAsString()์ ๋์์
๋ ฅ : ํด๋ ์์ ํค๋ฅผ ์ ๋ฌ์ถ๋ ฅ : ํด๋น ํด๋ ์์ ๊ฐ์ ๋ฌธ์์ด๋ก ๋ฐํ// JWT ๊ฐ์ฒด๊ฐ ์๋ค๊ณ ๊ฐ์ String username = jwt.getClaimAsString("username");String role = jwt.getClaimAsString("role");System..
๐ฉ๐ป ์ ๋ฆฌ๊ธ/๐ฃ ํธ๋ฌ๋ธ์ํ
์ด๋ค ์ํฉ์ด์๋์ง ? gradle project๋ฅผ loadํ๋ ๊ณผ์ ์์ ๋ฐ์ํ ๋ฌธ์ ๋ค. JDK๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์น๋๊ณ ํ๊ฒฝ ๋ณ์(JAVA_HOME)๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์๋์ง๋ ํ์ธํ๋ค. ์บ์๋ฅผ ์ญ์ ํ๊ณ ๋ค์ buildํด๋ ๋๊ฐ๊ธธ๋ ๋ฌธ์ ๊ฐ ๋ฌด์์ธ์ง ๊ถ๊ธํด์ก๋ค. ํด๊ฒฐ 1. devleopment ๋ธ๋์น๋ก checkout ํ๋์ง ํ์ธ ์ฒ์์๋ master ๋ธ๋์น์ ์๋ build.gradle ํ์ผ์ loadํ๋ค. development ๋ธ๋์น์ ์๋ ๊ฒ์ผ๋ก reload ํด๋ณด๋ ๋ช๋ช ํ๋ก์ ํธ๋ ์ build๋์์ง๋ง ์์ง๊น์ง ํด๊ฒฐ๋์ง ์์ ํ๋ก์ ํธ๊ฐ ๋จ์์์๋ค. ํด๊ฒฐ 2. gradle-wrapper.properties ํ์ผ์์ distributionUrl ๐ gradle ๋ฒ์ ๋ฎ์ถ๊ธฐdistributionUr..
Java
ํ๋ก์ธ์ค์ ์ค๋ ๋โณ๏ธ ํ๋ก์ธ์ค์ด์์ฒด์ ์์์ ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค๊ฐ ํ๋ก์ธ์ค๋ ๋
๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ๊ณ ์์ ๐ ํ๋ก์ธ์ค๊ฐ ์๋ก์ ๋ฉ๋ชจ๋ฆฌ์ ์ง์ ์ ๊ทผ X์ด์์ฒด์ ์์ ๋ณ๋์ ์์
๋จ์๋ก ๋ถ๋ฆฌํด์ ๊ด๋ฆฌ๋จ ํ๋ก์ธ์ค๋ ํ๋ ์ด์์ ์ค๋ ๋๋ฅผ ๋ฐ๋์ ํฌํจ โ๏ธ ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ์ฝ๋ ์น์
: ์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ๋ถ๋ถ๋ฐ์ดํฐ ์น์
: ์ ์ญ ๋ณ์ ๋ฐ ์ ์ ๋ณ์๊ฐ ์ ์ฅ๋๋ ๋ถ๋ถ (๊ธฐํ ๋ถ๋ถ)ํ : ๋์ ์ผ๋ก ํ ๋น๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์คํ : ๋ฉ์๋ ํธ์ถ ์ ์์ฑ๋๋ ์ง์ญ ๋ณ์์ ๋ฐํ ์ฃผ์๊ฐ ์ ์ฅ๋๋ ์์ญ (์ค๋ ๋์ ํฌํจ) โณ๏ธ ์ค๋ ๋ ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์์
์ ๋จ์ํ ํ๋ก์ธ์ค ๋ด์์ ์ฌ๋ฌ ์ค๋ ๋ ์กด์ฌ ๊ฐ๋ฅ ๐ ํ๋ก์ธ์ค๊ฐ ์ ๊ณตํ๋ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ๊ณต์ โ๏ธ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์ฑ๊ณต..
AWS
AWS IoT Core๋ ? ํ์ฌ ํ ๋ด์์ ์ฌ์ฉํ๊ณ ์๋ ์ฃผ์ ๊ธฐ์ ๋ก, ํ ์ด๋ฆ์ ๋ถํฉํ์ฌ ํ์ฉํ๋ ๊ธฐ์ ์ด๋ค. AWS์์ ๋ง์ ์๋น์ค ์ข
๋ฅ๊ฐ ์๋ ๊ฒ์ ์๊ณ ์์์ผ๋, IoT๋ฅผ ํ์ฉํ ์ ์๋ ์๋น์ค๊ฐ ์๋ค๋ ๊ฒ์ ์
์ฌํ๊ณ ์๊ฒ ๋์๋ค. AWS IoT Core์ ์๋น์ค๋ฅผ ์์ฝํ์๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.๐ IoT ๊ธฐ๊ธฐ์ ํด๋ผ์ฐ๋๋ฅผ ์ฐ๊ฒฐํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ ์ ์ดํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์๋น์ค๋ก, ๊ธฐ๊ธฐ๊ด๋ฆฌ, ๋ฐ์ดํฐ ์์ง ๋ฐ ๋ถ์์ ์ํ ์ค์ ํ๋ธ ์ญํ ์ํ์ฆ, ๋ค๋ฅธ AWS ํด๋ผ์ฐ๋ ์๋น์ค ๋ฐ ์ ํ๋ฆฌ์ผ์ด์
์ด ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋ ์ฅ์น์ ์ํธ์์ฉํ ์ ์๋๋ก IoT ์ฅ์น๋ฅผ ํด๋ผ์ฐ๋์ ์ฐ๊ฒฐํ๋ ์๋น์ค ์ ๊ณต MQTT (Message Queuing Telemetry Transport)IoT ๋๋ฐ์ด์ค์ ํด๋ผ์ฐ๋ ๊ฐ์ ๊ฒฝ๋ ํต์ ํ..