목록전체 글 (74)
ㅇ.ㅇ

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 옵션을 사용하면 특정 메시지를 ..

상황컴파일하는 과정에서 생소한 Warning이 나왔다. 에러 내용[WARNING] non-varargs call of varargs method with inexact argument type for last parameter; cast to java.lang.Object for a varargs call cast to java.lang.Object[] for a non-varargs call and to suppress this warning 문제 원인가변 인자(varargs) 메서드를 호출할 때, 마지막 인자가 정확한 타입이 아니라서 문제가 발생하고 있다. 해결책으로 Object나 Object[]로 캐스팅하라는 제안이 포함되어 있다. // 문제가 되는 코드GlobalContext.getMessag..

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..