Window 세팅

Window 세팅

현재 사용하고 있는 세팅, 그리고 각종 팁을 소개하고자 합니다.

세팅환경: Window 11 (or Window 10)

주 언어: Python

VS Code

텍스트 에디터로 가장 보편적인 Visual Studio Code를 사용하고 있다. 다양한 언어나 파일 형식을 동시에 다룰 때 VSC가 확장성이 좋다. 현재 VSC로 파이썬(.py), 주피터 노트북(. ipynb), HTML(.html), CSS(.css, .scss, .sass), Javascript(.js), 마크다운(.md)등 파일을 정말 편하게 작성하고 있다.

우선, 자동 추천을 지원한다. 코드를 끝까지 다 쓸 필요없이 Enter를 눌러 VSC에서 추천하는 코드를 입력할 수 있다. 또한 괄호를 열면 자동으로 닫거나, 따옴표를 자동으로 닫기 때문에 기본 IDLE와 비교했을 때, 훨씬 빠르고, 훨씬 실수가 적다. 그리고 마크다운(.md)를 작성하면 실시간으로 Preview(미리보기)를 지원한다. 현재 Jekyll Blog를 작성하면서도 Preview 기능을 사용하고 있다. 그 외 아래에서 설명할 Extensions이나 Formatter 등 다양한 추가 기능을 설치해 사용할 수 있다.

단축키도 생산성을 크게 높여준다.

Ctrl + / : 라인형 주석 설정 & 해제 Shift + Alt + A : 블록형 주석 Alt + Up/Down : 줄 이동 Shift + Alt + Up/Down : 줄 복사 Ctrl + Shift + K : 줄 삭제 Shift + Alt + F : 탭 재정렬 Shift + F : 단어 검색 Ctrl + Shift + L : 같은 단어 다중 선택 Ctrl + A : 전체 선택 F5 : 디버깅 Ctrl + Shift + ` : 새 터미널 Ctrl + Z : 되돌리기 Ctrl + S : 저장 Ctrl + C / V / X : 복사 / 붙여넣기 / 잘라내기 ...

무엇보다 가장 큰 장점은 이 모든 것이 무료라는 것이다. Python 전용 에디터로 Pycharm을 사용하기도 한다. 하지만 Python 외 다양한 언어를 동시에 사용하려면 비용을 지불해야한다. 각자의 장점이 있지만, VSC 만으로도 충분히 편리한 기능을 사용할 수 있고, 실제 전세계 많은 개발자들이 VSC를 사용하고 있다.

Anaconda3 (Miniconda)

가상환경을 pipenv등으로 설정하기도 하지만, Python 패키지를 많이 다루다보니 개인적으로는 conda를 선호한다. 가상환경이 필요한 이유는 버전 관리 때문이다. 처음 파이썬을 공부하다보면 분명 모듈이나 패키지를 설치했는데 정상적으로 실행되지 않은 문제를 종종 겪는다. 만약 Python 버전과 해당 모듈/패키지의 버전이 다르면 정상적으로 실행되지 않는다. 또 이전에 만들어진 서비스나 코드를 활용하다보면, 다른 버전의 Python을 새로 설치하고 해당 버전과 맞는 패키지를 새로 설치해야하는 불편한 상황이 생긴다. 이럴 때 가상환경이 매우 편리하다.

가상환경은 쉽게 말해 독립적인 환경을 만드는 것이다. A이라는 환경에서는 3.6버전의 Python과 해당 버전에 맞는 pillow, django를 사용하고 있다면, A과 관계없이 B라는 독립적인 환경을 생성하여 Python 3.9와 해당 버전에 맞는 pillow, bs4, requests를 설치하여 사용할 수 있는 것이다. 대신 B에서 작성된 코드는 A 환경이나 기본(base) 환경에서는 정상적으로 실행되지 않을 수 있기 때문에 개발하고 있는 환경을 선택하여 실행해야 한다.

Conda는 Python 패키지 관리를 도우며 무료로 설치가 가능하다. 만약, 데이터를 주로 다룬다면 Anaconda를 설치하고, 그렇지 않다면 가벼운 버전인 miniconda를 설치해도 된다. 기본적으로 Conda를 설치하면 Python이 같이 설치되며, Anaconda의 경우 데이터를 다루기 위한 각종 패키지들이 자동으로 설치된다.

아래 명령어를 통해 conda를 활용할 수 있다. (VSC는 Ctrl + Shift + `로 명령어를 입력할 터미널을 열 수 있다.)

환경 생성 > conda create -n 환경이름 python=버전 ex) C:\> conda create -n venv python=3.6 환경 열기 > conda activate 지정한_환경이름 ex) C:\> conda activate venv 해당 환경이 실행되면 앞에 (환경이름)이 생긴다. ex) (venv) C:\> 패키지 설치 (설치할_환경이름) > conda install 패키지이름 ex) (venv) C:\> conda install bs4 설치된 패키지 확인 (환경이름) > conda list ex) (venv) C:\> conda list 설치된 환경 삭제 > conda env remove -n 환경이름 ex) C:\> conda env remove -n venv

그 외 다양한 명령어가 있지만 위 명령어만 익혀도 큰 문제 없이 사용할 수 있다.

Formatter

Python

Formatter는 코드를 더 보기 좋게 정렬해주는 기능이다. 코드를 보기 좋게 정리하는 게 뭐가 중요한가 싶겠지만 협업을 하거나, 코드를 계속 수정/업데이트 해야하는 상황이라면 잘 정리된 코드가 해석하기도 빠르고 작업하기도 편리하다.

Python의 경우, black을 사용하고 있다. 그리고 black은 PEP8을 따르고 있다.

* PEP8은 Python 코드 작성의 표준 스타일을 정리해 둔 문서이다.

class IntroPage(MainFrame): def __init__(self, master): super().__init__(master) self.config(bg='#ffffff') image = get_img('button-start', 'design') photo_button = ImageTk.PhotoImage(image) button = Button(self, image=photo_button, relief='flat', bg=self._bg, command=lambda: master.switch_frame(StartPage)) button.image = photo_button button.pack(ipadx=3, ipady=2)

black 사용 전

class IntroPage(MainFrame): def __init__(self, master): super().__init__(master) self.config(bg="#ffffff") image = get_img("button-start", "design") photo_button = ImageTk.PhotoImage(image) button = Button( self, image=photo_button, relief="flat", bg=self._bg, command=lambda: master.switch_frame(StartPage), ) button.image = photo_button button.pack(ipadx=3, ipady=2)

black 사용 후

pip나 conda를 이용해 black을 설치한 후 VSC의 설정(Ctrl + ,)에 들어가 "Default Formatter"를 "Python"으로 설정한다. "Format On Save"를 검색해 체크한 뒤 "Python>Formatting Provider"를 black으로 설정해주면 된다.

이후 저장할 때마다 자동으로 PEP8에 따라 코드를 자동 정렬해준다.

HTML, CSS, Javascript

Frontend 작업 때는 Prettier을 사용한다. 코드가 길어지고 복잡해질수록 보기좋게 정렬하기 쉽지 않다. 그렇기 때문에 Prettier를 사용하면 작업이 훨씬 편리해진다. VSC Extensions에 prettier을 검색해 설치할 수 있다.

페이지를 찾을 수 없습니다. 블로그 돌아가기

정렬 전

페이지를 찾을 수 없습니다. 블로그 돌아가기

정렬 후

다만 마크다운에도 prettier가 적용되면 문서가 흐트러질 수 있기 때문에 별도로 설정해야 한다. 프로젝트 root 폴더에 .prettierignore이라는 이름의 파일을 생성하고 *.md를 입력하면 마크다운 문서에 prettier가 적용되지 않는다.

.prettierignore

*.md

공유하기 글 요소 저작자표시

from http://denev6.tistory.com/2 by ccl(A) rewrite - 2021-12-24 15:01:15