- toc {:toc}
1. Miniconda
소프트웨어 선정
요즘 관심 있어 하는 분야가 딥러닝이다보니 딥러닝 개발환경에 대해 생각해봤다. 아무래도 딥러닝은 하드웨어 자원을 사용하고 주로 그래픽적인 환경보다는 서버의 GPU를 이용하여 개발하는 경우가 많을 것이라는 생각이 들었다. 때문에 Linux 환경에서 개발 환경을 갖춰보고 싶다는 생각이 들었고, 우분투로 초기 환경 세팅을 해서 GUI 환경에서 진행하나, CLI 환경이라 생각하고 세팅해보자고 다짐하여 Miniconda를 설치해 가상환경까지 설정해 보았다. 처음에는 Conda를 설치하려 했으나 용량이 커 Miniconda로 대체했다.
과정
wget https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh
- Web Get의 약어로 웹 상의 파일을 다운로드 받을 때 사용하는 명령어인 wget과 파일 링크를 통해 설치파일을 다운로드 한다.
bash Miniconda3-latest-Linux-x86_64.sh
- Shell scripting 언어인 bash를 이용해 install.sh 형식으로 파일을 설치한다.
이 다음 conda 명령어를 치면?
인식을 하지 못한다. 이는 설치한 후 설정을 쉘에 적용시켜야 하는데 하지 않았기 때문에 발생한다.
source .bashrc
- 쉘에 설정을 적용시키기 위해 bash의 유저 설정인 .bashrc를 source 명령어를 통해 적용하면 아래와 같이 miniconda가 설치되어 있음을 확인할 수 있다. 아래 그림은 .bashrc에서 conda initialize에 대해 작성되어 있는 부분이고 아래의 initialize를 통해 conda를 적용시킨다는 것을 알 수 있다.
conda create -n pytorch-py38 python=3.8
conda activate pytorch-py38
- Conda에 가상환경을 만드는 conda create 명령어를 사용해 이름이 pytorch-py38, python은 3.8버전을 사용한 가상환경을 만들고 가상환경 활성화를 시키면 base가 아닌 pytorch-py38 가상환경으로 들어온 것을 확인할 수 있다.
이후 해당 가상환경에 맞는 라이브러리들을 설치해 사용하면 된다. Miniconda로 대체해 사용했지만 Conda로 진행하는 것도 같은 방식으로 진행하면 되기 때문에 손쉽게 환경설정할 수 있을 것 같다.
2. Vscode
소프트웨어 선정
개발의 편의성을 위해서는 에디터가 필요하다. CLI 환경이라 가정하긴 했지만 윈도우에서는 Vscode를 주로 사용했던 터라 리눅스 환경에서는 어떨까 궁금해 설치해봤다.
과정
Vscode의 linux setup document를 참고해서 설치했다. Vscode는 패키지 설치를 위해 apt repository와 key가 필요하다고 한다. 이 때 apt repository는 Vscode를 다운받기 위한 apt의 저장공간이다. 이후 패키지 캐시를 업데이트하고 code를 설치하는 과정으로 설치한다.
sudo apt-get install wget gpg # gpg 설치
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > packages.microsoft.gpg # Vscode key 다운로드
sudo install -D -o root -g root -m 644 packages.microsoft.gpg /etc/apt/keyrings/packages.microsoft.gpg # root에 패키지 키 설치
sudo sh -c 'echo "deb [arch=amd64,arm64,armhf signed-by=/etc/apt/keyrings/packages.microsoft.gpg] https://packages.microsoft.com/repos/code stable main" > /etc/apt/sources.list.d/vscode.list'
# 저장소 추가
rm -f packages.microsoft.gpg
# apt 패키지 캐쉬 업데이트 및 설치
sudo apt install apt-transport-https
sudo apt update
sudo apt install code
gpg는 GNU Privacy Guard로 GNU가 제공하는 자유 소프트웨어라 한다. 이름에서도 알 수 있다시피 암호화, 복호화 소프트웨어이다. 위의 주석대로 키를 받아 패키지를 설치하고 설치가 완료되면 익숙한 Vscode 창이 뜬다.
위의 방식은 사실 키와 repository를 직접 다운받는 형식이지만 Vscode 홈페이지에서 .deb 파일을 다운받으면 자동으로 키와 repository가 다운로드 되고 sudo apt install을 통해 패키지 설치만 진행해주면 완료된다.
Vscode를 실행해 python extension을 설치하고 Hello World를 출력하면 conda base를 인식해 잘 실행되는 것을 볼 수 있다.
Vscode 사용에 관련해서는 윈도우와 리눅스 Vscode의 큰 차이는 없는 것 같다. 여러 설정들을 개인에 맞게 조절할 수 있다.
3. Neovim
소프트웨어 선정
기본적으로 GUI 환경에서는 Vscode를 사용하지만 CLI 환경에서는 사용할 수 없다. 때문에 CLI 환경에서 사용할 수 있는 에디터인 Vim을 사용해보고자 했다.
소프트웨어 개요
유닉스 환경에서는 Vi 에디터가 기본 편집기 이나, Vi는 텍스트 편집에 관해 필요한 최소한의 기능만을 가지고 있기 때문에 지원하는 기능이 많지 않다. 때문에 Vi에 기능을 추가한 버전인 Vim(Vi IMproved)이 개발되었다. 유닉스 환경은 Vi가 기본이지만 리눅스 환경에서는 Vim이 기본 에디터로 탑재되어 있다.
이렇게 Vi에서 Vim이 개발된 것처럼 Vim에서 더 개발된 버전이 존재하는데 Gvim과 Neovim이다. Gvim의 경우 GUI 환경에서 쓸 수 있도록 개발한 Vim 버전이고, Neovim의 경우 Vim이 오랜 역사를 통해 개발됨에 따라 소스코드가 매우 복잡해져 새로 다시 코드를 짠 Vim을 말한다. Neovim이 보다 더 최적화되어 있다.
Vim은 .vimrc를 통해 기본적인 환경설정과 여러가지 플러그인들을 통해서 사용자에 따라 본인에게 맞는 개발 환경을 갖출 수 있다는 점이 장점이다.
설치 및 설정
설치는 neovim github 페이지를 통해 진행할 수 있다.
순정 neovim은 다음과 같이 설치되어 있음을 확인할 수 있다. 앞에서 말했듯이 vim은 .vimrc 설정 파일을 통해 마음대로 에디터를 커스터마이징 할 수 있다.
다음과 같이 기본 설정을 부여해준다.
jellybean color 테마도 함께 넣어준다. 이 후 vim을 들어가보면 아래와 같이 변하는 것을 확인할 수 있다.
후기
기본적으로 키와 작업 행동의 매핑이 많이 되어 있고 방향키 또한 hjkl로 대체해서 사용할 수 있다. 처음에는 Insert Visual, Edit 동작에도 익숙치 않았고 키 매핑도 써보니까 신기하기도 하고 익히려면 꽤 시간이 들겠다는 생각이 들었다. 그래도 막상 하나씩 따라해보고 익혀나가다보니 자연스럽게 사용하게 되고 코딩할 때 점차 마우스, 방향키로 손이 가는 횟수가 줄어드는 것을 느꼈다. 한 번 익혀두면 나중에 사용할 때에도 자유롭게 사용할 수 있을 것 같다.
4. Docker
소프트웨어 선정
최근 개발 환경 설정, 관리에 빠지지 않는 프로그램이 도커이다. 도커는 컨테이너 개념을 이용해 소프트웨어 실행에 필요한 완전한 파일 시스템 안에 소프트웨어를 감싸면서 OS에 관계없이 같은 환경에서 작업할 수 있고, 관리가 간단하다는 장점이 있다. 또한, 하드웨어 가상화를 제공하는 가상 머신과 다르게 사용자 공간을 가상화하여 가상 머신보다 가볍게 동일한 환경을 제공한다는 장점이 있다. conda 가상환경을 통해서 개발 환경을 관리하기도 하는데 conda 가상환경의 경우 Host OS에 종속되어 있고 도커는 그렇지 않다는 점이 장점이다.
ML/DL 분야에서 실험을 진행할 때 연구자들 각자가 진행하는 환경이 다르기 때문에 논문에 대한 코드를 올릴 때 이런 환경을 함께 제공하는 경우가 늘고 있다. 윈도우 환경에서도 아직 사용해보지 않았었기에 한 번 사용해보고 싶기도 하고 필요성을 느끼고 있었기에 선정했다.
과정
# 우분투 패키지 업데이트
sudo apt-get update
# 필요한 패키지 설치
apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common
# Docker GPG key 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
# Docker apt repository 추가
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 우분투 패키지 업데이트
sudo apt-get update
# Docker 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io
설치 하고 docker version을 입력하면 버전이 나오고 잘 설치되어 있는 것을 볼 수 있다.
docker pull <이미지 이름>:<태그> # docker hub에서 이미지 받아오기
docker run <옵션> <이미지 이름:Tag이름> <실행할 파일> # docker image에서 container 실행
docker start <컨테이너 이름 or ID> # Container 시작
docker attatch <컨테이너 이름 or ID> # Container 접근
이외의 docker docs(https://docs.docker.com/)를 통해 docker 이미지, 컨테이너를 관리할 수 있다.
docker run hello-world
docker hello-world를 출력해보면 다음과 같이 잘 설치되어 있다는 것을 확인할 수 있다.
후기
pytorch, tensorflow등 여러 실험을 해보고 싶었으나 가상 머신 용량이 적어 전부 설치가 되지 않았다. Docker를 사용하는 것이 기본 실력으로 잡혀가고 있는 요즘이기 때문에 작업을 할 때 더 자세히 꼼꼼하게 사용하고 자주 사용해봐야겠다는 생각이 들었다. 구조를 생각하면서 사용해봤을 때 환경에 따라 Conda와 Docker 중 선택해서 사용하겠지만 클라우드 위에서 ssh를 통해 작업을 하는 경우에는 Conda를 사용해도 상관없겠지만 대다수에는 이동하고 여러 로컬에서 작업을 하기 때문에 docker를 사용할 것이라 생각됐다.
5. LibreOffice Draw
Ubuntu 환경에서 LibreOffice의 Draw를 활용해 코인 자동매매 프로젝트의 구조를 그려봤다.
코인 자동매매 프로젝트는 팀원들이 세운 전략 구현 및 실시간 구동을 통한 매매를 통해 수익 실현을 하는 프로젝트이다. Python과 CCXT Library를 통해 거래소 Biance와 통신을 진행했다.
- 계좌, Binance 시장의 ohlcv(Open, High, Low, Close, Volume) 정보를 요청해 CCXT, Binance를 통해 정보를 전달 받는다.
- 계좌 정보를 통해 현재 나의 포지션 상태(진입한 포지션, 포지션의 방향)를 확인한다.
- Ohlcv 정보를 이용해 각 전략에 대해 진입, 청산 조건을 만족하는지 확인한다.
- 조건이 만족한다면 주문 명령을 하고 주문 정보를 받아온다.
- 매매 기록에 대한 안정성 검사를 실시한다.
- 시장 상황 및 전략 진행을 시각화한다.
Review
다른 Drawing tool을 사용해보지는 않았지만 LibreOffice Draw에도 기본적인 평면, 3차원 도형들이 제공되었다. 벡터 그래픽, 개체 연결 관계 표시, 차원 표시 등 여러 기능들이 있으나 활용하기 위해서는 공부가 더 필요할 것 같다.
LibreOffice Draw를 사용해 프로젝트의 전체적인 구조를 그리는 것이 그리 어렵다고 생각하지 않았다. 하지만 실제로 구조도를 그려보니 얼마나, 어떻게 구조를 이해하기 쉽도록 설명할 것인가에 대한 경계를 설정하는 것이 모호했다. 나름대로 block diagram은 세부적인 정보를 설명하기 보다는 전체적인 구조를 설명하는 것이기 때문에 필수적인 구성으로만 구조도를 표현했다.
막상 프로젝트를 진행할 때는 전체적인 구조없이 세부적인 파트의 구성만을 계획하고 진행했었는데 이렇게 block diagram을 그려 전체적인 구조를 확인해보니 확실히 프로젝트 진행을 더 효율적으로 할 수 있지 않았을까 하는 생각이 든다. 이런 도구들을 활용하는 것은 어려운 것이 아니니 다른 프로젝트를 진행할 때는 전체적인 틀을 잡고 진행해나가도록 시도해봐야겠다.
6. GIMP
소프트웨어 선정
Linux에서 PhotoShop을 바로 사용할 수 없다고 알고 있기에 리눅스 환경에서 이미지 편집을 할 수 있는 프로그램으로 어떤 것을 사용하는지 궁금해졌다. 오픈소스 프로그램을 찾아보다보니 이미지 편집에서는 GIMP가 주로 많이 쓰이는 것 같았고 오픈소스와 차이가 있는지 확인해보고 싶었다.
소프트웨어 개요
GIMP는 GNU Image Manipulation Program의 약자로 리눅스, 윈도우, 맥을 모두 지원한다. 특히 리눅스에서 포토샵을 사용할 수 없기 때문에 GIMP를 많이 사용한다고 한다. 다양한 수의 붓, 무늬, 그라디언트를 제공하고 새로 만들거나 편집, 인터넷을 통해 공유할 수 있다.
설치
sudo apt-get update
sudo add-apt-repository ppa:otto-kesselgulasch/gimp-edge
sudo apt-get update
sudo apt install gimp
gimp
GIMP를 실행하면 다음과 같은 화면을 볼 수 있고 이미지를 편집할 수 있다.
필터 기능을 하는 도구들이 있고 나타나 있는 모양대로 브러쉬로 표현하거나 잘라낼 수 있다.
기본 편집 도구들을 선택할 수 있는 부분이다. 색상추출, 선택도구, 브러쉬등 기본 도구들이 존재한다.
도구에 대한 상세 설정들을 할 수 있는 부분 설정 창이 있다. 투명도, 각도, 경도, 동적 요소 등 자유롭게 설정해 사용할 수 있다.
후기
사실 이미지 편집도구를 사용해보지는 않았었지만 기본적인 편집도구는 물론이고 docs.gimp.org를 통해서 gimp 사용에 대한 설명도 자세하게 나와있어 도구 사용에 관해서 걱정할 것은 없을 것 같다. 포토샵과 비교했을 때 선택 툴, 스타일, 편집툴, 브러쉬등 여러 기능에서 밀리지 않는 기능을 보인다는 점과 포토샵은 월 11,000원, gimp는 무료라는 점에서 왜 gimp가 현업에서도 고려 대상이 되는지 깨달았다.
7. Blender
소프트웨어 특징
- 오픈소스 GPL 라이선스로 무료로 사용할 수 있는 3D 컴퓨터 그래픽 제작 소프트웨어이다. 오픈소스이기 때문에 블렌더가 사용되어 제작된 결과물의 저작권은 창작자에게 귀속된다.
- 기본적인 모델링, 렌더링, 합성, 애니매이션, 물리 시뮬레이션 등 광범위한 분야를 지원한다.
- 내장되어 있는 렌더 엔진의 성능이 시장의 렌더 엔진 중 최고 수준을 보인다.
- 설치 용량이 다른 3D 그래픽 프로그램보다 훨씬 빠르고 가볍다.
- 가장 최근의 release가 2023년 4월 25일인 만큼 활성화되어 사용되고 커뮤니티가 활성화돼 있다.
설치
sudo snap install blender --classic
후기
위 사진과 같이 화면이 나오고 한국어도 지원한다. 여러 가지 기본적인 레이아웃이 존재하는데, 위 사진의 경우 Sculping 레이아웃이다. 내가 원하는 물체에 대해 튀어나오게 하거나 들어가게 하는 등 원하는 방식대로 조각하고 변형할 수 있다.
위 사진은 2D Animation 레이아웃이다. 상단에 보면 2D Full Canvas, Rendering 등 존재하는데 각각 위치에서 그림을 그리고 프레임을 옮기는 등 작업을 진행하여 2D Animation을 제작할 수 있도록 한다.
위 사진은 Video Editing 레이아웃이다. 영상 편집도 blender에서 진행할 수 있다.
VM에서 작동시키다보니 아무래도 하드웨어가 부족해 렉이 걸리면서 사용이 어려운 상황이 되었다. 그래도 정말 기능들이 많고 한국어 지원을 통해서 하나하나 선택하고 작동시키는데 문제를 겪지는 않았다. 커뮤니티들도 Reddit, Stack Exchange 등 지원을 하고 있고 활동도 1시간 이내 5~6개의 게시글이 달리는 등 활발하게 활동하고 있었다. 다른 3D 프로그램에 비해 기능들이 조금씩 부족하다는 평은 있으나 오픈소스로 무료라는 점, 애니메이션, 영상 편집 등 여러 기능들을 하나의 툴을 이용해서 한 번에 작업할 수 있다는 점에서 강점을 갖는 것 같다.
8. Octave
소프트웨어 선정
많은 분야에서 수학 연산이 필요하고 사용된다. 수치해석을 위해 수치해석용 소프트웨어인 Matlab을 많이 사용하는데 Matlab과 함께 많이 사용되는 소프트웨어가 Octave이다. 사실 이번에 찾아보면서 알게 됐다. 교수님들도 그렇고 사실 많이 사용하고 주로 들어본 소프트웨어가 Matlab이었지만 Octave가 대체할 수 있는 소프트웨어라 해서 사용해보고 싶었다.
소프트웨어 특징
- GNU 프로젝트의 하나로, 오픈소스 소프트웨어이다.
- 기본적으로 Matlab과 동일한 문법을 가지고 작성되고, 호환성이 높다.
- 행렬에 근거하여 행렬 연산용의 다양한 함수를 제공한다.
설치
sudo apt-get install octave
octave
후기
Octave는 CLI 버전, GUI 버전을 동시에 사용할 수 있었다. Octave CLI를 실행하면 파이썬과 같이 코드를 입력할 수 있는 부분이 나오고 변수를 지정, 결과를 산출할 수 있도록 >기호를 통해 표시됐다. octave —gui 명령어를 입력하면 GUI 버전의 Octave를 실행할 수 있고 스크립트, 함수, 그래프를 입력하거나 작업할 수 있도록 구분되어 있는 것을 볼 수 있었다.
위 사진과 같은 레이아웃을 확인할 수 있다. 왼쪽에는 Workspace로 내가 설정한 변수, 변수의 클래스, 차원을 확인할 수 있고 Command History를 통해서 내가 실행한 코드의 기록을 확인할 수 있다. 오른쪽 아래를 보면 Command Window를 통해 python을 기본으로 실행하면 볼 수 있는 line by line으로 실행하는 방식으로 간단하게 작동시킬 수 있다.
Variable Editor 같은 경우에는 위에서 내가 설정한 a, b, c의 값을 확인할 수 있다. 위에서 우리는 변수 a가 10을 갖고 1x1의 차원을 갖고 있는 것을 확인했는데 이를 Variable Editor에서 확인할 수 있다. Variable Editor에서는 엑셀과 같이 행과 열이 나뉘어져 있는데, 이는 Matlab과 같이 Octave에서 행렬 연산을 지원하고 많이 사용하기 때문에 효율적으로 사용할 수 있도록 장치했다는 것을 이해할 수 있다.
Command Window에서 line by line으로 코드를 실행하는 것은 간단하게 적용해볼 수 있겠지만 잘못 작업 내용이 날라가게 되면 다시 처음부터 진행해야 하므로 완전히 간단한 작업이 아니라면 코드 파일을 사용하는 것이 편하다. 때문에 Octave에서는 코드 파일을 통해서 실행, 디버그 할 수 있는 Editor 창도 지원한다.
다음과 같이 간단하게 그래프를 그려봤을 때도 간편하게 작업할 수 있었다. Octave는 특히 C++ 표준 라이브러리를 사용해 만들어졌기 때문에 문법도 C++과 유사하게 사용할 수 있고 내재된 함수의 명칭 또한 numpy에서 사용했던 것과 유사해 금방 익숙해져 사용할 수 있었다. ML 과제나 공부를 진행하면서 간단한 연산, 그래프를 그려볼 때 파이썬을 사용해 그리는 경우가 많았는데 간단한 부분은 옥타브를 사용해서 진행하는 편이 더 간편하고 빠를 것 같다.
9. Obsidian
소프트웨어 특징
- 생각을 정리하고 글을 작성할 때 사용하는 편집기이다.
- 마크다운으로 작성할 수 있는 노트앱이다.
- 윈도우, 맥, 안드로이드, IOS, 리눅스 등 다양한 운영체제를 지원한다.
- 다른 노트 프로그램들과 다르게 그래프 뷰가 있으며, 그래프 퓨를 통해 메모의 연결을 직관적으로 확인할 수 있다.
설치
- Obsidian 페이지에서 Linux용 AppImage를 다운 받는다.
- 터미널로 들어가 AppImage를 다운받은 폴더로 이동한다.
- 다음 코드를 입력한다.
chmod u+x Obsidian-<version>.AppImage ./Obsidian-<version>.AppImage
이후 바로 다음의 Obsidian이 실행되는 것을 확인할 수 있다.
New Vault를 생성해서 들어가보면 위 그림과 같은 레이아웃이 나온다.
후기
윈도우에서 obsidian을 사용했었고 파일들을 git을 통해서 올려 두었기 때문에 git을 사용해서 파일을 연동했다. 연동한 후 obsidian 이다.
Obsidian의 경우 각 파일마다 tag를 설정해주면 오른쪽과 같이 태그들끼리 묶어주는 그래프 뷰 기능을 제공한다. 이 기능을 통해 어떤 태그에 대해서 어떤 글을 작성했는지 파악할 수 있고 내 관심 분야, 부족한 부분, 혹은 생각을 메모하는데 obsidian을 사용한다면 생각의 흐름을 브레인스토밍을 하면서 정리할 수 있다.
사실 obsidian 자체가 상당히 가벼운 프로그램이고 편집의 역할을 갖는 것이기 때문에 크게 특별한 것은 없다. 보통의 노트 앱으로 윈도우, 맥에서는 주로 notion을 많이 사용하는데 notion은 리눅스를 공식적으로 지원하지 않는다. 때문에 리눅스 환경에서 사용하려면 웹에서 사용해야하고 자료의 저장이 중요한 사용자의 입장에서는 웹을 이용한 사용은 불안할 수 있다. 하지만 obsidian의 경우 로컬에 폴더를 만들고 작업을 하면 바로 기록이 남고 저장이 되며, 리눅스도 공식 지원을 하기 때문에 광범위하게 여러 OS에서 작업할 수 있다. 또한 비용을 내야하지만 폴더 동기화도 지원하기 때문에 함께 이용할 수 있다는 점에서 장점이 있다. 또한 노션에 비해 확실히 가볍고 빠르게 작업할 수 있다는 점도 큰 장점이라고 생각된다.
10. kOrganizer
소프트웨어 선정
평소 윈도우를 사용할 때도 항상 바탕화면에 캘린더를 열어 놓고 일정을 확인하면서 할 일을 진행하는데 리눅스 한 학기 살기를 진행하면서 캘린더가 바탕화면에 없다보니 불편하기도 하고 일정 관리 툴은 어떤 것이 있을까 하는 생각에 찾아보게 되었다. 찾아봤더니 GPL 다국적 소프트웨어 커뮤니티 KDE(K Desktop Environment)에서 만든 kOrganizer를 발견했고 설치해보기로 했다.
소프트웨어 특징
- KDE 프로젝트로, 다른 오픈 소스 소프트웨어처럼 오픈 소스 개발 환경에서 개발되고 지원된다.
- 캘린더, to do 목록을 지원한다.
- 같은 KDE 프로젝트 메일 지원 프로그램인 Kontact와 완전히 호환된다.
- NextCloud, Kolab, Google 캘린더 등 다양한 캘린더 서비스와 연동 가능하다.
설치
sudo apt-get install korganizer
후기
kOrganizer를 실행시키면 다음과 같이 투박한 디자인의 캘린더를 확인할 수 있다. 디자인적으로는 다소 투박하긴 하나 일, 주, 월간, 타임라인, 할 일 목록 등 각 필터에 맞게 일정을 확인할 수 있고 빠르게 일정을 설정할 수 있는 기능들이 들어가 있다. 왼쪽의 경우 해당 월 달력이 들어가 있고 아래 검색을 통해 원하는 이벤트를 빠르게 찾을 수 있다. 시간 간격을 확실하게 설정해서 해야할 일을 확인하고 싶은 사람의 경우 위 사진처럼 주간 필터를 통해서 한 주의 타임라인을 확인할 수 있다.
굵직한 이벤트를 확인하고 싶은 사람은 위 사진과 같이 월간 필터를 통해 확인할 수 있다.
이벤트 지정과 같은 경우에도 템플릿을 지정해 원하는 양식에 맞추어 설정할 수 있다. 일반, 참석자, 자원, 알림, 반복, 첨부 등 세부적으로 나누어져 있어 복잡한 일정 관리를 조절할 수 있다.
단축키 지정을 통해서도 보다 더 개인에 맞게, 편리하게 설정하여 사용할 수 있다. 여러 기능들이 많이 들어가 있어 사용에 따라 활용도가 높을 것 같다.
리눅스 한 학기 살기
이번 학기 오픈소스 수업을 듣기 전에는 리눅스 환경을 사용해본 적이 없었다. 사용해봤다 하면 군대에서 하모니카os나 AWS, 오라클 클라우드를 이용해서 ssh 접근 해본 정도..?! 윈도우가 너무 익숙하게 자리잡혀 있었다. 이전에 들었던 수업이나, 공부 자체도 리눅스에 강제되는 환경보다는 윈도우, 리눅스, 맥을 전부 지원하는 환경이 많았고 오히려 윈도우의 점유율로 인해 윈도우가 더 호환성이 좋은 경우가 많았기 때문에 더더욱 필요성이 떨어졌던 것 같다. 하지만 최근 학교 GPU 리눅스 서버를 사용해보면서 앞으로 ML/DL 분야를 공부하면서 내가 사용할 확률이 높은 운영체제는 리눅스이고, 리눅스 환경에 익숙해지는 편이 좋겠다고 생각했다.
한 학기 간 리눅스 환경을 사용해보면서 사실 크게 느꼈던 점은 없었던 것 같다. 리눅스도 윈도우와 같은 운영체제이고 특히나 우분투에서 진행하다보니 GUI를 함께 제공해 더욱 큰 차이를 느끼지는 못했다. 다만 내가 컴퓨터를 조금 그대로 공부하고 리눅스를 접해서 그런 것인지는 잘 모르겠지만 뭔가 하나 둘씩 건드리고 싶은 느낌이 있다. 뭔가 내 마음대로 이리 저리 바꿔보고 시도해보고 싶은 마음이 든다. 잘 알지 못한 채로 새롭게 시작해서 그런지도 모르겠다. 윈도우의 경우에는 오래 사용해왔어서 그런지 별로 그런 마음이 들지 않는데 말이다.
그래도 리눅스를 사용해보면서 좋았던 점은 오픈소스 소프트웨어가 참 많다는 점이었다. 필요하다고 생각하는 것이 있어 찾아보면 있다. 꼭 오픈소스로 하나씩은 다 있어 바로 바로 내가 원하는 작업을 할 수 있다는 점이 좋았다. 물론 대부분 다른 운영체제도 지원하고 내가 관련해서 많이 찾아보지 않아 발견하지 못한 것들도 있지만 오픈소스 소프트웨어에 대한 지원이 많다는 점에서 공부할 것도 많고 부담없이 사용할 응용 소프트웨어가 많다는 점이 장점으로 다가왔다.
이번 리눅스 사용을 터미널 사용에 초점을 맞추어 진행했는데 처음에는 상당히 불편하다고 느껴졌지만 막상 사용하다보니 오히려 간단하게 진행할 수 있는 부분도 있었고 나중에는 숙달되다보니 그냥 습관처럼 자동으로 손이 움직이면서 기본 작업을 할 수 있었다.
사실 이렇게 한 학기동안 사용하더라도 일반적인 개인 PC의 점유율이 윈도우가 높다보니 리눅스만을 사용하기는 제약이 걸리는 경우가 많았고 많이 사용해보지 못했다. 때문에 앞으로 공부를 하면서 내가 선택한 프로그램, 리눅스 환경을 더 많이, 사용하고 더 친숙하게 사용할 수 있도록 계속해서 접접을 만들어나가야 할 것 같다.