2024/09 22

[Linux] 마운트

마운트(mount)는 외부 저장 장치나 파일 시스템을 리눅스의 디렉토리 트리에 연결하는 과정을 의미한다. 이를 통해 사용자는 외부 장치의 데이터를 로컬 파일처럼 접근하고 조작할 수 있다.파일 시스템 접근성 향상: 외부 장치의 데이터를 로컬 파일 시스템과 동일하게 사용할 수 있다.데이터 관리 용이성: 다양한 저장 장치를 효율적으로 관리하고 사용할 수 있다.시스템 확장성: 필요에 따라 저장 용량을 쉽게 확장할 수 있다. 마운트의 종류 및 사용 사례리눅스에서는 다양한 마운트 방법과 옵션을 제공하여 사용자가 필요에 맞게 외부 장치를 관리할 수 있도록 한다. 아래는 주요 마운트 종류와 사용 사례를 정리한 표이다.마운트 종류설명사용 사례자동 마운트(Auto Mount)시스템 부팅 시 자동으로 마운트되는 방식USB ..

CS/Linux 2024.09.18

[Linux] vi 에디터

vi 에디터는 리눅스와 유닉스 계열 운영체제에서 기본적으로 제공되는 텍스트 편집기다. 빠른 속도와 강력한 기능으로 인해 많은 시스템 관리자와 개발자들이 선호한다. vi는 다양한 모드로 작동하며, 효율적인 텍스트 편집을 가능하게 한다. vi의 모드vi는 크게 두 가지 모드로 구성된다:명령 모드 (Command Mode): 기본 모드로, 커서 이동이나 텍스트 편집 명령을 입력할 수 있다.입력 모드 (Insert Mode): 텍스트를 실제로 입력할 수 있는 모드다.모드 전환은 다음과 같이 한다:명령 모드에서 입력 모드로 전환: i, a, o 등을 누른다.입력 모드에서 명령 모드로 전환: Esc 키를 누른다. 기본 조작법커서 이동vi의 강력한 기능 중 하나는 효율적인 커서 이동이다. 명령어기능설명h왼쪽으로 이동..

CS/Linux 2024.09.18

[Linux] 런레벨

런레벨의 개념런레벨(runlevel)은 리눅스 시스템의 운영 모드를 정의하는 숫자 또는 이름이다. 각 런레벨은 시스템이 어떤 서비스와 데몬을 실행할지를 결정한다. 현대적인 배포판에서는 systemd를 사용하여 타겟(target)이라는 개념으로 런레벨을 관리한다. 런레벨의 종류아래는 systemd에서 사용되는 타겟과 전통적인 런레벨 간의 대응 관계를 나타낸 표이다.런레벨영문 모드systemd 타겟설명0Power Offrunlevel0.targetpoweroff.target시스템 종료 모드이다. 시스템을 안전하게 종료한다.1Rescuerunlevel1.targetrescue.target구조 모드(단일 사용자 모드)이다. 최소한의 서비스만 실행된다.3Multi-Userrunlevel3.targetmulti-u..

CS/Linux 2024.09.18

[Linux] 가상 콘솔

가상 콘솔이란?가상 콘솔은 하나의 물리적인 키보드와 모니터로 여러 개의 독립된 터미널 세션을 제공하는 기능이다. 리눅스는 기본적으로 여러 개의 가상 콘솔을 지원하며, 사용자는 간단한 키 조합으로 콘솔 간 전환이 가능하다.주요 특징다중 사용자 환경 지원: 여러 사용자가 동시에 로그인하여 작업할 수 있다.서버 관리 편의성: 그래픽 환경 없이도 여러 작업을 병렬로 수행할 수 있다.시스템 디버깅 및 유지보수: X 서버나 데스크톱 환경에 문제가 발생했을 때 유용하다.주의 사항원격 접속 시: SSH 등을 통해 원격으로 접속하는 경우 가상 콘솔은 영향을 받지 않는다.클라우드 및 가상 머신 환경: 물리적인 서버에서는 가상 콘솔이 유용하지만, 클라우드나 가상 머신 환경에서는 가상 콘솔에 직접 접근하기 어렵다.보안 경고:..

CS/Linux 2024.09.18

[Linux] 개요

LinuxLinux는 1991년 핀란드의 대학생 리누스 토르발스(Linus Torvalds)가 개발한 오픈 소스 커널(kernel)이다. 처음에는 개인 프로젝트로 시작되었지만, 전 세계 개발자들의 참여로 빠르게 성장하여 오늘날 다양한 분야에서 사용되고 있다.특징오픈 소스: 소스 코드가 공개되어 누구나 수정 및 배포가 가능하다.유연성: 다양한 하드웨어와 소프트웨어 환경에서 동작하도록 설계되었다.다양한 배포판: Ubuntu, Fedora, Debian 등 수많은 배포판이 존재하여 선택의 폭이 넓다.안정성과 보안성: 서버, 데스크톱, 임베디드 시스템 등에서 높은 안정성과 보안성을 제공한다. 커널이란 무엇인가?커널(kernel)은 운영체제의 핵심 구성 요소로, 하드웨어와 소프트웨어 간의 상호 작용을 관리한다. ..

CS/Linux 2024.09.15

[VM] VMware의 VMnet

VMnet은 VMware에서 가상 네트워크를 구성하기 위한 인터페이스이다. VMware는 가상 머신(VM)이 호스트 시스템과 통신하거나 다른 VM들과 네트워크를 형성할 수 있도록 다양한 VMnet을 제공한다.기본적으로 제공되는 VMnetVMnet0 (Bridged 네트워크)가상 머신이 호스트의 실제 네트워크 어댑터를 통해 네트워크에 직접 연결된다.가상 머신은 호스트와 동일한 네트워크에 속하며, 외부 네트워크에서도 독립적인 장치로 인식된다.VMnet1 (Host-Only 네트워크)가상 머신과 호스트 간의 통신만 가능하며, 외부 네트워크(인터넷)에는 접근할 수 없다.외부와 격리된 안전한 테스트 환경을 구축할 때 유용하다.VMnet8 (NAT 네트워크)가상 머신이 호스트의 네트워크 연결을 공유하여 인터넷에 접..

DevOps/VM 2024.09.15

[VM] 스토리지 인터페이스

가상 머신(VM)을 생성할 때 스토리지 인터페이스의 선택은 시스템의 성능과 안정성에 직접적인 영향을 미치는 중요한 요소이다. 올바른 스토리지 인터페이스를 선택하면 VM의 운영 효율성을 높일 수 있지만, 잘못된 선택은 성능 저하나 호환성 문제를 야기할 수 있다. 스토리지 인터페이스란?스토리지 인터페이스는 컴퓨터 시스템에서 저장 장치와 메인보드 간의 데이터 전송을 담당하는 물리적 또는 논리적 연결 방식을 의미한다. 하드 디스크 드라이브(HDD), 솔리드 스테이트 드라이브(SSD) 등과 같은 저장 매체가 CPU와 데이터를 주고받는 통로 역할을 한다.주요 스토리지 인터페이스 종류IDE(Integrated Drive Electronics)초기의 병렬 ATA(PATA) 인터페이스로, 오래된 시스템에서 주로 사용된다..

DevOps/VM 2024.09.15

[Container] 컨테이너 사용자 설정 및 권한

도커 컨테이너는 기본적으로 루트 사용자(UID 0)로 실행된다. 그러나 루트 사용자로 실행되는 것은 보안상 위험할 수 있다. 컨테이너가 보안 침해를 당할 경우, 루트 권한을 가진 컨테이너는 호스트 시스템에 영향을 미칠 수 있기 때문이다. 따라서 비루트 사용자를 사용하여 컨테이너를 실행하는 것이 일반적으로 권장된다. 도커 이미지는 설계 목적에 따라 다르게 구성되어 있으며, 이미지마다 기본적으로 설정된 사용자가 다를 수 있다. 컨테이너 사용자 설정과 호스트 사용자 간의 관계도커 컨테이너는 호스트 시스템과 격리되어 동작하지만, UID(사용자 ID)와 GID(그룹 ID) 개념은 유지된다. 이는 파일과 디렉토리의 소유권과 권한 관리에 영향을 미친다. 컨테이너가 호스트의 디렉토리를 마운트 할 때, 컨테이너 내부에서..

DevOps/Container 2024.09.14

[NestJS] HTTP 기본 제공 예외 클래스

다음은 NestJS에서 제공하는 예외 클래스와 그에 해당하는 HTTP 상태 코드 및 기본 메시지를 정리한 표이다. NestJS는 HTTP 상태 코드와 관련된 예외 처리를 기본적으로 제공하며, 이들은 모두 HttpException을 상속받아 구현되어 있다.기본 메시지는 NestJS가 기본적으로 제공하는 HTTP 상태 코드에 맞는 예외에 대한 설명이다.예외 클래스는 필요에 따라 커스텀 메시지를 추가로 제공할 수 있다.이 예외 클래스들은 HttpException을 상속받아 사용되며, 필요한 경우 예외 메시지나 상태 코드를 직접 지정할 수 있다.GlobalExceptionHandler를 매번 구현할 필요 없이 그대로 사용하면 생산성을 높일 수 있을 것 같다.예외 클래스HTTP 상태 코드기본 메시지BadReque..

Javascript/NestJS 2024.09.07

[k8s] DNS

쿠버네티스에서 DNS(Domain Name System)는 클러스터 내 서비스와 파드 간의 통신을 간소화하는 중요한 구성 요소이다. 클러스터를 생성하면 기본적으로 DNS 서비스가 자동으로 설정되며, 최근의 쿠버네티스 클러스터에서는 CoreDNS가 기본 DNS 서비스로 사용된다. CoreDNS는 유연한 플러그인 아키텍처를 제공하여 클러스터 DNS뿐만 아니라 다른 네임서버와의 통합도 가능하게 한다. DNS 이름 형식쿠버네티스는 각 서비스에 대해 자동으로 DNS 이름을 생성하며, 그 형식은 다음과 같다:..svc.cluster.local예를 들어, default 네임스페이스에 있는 my-service라는 서비스의 DNS 이름은 my-service.default.svc.cluster.local이 된다. 이를 사..

DevOps/K8S 2024.09.02
728x90