분류 전체보기
-
[AWS] CloudWatch 로그를 S3 로 보관하기 (Exporting CloudWatch logs to S3 Bucket)Back End/AWS 2022. 11. 7. 11:20
CloudWatch, S3 그리고 S3 Glacier 의 가격 CloudWatch 는 단순 저장말고도 Metrix 를 이용해 경보등의 서비스를 생성할 수 있으므로 당연히 CloudWatch Log 서비스의 가격이 S3 보다 비싸다. 또, S3 가 S3 Glacier 보다 가격이 비싸다. (액세스 속도 차이) 그렇다면 장애사후분석등 로그를 꼭 보관해야하는 상황에서는 Alarm 등의 서비스를 이용하기 위해 7일 정도로 CloudWatch 에 보관하고 CloudWatch 의 로그를 S3 로 옮겨 1~2달을 보관하고 이후에는 S3 Glacier 로 옮겨 Archive 하는 것이 비용적으로 가장 효율적일 것이다. 그런데 문제점은 CloudWatch -> S3 로 옮기는 버튼은 AWS 콘솔에 존재하지만 주기적으로 ..
-
[Java] 클래스 로드와 클래스 초기화 (StaticInnerClass, InnerClass, MemoryLeak)프로그래밍 언어/Java 2022. 11. 6. 14:21
코드리뷰를 받던 중, "왜 내부클래스를 static 으로 선언하셨어요?" 라는 질문을 받게 되었다. 학생때부터 어떤 이유 때문에 습관적으로 써왔던 것이지만 기억이 안나던 나는 어버버 했다. 그 후 검색을 하여 메모리누수 때문이었다는게 기억이 났고, 다시 리뷰어분과 말씀을 나눴다. 그리고 다시 이런 질문을 받았다. "static 도 메모리에 올라가고, non-static 도 메모리에 올라가는건 마찬가지 아닌가요? 인스턴스가 초기화 되지 않으면 메모리에 안올라가는건 non-static 이지 않나요?" 클래스 로드와 클래스 초기화는 다르지 않나? 다른게 맞나..? static 은 클래스뼈대만 stack 영역에 올라가고, 인스턴스 초기화에만 heap 에 올라가는게 아닌가? non-static 은 인스턴스 초기화..
-
[Java/Kotlin] Static nested class 와 Inner Class 중 무엇을 써야할까?프로그래밍 언어/Java 2022. 11. 6. 14:10
불필요한 메모리사용과 메모리 누수를 피하려면 중첩클래스를 사용할 때 Static Nested Class 를 사용하는 것이 좋다. Static Nested Class 중첩 클래스 중, static 키워드를 붙인 내부클래스를 지칭한다. (Java) 중첩 클래스 중, 키워드 없는 내부클래스를 지칭한다. (Kotlin) Inner Class 중첩 클래스 중, 키워드 없는 내부클래스를 지칭한다 (Java) 중첩 클래스 중, inner 키워드를 붙인 내부클래스를 지칭한다. (Kotlin) 인스턴스 생성 시 // JAVA class A { class B{} static class C{} } 위의 예제 코드를 바탕으로 Static Nested Class 는 인스턴스를 생성하면 C 클래스만 생성된다. 반면에, Inner..
-
[Kotlin] static nested Class, inner Class 문법 정리프로그래밍 언어/Kotlin 2022. 11. 6. 13:54
문법 Java keyword Kotlin keyword static nested class static class class inner class class inner class 코드 예시 class Item{ class Price{ // = public static class (In Java) } } class Item{ inner class Price{ // = public class (In Java) } } Reference Kotlin과 Java의 Nested and Inner Classes를 알아보고, Nested classes를 왜 사용해야 하는지 알아본다. | I’m an Android Developer. thdev.tech
-
[Linux] SSH 공개키 만들기Linux & Mac 2022. 10. 28. 17:05
SSH 공개키를 가진 사용자만 접근을 가능하게 하여 한층 안전하게 서비스를 사용하게 위해서 SSH 공개키를 만들어 어떠한 서비스에 등록한 후 해당 서비스를 사용할 때 인증방식으로 사용하게 할 수 있다. SSH 공개키 만들기 ssh-keygen 이라는 프로그램으로 만들면 편하다. ssh-keygen 은 Linux나 Mac의 SSH 패키지에 포함되어있다. ssh 키를 저장하고 싶은 디렉토리를 입력한다. 이때 디렉토리는 절대경로로 기입해야한다. 이후 암호를 두 번 입력한다. 이때 암호를 비워두면 키를 사용할 때 암호를 묻지 않는다. Reference Git - SSH 공개키 만들기 많은 Git 서버들은 SSH 공개키로 인증한다. 공개키를 사용하려면 일단 공개키를 만들어야 한다. 공개키를 만드는 방법은 모든 운..
-
[트러블슈팅] ELB (Elastic Beanstalk) 에 대해 알아두면 좋은 지식들 (feat. ebextensions)Back End/트러블슈팅 2022. 10. 28. 16:13
... 너무 삽질을 많이 했다. 😭 Elastic Beanstalk(ELB) 에 모니터링 알람 설정, 환경 커스터마이징 등을 소스코드레벨에서 관리 할 수 있도록 하는 작업을 진행하면서 알게된 정보를 공유하고자 한다. 특히 httpd.conf 파일이 apache 버전으로 남아있던 현상은 두고두고 기억에 남을 것 같다. ELB & .ebextensions 1. *.config 파일들은 이름의 오름차순으로 실행된다. 작업 순서가 중요한 config 들은 00_tomcat.config , 01_unzip_font.config 와 같이 네이밍하여 작성한다. 2. *.config 파일 내부에 사용되는 프로퍼티인 commands 와 container_commands 는 실행시점에서 차이가 있다. # commands ..
-
[Linux] vi editor 유용한 명령어 모음Linux & Mac 2022. 10. 28. 16:00
1. 커서 이동 관련 :set number 행 번호가 표시된다. :set number 이후 :{number} 해당 행({number})으로 커서가 바로 이동한다. gg 문서의 맨 위로 이동한다. shift + g 문서의 제일 마지막으로 이동 k 한 줄 위로 이동 j 한 줄 아래로 이동 $ 해당 라인 제일 마지막으로 이동 0 (숫자 0) 해당 라인 제일 처음으로 이동 2. 편집 기능 dd 해당 행을 삭제한다. yy 현재 라인 복사 p dd 로 삭제한 내용 or yy 복사한 내용 붙여넣기
-
[AWS] 서비스에 WAF 적용하기Back End/AWS 2022. 10. 10. 20:58
WAF 란? WAF(Web application firewall) 는 OSI 4레벨 layer 가 아닌 7레벨 Layer 에 적용되는 방화벽이다. WAF 라는 서비스를 사용하여 OWASP’s Top 10 Web Application Vulnerabilities 에 대한 방어를 어느정도 쉽게 구축할 수 있다. AWS WAF AWS 에서 제공하는 클라우드 환경에서 어려움 없이 쉽게 적용할 수 있는 WAF 서비스이다. OWASP’s Top 10 중 CSRF 를 제외하면 WAF를 적용하는 것 하나만으로 XSS공격, SQL Injection 공격을 포함하여 모두 쉽게 차단이 가능하다. 또한 Custom Rule 을 만들어서 특정 IP 가 일정시간 내에 규칙을 초과한 요청을 보낼 경우 Black List 에 넣거나..