Git Submodule 최신 커밋으로 업데이트

IntroGit submodule은 프로젝트 안에 다른 Git 저장소를 포함할 때 유용하게 쓰인다. 하지만 서브모듈은 특정 커밋에 고정되기 때문에 메인 저장소를 업데이트해도 서브모듈이 자동으로 최신 상태로 업데이트 되지 않는다. 아래의 경우에 속한다면 불편함을 겪고 있었을 거라 생각한다.프로젝트에 외부 라이브러리나 모듈이 포함된 경우서브모듈이 자주 업데이트되는 상황에서 최신 상태를 유지하고 싶을 때여러 서브모듈이 있어 일일이 들어가서 업데이트하기 번거로울 때서브모듈을 최신 커밋으로 업데이트할 때, 하나씩 디렉터리에 들어가서 업데이트하지 않고, 명령어 하나로 깔끔하게 처리하는 방법을 알아보자.서브모듈 업데이트1. 서브모듈 초기화 및 업데이트우선, 서브모듈이 아직 초기화되지 않았다면 초기화부터 해주자.git..

Development/Git 2024.11.25
macOS와 Linux에서 `sed -i` 옵션 동작 차이

Introsed의 -i 옵션은 파일을 직접 수정(in-place)하는 기능을 제공한다. 하지만 GNU sed(주로 Linux에서 사용)와 BSD sed(macOS에서 사용) 간의 구현 방식 차이로 인해 같은 명령어라도 다른 결과를 초래할 수 있다. 그 차이는 다음과 같다:GNU sed: -i 뒤에 백업 확장자를 생략하면 원본 파일을 수정하며, 백업 파일을 생성하지 않는다.BSD sed: -i 뒤에 백업 확장자를 반드시 명시해야 한다. 백업을 원치 않으면 빈 문자열('')을 사용해야 한다.예제 비교sed -i 's/hello/bye/g' example.txtGNU sed: 파일을 백업 없이 수정.BSD sed: 's/hello/bye/g'을 백업 확장자로 해석하려다 에러 발생(invalid command ..

Development/Develop Tools 2024.11.24
LibreOffice Calc셀 병합 단축키 설정

IntroLibreOffice Calc를 사용하다 보면 셀을 병합해야 하는 상황이 자주 있다. 하지만 기본적으로 셀 병합 기능에 대한 단축키가 설정되어 있지 않아 매번 메뉴를 찾아 들어가거나 마우스로 클릭해야 하는 불편함이 있다. 문서작업할 때 하나하나 병합하다보면 화가나기도 한다.생산성을 높이기 위해 단축키를 설정해두면 아주 편리하다. 이번 글에서는 LibreOffice에서 셀 병합 기능을 단축키로 설정하는 방법을 알아본다.단축키 설정먼저 LibreOffice Calc를 실행한 다음, 상단 메뉴에서 Tools를 클릭한다. 드롭다운 메뉴에서 Customize를 선택한다.Customize를 선택하면 아래와 같은 창이 나타난다. 여기서 Keyboard 탭을 선택한다.이제 Keyboard 탭에서 단축키 설정하..

Development/Develop Tools 2024.11.23
DBeaver 사용해 ERD 추출

IntroDBeaver는 데이터베이스 관리할 때 정말 유용한 도구다. 특히, ERD(Entity-Relationship Diagram) 추출 기능은 데이터베이스 구조를 시각적으로 확인하거나 팀원들과 공유할 때 아주 유용하다. 평소 개발하고 DB 접속할때는 인텔리제이를 사용하더라도 ERD 추출할때만큼은 DBeaver를 사용하고 있는 이유다.이 글에서는 DBeaver를 사용해 ERD 이미지를 추출하는 방법을 단계별로 알아본다.ERD 추출Step 1: ER Diagram 생성먼저 DBeaver에서 데이터베이스에 접속한다. 그리고 하단의 Project 윈도우에 있는 ER Diagrams 를 우클릭 하고 Create New ER Diagram을 클릭한다.Step 2: 데이터베이스 범위 선택이제 ERD 창이 열렸으..

Data 2024.11.22
Docker 이미지 빌드실패 (CentOS 7 EOL) Dockerfile 수정

문제 상황최근 CentOS 7을 기반으로 한 프로젝트를 Docker 환경에서 빌드하려다가 문제가 발생했다. 빌드 과정에서 yum 명령어로 패키지를 설치하려고 하면 연결 오류가 발생하며 실패하는 상황이었다. 문제를 살펴보니 CentOS 7이 EOL(End of Life)에 도달하면서 공식 미러에서 패키지 다운로드가 더 이상 지원되지 않는 것이 원인이었다.CeontOS 7 베이스가 404를 응답한다CentOS의 EOL다들 알고 있는 것처럼 CentOS는 Red Hat Enterprise Linux(RHEL) 기반의 무료 운영 체제다. 하지만 최근 몇 년 동안 CentOS 프로젝트는 큰 변화를 겪었다. 특히 CentOS 8의 EOL 선언과 함께 CentOS Stream으로의 전환이 큰 논란을 불러일으켰다. C..

Development/DevOps 2024.11.21