jar 파일 실행해 보셨어요?
·
TIL
혹시 jar 파일 실행해 보셨어요?? 회사에서 과거 프로젝트와 관련된 업무를 마무리하던 중, 선임분께서 보안상의 이유로 직접 실행이 가능한 jar 파일을 요청하셨다.나는 그렇게 프로젝트를 빌드하고, jar 파일이 정상적으로 실행되는지 테스트까지 마치고 전달드렸다. 그런데 얼마 지나지 않아 선임분께서 위의 같은 질문과 함께 에러 로그를 보내셨다. 이번 글에서는 에러 로그를 살펴보면서, "jar 파일이 환경에 따라 왜 실행이 안 될 수 있는지" 에 대해 이야기해보려 한다. 1. 에러 로그를 살펴보자 전체 에러 로그를 보면 상당히 기니, 주요 에러 로그만 단계별로 살펴보자. 1) java.lang.IllegalStateException: Cannot load configuration class스프링 애플..
자바 모듈, Gradle 모듈 무엇이 다를까? (feat. 멀티 모듈)
·
TIL
자바에서의 모듈과 Gradle 모듈이 다르다는 것 아시나요? "멀티 모듈 프로젝트"를 주제로 하는 스터디를 진행하던 중, 우연히 나온 질문이었다.Think.. 그 물음에 대한 답을 찾아보자! 1. 자바 모듈모듈을 알아보기 전에, 먼저 자바 패키지의 한계에 대해서 짚고 넘어가야 한다. 자바 패키지는 자바 클래스들을 논리적으로 묶어주는 단위이다.패키지 내에 정의되어 있는 클래스들은 기본적으로 다음과 같은 접근 제어자를 갖는다.`public class A`: 모든 패키지에서 접근 가능`(package-private) class A`: 같은 패키지에서만 접근 가능참고로 `private class A`는 자기 자신만 접근이 가능한 클래스로, 이러한 선언 자체가 의미가 없어지게 된다.따라서 문법적으로 최상위 클..
Prometheus / Grafana - 모니터링 구축 + 알림 구현
·
DevOps
지난 시간에는 PMM 오픈소스를 사용해, DB와 호스트 서버를 모니터링 하는 시스템을 구축했다.하지만 PMM 아키텍처를 확인해보면, PMM도 Prometheus와 Grafana를 활용하고 있음을 알 수 있었다.(사실상 Prometheus와 Grafana가 모니터링 오픈소스의 표준인 듯한..) 이번 글의 목표는 다음과 같다.Prometheus 내부 구성 요소와 역할을 학습하고, 아키텍처를 이해한다.`docker-compose`를 활용해 Prometheus, Grafana, exporter를 설치하며, Prometheus 동작 방식을 이해한다.Grafana의 기본 내장 데이터베이스인 SQLite를 MySQL로 대체하는 과정을 소개한다.Prometheus와 Grafana 을 연동하고, GUI 대시보드 생성 방..
PMM - 모니터링 구축 + 알림 구현
·
DevOps
이번 글에서는 PMM으로 모니터링 시스템을 구축하는 과정에서 학습한 개념들을 정리합니다. PMM 아키텍처 흐름을 이해하고, 각 구성 요소가 어떤 역할을 하는지 살펴본다.PMM 설치를 해보고, 그 과정에서 마주칠 수 있는 이슈들과 해결 방법을 공유한다.QAN 기능을 활용하기 위해, 쿼리 수집 옵션(perfschema, slowlog)이 어떻게 동작하는지 알아본다. 1. PMM 이란?PMM(Percona Monitoring and Management)은 Percona에서 제공하는 Prometheus/VictoriaMetrics + Grafana 기반의 데이터베이스 모니터링 도구이다. MySQL, MariaDB, PostgreSQL, MongoDB 등 다양한 DBMS를 지원하며, 데이터베이스와 서버의 상태를 ..
HMAC•RSA 알고리즘을 사용한 JWT Signature
·
CS
참여하고 있는 스터디에서 위 주제로 간단한 세션 발표를 진행하게 되어, 관련하여 글을 준비하게 되었다.😵 글의 목표는 다음과 같다.JWT 서명(Signature)에 대해 간략히 리뷰한다.HMAC / RSA 알고리즘을 사용해 JWT 서명을 생성하고 검증하는 과정을 이해한다. 분산 환경에서 JWT를 어떻게 검증할 수 있을지 알아본다. 1. JWT SignatureJWT의 세 번째 구성 요소Base64 URL 인코딩 된 Header + Payload를 secret key로 암호화 한 값무결성: Payload의 위조 여부 확인신뢰성: 누가 보냈는지 인증 가능 2. JWT Signature 생성- HS256 1. 개념HS256은 HMAC 방식 + SHA-256 해시 함수를 사용한 알고리즘H..
대칭키와 비대칭키
·
CS
보안의 시작을 알리는 개념인 `대칭키`와 `비대칭키` 처음 이 개념들을 마주할 때는 그저 외우기에 급했지만, 동작 플로우를 이해하면 쉽게 이해할 수 있는 개념이라고 생각된다. 이번 글의 목표는 다음과 같다.대칭키와 비대칭키의 개념과 장단점을 정리한다.비대칭키를 활용한 암호화와 인증 과정을 흐름도를 통해 이해한다.대칭키를 안전하게 공유하는 방법을 알아보고, 공개키 위조 문제의 해결 방안을 간략히 살펴본다. 1. 대칭키: 암호화, 복호화에 사용하는 키가 동일한 암호화 방식이다. 장점알고리즘이 단순해 암호화/복호화 속도가 빠르다. 단점키 공유 문제송수신자 간의 동일한 키를 안전하게 공유하기 어렵다.확장성 문제사용자 수가 많아지면, 각 쌍마다 고유한 키가 필요해 키 관리가 복잡해진다.N명이 서로 통신하려면 n..