이상을 꿈꾸는 몽상가.. 프로그래밍을 좋아함..


  • HTML Editor과 XSS(Cross Site Scripting) - Python Bleach


    HTML 에디터를 포함한 시스템을 만들게 되면 XSS(Cross Site Scripting)를 대응하기 위해 신경쓸 것이 많습니다.
    Cloud Obect storage를 사용해서 진행했던 방법을 공유하고 그 과정에서 사용했던 Bleach라는 Python 라이브러리를 소개합니다.



  • Terraform, Helm을 이용한 AWS EKS 구성


    Terraform & AWS Logo
    (이미지 출처 : https://github.com/terraform-aws-modules)

    Terraform을 이용해서 AWS EKS를 구성하고 Helm을 이용해서 ingress와 application을 EKS 위에 띄우는 내용을 살펴봅니다.
    진행방식은 AWS에서 제공한 from-zero-to-eks-with-terraform-and-helm 라는 가이드 문서의 예제를 따라하는 방식으로 진행합니다.



  • 유용한 표준 Java RuntimeException


    https://openjdk.java.net
    ( 이미지 출처 : https://openjdk.java.net )

    Java 프로그래밍을 하면서 예외처리를 발생시켜야하는 경우, 우리는 RuntimeException을 상속하는 예외를 사용하면 됩니다.
    그리고 RuntimeException을 상속하는 예외를 새롭게 만드는 것보다는 JDK에서 제공하는 표준 RuntimeExcepton 상속 예외들을 사용하는 것이 바람직합니다.

    JDK 12 기준으로 RuntimeException을 직접 상속하는 예외는 총 58개입니다. (참고 - OpenJdk 12 RuntimeException)
    그리고 그 58개의 예외들을 다시 상속하는 자식 예외들까지 개수를 세면 엄청나게 많습니다.

    그 중 자주 사용하게 되는 유용한 표준 RuntimeException 들을 기록합니다.



  • SLF4J Logger 사용법 & 잘못된 사용법: Binding Parameters, Logging Exception Stack Trace


    SLF4J Logo
    (이미지 출처 : http://www.slf4j.org/)

    Logger의 잘못된 사용법은 어플리케이션의 성능에 큰 영향을 줍니다.
    이러한 문제는 개발 과정 중에는 발견되지 않으며 성능 테스트에서야 발견이 가능합니다.
    성능 테스트 케이스에서 누락된 경우, 운영 중에 많은 부하를 받게 되었을 때 문제를 일으킬 소지가 있습니다.

    이 글은 SLF4J의 올바른 사용법에 대해서 기술합니다. 특히, 파라미터 바인딩과 exception의 stack trace를 로깅하는 올바른 방법에 대해서 기술합니다.



  • Java Thread Safe Collections - List, Queue, Set, Map


    https://openjdk.java.net
    ( 이미지 출처 : https://openjdk.java.net )

    Thread safe 한 Collection(List, Queue, Set) 그리고 Map의 구현체 사용법에 대해서 기술합니다.



  • Contract Test 없이 MSA 도전 : Contract Interface


    API_contract_15

    API 제공자(Provider), 소비자(Consumer) 모두 컴파일 단계에서 계약(Contract)의 API spec을 검증할 방법을 제안합니다.
    기존에 component, contract 테스트에서 받을 수 있었던 피드백을 컴파일 단계에서 받게되어 개발속도가 크게 향상됩니다.



  • 나의 첫 Pull Request : Spring Cloud Gateway


    FirstPullRequest
    Dveamer`s GitHub

    나의 첫 pull request를 보냈다.
    그리고 얼떨결에 Spring Cloud Gateway contributor가 되어버렸다.



  • Spring Cloud Gateway - Resilience4j, Kubernetes


    https://spring.io/
    ( 이미지 출처 : https://upload.wikimedia.org )

    Spring Cloud Gateway의 기본적인 설정 그리고 circuit breaker, retry 설정들을 살펴봅니다.
    그리고 Kubernetes 환경에서는 Spring Cloud Kubernetes를 이용하고 로컬환경에서는 Netflix Eureka를 이용하는 방법을 소개합니다.



  • MSA Micro Service Architecture - PAPI (Permissions API), Spring Cloud Gateway


    인증 & 인가

    Kubernetes 위에서 Spring Cloud Gateway 와 같은 Spring Cloud 계열의 service mesh를 사용해서 구축한 경험을 공유합니다.

    또한 Spring Cloud Gateway와 PAPI 조합을 이용해서 API 별 인증(Authentication) / 인가(Authorization) 처리한 내용을 공유합니다.



  • Setting Android Studio


    AndroidStudio
    ( 이미지 출처 : https://developer.android.com/ )

    이 글은 Ubuntu 환경에서 Android Studio를 설치하고 설정하는 방법을 설명합니다.
    특히 기존에 Google Play에 등록해둔 앱을 새로운 Ubuntu & Android Studio 환경에서 개발하기 위해 개발환경을 구축하는 분들을 위한 글입니다.
    Android 앱 개발에 대한 내용은 다루지 않습니다.