전체 글 109

[Linux] 여러 명령어를 한 번에 수행하기(feat. File Redirection, grep, Pipe)

리눅스는 CLI(Command Line Interface)로 작동되며, 매 줄마다 명령어를 입력해야 한다. 개발자나 리눅스 사용자 입장에서는 사소한 명령까지 하나씩 쓰고, 엔터를 누르는 과정은 번거롭게 느껴질 수 있다. 또, 한 줄의 명령으로 조금 더 섬세하고, 효율적인 결과를 얻고 싶을 수 있다. 이런 과정을 조금이나마 더 편리하게 만드는 기능으로 리눅스의 file redirection과 pipe가 있다. 이들은 1개 이상의 명령 또는 더 섬세한 명령을 특정 형식에 맞추어서 입력하면 한 줄만에 여러 명령을 수행할 수 있게 하는 기능이다. 이 글에서는 이 기능이 무엇이고, 어떻게 사용할 수 있는지 간단하게 적어봤다. File Redirection 파일 리다이렉션(File Redirection)은 표준 스..

[Regular Expression] 정규 표현식

1. 정규 표현식이란? 특정한 규칙을 가진 문자열의 집합을 표현할 때 사용하는 형식을 의미하며, 정규식이라고도 한다. 정규 표현식은 파이썬, 리눅스 등 다양한 언어에서 구분 없이 사용할 수 있고, 정확히 이해하고 있다면 유용하게 사용할 수 있다. 2. 정규 표현식 문법 특정 문자들은 특정한 논리적 관계를 나타내는 기호로 표현한다. 기호를 제외한 나머지 문자는 일반적으로 해당 문자 그대로를 의미한다. 3. 정규 표현식 기호 정규 표현식의 문법을 표현하기 위해서 메타 문자라는 특정 문자 기호를 정했고, 기본 문자 형식, 수량 한정자, 패턴(선택 패턴, 그룹 패턴) 등을 표현할 수 있다. 기본 메타 문자 기본적으로 사용되는 메타 문자는 아래 표와 같다. 파이썬에서 사용되는 이스케이프(escape) 문자와도 비..

[Linux] 리눅스 명령어(프로세스 관련)

이 글에서는 이전에 적은 기초 리눅스 명령어, 파일 관련 리눅스 명령어에 이어 프로세스의 실행, 종료, 관리 등에 관련된 리눅스 명령어를 기록해봤다. 실제로 어떤 프로젝트를 진행하거나 서버를 실행시키는 등의 작업에서는 많은 프로세스가 발생할 것이고, 이를 관리하는 것은 매우 중요할 것이다. 그렇기 때문에 기초 명령어나 파일 관련 명령어를 잘 익히고, 이를 기반으로 프로세스 관련 명령어까지 잘 이해하고 사용할 줄 알아야 한다고 생각한다. 아래 명령어 사용 형식 중 대괄호([ ])는 생략 가능하고, 공백이나 마침표 등에 유의하며 잘 확인하고 사용해야 한다. ps [옵션] 단순히 ps 명령어는 프로세스의 현재 상태를 출력하는 명령어이다. 하지만 수많은 옵션과 필드를 통해 프로세스에 대한 다양한 작업이 가능하다..

[Linux] 리눅스 명령어(파일 관련)

리눅스의 기초적인 명령어(https://as-j.tistory.com/67)에 이어서, 파일과 디렉터리에 대한 명령어 중 내가 공부한 명령어를 이 글에 정리해봤다. 우선, 리눅스 명령어 이전에 내 컴퓨터의 전체적인 디렉터리 구조를 알고 싶을 때는 tree 명령어를 통해 알 수 있다. 단, 이 명령어는 일반 bash나 터미널 창이 아닌, 명령 프롬프트 창(cmd)에 tree를 입력해야 한다. 아래 명령어는 cmd가 아닌 bash나 shell에 입력하면 되며, 명령어 사용 형식에서 대괄호([ ])로 묶인 부분은 생략 가능하고, 공백이나 마침표 등을 유의하며 봐야 한다. 공백으로 구분되는 것은 서로 다른 요소이며, 공백 또한 함께 포함하여 명령어로 입력해야 한다. chmod [옵션] 모드 파일명 파일이나 디렉..

[Web] '웹'의 시작

내가 만든 것을 전 세계와 함께 1. 기원 1) 누가 팀 버너스-리(Tim Berners-Lee) 2) 언제 1989년 3월 개발, 1993년 4월 세상에 공개 3) 어디서 CERN(유럽 입자 물리 연구소) 4) 어떻게 팀 버너스-리가 만든 프로그램과 인터넷을 통해 5) 왜 근본적으로 웹은 신속한 정보 교환과 공동 연구를 위한 프로그램에서 고안되었다. 팀 버너스-리는 대학에서 물리학을 전공했지만, 컴퓨터에 대한 전문성도 있었던 그는 CERN(유럽 입자 물리 연구소)에서 비정규직 소프트웨어 엔지니어로 근무했다. 비정규직이었기 때문에 그는 10년 동안 연구소를 들어갔다 나갔다를 반복했는데, 이 과정에서 웹의 전신이 되는 프로그램을 만드는 작업을 꾸준히 했다. 그 과정에서 1990년에 인터넷이 연구소에 도입되..

[Git] '깃'의 시작

지옥에서 온 관리자, 깃 1. 기원 1) 누가 리누스 토르발즈(Linus Torvalds) 2) 언제 2005년 4월 3일 개발 시작, 4월 6일 깃 프로젝트 발표, 4월 7일 자체 호스팅 진행, 12월 21일 1.0 릴리스 3) 어디서 토르발즈가 직접 4) 어떻게 아래 기준에 맞추어 - 빠른 속도 - 단순한 구조 - 비선형적인 개발(수천 개의 동시 다발적인 브랜치) - 완벽한 분산 - Linux 커널 같은 대형 프로젝트에도 유용할 것(속도나 데이터 크기 면에서) - 변질에 대비한 매우 강력한 안전 기준을 포함할 것 5) 왜 리눅스 커널(Linux Kernel)은 굉장히 규모가 큰 오픈소스 프로젝트였다. 리눅스 커널은 패치(patch)와 단순 압축 파일로만 관리했는데, 2002년에 비트키퍼(BitKeep..

[Linux] '리눅스'의 시작

자유 소프트웨어와 오픈 소스 개발의 가장 유명한 표본 1. 기원 1) 누가 리누스 토르발즈(Linus Torvalds) 2) 언제 1991년 9월 17일(최초 버전 출시일) 3) 어디서 헬싱키 대학교 4) 어떻게 리누스 토르발즈는 자신만의 운영 체제 커널에 대한 작업을 시작했고, 이는 당시 유행하던 GNU(Gnu is not Unix) 프로젝트의 일환으로 오픈 소스와 자유 소프트웨어로써 개발자들이 함께 참여하며 온전히 기능하는 자유 운영 체제로 완성됨. 5) 왜 1969년에 착안되고, 1971년 처음 출시된 유닉스 운영 체제는 온전히 어셈블리어로 작성되었고, 1973년에는 데니스 리치가 일부 하드웨어 및 입출력 루틴을 제외하고 C 프로그래밍 언어로 재작성했다. 하지만 이 유닉스 운영 체제는 1984년에 ..

[Linux] 리눅스 명령어(기초)

리눅스는 운영 체제 중 하나로써, 개발이나 소프트웨어 공부를 하다 보면 피할 수 없는 부분이다. 리눅스는 윈도우나 맥처럼 GUI(Graphical User Interface)로 작동하는 것이 아니라, CLI(Command Line Interface)로 동작하는 운영 체제이다.(쉽게 말해 마우스라 폴더처럼 눈에 보이는 그림으로 표현된 것이 아니라, 아래 화면처럼 shell을 통해 글자로 표현되고 명령어로 동작하는 것) 이 글에서는 shell을 통해 리눅스에게 시킬 수 있는 명령어 중 기초적인 명령어에 대한 설명과 사용법, 옵션을 정리했다. 대괄호([ ]) 안에 있는 부분들은 생략 가능한 부분이고, 아래 음영 처리된 상자 안에는 각 명령어에 대한 옵션을 적었다. help [옵션] 문자열 문자열에 해당하는 명..

[Python] 간단하게 정리한 클래스와 상속

프로그래밍과 언어를 배우고 그 안으로 들어가다 보면 '객체 지향', '클래스' 등의 단어를 접하게 된다. 객체 지향은 말 그대로 여러 요소와 데이터 등을 객체로써 취급하고 구분하고 사용하는 것을 지향한다는 의미이다. 내가 이해한 바로는 쉽게 말해 코드 속 여러 요소들을 명확한 레고 블록으로 만들고, 각각의 블록을 잘 쌓아서 견고하게 코드를 완성해나가는 것이다. 그리고 레고 블록을 선명하게 구분되고, 안정적인 각진 모습으로 구현하는 과정 속엔 클래스가 주요하다. 1. 클래스 클래스의 구성 요소와 관련 주요 개념을 정리해보면 다음과 같다. 1) 클래스: 어떤 데이터가 있는지, 어떤 조작을 할 수 있는지, 어떤 제약 조건들이 있는지 등을 명시한 추상적인 설계도 2) 인스턴스: 클래스로 만든 실제 예시. 클래스..

[Python] 함수와 메서드의 차이

지금까지 파이썬을 공부하면서 함수(function)와 메서드(method)에 대해 정확히 구별하지 못했다. 어느 정도 둘의 개념은 파악하고 있었지만, 거의 같은 용어라고 생각하면서 공부하고, 생각하며, 기록했다. 이 글에서는 파이썬 강의 자료의 일부를 통해 정리했다. 1. 함수(function) 함수란, 특정 기능을 수행하는 코드 또는 코드의 모임이다. 아래 사진은 질리도록 봐온 대표적인 함수의 개념도이다. 대표적인 파이썬 함수로 len(), int(), str() 등의 함수가 있다. 2. 메서드(method) 반면, 메서드는 특정 자료에 대해 특정 기능을 하는 코드를 의미한다. 여기서 함수와 구별되는 점은 '특정 자료 형태'에서 구현된다는 점이다. 예를 들어 아래 코드처럼 리스트 자료형에 적용할 수 있..