목록Today I Learned (45)
ㅇ.ㅇ

1. 기본 rebase 명령어git rebase rebase는 브랜치의 커밋들을 다른 브랜치의 최신 상태 위에 다시 쌓는 명령어. 쉽게 말해, 내 작업을 최신 상태 기준으로 정리해서 얹는 작업이다. git rebase 브랜치명현재 브랜치의 커밋들을 '지정한 브랜치'의 최신 커밋 뒤로 재배치한다. 주로 feature 브랜치를 최신 main 브랜치 기준으로 정리할 때 사용한다.git checkout featuregit rebase main// 실행 전main: A---B---C \feature: D---E---F// 실행 후main: A---B---C \feature: D'--E'--F' 2. 왜 re..

curl이란?curl은 'Client URL'의 줄임말로, 다양한 프로토콜(HTTP, HTTPS, FTP 등)을 이용해 데이터를 전송할 수 있는 커맨드라인 기반 도구이다. 주로 서버와의 통신 테스트, API 호출, 파일 다운로드 등에 사용된다. HTTP 요청을 빠르게 테스트하거나, 스크립트 안에서 네트워크 요청을 자동화해야 할 때 아주 유용하게 쓰인다. 언제 사용하면 좋을까?백엔드 API를 빠르게 테스트하고 싶을 때Postman 없이 CLI에서 바로 API 요청을 보내고 싶을 때서버 상태를 확인하고 싶을 때 (GET 요청 등)파일 업로드/다운로드를 자동화하고 싶을 때CI/CD 파이프라인에서 외부 API를 호출할 때서버의 응답 헤더 및 바디를 확인하고 싶을 때 기본 명령어curl [옵션] [URL]// 예..

분명 war 파일을 압축해제했을 시 /META-INF/ 안에 MANIFEST.MF 파일만 존재했는데, tomcat을 사용시에는 war-tracker라는 이름의 파일이 생기는 경우를 발견했다! 그래서 찾아서 정리해보았다, 그 파일의 정체가 무엇인지... 1. war-tracker 파일의 정체war-tracker는 Tomcat이 .war 파일을 자동 배포(autoDeploy)할 때 생성하는 내부 추적 파일이다. 이 파일은 .war 파일의 변경 여부를 감지하고, 필요한 경우 자동으로 다시 압축 해제하여 애플리케이션을 재배포하는 역할을 한다.생성 위치webapps/ ├── myapp.war ├── myapp/ ├── META-INF/ └── MANIFEST.MF └─..

stash 기능은 전에도 자주 사용해 보았는데, 이번에도 기능개발 중에 stash를 사용하다가 몇 가지 몰랐던 명령어들을 알게 되어 정리를 해보려고 한다. 1. 기본 Stash 명령어git stash현재 작업 중인 변경 사항을 저장(stash)하고, 작업 디렉토리를 깨끗한 상태로 되돌린다.git stash추적된(tracked) 파일의 변경 사항을 저장하고, 작업 디렉토리를 마지막 커밋 상태로 초기화한다.새로운 파일(추적되지 않은 파일, untracked)이나 무시된 파일(ignored)은 기본적으로 stash에 포함되지 않는다. git stash push보다 명확하게 stash를 저장하는 방법. 메시지와 함께 저장할 수도 있다.git stash push -m "메시지"-m 옵션을 사용하면 특정 메시지를 ..

Java 애플리케이션을 배포할 때, JAR, WAR 같은 패키징 파일 내부에는 META-INF 디렉토리와 MANIFEST.MF 파일이 포함된다. 도대체 얘네는 어디에서 나오는걸까? 궁금해서 찾아보며 간단히 정리를 해보았다. 1. META-INF 디렉토리란?META-INF 디렉토리는 JAR, WAR 파일 내부에서 해당 패키지(아카이브)와 관련된 설정 정보를 저장하는 디렉토리다.META-INF의 주요 역할메타데이터 저장 : 패키지의 버전, 개발자 정보 등 포함보안 관련 정보 저장 : 디지털 서명, 암호화 키 등이 위치서비스 로딩 : 특정 인터페이스의 구현체를 자동으로 검색하는 기능 제공MANIFEST.MF 파일 포함 : JAR, WAR의 속성을 정의하는 주요 파일META-INF 디렉토리의 위치JAR 또는 ..

자바에서 파일, 소켓, 데이터베이스 연결 같은 자원을 사용할 때는 반드시 사용 후에 반환해야 한다. 그렇지 않으면 메모리 누수나 시스템 리소스 낭비로 이어질 수 있다. 작년부터 파일 업로드, 다운로드 기능에 대한 리팩토링을 시간 날 때 조금씩 진행하고 있는데, 그 부분에서 try-with-resources 문법을 사용하였고 이번에 간단히 정리해보려고 한다. 1. try-with-resources란?try-with-resources는 자원을 자동으로 닫아주는 기능을 제공하는 문법이다. (자바 7부터 제공) try 블록에서 사용한 리소스를 finally 없이 자동으로 정리해준다.기존 try-catch-finally 방식의 문제점 (리소스 수동 닫기)finally에서 close()를 수동으로 호출해야 함.c..

최근에 라이브러리 취약점 관련 이슈가 많이 나왔다. 관련 내용을 찾아보다가 SBOM이라는 개념을 알게 되어 정리를 해본다. 1. SBOM이란?SBOM(Software Bill of Materials)은 소프트웨어를 구성하는 모든 라이브러리, 패키지, 의존성, 버전 정보를 정리한 문서다.SBOM이 담고 있는 정보어떤 라이브러리를 쓰고 있는지 (패키지 이름, 버전, 공급업체)오픈소스 라이선스 정보 (MIT, Apache 2.0 등)코드 출처 및 무결성 검증용 해시 값즉, SBOM이 있으면 소프트웨어 보안, 라이선스 관리를 더 효과적으로 할 수 있다. 2. SBOM이 중요한 이유보안 강화사용 중인 라이브러리를 한눈에 파악Log4j 같은 보안 취약점 발생 시 즉시 대응 가능!라이선스 준수오픈소스 라이선스 (MI..

데이터베이스를 다루다 보면 NULL 값을 만나게 된다. NULL은 값이 없는 상태를 의미하며, 연산이나 조건문에서 예상치 못한 결과를 초래할 수 있다. Oracle에서는 NULL을 처리할 수 있도록 몇 가지 함수를 제공한다. NVL, NVL2, COALESCE 함수의 사용법과 차이점을 정리해 보자. 1. NVL : NULL이면 지정한 값 반환NVL(값, 대체값)(1) 값이 NULL이면 대체값을 반환(2) 값이 NULL이 아니면 원래 값 반환--------------------------------------(1) 예제SELECT NVL(NULL, 'DEFAULT') AS result FROM dual;// 결과RESULT--------DEFAULT--------------------------------..

sso 관련 기능들을 커스텀하면서 좀 더 제대로 개념 정리를 해야할 것 같아 이렇게 정리를 하게 되었다. SSO(Single Sign-On)란?SSO는 한 번의 로그인으로 여러 시스템이나 서비스에 접근할 수 있도록 해주는 인증 방식이다. 사용자 경험을 개선하고 보안을 강화하는 데 중요한 역할을 한다. SSO가 필요한 이유1. 편의성 증가사용자는 한 번만 로그인하면 여러 서비스에 접근 가능.로그인할 때마다 비밀번호를 입력할 필요 없음.2. 보안 강화여러 개의 비밀번호를 사용하지 않아 보안 위험 감소.보안 정책을 중앙에서 일괄 적용 가능 → 관리 효율성 증가.3. 관리 비용 절감기업에서 계정 관리 및 비밀번호 재설정 요청 감소.IT 부서의 업무 부담 경감. SSO의 동작 방식SSO는 일반적으로 토큰 기반 ..

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