Cookie(์ฟ ํค)์ ๋๋ฉ์ธ์ ๊ด๊ณ ์ ๋ฆฌ Cookie๋? ์ฟ ํค๋ ์ฌ์ฉ์์ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋๋๋ฐ์ดํฐ์ ๋๋ค. ์ฟ ํค๋ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ํธ์์ฉ์ ํตํด ์ฌ์ฉ์๋ฅผ ์๋ณํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์น ์ฌ์ดํธ์์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ฉด, ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์น ์๋ฒ๋ก๋ถํฐ ๋ฐ์ ์ฟ ํค๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๊ณ , ์ดํ์ ํด๋น ์น ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ ๋๋ง๋ค ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ฅ๋ ์ฟ ํค๋ฅผ ํจ๊ป ์ ์กํฉ๋๋ค. ์ด๋ฅผ ํตํด ์น ์ฌ์ดํธ๋ ์ฌ์ฉ์๋ฅผ ์๋ณํ๊ณ , ์ฌ์ฉ์์์ด์ ํ๋ ๋ด์ญ ๋ฑ์ ํ์ ํ์ฌ ๋ง์ถคํ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ผํ๋ชฐ ์น ์ฌ์ดํธ์์ ์ฟ ํค๋ฅผ ์ฌ์ฉํ๋ฉด, ์ฌ์ฉ์๊ฐ ๋ก๊ทธ์ธ ํ ํ์ ์ฟ ํค๋ฅผ ์ด์ฉํ์ฌ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ , ์ดํ์ ๋ค์ ํด๋น ์น ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ ๋ ๋ก๊ทธ์ธํ ํ์ ์์ด ์ฌ์ฉ์๋ฅผ ์๋์ผ๋ก ์๋ณํ์ฌ ์ด์ ๊ตฌ๋งค ๋ด์ญ ๋ฑ์ ๋ณด์ฌ์ค ์ ์์ต๋๋ค.. 2023. 3. 11. [Redis] ‘RDB’ ํฌ๋งท์ ํ์ผ์ ๋ด์ฉ์ ํ์ธํ ์ ์๋ ๋ฐฉ๋ฒ RDB ํ์ผ ํฌ๋งท์ด๋? RDB ํฌ๋งท์ ํ์ผ์ Redis DataBase์ ์ฝ์๋ก Redis ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฌ์ฉํ๋ ํ์ผ ํ์์ ๋๋ค. Redis ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ RDB(Redis DataBase) ํ์์ ํ์ผ์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํฉ๋๋ค. RDB ํ์ผ์ Redis ์๋ฒ์์ ๋ฐ์ดํฐ I/O์ ์ฌ์ฉ๋ฉ๋๋ค. RDB ํ์ผ์ Redis ๋ฐ์ดํฐ์ ๋ด๋ถ ํํ์ ์ง๋ ฌํํ์ฌ ์ ์ฅํ๋ ์ด์ง ํ์์ binary ํ์ผ์ ๋๋ค. Redis๋ RDB ํ์ผ์ ์์ฑํ์ฌ Redis ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ค๋ ์ท์ ์ ์ฅํ๊ณ , ๋์ค์ RDB ํ์ผ์ ๋ก๋ํ์ฌ Redis ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ณต์ํฉ๋๋ค. ๐ ์ด์งํ์ผ = ๋ฐ์ด๋๋ฆฌ(binary) ํ์ผ ์ด์ง ํ์ผ์ ์ปดํจํฐ์์ ์ฌ์ฉ๋๋ ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ํฌํจํ๋ ํ์ผ ํ์์ ์๋ฏธํฉ๋๋ค. ์ด์ง ํ์ผ์ ๋ณดํต ํ ์คํธ ํ์ผ๊ณผ .. 2023. 3. 7. JAVA ๊ฐ๋ฐ์๊ฐ ์์์ผํ String ํด๋์ค - 2ํธ ๋ณธ ํฌ์คํ ์์๋ ์ง๋ ํฌ์คํ ์ ์ด์ด์ JAVA ๊ฐ๋ฐ์๊ฐ ์์์ผํ๋ String ํด๋์ค์ ๋ํ ์ฃผ์ ๋ด์ฉ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. String, StringBuilder, StringBuffer์ ํน์ง๊ณผ ์ฐจ์ด์ ์ ๋ํด ์ฃผ๋ก ๋ค๋ฃน๋๋ค. ๋ชฉ์ฐจ String, StringBuilder, StringBuffer - immutable(๋ถ๋ณ) VS mutable(๊ฐ๋ณ) StringBuilder VS StringBuffer String, StringBuilder, StringBuffer - immutable(๋ถ๋ณ) VS mutable(๊ฐ๋ณ) String, StringBuilder, StringBuffer๋ ๋ชจ๋ ๋ฌธ์์ด์ ๋ค๋ฃจ๋ ํด๋์ค์ ๋๋ค. ๊ฐ ํด๋์ค๋ ๊ณ ์ ํ ํน์ฑ์ด ์์ด ์ด๋ฅผ ์๊ณ ์ ํฉํ ํด๋์ค๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. S.. 2023. 2. 18. JAVA ๊ฐ๋ฐ์๊ฐ ์์์ผํ String ํด๋์ค - 1ํธ ๋ณธ ํฌ์คํ ์์๋ JAVA ๊ฐ๋ฐ์๊ฐ ์์์ผํ๋ String ํด๋์ค์ ๋ํ ์ฃผ์ ๋ด์ฉ๋ค์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๋ชฉ์ฐจ ๋ฌธ์์ด ๋ถ์ด๊ธฐ - concat() VS '+' ์ฐ์ฐ์ ๋ถ๋ณ(immutable) ๋ฌธ์์ด ๋น๊ต - == VS equals() String ๊ฐ์ฒด ์์ฑ - ๋ฆฌํฐ๋ด VS new ์ฐ์ฐ์ ๋ฌธ์์ด ๋ถ์ด๊ธฐ - concat() VS '+' ์ฐ์ฐ์ concat() ๋ฉ์๋์ + ์ฐ์ฐ์๋ ๋ ๋ค ๋ ๊ฐ์ ๋ฌธ์์ด์ ์ด์ด๋ถ์ฌ ์๋ก์ด ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. ํ์ง๋ง, ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์๋ ์ฐจ์ด์ ์ด ์์ต๋๋ค. concat() ๋ฉ์๋๋ ํธ์ถํ๋ ๋ฌธ์์ด ๋ค์ ์ ๋ฌ๋ ๋ฌธ์์ด์ ์ด์ด๋ถ์ ๋๋ค. + ์ฐ์ฐ์๋ ์ผ์ชฝ ๋ฌธ์์ด๊ณผ ์ค๋ฅธ์ชฝ ๋ฌธ์์ด์ ์ด์ด๋ถ์ ๋๋ค. ๋ค์์ ๊ฐ๋จํ ์์ ์ ๋๋ค. String str1 = "Hello"; String str2 .. 2023. 2. 17. [JAVA] Class ํด๋์ค๋ฅผ ์ด์ฉํด ๋ฉ์๋์ ์์ฑ์ ์ป๊ธฐ JAVA์ Class ํด๋์ค Object์ getClass() ๋ฉ์๋๋ Class ๊ฐ์ฒด๋ฅผ ๋ฐํํฉ๋๋ค. Class ํด๋์ค๋ ํด๋น ํด๋์ค์ ์ ์ธ๋ ๋ฉ์๋์ ์์ฑ์๋ค์ ๋ฐํํ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. getDeclaredConstructors(), getMethods()๊ฐ ๊ทธ๋ฌํ ๋ฉ์๋๋ค์ ๋๋ค. Class#getName() Object obj = new Object(); Class clazz = obj.getClass(); System.out.println(clazz.getName()); ๐ฅ ์คํ๊ฒฐ๊ณผ java.lang.Object getName()์ ํด๋์ค ์ด๋ฆ์ ๋ฆฌํดํฉ๋๋ค. Class#getDeclaredConstructors() ... Constructor[] constructors = clazz.getDe.. 2023. 2. 12. [JAVA] Arrays.asList()์ List.of()์ ์ฐจ์ด JAVA๋ List ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ฑฐ๋ array๋ฅผ List๋ก ๋ณํ(array -> list)ํ๊ธฐ ์ํด ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ก ์ ๋ชฉ๊ณผ ๊ฐ์ Arrays.asList()์ List.of() ๋ ๊ฐ์ง ์ ๋๋ค. ๋ณธ ํฌ์คํ ์์๋ ๋ ๋ฉ์๋์ ์ฌ์ฉ ๋ฐฉ๋ฒ๊ณผ ์ฐจ์ด๋ฅผ ์์๋ณด๊ณ ์ ํฉ๋๋ค. Arrays.asList() ์ด ๋ฉ์๋๋ List, ์ฆ Java Collections Framework์ ์ํ๋ List ๊ฐ์ฒด๋ฅผ ๊ฐ๋จํ ์์ฑํ ์ ์๊ฒ ํด์ค๋๋ค. Array(๋ฐฐ์ด)์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ List ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ฐธ๊ณ ๋ก JAVA 1.2์์ ๋์ ๋ ์ค๋๋ ๋ฉ์๋์ ๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ ๐ [Excample Code] @DisplayName("Arrays.asList() ์ฌ์ฉ๋ฐฉ๋ฒ") @Test void usa.. 2023. 2. 10. DBMS์ ๊ธฐ์ต์ฅ์น์ ๊ด๊ณ ๋ฐ ๋ฉ๋ชจ๋ฆฌ ํ์ฉ ๊ธฐ์ต์ฅ์น๋ ๊ธฐ์ต ๋น์ฉ์ ๋ฐ๋ผ 1์ฐจ~3์ฐจ ๊ณ์ธต์ผ๋ก ๋ถ๋ฅํ ์ ์๋ค. ๊ธฐ์ต ๋น์ฉ์ด๋ '๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ฐ ์๋ชจ๋๋ ๋น์ฉ'์ด๋ค. ๊ทธ๋ฆผ - ๊ธฐ์ต์ฅ์น์ ๊ณ์ธต ๊ทธ๋ฆผ์ ํผ๋ผ๋ฏธ๋์์ ์๋๋ก ๊ฐ์๋ก ๋ฉด์ ์ด ์ปค์ง๋ ๊ฒ์ ๊ฐ์ ๋น์ฉ์ผ๋ก ์ ์ฅํ ์ ์๋ ๋ฐ์ดํฐ ์ฉ๋์ด ํฌ๋ค๋ ๊ฒ์ ๋ํ๋ธ๋ค. ๊ทธ๋ฌ๋ ๊ธฐ์ต ๋น์ฉ์ด ๋ฎ์์๋ก ๋ฐ์ดํฐ ์ ๊ทผ ์๋๊ฐ ๋๋ ค์ง๋ค. ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ค ํ๋ฉด ์๋๋ฅผ ์๊ณ , ์๋๋ฅผ ์ป๊ณ ์ ํ๋ฉด ๋ง์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ธฐ ํ๋ค๋ค๋ ํธ๋ ์ด๋ ์คํ๊ฐ ๋ฐ์ํ๋ค. DBMS๋ ๋ฐ์ดํฐ ์ ์ฅ์ ๋ชฉ์ ์ผ๋ก ํ๋ ๋ฏธ๋ค์จ์ด์ด๋ฏ๋ก ๊ธฐ์ต์ฅ์น์ ๋ฐ์ ํ ๊ด๊ณ๊ฐ ์๋ค. DBMS๊ฐ ์ฌ์ฉํ๋ ๋ํ์ ์ธ ๊ธฐ์ต์ฅ์น๋ HDD(ํ๋๋์คํฌ), ๋ฉ๋ชจ๋ฆฌ์ด๋ค. ์ฉ๋, ๋น์ฉ, ์ฑ๋ฅ์์ ์ด์ ๋๋ฌธ์ DBMS์ ๋ฐ์ดํฐ ์ ์ฅ ๋งค์ฒด๋ก HDD๊ฐ ๋ง์ด ์ฌ์ฉ๋๋ค. ๋ฉ๋ชจ๋ฆฌ๋ HD.. 2021. 9. 28. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ณธ ๊ตฌ์กฐ, ๊ฐ๋ ๋ฐ ์ฉ์ด ์ ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค VS DBMS Oracle, MySQL๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํํธ์จ์ด๋ฅผ '๋ฐ์ดํฐ๋ฒ ์ด์ค'๋ผ๊ณ ํํ ๋ถ๋ฅด๋๋ฐ ์ ํํ ๊ตฌ๋ถํ์๋ฉด DBMS(DataBase Management System)๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ํํธ์จ์ด๋ฅผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ DBMS๋ก ์์ฑ๋๊ณ ์กฐ์๋๋ ์ ์ฅ๊ณต๊ฐ์ ๋งํ๋ค. RDB(Relational Database)๋ DBMS์ ์ผ์ข ์ด๋ค. Oracle, Microsoft SQL Server, DB2, PostgreSQL, MySQL ๋ฑ์ด ๋ง์ด ์ฌ์ฉ๋๋ค. ์ด RDB๋ ๊ฐ๊ฐ์ ํน์ง์ด ์๊ณ ๋ด๋ถ ์ํคํ ์ฒ๊ฐ ์กฐ๊ธ์ฉ ๋ค๋ฅด์ง๋ง ๊ฒฐ๊ตญ RDB๋ก์จ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค๋ ๋ชฉ์ ์ ๋ชจ๋ ๋์ผํ๋ฏ๋ก ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ๋ ์ ์ฌํ๋ค. DBMS ์ํคํ ์ฒ ์ฌ์ฉ์(์ดํ๋ฆฌ์ผ์ด์ ์ฌ์ฉ์, ๊ฐ๋ฐ์)์๊ฒ์ ์ ๋ ฅ๋ SQL ๊ตฌ๋ฌธ์ ์ค๊ฐ์ ์๋.. 2021. 9. 18. JUnit5 - JUnit ํ๊ฒฝ ์ธํ ๊ณผ ์ฒซ ๋ฒ์งธ ํ ์คํธ ์ผ์ด์ค ์์ฑ ๐ฌ ์ฑ ์ ํตํด ๊ณต๋ถํ ๋ด์ฉ์ ์ ๋ฆฌํ์๋ค. ์ฒซ ๋ฒ์งธ JUnit ํ ์คํธ ๋ง๋ค๊ธฐ (p26 ~ p39) ๐ฌ ์ฑ ์ ๋์์๋ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ๋ฉด์ ๊ณต๋ถํ๊ธฐ ์ํด IntelliJ์์ java 11 ๋ฒ์ ์ gradle ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ค. ์ฑ ์ ์์ ์์๋ java 8์ stream์ ์ฌ์ฉํ๋ฏ๋ก ์ฐ์ต์ฉ ํ๋ก์ ํธ์ jdk๋ 8 ์ด์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ํ ์คํธ ๋์ ์ฝ๋ ๋ค์์ ํ ์คํธ ๋์ ์ฝ๋์ด๋ค. ๐ Scoreable.java @FunctionalInterface public interface Scoreable { int getScore(); } โ๏ธ ์ฐธ๊ณ - @FunctionalInterface @FunctionalInterface๋ ํจ์ํ ์ธํฐํ์ด์ค์์ ๊ฐ๋ฆฌํค๋ ์ ๋ ธํ ์ด์ ์ด๋ค. ํจ์ํ ์ธํฐํ์ด์ค๋ ์ค๋ก์ง ํ๋์.. 2021. 9. 13. Spring Security Web์ ์ฌ์ฉํ์ฌ IP ์ ๊ทผ ์ ์ด ๊ตฌํํ๊ธฐ Spring security web์ IpAddressMatcher์ spring interceptor๋ฅผ ์ด์ฉํด ํด๋ผ์ด์ธํธ IP๊ฐ ํน์ IP ๋์ญ์ ๋ง๋์ง ์ฒดํฌํ๋ ์ ๊ทผ ์ ์ด ๋ก์ง์ ๊ตฌํํด๋ณด์. Dependency implementation 'org.springframework.security:spring-security-web' spring-security-web ์์กด์ฑ์ ์ถ๊ฐํ๋ค. Interceptor ์์ฑ ๋ฐ ๋ฑ๋ก @Slf4j @RequiredArgsConstructor @Component public class IpAddressAccessControlInterceptor implements HandlerInterceptor { @Override public boolean preHandle(Http.. 2021. 9. 1. ์คํ๋ง ๋ถํธ ๋ฐฐ๋ ์ ์ฉํ๊ธฐ(+ ๋ณํ ์ฌ์ดํธ ์ถ์ฒ ๋ฐ color ๋ณ๊ฒฝ) ์ค๋ฌด์์ ๋ชจ ์๋น์ค๋ฅผ ์ด์ ๊ฐ๋ฐ ํ๋ ์ค.. ํ ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ๋ฅผ ๋ก์ปฌ์์ ๊ธฐ๋ํ ๋๋ง๋ค ๋ฌด์ธ๊ฐ ๋ฐ๋ฐํจ์ ๋๋ผ๊ณค ํ๋๋ฐ ๊ทธ ๋๋์ ์ด์ ๋ ๋ฐ๋ก ๋ฐฐ๋์๋ค. ๊ธฐ๋ํ ๋ ๋ง๋ค ์ฝ์์ ์ด๋ฐ ๋ฉ๋๋ฌ์ง์ง ์์ ๊ธฐ๋ณธ ๋ฐฐ๋๊ฐ ์ฐํ๋ค. ์ด ํ๋ก์ ํธ๋ ์ต๊ทผ์ ์คํ๋ง ๋ถํธ๋ก ์ ํ๋๊ณ , ์ ํ ๋น์ ๋ฐฐ๋ ๋ถ๋ถ์ ๋ฑํ ์๋ณด์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ง์ ๋ค์ง ์์.. ๊ทธ๋ผ, ์คํ๋ง ๋ถํธ ํ๋ก์ ํธ์ ๋ฐฐ๋๋ฅผ ๋ฐ๊ฟ๋ณด์. ์คํ๋ง ๋ถํธ ๋ฐฐ๋ ๋ณ๊ฒฝ - banner.txt ์คํ๋ง ๋ถํธ๋ ๊ธฐ๋ณธ์ ์ผ๋ก resources/banner.txt๊ฐ ์กด์ฌํ๋ฉด ํด๋น ํ ์คํธ๋ฅผ ๊ธฐ๋ ์ ๋ฐฐ๋๋ก ๋ฟ๋ ค์ค๋ค. ํ์ผ์ ๋ง๋ค๊ณ ๋ด์ฉ์ ์์ฑํ๋ค. ๐ banner.txt ==================== My Banner ==================== ์ด์ ๋ค์ .. 2021. 8. 31. Feign ํด๋ผ์ด์ธํธ ๊ตฌํ๊ณผ Eureka, Hystrix ์ ์ฉ 1. Dependency ํ๋ก์ ํธ ์์กด์ฑ์ spring-cloud-starter-openfeign๋ฅผ ์ถ๊ฐํ๋ค. implementation 'org.springframework.cloud:spring-cloud-starter-openfeign' 2. Feign client ํ์ฑํ @EnableFeignClients ์ ๋ ธํ ์ด์ ์ ์ถ๊ฐํ์ฌ feign client๋ฅผ ํ์ฑํํ๋ค. @SpringBootApplication ๋๋ @Configuration ํด๋์ค์ ์ถ๊ฐํ๋ฉด ๋๋ค. @EnableFeignClients @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(A.. 2021. 8. 18. ์ด์ 1 2 3 4 ยทยทยท 17 ๋ค์