-로 시작하는 파일명 여는 방법
CS/운영체제
리눅스에서 파일을 열려고 하는데 다음과 같은 오류를 만날 때가 있다.정상적으로 파일을 읽을 것으로 예상했지만, 읽기는 커녕 아무런 반응도 일으키지 않고 있다. 왜 이런 일이 발생할까?리눅스 CLI에서는 관례적으로 - 또는 --으로 시작하는 값은 명령어의 옵션으로 처리된다.# 예시ls -lrm -rf따라서 -test.txt라는 파일이 있다고 할때,cat -test.txt는 -test.txt라는 파일이 아니라 존재하지 않는 옵션을 전달한 것으로 인식된다. 해결 방안1. -- 사용하기cat -- --- 이후에 오는 값은 옵션이 아닌 순수한 인자로 처리하라는 의미이다.2. 경로 명시하기cat ./-./이 붙는 순간 쉘은 이를 현재 디렉토리의 파일 경로로 인식한다.3. 절대경로 사용하기cat /home/user/..
SSH로 원격 서버에 접속하기
CS/운영체제
Bandit 워게임은 대부분 SSH 접속을 통해 원격 서버에 로그인한 뒤 문제를 해결하는 방식으로 진행된다.처음 접했을 때 접속이라는 표현이 좀 추상적으로 느껴졌는데, 핵심은 내 컴퓨터가 아닌 다른 컴퓨터를 조작하는 상태라는 것이다. SSH란?SSH(Secure Shell)는 네트워크를 통해 원격 서버에 안전하게 로그인하고 명령어를 실행할 수 있게 해주는 암호화 통신 프로토콜이다.즉, 내 터미널을 그대로 사용하지만 실제로는 서버의 CPU와 파일 시스템을 사용하게 된다. 접속의 의미SSH로 접속하면 다음 과정이 내부적으로 발생한다.호스트 주소가 IP로 변환된다 (DNS)해당 서버의 특정 포트(port)로 네트워크 연결을 시도한다SSH 프로토콜로 암호화된 통신이 시작된다사용자 인증(비밀번호 또는 키)을 수행..
이진 탐색 트리 (Binary Search Tree, BST)
CS/자료구조
이진 탐색 트리가 필요한 이유이진 탐색 알고리즘의 한계이진 탐색은 O(log n)의 빠른 탐색 성능을 제공하지만 치명적인 단점이 있다배열이 정렬되어 있어야 함배열은 데이터 삽입/삭제가 비효율적 (O(n))해시 테이블은 어떨까?해시 테이블도 좋은 대안이지만 나름의 단점이 있다장점단점삽입/삭제/검색 모두 빠름 (평균 O(1))성능이 해시 함수 품질에 의존 더 많은 메모리 필요 데이터가 정렬되지 않음이진 탐색 트리의 등장이진 탐색 트리는 이진 탐색의 빠른 탐색 성능과 효율적인 삽입/삭제를 동시에 제공한다. 18 / \ 15 31 / / \ 10 27 33 / \ / \ 6 12 24 35 / \ / \ ..