CS

    [Linux] 리눅스의 기본 구조: kernel, shell, process and shell session

    평소에 리눅스 계열의 OS를 사용하며 항상 궁금했던 커널, 쉘, 프로세스, 그리고 쉘 세션에 대해서 알아보았습니다. 커널(Kernel) 커널이란 리눅스 운영 체제의 주요 구성 요소 중 하나로 하드웨어와 프로세스를 연결하고 하드웨어의 주요 기능을 제어하는 역할을 합니다. 커널은 주로 메모리 관리, 프로세스 관리, 장치 드라이버, 시스템 호출 및 보안을 수행하고, 사용자에게는 직접적으로 보이지 않습니다. 쉘(Shell) 쉘은 커널과 유저가 Interactive할 수 있도록 만들어진 Interface입니다. 대표적인 쉘로는 bash shell, Z shell(Zsh)이 있으며 이외에도 다양한 CLI(Command-Line Interface)과 GUI(Graphical User Interface)가 존재합니다...

    [Github] workflow scope 오류 해결하기

    [Github] workflow scope 오류 해결하기

    Github actions workflows와 관련된 파일을 수정할 때 다음과 같이 without workflow scope 오류가 발생할 수 있습니다. refusing to allow a Personal Access Token to create or update workflow `.github/workflows/some_file.yaml` without `workflow` scope 위 에러는 Token authentication을 위해 Personal access token을 이용할 때 사용중인 Access Token에 workflow를 수정할 수 있는 권한이 없을 경우 발생합니다. 해당 토큰에 workflow 수정 권한을 부여하는 방법은 다음과 같습니다. Settings → Developer Set..

    [Python] 주어진 문자열이 알파벳/숫자로만 구성되었는지 확인해보기

    파이썬에서 주어진 문자열이 알파벳, 숫자, 혹은 알파벳과 숫자로 구성되어있는지 확인하는 메소드는 다음과 같습니다. 문자 판별 isalpha() 메소드를 이용하여 주어진 문자열이 알파벳으로만 구성되어있는지 판별할 수 있습니다. name = "Tom" print(name.isalpha()) # True name = "Tom Holland" print(name.isalpha()) # False (공백 포함) name = "Tom1Holland2" print(name.isalpha()) # False (숫자 포함) 숫자 판별 숫자 판별의 경우 문자 판별에 비해 세분화된 메소드가 제공됩니다. isdecimal() 메소드를 활용하면 문자열이 int로 변환 가능한지 판별할 수 있습니다. isdigit() 메소드를 활..

    [백준 #10809] 단어에 포함된 알파벳의 첫 번째 등장 위치 찾기

    [백준 #10809] 단어에 포함된 알파벳의 첫 번째 등장 위치 찾기

    아스키 코드와 파이썬 문자열 객체의 find 메소드를 사용하여 빠르고 가독성 높이기! (문제 링크: https://www.acmicpc.net/problem/10809) AS-IS word = input() alphabets = list("abcdefghijklmnopqrstuvwxyz") result = [-1] * len(alphabets) for i, s in enumerate(list(word)): if s in alphabets: idx = alphabets.index(s) result[idx] = i alphabets[idx] = None print(" ".join(map(str, result))) TO-BE Background 아스키 코드 아스키 코드란 미국 국립 표준 협회에서 만든 정보교환..

    [Linux] nohup 명령어

    [nohup 명령어를 이용하여 세션 연결이 끊겨도 프로세스가 동작하도록 하기] nohup 명령어는 로그아웃과 같이 터미널과의 세션 연결이 끊기더라도 프로세스가 계속 동작하도록 만들어주는 명령어입니다. 터미널과의 세션 연결이 끊기게되면 리눅스에서 해당 세션에서 실행된 프로세스들에게 HUP(Hang Up) 시그널을 전달하여 프로세스들이 종료되도록 합니다. 이 때 세션이 종료되더라도 계속 실행하고 싶은 프로세스에는 HUP 시그널을 전달하지 않도록(No Hang Up)한다는 의미에서 nohup이라는 명령어 이름이 만들어졌습니다. 기본적인 명령어는 다음과 같습니다. nohup [process] & nohup 명령어를 이용해 실행할 프로세스와 관련된 파일의 권한은 755(rxwrx-rx-) 이상이어야 합니다. 또한..