Visual Studio Code(이하 VSCode)에서 코드 접기 기능을 사용하면 긴 코드를 효율적으로 관리하고 가독성을 높일 수 있습니다. 이번 글에서는 VSCode에서 코드 접기를 사용하는 방법과 Python 코드에서의 활용 팁을 소개하겠습니다.
목차
- 기본 코드 접기 기능 사용하기
- 모든 코드 블록 접기 및 펼치기
- 사용자 지정 코드 접기 영역 만들기
- 설정 확인하기
- 확장 기능 활용하기
- 키보드 단축키 커스터마이징
- 코드 접기 활용 팁
- 실용적인 예제 적용
- 추가 리소스
1. 기본 코드 접기 기능 사용하기
VSCode는 자동으로 코드 블록(함수, 클래스, 조건문 등)을 인식하여 접을 수 있도록 지원합니다.
- 접기(Fold): 코드 블록 왼쪽의 작은 화살표 아이콘을 클릭하면 해당 블록이 접힙니다.
- 펼치기(Unfold): 접힌 블록의 왼쪽 화살표 아이콘을 다시 클릭하면 블록이 펼쳐집니다.
또한 키보드 단축키를 활용할 수 있습니다.
- 접기
- Windows/Linux:
Ctrl + Shift + [
- Mac:
⌥ + ⌘ + [
- Windows/Linux:
- 펼치기
- Windows/Linux:
Ctrl + Shift + ]
- Mac:
⌥ + ⌘ + ]
- Windows/Linux:
2. 모든 코드 블록 접기 및 펼치기
코드 전체에서 특정 레벨의 블록을 모두 접거나 펼칠 수 있습니다.
- 모든 블록 접기
- Windows/Linux:
Ctrl + K Ctrl + 0
- Mac:
⌘ + K ⌘ + 0
- Windows/Linux:
- 모든 블록 펼치기
- Windows/Linux:
Ctrl + K Ctrl + J
- Mac:
⌘ + K ⌘ + J
- Windows/Linux:
3. 사용자 지정 코드 접기 영역 만들기
Python 코드에서는 주석을 활용하여 사용자 지정 코드 접기 영역을 만들 수 있습니다.
사용 방법:
# region 원하는 섹션 이름
# 이 부분의 코드를 접거나 펼칠 수 있습니다.
def my_function():
# 코드 내용
pass
# endregion
# region
과 # endregion
주석을 사용하여 원하는 영역을 지정하면 해당 부분을 접을 수 있습니다.
예시:
# region 데이터 로드 섹션
import pandas as pd
def load_data():
# 데이터 로드 코드...
pass
# endregion
# region 데이터 처리 섹션
import numpy as np
def process_data():
# 데이터 처리 코드...
pass
# endregion
# region 그래프 생성 섹션
import matplotlib.pyplot as plt
def plot_data():
# 그래프 생성 코드...
pass
# endregion
4. 설정 확인하기
코드 접기 기능이 제대로 동작하지 않는다면 VSCode 설정을 확인해보세요.
- 설정 열기
- Windows/Linux:
Ctrl + ,
- Mac:
⌘ + ,
- Windows/Linux:
검색창에 folding
을 입력하여 Editor: Folding 설정이 활성화되어 있는지 확인합니다.
5. 확장 기능 활용하기
더욱 향상된 코드 접기 기능을 원하신다면 VSCode 확장 기능을 설치할 수 있습니다.
- Python Indent: Python의 들여쓰기 및 코드 접기를 개선해주는 확장입니다.
- Better Comments: 주석을 색상으로 구분하여 가독성을 높여줍니다.
- Code Folding: 코드 접기 기능을 강화해주는 확장입니다.
6. 키보드 단축키 커스터마이징
원하는 대로 키보드 단축키를 커스터마이징하여 코드 접기를 더욱 편리하게 사용할 수 있습니다.
- 단축키 설정 열기
- Windows/Linux:
Ctrl + K Ctrl + S
- Mac:
⌘ + K ⌘ + S
- Windows/Linux:
검색창에 fold
를 입력하여 접기 및 펼치기 관련 명령어의 단축키를 변경할 수 있습니다.
7. 코드 접기 활용 팁
- 논리적 블록으로 코드 구분하기: 함수나 클래스 외에도 관련된 코드 블록을
# region
으로 묶어 관리하면 코드 가독성이 높아집니다. - 주석으로 섹션 구분하기: 주석을 사용하여 코드의 섹션을 명확히 구분하면 코드 이해에 도움이 됩니다.
- 접기 수준 조절하기: 특정 수준의 코드 블록만 접어서 필요한 부분에 집중할 수 있습니다.
8. 실용적인 예제 적용
예를 들어, 아래의 main.py
코드에 코드 접기를 적용해보겠습니다.
# main.py
# region 모듈 임포트
import matplotlib.pyplot as plt
from datetime import datetime
import numpy as np
# 커스텀 모듈 임포트
from data_loader import load_data, extract_columns
from data_processing import (
calculate_time_offset,
calculate_average_sampling_frequency,
lowpass_filter,
trim_data_to_min_length,
calculate_force_difference,
)
from plotting import (
plot_data,
plot_force_difference,
save_plot,
show_plot,
)
# endregion
# region 데이터 로드 및 전처리
# CSV 파일 경로
file_path_off = r'C:\code\csv-read-gui\HActuator\Data\241003\OFF_trans.csv'
file_path_on = r'C:\code\csv-read-gui\HActuator\Data\241003\on_trans.csv'
# 데이터 로드
df_off = load_data(file_path_off)
df_on = load_data(file_path_on)
# 열 추출
time_off, angle_off, temperature_off, force_off = extract_columns(df_off)
time_on, angle_on, temperature_on, force_on = extract_columns(df_on)
# 시간 오프셋 계산
time_off_offset = calculate_time_offset(time_off)
time_on_offset = calculate_time_offset(time_on)
# 평균 샘플링 주파수 계산
average_fs, average_time_diff = calculate_average_sampling_frequency(time_off)
print(f"Average Sampling Frequency: {average_fs} Hz")
print(f"Average Time Difference: {average_time_diff}")
# endregion
# region 데이터 필터링 및 처리
# 필터 적용
cutoff_frequency = 3.0 # 필요에 따라 조정
order = 1
force_off_filtered = lowpass_filter(force_off, cutoff_frequency, average_fs, order)
force_on_filtered = lowpass_filter(force_on, cutoff_frequency, average_fs, order)
# 데이터 길이 조정
(
force_on_filtered_trimmed,
force_off_filtered_trimmed,
time_off_offset_trimmed,
time_on_offset_trimmed,
) = trim_data_to_min_length(
force_on_filtered,
force_off_filtered,
time_off_offset,
time_on_offset,
)
# 힘 차이 계산
force_difference = calculate_force_difference(force_on_filtered_trimmed, force_off_filtered_trimmed)
# endregion
# region 그래프 설정 및 생성
# 그래프 설정
label_font_size = 14
tick_font_size = 10
x_range = [time_off_offset_trimmed.min(), time_off_offset_trimmed.max()]
angle_ylabel = 'Angle (degrees)'
temperature_ylabel = 'Temperature (°C)'
force_ylabel = 'Force (N)'
force_difference_ylabel = 'Force Difference (N)'
# 폰트 설정
plt.rcParams['font.family'] = 'Times New Roman'
plt.rcParams['font.size'] = 12
# 그래프 생성
plt.figure(figsize=(10, 10))
# 각 서브플롯 생성 (생략)
# endregion
# region 그래프 저장 및 표시
# 현재 시간 기반 파일 이름 생성
current_time = datetime.now().strftime("%Y%m%d_%H%M%S")
filename = f"plot_{current_time}.png"
# 그래프 저장 및 표시
save_plot(filename)
show_plot()
# endregion
위와 같이 코드의 각 섹션을 # region
과 # endregion
으로 묶으면, VSCode에서 해당 섹션을 접어서 코드의 전반적인 구조를 쉽게 파악할 수 있습니다.
9. 추가 리소스
- VSCode 공식 문서: VSCode의 코드 접기 기능
- Python 확장 기능: VSCode용 Python 확장
위의 방법들을 통해 VSCode에서 코드 접기 기능을 효과적으로 활용하여 코드를 관리할 수 있습니다. 특히 큰 프로젝트나 긴 코드에서는 코드 접기를 통해 필요한 부분만 집중해서 볼 수 있어 생산성을 높일 수 있습니다.
Happy Coding!
'파이썬' 카테고리의 다른 글
파이썬 자동화-HWPX 스타일 변경 (2) | 2024.10.10 |
---|---|
GPT Researcher 시작하기: 가상 환경 설정 가이드 (2) | 2024.10.10 |
Python 가상환경 설정 및 오류 해결 가이드 (1) | 2024.10.09 |
CursorAI로 시작하는 무료 LLM API 코딩: VSCode + Continue로 손쉽게! (무료 LLM API 포함) (0) | 2024.10.04 |