세상에는 매우 다양한 형태의 저장장치들이 존재한다. 우리가 흔히 데스크톱이나 노트북에 장착하여 주 저장장치로 사용하는 하드 디스크, SSD 부터 시작하여 휴대가 간편한 USB도 있고, 음원과 같은 파일은 CD에 저장되기도 한다. 이러한 다양한 형태의 장치들은 각자의 파일들을 잘 유지하기 위해서 독자적인 파일시스템을 가지고 있다. 왜냐하면 각각의 장치들은 다른 방식으로 동작하고 있기 때문이다. 혹은 파일시스템이 워낙 다양하기 때문에 그렇다면 파일시스템이란 무엇일까? 파일시스템(FileSystem) 파일시스템은 간단하게 정의하면 '파일이나 자료를 쉽게 발견 및 접근할 수 있도록 보관 또는 조직하는 체제'이다. 즉 저장장치 내에 저장된 여러 개의 파일들을 고유하게 분류할 수 있는 체계가 필요하고 각각을 읽고 ..
리눅스에는 터미널환경에서 사용가능한 다양한 텍스트 편집기가 있다. 그 중 대표적인 편집기로 vim이 있다. vim은 vi의 클론으로 vi의 기본적인 명령어를 그대로 계승하고, 거기에 사용자가 더 사용하기 쉽도록 여러 기능을 집어넣은 편집기로 이해하면 되겠다. vim의 가장 큰 특성은 .vimrc파일에 설정값을 넣어놓으면 그 설정값에 따라 편집기를 자유자재로 설정할 수 있다는 것이다. .vimrc파일은 언제나 홈 디렉토리에 존재해야한다. 이 게시글은 다음과 같은 순서로 설명할 예정이다. 1. .vimrc 파일 생성하기 2. .vimrc 파일에 설정 값 넣기 지금부터 하나씩 알아보도록 하겠다. * 이 글에는 vi 편집기의 사용법에 대한 내용은 없습니다. 1. .vimrc 파일 생성하기 .vimrc 파일은 언..
윈도우와 리눅스를 듀얼부팅하는 환경에서 아래와 같이 시간이 지속적으로 바뀌는 문제를 발견했다. 윈도우에서 시간을 알맞게 세팅하고 다시 리눅스로 들어오면 리눅스의 시간이 늦어져 있고, 리눅스에서 시간을 맞추면 윈도우에서 시간이 빨라져 있었다. 그래서 이러한 이슈를 검색해 보고 해결한 결과를 포스팅하려고 한다. 문제가 발생하는 이유 이는 윈도우와 데비안(리눅스)의 시간설정 방식의 차이에서 발생하는 문제이다. 윈도우에서는 메인보드에 저장된 시간을 기본값으로 설정하는 반면, 리눅스에서는 GMT(Greenwich Mean Time)를 기준으로 메인보드의 시간과 현재 위치의 시차를 적용하여 시간을 설정하기 때문에 다르게 된다. 예를 들어 메인보드의 시간이 오전1시라고 했을 때, 윈도우는 이를 그대로 가져와서 오전1..
vim에서 dd또는 yy로 복사한 텍스트를 크롬, 메모장, 워드와 같은 다른 프로그램으로 복사하고 싶을 때, 또는 외부에서 복사한 텍스트를 vim으로 복사하고 싶을 때 일반적으로는 동작하지 않을 것이다. 왜냐하면 vim은 os의 클립보드를 사용하는 것이 아닌, x11이라는 별도의 클립보드를 사용하기 때문이다. 따라서 복사를 할 때 시스템 클립보드에 넣고 뺄 수 있어야 한다. 아래의 순서를 따라가면 vim에서도 시스템 클립보드를 잘 사용할 수 있을 것이다. 이 글은 다음과 같은 순서로 작성된다. 1. 설치된 vim의 클립보드지원여부 확인 2. 클립보드를 지원하는 vim 설치 3. vim에서 클립보드로 복사하는 방법 4. system 클립보드를 기본값으로 사용하는 방법 1. 설치된 vim의 클립보드 지원여부..
프로그래밍을 하다보면 수 많은 오류들과 맞닥들이게 된다. 이러한 오류들은 파이썬에서 어떻게 처리하는지 알아보도록 하자. 오류 예외 종류 다양한 오류가 존재한다. 예외 클래스들의 계층도이다. 이는 파이썬 공식 홈페이지에서 발췌한 내용이다. BaseException +-- SystemExit +-- KeyboardInterrupt +-- GeneratorExit +-- Exception +-- StopIteration +-- StopAsyncIteration +-- ArithmeticError | +-- FloatingPointError | +-- OverflowError | +-- ZeroDivisionError +-- AssertionError +-- AttributeError +-- BufferErro..
pycharm이라는 파이썬 IDE로 파이썬 패키지를 생성하면 자동으로 함께 생성되는 __init__.py라는 파일이 있다. 이 파일이 어떤 역할을 하는지 간단하게 알아보고자 한다. 위 이미지를 보면 각 디렉터리마다 하나씩 __init__.py라는 파일을 가지고 있는 것을 볼 수 있다. 용도는 간단하다. 이 파일이 존재하는 디렉터리는 패키지의 일부임을 알려주는 역할을 한다. 따라서 __init__.py라는 파일이 없는 디렉터리는 패키지로 인식되지 않는다. 그렇다면 위의 상황에서 calc패키지의 operate패키지 내의 add.py를 import하여 사용해 보도록 하겠다. 먼저 환경변수를 설정해 보도록 하자. PYTHONPATH PYTHONPATH라는 환경변수가 있는데 이는 파이썬의 패키지 경로를 담고 있다..
파이썬의 모듈에 아래와 같은 코드가 존재할 때가 있다. if __name__=="__main__" 그대로 해석해보면 '__name__이라는 변수의 값이 __main__이라면 아래의 코드를 실행하라.'라는 뜻이다. 위 글을 이해하려면 먼저 파이썬의 코드실행 방식과 __name__이라는 내장변수를 알아야한다. 파이썬의 코드 실행 방식 C언어 또는 자바와 같은 프로그래밍 언어에서는 항상 main()이라는 함수를 시작으로 프로그램을 실행시킨다. 하지만 파이썬은 main함수가 존재하지 않는다. 그렇다면 어떤 방식으로 코드를 실행시키는 것일까? 파이썬은 크게 두 가지 특징이 있다. 1. 들여쓰기를 통해 코드 실행의 레벨을 결정한다. 2. main이 존재하지 않는다. 아래의 예시는 두 수를 더해서 출력해주는 코드이다..
먼저 GitHub의 기본적인 개념과 사용방법을 알고자 한다면 아래의 링크를 따라가 보는 것을 추천한다. [Git]Github 사용하기 http://hyoje420.tistory.com/37 큰 프로젝트를 진행함에 있어서 협업은 필수이다. 따라서 프로젝트를 생성한 프로젝트 마스터 이외에 다른 개발자들도 하나의 프로젝트에 대해서 업로드(Push), 다운로드(Pull)할 권한을 주고자 할 때 collaborators(협업자)를 추가해줘야 한다. Contributor vs Collaborator 뜻을 그대로 해석하자면 기부자와 협력자이다. 이는 각각 다른 의미를 가진다. Contributor는 프로젝트의 관리자는 아니지만, 한 프로젝트의 커밋에 관여하는 모든 사람을 Contributor라고 한다. Push권한은..