분류 전체보기
-
[AWS] non www 을 www 으로 redirect 하기 ( Netlify )카테고리 없음 2024. 3. 6. 20:36
1. AWS Route53으로 netlify 에 redirect 하기. 2. non www 을 www으로 redirect 하기. AWS Route53으로 netlify 에 redirect 하기. www.lolduo.net 을 netlify 에 배포한 https://lolduo.netlify.app/ 으로 redirect 하기 위해서 CNAME 으로 Route53에서 redirect 해주었습니다. non www 을 www으로 redirect 하기. 똑같이 CNAME으로 redirect 하면 되지 않을까 생각하였지만 아래와 같은 에러가 발생합니다. 잘못된 요청입니다. (InvalidChangeBatch 400: RRSet of type CNAME with DNS name lolduo.net. is not p..
-
[Java] GC 종류별 메모리 상황에 따른 테스트Computer Science/Java 2024. 2. 8. 17:40
특정 job 에 대해서 메모리를 설정해야하는데 이때 한번 GC를 종류별로 돌려보며 테스트를 해보았습니다. 다만 해당 job이 매우 짧게 끝나기도 하고 메모리를 적게 사용하며 CPU 사용율 등을 자세하게 확인하지 않았기에 가볍게 봐주시면 감사하겠습니다. 테스트 환경은 Java17에 OpenJDK 이며 모니터링으로는 VisualVM + VisualGC 와 jstat을 사용하였습니다. 비교한 GC는 SerialGC, ParallelGC, G1GC, ZGC로 Java17에서 지원하는 GC들 입니다. ShenandoahGC는 테스트하지 않았습니다. 목차 15MB [-Xms15m -Xmx15m] 50MB [-Xms50m -Xmx50m] 100MB [-Xms100m -Xmx100m] 결론 15MB [ -Xms15m ..
-
[Java] 버전별 GC 목록 ( OpenJDK )Computer Science/Java 2024. 2. 7. 17:55
GC 확인 방법 Java8의 GC Java11의 GC Java17의 GC Java21의 GC GC 확인 방법 현재 Default 로 적용된 GC를 확인하는 방법은 크게 2가지로 다음과 같습니다. 1. 적용중인 Flag를 확인하는 방법 java -XX:+PrintCommandLineFlags -version 해당 명령어로 현재 적용중인 Flag들과 버전을 같이 확인 할 수 있습니다. 위와 같이 결과가 나오는데 Java8의 경우 ParallelGC를 사용하는 것으로 확인됩니다. 2. 전체 Flag를 확인하는 방법 java -XX:+PrintFlagsFinal -version 해당 명령어로 사용 가능한 Flag들과 현재 그 값들을 확인할 수 있습니다. grep 명령어와 함께 사용하여 GC 목록들만 뽑아서 확인..
-
[JAVA] JVM 동작 방식Computer Science/Java 2024. 2. 6. 20:52
JVM이란 Class Loader Execution Engine Runtime Data Areas JVM이란 JVM은 Java Virtual Machine의 약자로 자바 바이트코드를 실행하는 가상 머신입니다. 자바는 Compile시 자바 Source Code가 바이트코드 ( .class 파일 ) 로 변환되며 이 바이트코드가 JVM에서 실행되는 구조입니다. JVM ( Java Virtual Machine )의 동작 구조를 간단히 설명하면 다음과 같습니다. Class Loader는 실행할 프로그램의 Class를 Runtime Data Areas에 Load 합니다. Load 된 Class는 Execution Engine 에 의해 실행됩니다. Class Loader Class Loader의 동작 방식을 자세히 ..
-
[LOL-DUO] Lamdba 로 데이터를 크롤링해 RDS 에 데이터 저장하기.프로젝트 2024. 1. 6. 16:24
1. 목표 2. 아키텍처 설계 과정 2.1 Lambda로 진행한 이유 2.2 Lambda가 2개로 나뉘어진 이유 2.3 JS로 진행한 이유 3. 개발 과정 3.1 VPC 내부에 Lambda 생성하기. 3.2 Lambda 함수 개발 ( JS ) 1. 목표 1. FreeTier 내에서 가능하도록 구현. ( 최소한의 비용 ) 2. Riot 데이터를 가져와 가공하여 RDS에 저장하기 및 내 서버 상태 체크. 3. 매 1시간 마다 돌며 결과를 Slack 으로 제공. 매 1시간 마다 Server의 상태 체크 등 정보를 가져와 Slack으로 알려주는 기능이 필요했습니다. 또한 주기적으로 Riot Data ( Version ) 등을 가져와 변경사항이 있다면 Database에 저장하고 알려주는 기능이 필요했습니다. 따라..
-
쿠키 ( Cookie ), 세션 ( Session )Computer Science 2024. 1. 5. 10:31
쿠키와 세션은 웹 통신을 함에 있어 사용되는 개념으로, 사용자의 웹 브라우저와 웹 서버간의 상태 정보를 관리하고 유지하는데 사용됩니다. 웹 통신은 기본적으로 HTTP 프로토콜을 사용하는데, Stateless 환경이기 때문에 상태 정보를 가지고 있을 수 없습니다. 이를 보완하기 위해 사용되는 것이 쿠키와 세션입니다. 이 둘의 공통점으로는 사용자의 정보를 저장하여 사용한다는 점입니다. 매번 인증 등을 진행하지 않고 사용자 정보를 제공한다는 점에서 장점이지만 보안을 신경써야한다는 점이 따라붙습니다. 이 둘의 가장 큰 차이점은 쿠키는 클라이언트 쪽에서 관리가 되며, 세션은 서버 쪽에서 관리가 된다는 점입니다. 이로인해 보안은 세션이 조금 더 좋으며 쿠키를 사용할 때에는 암호화 등을 진행하는 것이 좋습니다. 1...
-
[Java] Java version 별 차이 ( 7, 8, 9, 11 )Computer Science 2023. 12. 12. 23:18
java 7 - 다이아몬드 연산자 지원, switch 문에서 String 사용 가능 java 8 - LTS 버전, Default Method, 람다 표현식, 함수형 Method, Optional 구조체, java.time 패키지, Stream API, GC 개선 java 9 - Java Platform Module System ( jigsaw project ), G1 GC, HTTP/2 java 11 - LTS 버전, HTTP/2 강화, 람다 표현식에 로컬 변수 타입 추론 추가 java 7 Java 7 부터 제네렉에서 사용하는 오퍼레이터 ( 다이아몬드 연산자 ) 를 지원합니다. 다이아몬드 연산자를 사용하면 코드를 간결하게 만들고 가독성을 향상시킬 수 있습니다. List list = new ArrayLis..
-
[TypeScript] Type Compatibility ( 타입 호환성 )Computer Science 2023. 12. 9. 23:02
타입 호환성이란? 두 가지 타입 간에 비교를 통해 값이 할당 가능한지 여부를 나타내는 것 입니다. 즉 다른 타입이 해당 타입안에 들어올 수 있는지 판단합니다. TypeScript의 타입 호환성은 명목적 타이핑 ( nominal typing )이 아닌 구조적 서브 타이핑 ( subtyping ) 을 기반으로 합니다. 구조적 타이핑이란 오직 맴버만으로 타입을 확인하는 방식입니다. interface test1 { test: string; } class test2 { test: string; } let test3: test1; test3 = new test2(); // 맴버가 같기에 가능합니다. 함수의 비교 let first = (test: string) => "test"; let second = (test: ..