분류 전체보기

    Spring Boot 로그(Log) 남기기, log4j2을 사용한 로깅 전략

    Spring Boot 로그(Log) 남기기, log4j2을 사용한 로깅 전략

    로그(Log)란? 로그(Log) 남기기 어플리케이션을 운영할 때 작동 정보인 로그(Log)를 기록하는 행위를 해주어야 합니다. 로그를 기록하면 어플리케이션의 상태를 추적하고, 오류 인지 및 잠재적인 문제를 진단할 수 있습니다. 즉 로깅을 통해 로직의 흐름을 파악함으로써 서비스의 품질을 관리할 수 있기 때문에 로깅은 개발자들에게 필수적입니다. 그러나 로그를 무분별하게 기록하면 로그 파일의 볼륨이 너무 커져 문제를 야기할 수 있습니다. 따라서 예외가 발생하는 곳이나, 중요 기능이 실행되는 부분에 적절한 로깅을 남겨 효율적으로 처리하는 것이 중요합니다. 로그 레벨 로그 레벨은 로그 메시지의 중요도를 나타냅니다. 로그 레벨에는 총 6가지의 레벨이 있습니다. 로깅 레벨을 올바르게 선택하면 적절한 정보만 로그로 남..

    RSA를 이용하여 페이로드(ex. 비밀번호) 암호화하기 (Vue.js / Spring Boot)

    RSA를 이용하여 페이로드(ex. 비밀번호) 암호화하기 (Vue.js / Spring Boot)

    0. 상황 Vue.js에서 아이디(userId)와 비밀번호(userPassword)를 입력하여 로그인을 해봅니다. 개발자 모드(F12)를 켜서 페이로드를 살펴보면 다음과 같이 사용자가 입력한 아이디와 비밀번호를 바로 확인할 수 있습니다. 보안을 위해 비밀번호(userPassword)를 암호화하여 요청하고 싶습니다. 이때 우리는 바로 전 포스팅에서 생성한 비대칭 키 RSA를 사용할 것입니다. 1. Vue.js에서 RSA 공개키로 암호화 JavaScript 라이브러리인 jsencrypt를 사용하여 암호화를 수행할 것입니다. 이를 위해 먼저 jsencrypt를 설치해줍니다. npm install jsencrypt 그런 다음, Vue.js 컴포넌트에서 RSA 공개키로 암호화를 수행하는 코드를 작성합니다. 저는 ..

    OpenSSL을 통해 RSA 공개키, 개인키 생성하기

    OpenSSL을 통해 RSA 공개키, 개인키 생성하기

    1. OpenSSL 설치하기 Windows: https://slproweb.com/products/Win32OpenSSL.html 혹은 https://code.google.com/archive/p/openssl-for-windows/downloads 등에서 OpenSSL을 다운로드하여 설치하면 됩니다. Mac: brew install openssl 2. openssl.exe 파일 위치로 이동하기 openssl-0.9.8k_X64\bin\openssl.exe 위치로 이동해줍니다. 3. private_key 생성 1) private_key.pem 생성 openssl-0.9.8k_X64\bin> openssl genrsa -out private_key.pem 1024 생성된 private_key.pem (PK..

    Git 초보자도 쉽게 이해할 수 있는 Git (2) 문법 정리 (feat. Github)

    Git 초보자도 쉽게 이해할 수 있는 Git (2) 문법 정리 (feat. Github)

    Git 초보자도 쉽게 이해할 수 있는 Git (1) 개념 및 용어 정리 Git 초보자도 쉽게 이해할 수 있는 Git (1) 개념 및 용어 정리 Git은 VCS(버전 관리 시스템)으로 협업 및 관리를 위한 강력한 도구입니다. 그럼 VCS는 무엇일까요? VCS VCS(버전 관리 시스템)는 소스 코드의 변경 이력을 관리하는 도구로, 개발자들이 소스 코드를 yeo-computerclass.tistory.com 1. Git 설치하기 먼저 Git을 사용하기 앞서 설치부터 해주어야 합니다. Git은 공식 웹사이트(https://git-scm.com/)에서 다운로드할 수 있습니다. 2. Git 설정 문법 git config --list: 해당 Git 저장소의 설정 확인 git config [설정할 키] [설정할 값]:..

    Git 초보자도 쉽게 이해할 수 있는 Git (1) 개념 및 용어 정리

    Git 초보자도 쉽게 이해할 수 있는 Git (1) 개념 및 용어 정리

    Git은 VCS(버전 관리 시스템)으로 협업 및 관리를 위한 강력한 도구입니다. 그럼 VCS는 무엇일까요? VCS VCS(버전 관리 시스템)는 소스 코드의 변경 이력을 관리하는 도구로, 개발자들이 소스 코드를 효율적으로 관리하고 협업할 수 있도록 돕습니다. VCS는 소스 코드가 변경될 때마다 변경 된 소스 코드 파일의 변화를 기록 (변경점 관리)합니다. 이렇게 기록한 변경점으로 소스 코드를 복구하거나 특정 시점의 파일을 가져올 수 있습니다. 또한 특정 시점에 수정한 파일을 가져와 수정된 내용을 비교하는 것이 가능하고, 해당 파일을 누가 변경했는지, 또 어떻게 파일이 변경되어 왔는지를 추적할 수 있습니다. VCS를 통해 소스 코드의 이력을 추적할 수 있고, 여러 명의 개발자들이 분산 개발을 하며 협업할 수..

    Kafka Spring Boot 3으로 간단하게 Producer, Consumer 구현해보기

    Kafka Spring Boot 3으로 간단하게 Producer, Consumer 구현해보기

    JSON 형태인 데이터(메시지)를 Producer가 보내고 Consumer가 읽는 코드를 간단하게 구현해보도록 하겠습니다. 아래 코드를 작성해보시고 실행해보시면 정상작동합니다. 예제 코드가 정상 작동하기 위해서는 당연히 예제 쓰일 topic이 생성되어야 하고, zookeeper와 kafka를 실행시켜주셔야합니다. (zookeeper는 지양되지만 현 예제에서는 zookeeper를 사용하도록 하겠습니다) 1. zookeeper 실행 D:\tool\kafka> .\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties 2. (broker) 서버 실행 D:\tool\kafka> .\bin\windows\kafka-server-start.bat ..

    Kafka Kafka명령어, local 환경에 Kafka Cluster 구축

    Kafka Kafka명령어, local 환경에 Kafka Cluster 구축

    Kafka 설치 아래 링크에 들어가 Binary downloads를 하면됩니다. Version은 자신의 환경 및 학습하고자 하는 버전에 맞게 다운받으시면 됩니다. (저는 기존에 깔아둔 2.8.2 version 입니다.) https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org Broker 3대 실행하기 Broker를 실행해주기 위해 설정파일을 작성해줍니다. 설치한 Kafka 폴더안에 config 폴더로 이동하여 server.properties 설정파일을 작성해줍니다. 설정 파일 작성 server.properties는 Broker에 대한 설정 파일입니다. 우리는 ..

    Kafka 카프카(Kafka)란?

    Kafka 카프카(Kafka)란?

    아파치 카프카 (Apache Kafka)란? 정의 Apache Kafka는 실시간 데이터 스트리밍을 처리하기 위한 오픈 소스 분산형 Pub/Sub 메시징 플랫폼입니다. 주로 대규모 데이터 처리, 실시간 데이터 파이프라인 구축, 스트리밍 분석, 데이터 통합 등에 사용됩니다. 탄생 배경 Kafka는 LinkedIn에서 개발했습니다. LinkedIn은 사용자들의 활동, 컨텐츠 등 대량의 데이터를 실시간으로 추적하고 처리하려했습니다. 기존 데이터 처리 시스템으로 해결할 수 있었습니다. 하지만 서비스가 커지면서 처리해야할 데이터도 많아지고 노드도 많아졌습니다. 이에 따라 데이터 파이프라인은 매우 복잡해졌고, 대규모 데이터를 처리하는데 한계를 느끼게되었습니다. 이에 LinkedIn은 대용량의 데이터를 효율적으로 처..