목록Today I Learned (46)
ㅇ.ㅇ

최근에 분명 방화벽 때문에 접속이 안 되는 것 같은데, 매번 사용하는 firewalld 명령어가 안 먹혀서 확인해 보니 해당 서버는 ufw로 관리되고 있었다. 그때 찾아보면서 다양한 방화벽이 있다는 걸 알게 되어 간단히 정리를 해본다. 방화벽(Firewall)이란?방화벽(Firewall)은 네트워크 트래픽을 제어하여 불필요하거나 악의적인 접근을 차단하는 보안 시스템이다. 예를들어 서버에서 특정 포트(예: 80, 443, 22, 8080 등)만 허용하고, 나머지는 차단하여 보안을 강화시킬 수 있다. Linux에서 사용되는 대표적인 방화벽 종류1) firewalld (CentOS, RHEL 기본)CentOS/RHEL에서 기본적으로 사용되는 방화벽 관리 도구.동적 규칙 관리 가능 → 설정 변경 후 별도의 재..

로그와 메트릭, 실무에서 왜 중요한가?로그는 개발하면서 자주 들여다보기 때문에 익숙한 한편, 나는 서비스가 아닌 솔루션을 개발하기 때문에 '메트릭'은 많이 만나보지 못했다. 그러다가 작년말쯤 인프런에서 프로메테우스, 그라파나를 실습하는 강의를 보며 메트릭에 대해 알게 되었다. 로그는 서버가 동작할 때 서버의 상태와 동작 정보를 시간 경과에 따라 기록한 결과이며, 시스템의 오류와 문제를 추적하는 데 유용하다. 반면, 메트릭은 시스템의 성능과 상태를 수치화한 통계 데이터로, 시스템의 현재 상태를 쉽게 파악하고 사업 현황을 분석하는 데 활용할 수 있다. 이번 글에서는 이러한 로그와 메트릭에 대해 간략하게 정리해보려고 한다. 로그(logs)란?로그는 애플리케이션이나 시스템이 동작하는 동안 발생하는 이벤트를 기..

개발을 하다 보면 JDK, Gradle, Maven 같은 다양한 도구를 설치하고 버전을 관리해야 할 일이 많다. 특히, 여러 버전의 Java를 오가며 작업할 때마다 매번 수동으로 환경변수 설정하는 게 상당히 번거롭다.. 이럴 때 SDKMAN!을 사용하면 Java뿐만 아니라 Gradle, Maven 등 여러 개발 도구의 버전을 쉽게 설치하고 전환할 수 있다. 이번에는 SDKMAN!의 설치방법, 사용방법을 간단히 적어보려고 한다. 1. SDKMAN!이란?SDKMAN!(Software Development Kit Manager)은 JDK, Gradle, Maven, Scala 같은 다양한 개발 도구를 간편하게 설치하고 관리할 수 있는 CLI 기반의 버전 관리 도구다. 기본적으로 Linux/macOS용으로 설계..

Tomcat의 bin 디렉토리 안에는 다양한 파일들이 있어서, 오늘 한번 찾아보며 정리를 하려고 한다. Tomcat의 bin 디렉터리에는 다양한 스크립트 및 실행 파일이 포함되어 있다. 이 파일들은 Windows와 Linux(macOS 포함)에서 Tomcat을 실행하고 제어하는 데 사용된다.1. Tomcat 시작 및 종료 관련 파일 파일명 설명 실행 환경 catalina.shTomcat 서버 실행 및 관리하는 메인 스크립트 (Linux/macOS용)Linux/macOS (SH)catalina.batTomcat 서버 실행 및 관리하는 메인 스크립트 (Windows용)Windows (BAT)startup.shTomcat을 백그라운드에서 실행하는 스크립트 (catalina.sh start와 동일)Linux/..

Stirling PDF이란? Stirling PDF는 브라우저에서 PDF를 변환, 편집, 병합, 분할할 수 있는 오픈소스 웹 애플리케이션이다. Docker를 사용하면 별도 환경 설정 없이 빠르게 실행할 수 있다.PDF 병합, 분할, 압축OCR (광학 문자 인식) 지원Word, Excel, PowerPoint → PDF 변환이미지(PNG, JPG) → PDF 변환PDF 보호 및 암호 해제다크 모드 지원자체 호스팅 가능 (클라우드 의존 없음) Docker로 Stirling PDF 설치하기docker run -d --name stirling-pdf -p 8080:8080 --restart unless-stopped ghcr.io/frooodle/s-pdf:latest-d → 백그라운드에서 실행.--name s..

로그 레벨이란?로그 레벨은 시스템에서 발생하는 이벤트를 중요도에 따라 구분하여 기록하는 기준이다. 로그 레벨을 적절히 설정하면, 불필요한 로그나 알람을 줄이고 긴급한 문제에 집중할 수 있다. 특히, 로그는 시스템 모니터링과 문제 해결의 핵심 도구이기 때문에, 레벨별 역할과 사용 방법을 명확히 이해하는 것이 중요하다. 대표적인 로그 레벨과 활용DEBUG용도 : 개발 환경에서 내부 로직 흐름을 추적하거나, 디버깅 시 세부 정보를 확인할 때 사용.특징 : 너무 많은 로그를 남길 수 있으므로 운영 환경에서는 일반적으로 비활성화.예시 : 메서드 호출 순서, 파라미터 값 확인 등.INFO용도 : 애플리케이션의 정상 동작과 주요 이벤트를 기록.특징 : 운영 환경에서도 남기는 경우가 많으며, 시스템 상태 파악 및 장애..

이번에 리눅스 서버를 포맷하고 새로 구축하는 과정에서 ios 파일이라는 단어를 들었는데 부끄럽지만 처음 들어보게 되었다. 그래서 찾아보고 정리해서 적어보는 글이다. 1. ISO 파일이란?ISO 파일은 CD, DVD, Blu-ray와 같은 광학 디스크의 내용을 그대로 복제한 디스크 이미지 파일 형식이다. 이름은 International Organization for Standardization(국제 표준화 기구)에서 유래했으며, 디스크 구조를 표준화한 형태로 다양한 환경에서 활용된다. 쉽게 말해, 디스크 전체를 하나의 파일로 압축한 것이라 보면 된다. 2. ISO 파일의 특징디스크 이미지디스크의 모든 데이터와 구조(파일 시스템, 디렉터리, 부트 로더 등)를 포함.읽기 전용 형식ISO 파일은 수정 불가능하..

이번에 소나큐브를 사용해서 웹 취약점 부분을 파악하다가, 파일경로와 같은 부분에서 normalize()를 이용하라는 팁을 보았다. normalize... 사용해본적이 없기에 이번기회에 정리를 해본다. 1. normalize()란? normalize() 메서드는 파일 경로(Path)를 정리하고 단순화하는 역할을 한다. Java의 NIO (New I/O) 패키지에서 제공되는 이 기능은 경로 문자열에 포함된 불필요하거나 모호한 요소(예: ., .., 중복된 슬래시 등)를 제거해 깔끔하고 표준화된 경로를 생성한다. 쉽게 말해, 복잡한 경로를 정리해 읽기 쉽고 명확한 경로로 변환해주는 도구인 것이다. 2. normalize() 주요 역할 1. 불필요한 경로 요소 제거: 경로 내에 있는 . (현재 디렉토리)와 ..
이번에는 Docker를 활용해 SonarQube를 설치하고, 간단한 기본 설정을 진행하는 과정을 정리해보려고 한다. Docker를 이용하면 설치와 관리를 빠르고 간편하게 할 수 있으니, 처음 SonarQube 사용하는 사람들에게 특히 추천한다. 1. SonarQube 도커 설치(공식 가이드 참조 : SonarQube 설치에 대해 자세한 내용이 필요하다면 SonarQube 공식 사이트를 참고하자)1. 도커 이미지 다운로드아래 명령어로 SonarQube 이미지를 다운로드한다.# 이미지 가져오기docker pull sonarqube# 이미지 목록 확인docker images 태그는 community, latest 등을 사용할 수 있으며, 생략하면 기본적으로 최신 버전을 가져온다.2. 컨테이너 실행다운로드한 이..

최근 보안 취약점 패치를 많이 진행하면서 자연스럽게 효율성, 가독성, 유용성등과 같은 코드 품질에 대해 고민하게 되었다. 그러다 코드를 스캔해 문제점을 바로 찾아주는 소나큐브(SonarQube)를 사용해 보게 됐다. 유명한 도구라 다들 한 번쯤은 들어봤을 법한데, 이 소나큐브를 기반으로 만든 플러그인이 바로 소나린트(SonarLint)다.일단 한두 번 설치해서 테스트해 보는 중인데, 사용해 보면서 관련 내용을 정리해 블로그에 남기면 좋겠다는 생각이 들었다. 단순히 쓰는 것과 제대로 알고 쓰는 건 확실히 다르니까.SonarQube란 무엇일까 소나큐브는 코드 품질을 자동으로 분석하고 관리해 주는 도구이다. 개발자가 작성한 코드를 스캔해서 문제점(버그, 보안 취약점, 비효율적인 코드)을 찾아내고, 이를 해결할..