Infra 16

방화벽 인바운드(Inbound), 아웃바운드(Outbound) 이해하기

👀 방화벽이란?서비스를 운영하다 보면 항상 고민하게 되는 질문이 하나 있습니다. "우리 서버는 외부 공격으로부터 안전할까?"이 질문에 가장 기본적이면서도 강력한 답을 주는 것이 바로 방화벽(Firewall)입니다.방화벽은 네트워크의 문지기 역할을 하며, 외부에서 들어오는 트래픽과 내부에서 나가는 트래픽을 감시하고 필터링합니다.쉽게 말해, 방화벽은 “네트워크의 문지기”입니다.어떤 손님(트래픽)을 들이고, 어떤 손님은 돌려보낼지를 규칙(Rule)에 따라 결정됩니다!😀 인바운드(Inbound) vs 아웃바운드(Outbound)두 방화벽 규칙은 트래픽이 오가는 방향을 기준으로 두 가지로 나뉩니다.구분방향예시비유인바운드외부 → 내부사용자가 서버 웹페이지 접속, SSH 접속 요청집 문을 두드리는 손님아웃바운..

Infra 2025.08.17

GitLab CI/CD 캐시, 왜 내 코드가 안 바뀔까?

GitLab CI/CD를 사용할 때, 캐시(cache) 정책 설정이 제대로 되어 있지 않으면 코드 변경이 제대로 반영되지 않는 문제가 발생할 수 있습니다. (나도 가끔 겪었는데 👀) policy: pull 설정 때문에 기존 캐시가 유지되면서 새로운 코드가 반영되지 않는 일이 있습니다.이번 글에서는 GitLab CI/CD의 캐시 개념과 policy 설정의 차이를 살펴보고, 내가 겪었던 문제를 정리해보려고 합니다! 🗒️ GitLab CI/CD cache란?GitLab CI/CD에서 캐시(cache)는 빌드 테스트 속도를 향상시키기 위해 특정 파일이나 디렉터리를 저장하는 기능입니다.캐시는 다음 실행에서 다시 사용될 수 있어 다운로드 시간을 줄이는 데 도움이 됩니다!✅ 캐시와 아티팩트의 차이구분CacheA..

Infra/Git 2025.02.28

리눅스 크론탭(Linux crontab)으로 자동화 작업

리눅스 환경에서는 주기적인 작업을 자동으로 실행할 필요가 있을 때, `crontab`을 사용하여 이를 간편하게 설정할 수 있습니다.이 글에서는 리눅스에서 `crontab`을 설정하고 사용하는 방법을 정리해 보도록 하겠습니다. 👩🏻‍💻 crontab 이란 ⁉️crontab은 리눅스와 유닉스 시스템에서 특정 주기로 명령어를 실행할 수 있는 시스템 도구입니다.예를 들어, 매일 백업을 수행하거나, 정해진 시간에 로그 파일을 관리하는 등의 작업을 자동으로 처리할 수 있습니다.주요 사용 예시매일 새벽 2시에 서버 백업매주 월요일 오전 9시에 서버 리소스 모니터링매일 밤 11시에 로그 파일을 정리 crontab 기본 사용법 crontab은 5개의 필드로 구성된 설정 파일입니다. 각각의 필드는 어떤 작업을 언제 ..

Infra/Linux 2025.01.11

[Linux] 리눅스에서 grep 사용법

리눅스에서 작업을 하다 보면 대용량의 텍스트 파일이나 로그 파일에서 특정 정보를 빠르게 찾아야 할 때가 많습니다.이럴 때 유용하게 쓰이는 명령어가 바로 grep입니다. grep은 파일이나 출력 결과에서 원하는 문자열을 찾아내는 강력한 도구로, 다양한 옵션을 통해 효율적으로 문자열을 검색할 수 있습니다.저도 주로 로그 파일 분석이나 디버깅 과정에서 grep을 자주 활용하고 있는데요, 오늘은 grep 명령어의 기본적인 사용법부터 활용할 수 있는 다양한 팁까지 함께 알아보겠습니다.📝 기본적인 grep 사용법파일 내에서 특정 문자열을 검색할 때 가장 기본적인 사용법은 다음과 같습니다.grep [찾을 문자열] [파일명]예를 들어, example.txt 파일에서 "apple"이라는 단어를 찾고 싶다면grep "a..

Infra/Linux 2024.09.14

리눅스에서 scp 사용법: 안전하게 파일 전송하기

리눅스에서 파일을 원격 서버와 주고받는 상황은 자주 발생합니다.이때 보안이 중요하다면 scp 명령어를 사용하는 것이 좋습니다.scp는 Secure Copy의 약자로 SSH(보안쉘)를 사용하여 데이터를 암호화하며 파일을 전송하는 방법입니다.이번 글에서는 scp의 기본 개념과 사용법을 알아보겠습니다.👀 scp 란?scp는 SSH를 통해 파일을 안전하게 복사하는 명령어로, 로컬과 원격 시스템 간에 파일을 복사하거나, 원격 시스템 간에도 파일을 전송할 수 있습니다. 보안상 중요한 데이터 전송이 필요한 상황에서 주로 사용됩니다.scp 명령어의 기본 구조는 아래와 같습니다.scp [옵션] [복사할 파일] [유저명@호스트명:저장할 위치]  scp 사용 예시로컬에서 원격 서버로 파일 전송하기scp local_file..

Infra/Linux 2024.09.11

[Git] GitHub Repository에 연결하기

로컬 저장소에 만든 레포지토리를 깃허브에서 만든 원격 저장소에 연결하는 방법을 알아보겠습니다 🤗 GitHub Repository 생성자신의 프로필에서 Repositories에 접근하면 New를 클릭하여 Repository를 생성할 수 있습니다! 생성하고 나면 아래와 같은 주소를 확인할 수 있는데 이 주소를 로컬 저장소와 연결하기 위해 복사해 주세요 로컬 저장소에 원격 저장소 연결먼저 원격 저장소 정보가 있는지 확인합니다.git remote -v'not a git repository (or any of the parent directories): .git'저는 git을 사용하지 않던 Repository여서 위와 같은 에러 문구가 뜹니다.아래의 문구를 실행하면 오류가 해결됩니다.git init그리고 아까 ..

Infra/Git 2024.06.28

[Git] Git의 3가지 공간

Git은 세 가지 주요 영역 또는 상태를 가지고 있습니다. Working directory, Staging area, Repository 이 세 가지에 대해 알아보겠습니다. Working directory 프로젝트의 실제 파일들이 저장되는 곳입니다. 이 디렉토리는 수정이 되고 있는 활성 작업 영역입니다. Untracked 파일 Git이 관리하지 않는 파일입니다. 이 파일들을 이전에 커밋되거나 스테이징 영역에 추가되지 않았으며 단순히 작업 디렉토리에 있는 파일입니다. 이러한 파일들을 Git의 관리를 받지 않으므로 변경 사항을 커밋 포함시키기 위해서는 'git add' 명령어를 사용하여 스테이징 영역에 추가해야 합니다. Tracked 파일 Git이 이미 알고 있는 파일로 이전 커밋에서 스테이징 영역에 있었던..

Infra/Git 2023.10.21

[Git] git 충돌 해결하기

Git 충돌을 해결하는 데에는 기본적으로 두 가지 방법이 있습니다. Merge를 사용한 충돌 해결두 가지 브랜치의 변경 사항을 병합하여 새로운 커밋을 만듭니다. 이때 Git은 변경 사항이 충돌할 경우 해당 부분을 마크업으로 표시합니다. 사용자는 충돌을 해결하고 다시 커밋하여 병합을 완료할 수 있습니다. Merge의 장점 - 커밋 히스토리가 보존되며, 원본 브랜치의 커밋 히스토리가 변경되지 않습니다. - 상대적으로 안전하고 이해하기 쉽습니다.Merge의 단점 - 병합 커밋이 많아질 수 있습니다. - 병합 커밋을 추적하기 어려울 수 있습니다. merge로 충돌 해결 하는 예시상황 브랜치 feature/a에서 파일 test을 수정했습니다.동시에 브랜치 feature/b에서도 파일 test을 수정했습니다.이제 ..

Infra/Git 2023.10.18

[Git] branch를 합치는 방법

브랜치를 합치는 방법은 Git에서 두 가지 방식으로 수행할 수 있습니다. Merge(병합) 다른 브랜치의 변경 사항을 현재 브랜치에 통합하는 가장 간단하고 일반적인 방법입니다. 병합 커밋을 만들어 두 브랜치의 변경 사항을 하나로 합칩니다. git checkout main git merge feature 위의 명령어로 main 브랜치에 feature 브랜치를 Merge 할 수 있습니다. 장점 간단하고 안정적인 방법으로 충돌이 발생할 경우 비교적 쉽게 해결할 수 있습니다. 브랜치의 히스토리가 보존되므로 나중에 병합 작업을 추적하기 쉽습니다. 단점 병합 커밋이 많은 이력을 만들 수 있으므로 히스토리가 복잡해질 수 있습니다. Merge 되돌리는 방법 merge도 하나의 커밋이기 때문에 reset이라는 명령어로 ..

Infra/Git 2023.10.15

[Git] 여러 branch 만들어보기

Branch 브랜치 Git의 브랜치는 코드의 개발을 분리하여 동시에 다양한 작업을 수행할 수 있는 기능이다. 브랜치를 사용하면 여러 사람이 동시에 작업을 진행할 때 충돌을 방지하고 각각의 기능이나 작업을 독립적으로 개발할 수 있다. Git에서 브랜치를 만들면 현재 상태를 그대로 복제하여 새로운 브랜치가 생성된다. 이후에는 각각의 브랜치에서 독립적으로 작업할 수 있으며, 변경 사항은 각 브랜치에만 영향을 미친다. 또한 브랜치를 사용하면 안전하게 코드를 테스트하고 실험할 수 있다. 브랜치에서 개발이 완료되면 해당 브랜치를 다른 브랜치나 기본 브랜치에 병합(merge)할 수 있다. 브랜치 목록 확인 git branch 위 명령어를 실행하면 현재 저장소에 있는 모든 브랜치 목록 확인할 수 있다. 현재 작업 중인..

Infra/Git 2023.10.13