콘텐츠로 이동

개발 환경

AI 지원 번역 - 자세히 알아보기 및 개선 제안

현대적인 통합 개발 환경(IDE)은 Nextflow 개발 경험을 극적으로 변화시킬 수 있습니다. 이 사이드 퀘스트는 VS Code와 Nextflow 확장 프로그램을 활용하여 코드를 더 빠르게 작성하고, 오류를 조기에 발견하며, 복잡한 워크플로우를 효율적으로 탐색하는 데 중점을 둡니다.

이것은 전통적인 튜토리얼이 아닙니다

다른 교육 모듈과 달리, 이 가이드는 단계별 튜토리얼이 아닌 빠른 힌트, 팁, 실용적인 예제의 모음으로 구성되어 있습니다. 각 섹션은 여러분의 관심사와 현재 개발 요구사항에 따라 독립적으로 탐색할 수 있습니다. 자유롭게 둘러보며 워크플로우 개발에 가장 즉각적으로 유용할 기능에 집중하세요.

먼저 알아야 할 것

이 가이드는 여러분이 Hello Nextflow 교육 과정을 완료했으며 다음을 포함한 기본 Nextflow 개념에 익숙하다고 가정합니다:

  • 기본 워크플로우 구조: 프로세스, 워크플로우, 그리고 이들이 어떻게 연결되는지 이해하기
  • 채널 작업: 채널 생성, 프로세스 간 데이터 전달, 기본 연산자 사용
  • 모듈과 구조화: 재사용 가능한 모듈 생성 및 include 문 사용
  • 설정 기초: 매개변수, 프로세스 지시문, 프로필을 위한 nextflow.config 사용

여기서 배울 내용

이 가이드는 여러분을 더 효율적인 Nextflow 개발자로 만들어 줄 IDE 생산성 기능에 중점을 둡니다:

  • 고급 구문 강조: VS Code가 코드 구조에 대해 무엇을 보여주는지 이해하기
  • 지능형 자동 완성: 더 빠른 코드 작성을 위한 컨텍스트 인식 제안 활용
  • 오류 감지 및 진단: 워크플로우를 실행하기 전에 구문 오류 포착
  • 코드 탐색: 프로세스, 모듈, 정의 사이를 빠르게 이동
  • 서식 지정 및 구조화: 일관되고 읽기 쉬운 코드 스타일 유지
  • AI 지원 개발 (선택 사항): IDE와 통합된 최신 AI 도구 사용

왜 지금 IDE 기능인가요?

여러분은 이미 Hello Nextflow 과정 동안 VS Code를 사용해 왔을 가능성이 높지만, IDE 기능보다는 Nextflow 기본 사항 학습에 중점을 두었습니다. 이제 프로세스, 워크플로우, 채널, 모듈과 같은 기본 Nextflow 개념에 익숙해졌으므로, 여러분을 더 효율적인 개발자로 만들어 줄 정교한 IDE 기능을 활용할 준비가 되었습니다.

이것을 개발 환경을 "레벨업"하는 것으로 생각하세요 - 여러분이 사용해 온 동일한 편집기에는 여러분이 그것이 무엇을 도와주는지 이해하게 되면 진정으로 가치 있게 되는 훨씬 더 강력한 기능이 있습니다.


0. 설정 및 준비

IDE 기능을 탐색하기 위한 작업 공간을 설정해 봅시다:

IDE 기능 디렉토리로 이동
cd side-quests/ide_features

이 디렉토리를 VS Code에서 엽니다:

현재 디렉토리에서 VS Code 열기
code .

ide_features 디렉토리에는 다양한 IDE 기능을 보여주는 예제 워크플로우가 포함되어 있습니다:

디렉토리 구조 보기
tree .
프로젝트 구조
tree .
.
├── basic_workflow.nf
├── complex_workflow.nf
├── data
│   ├── sample_001.fastq.gz
│   ├── sample_002.fastq.gz
│   ├── sample_003.fastq.gz
│   ├── sample_004.fastq.gz
│   ├── sample_005.fastq.gz
│   └── sample_data.csv
├── modules
│   ├── fastqc.nf
│   ├── star.nf
│   └── utils.nf
└── nextflow.config

3 directories, 12 files

예제 파일에 대하여

  • basic_workflow.nf는 실행하고 수정할 수 있는 기본 워크플로우입니다
  • complex_workflow.nf는 탐색 기능을 보여주기 위한 설명 전용으로 설계되었습니다 - 성공적으로 실행되지 않을 수 있지만 현실적인 다중 파일 워크플로우 구조를 보여줍니다

키보드 단축키

이 가이드의 일부 기능은 선택적 키보드 단축키를 사용합니다. 브라우저를 통해 GitHub Codespaces로 이 자료에 접근하는 경우, 단축키가 시스템의 다른 용도로 사용되기 때문에 예상대로 작동하지 않을 수 있습니다.

실제로 워크플로우를 작성할 때처럼 VS Code를 로컬에서 실행하는 경우, 단축키는 설명된 대로 작동합니다.

Mac을 사용하는 경우, 일부(전부는 아님) 키보드 단축키가 "ctrl" 대신 "cmd"를 사용하며, 텍스트에서 이를 Ctrl/Cmd와 같이 표시하겠습니다.

0.1. Nextflow 확장 프로그램 설치

이미 Devcontainer를 사용하고 계신가요?

GitHub Codespaces에서 작업하거나 로컬 devcontainer를 사용하는 경우, Nextflow 확장 프로그램이 이미 설치되고 구성되어 있을 가능성이 높습니다. 아래의 수동 설치 단계를 건너뛰고 확장 프로그램 기능 탐색으로 바로 진행할 수 있습니다.

확장 프로그램을 수동으로 설치하려면:

  1. VS Code를 엽니다
  2. 왼쪽의 확장 프로그램 아이콘을 클릭하여 확장 프로그램 보기로 이동합니다: 확장 프로그램 아이콘 (VSCode를 로컬에서 실행하는 경우 단축키 Ctrl/Cmd+Shift+X)
  3. "Nextflow"를 검색합니다
  4. 공식 Nextflow 확장 프로그램을 설치합니다

Nextflow 확장 프로그램 설치

0.2. 작업 공간 레이아웃

Hello Nextflow 전반에 걸쳐 VS Code를 사용해 왔기 때문에, 이미 기본 사항에 익숙합니다. 이 세션을 위해 작업 공간을 효율적으로 구성하는 방법은 다음과 같습니다:

  • 편집기 영역: 파일 보기 및 편집용. 파일을 나란히 비교하기 위해 여러 창으로 분할할 수 있습니다.
  • 파일 탐색기 클릭 (파일 탐색기 아이콘) (Ctrl/Cmd+Shift+E): 시스템의 로컬 파일 및 폴더. 파일 간 탐색을 위해 왼쪽에 열어 두세요
  • 통합 터미널 (Windows 및 MacOS 모두 Ctrl+Shift+ 백틱): 하단에서 컴퓨터와 상호작용하기 위한 터미널. Nextflow 또는 다른 명령을 실행하는 데 사용합니다.
  • 문제 패널 (Ctrl+Shift+M): VS Code가 감지한 오류 및 문제를 여기에 표시합니다. 한눈에 문제를 강조 표시하는 데 유용합니다.

예제를 진행하면서 패널을 드래그하거나 숨겨서(사이드바를 토글하려면 Ctrl/Cmd+B) 레이아웃을 사용자 지정할 수 있습니다.

요약

Nextflow 확장 프로그램이 설치된 VS Code가 설정되었으며 효율적인 개발을 위한 작업 공간 레이아웃을 이해했습니다.

다음 단계는?

구문 강조가 Nextflow 코드 구조를 한눈에 이해하는 데 어떻게 도움이 되는지 알아보세요.


1. 구문 강조 및 코드 구조

이제 작업 공간이 설정되었으므로, VS Code의 구문 강조가 Nextflow 코드를 더 효과적으로 읽고 작성하는 데 어떻게 도움이 되는지 살펴봅시다.

1.1. Nextflow 구문 요소

구문 강조가 작동하는 것을 보려면 basic_workflow.nf를 엽니다:

구문 쇼케이스

VS Code가 다음을 강조하는 방식을 확인하세요:

  • 키워드 (process, workflow, input, output, script)는 뚜렷한 색상으로
  • 문자열 리터럴매개변수는 다른 스타일로
  • 주석은 음소거된 색상으로
  • 변수함수 호출은 적절한 강조로
  • 코드 블록은 적절한 들여쓰기 안내선과 함께

테마에 따른 색상

표시되는 특정 색상은 VS Code 테마(다크/라이트 모드), 색상 설정 및 사용자 지정 사항에 따라 달라집니다. 중요한 것은 선택한 색상 구성표에 관계없이 다른 구문 요소가 시각적으로 서로 구별되어 코드 구조를 더 쉽게 이해할 수 있다는 것입니다.

1.2. 코드 구조 이해

구문 강조는 다음을 빠르게 식별하는 데 도움이 됩니다:

  • 프로세스 경계: 다른 프로세스 간의 명확한 구분
  • 입력/출력 블록: 데이터 흐름 정의를 쉽게 파악
  • 스크립트 블록: 실행되는 실제 명령
  • 채널 작업: 데이터 변환 단계
  • 설정 지시문: 프로세스별 설정

이러한 시각적 구성은 여러 프로세스와 복잡한 데이터 흐름을 포함하는 복잡한 워크플로우로 작업할 때 매우 중요합니다.

요약

VS Code의 구문 강조가 Nextflow 코드 구조를 읽고 다양한 언어 요소를 식별하여 더 빠른 개발을 가능하게 하는 방법을 이해했습니다.

다음 단계는?

지능형 자동 완성이 컨텍스트 인식 제안으로 코드 작성 속도를 높이는 방법을 알아보세요.


2. 지능형 자동 완성

VS Code의 자동 완성 기능은 컨텍스트에 따라 적절한 옵션을 제안하여 코드를 더 빠르고 오류 없이 작성할 수 있도록 도와줍니다.

2.1. 컨텍스트 인식 제안

자동 완성 옵션은 코드 내 위치에 따라 달라집니다:

채널 작업

basic_workflow.nf를 다시 열고 workflow 블록에서 channel.을 입력해 보세요:

채널 자동 완성

다음에 대한 제안이 표시됩니다:

  • fromPath() - 파일 경로에서 채널 생성
  • fromFilePairs() - 쌍을 이루는 파일에서 채널 생성
  • of() - 값에서 채널 생성
  • fromSRA() - SRA 접근 번호에서 채널 생성
  • 그리고 더 많은 것들...

이렇게 하면 정확한 메서드 이름을 기억하지 않고도 사용할 올바른 channel 팩토리를 빠르게 찾을 수 있습니다.

채널에 적용할 수 있는 연산자도 찾을 수 있습니다. 예를 들어, FASTQC.out.html.을 입력하여 사용 가능한 작업을 확인하세요:

채널 연산자 자동 완성

프로세스 지시문

프로세스 script 블록 내부에서 task.를 입력하여 사용 가능한 런타임 속성을 확인하세요:

작업 속성 자동 완성

설정

nextflow.config를 열고 아무 곳에나 process.를 입력하여 사용 가능한 프로세스 지시문을 확인하세요:

설정 자동 완성

다음에 대한 제안이 표시됩니다:

  • executor
  • memory
  • cpus

이렇게 하면 프로세스를 구성할 때 시간을 절약할 수 있으며 다양한 설정 범위에서 작동합니다. 예를 들어, docker.를 입력하여 Docker 관련 설정 옵션을 확인해 보세요.

요약

VS Code의 지능형 자동 완성을 사용하여 구문을 암기하지 않고도 사용 가능한 채널 작업, 프로세스 지시문, 설정 옵션을 찾을 수 있습니다.

다음 단계는?

실시간 오류 감지가 워크플로우를 실행하기 전에 코드를 읽는 것만으로 문제를 포착하는 데 어떻게 도움이 되는지 알아보세요.

3. 오류 감지 및 진단

VS Code의 실시간 오류 감지는 워크플로우를 실행하기 전에 문제를 포착하는 데 도움이 됩니다.

3.1. 구문 오류 감지

감지 기능을 확인하기 위해 의도적으로 오류를 만들어 봅시다. basic_workflow.nf를 열고 프로세스 이름을 FASTQC에서 FASTQ(또는 다른 잘못된 이름)로 변경하세요. VS Code는 workflow 블록의 오류를 빨간색 물결 밑줄로 즉시 강조 표시합니다:

오류 밑줄

3.2. 문제 패널

개별 오류 강조를 넘어, VS Code는 작업 공간 전체의 모든 오류, 경고, 정보 메시지를 집계하는 중앙 집중식 문제 패널을 제공합니다. Ctrl/Cmd+Shift+M으로 열고 필터 아이콘을 사용하여 현재 파일과 관련된 오류만 표시하세요:

문제 패널 필터링

문제를 클릭하여 문제가 있는 줄로 바로 이동하세요

문제 패널

프로세스 이름을 FASTQC로 다시 변경하여 오류를 수정하세요.

3.3. 일반적인 오류 패턴

Nextflow 구문의 일반적인 오류는 다음과 같습니다:

  • 괄호 누락: 일치하지 않는 { 또는 }
  • 불완전한 블록: 프로세스에 필요한 섹션 누락
  • 잘못된 구문: 잘못된 형식의 Nextflow DSL
  • 키워드 오타: 잘못 철자된 프로세스 지시문
  • 채널 불일치: 타입 비호환성

Nextflow 언어 서버는 문제 패널에서 이러한 문제를 강조 표시합니다. 파이프라인을 실행하는 동안 구문 오류를 방지하기 위해 이를 조기에 확인할 수 있습니다.

요약

VS Code의 오류 감지 및 문제 패널을 사용하여 워크플로우를 실행하기 전에 구문 오류 및 문제를 포착하여 시간을 절약하고 좌절을 방지할 수 있습니다.

다음 단계는?

복잡한 워크플로우에서 프로세스, 모듈, 정의 간을 효율적으로 탐색하는 방법을 알아보세요.


4. 코드 탐색 및 심볼 관리

여러 파일에 걸쳐 있는 복잡한 워크플로우를 작업할 때는 효율적인 탐색이 중요합니다. 이를 이해하기 위해 basic_workflow.nf의 프로세스 정의를 제공한 모듈에 대한 가져오기로 교체하세요:

basic_workflow.nf
include { FASTQC } from './modules/fastqc.nf'
basic_workflow.nf
process FASTQC {
    tag "${sample_id}"
    publishDir "${params.output_dir}/fastqc", mode: 'copy'

    input:
    tuple val(sample_id), path(reads)

    output:
    tuple val(sample_id), path("*.html"), emit: html
    tuple val(sample_id), path("*.zip"), emit: zip

    script:
    def args = task.ext.args ?: ''
    """
    fastqc \\
        ${args} \\
        --threads ${task.cpus} \\
        ${reads}
    """
}

4.1. 정의로 이동

FASTQC와 같은 프로세스 이름 위에 마우스를 올리면 모듈 인터페이스(입력 및 출력)가 포함된 팝업이 표시됩니다:

정의로 이동

이 기능은 모듈 파일을 직접 열지 않고도 모듈 인터페이스를 이해할 수 있게 해주므로 워크플로우를 작성할 때 특히 유용합니다.

Ctrl/Cmd-클릭을 사용하여 모든 프로세스, 모듈 또는 변수 정의로 빠르게 이동할 수 있습니다. 스크립트 상단의 모듈 파일 링크 위에 마우스를 올리고 제안된 대로 링크를 따라가세요:

링크 따라가기

프로세스 이름에서도 동일하게 작동합니다. basic_workflow.nf로 돌아가서 workflow 블록의 FASTQC 프로세스 이름에서 이것을 시도해 보세요. 이것은 프로세스 이름으로 직접 연결됩니다(이 예제에서는 모듈 파일과 동일하지만 훨씬 더 큰 파일의 중간 부분일 수 있습니다).

원래 위치로 돌아가려면 Alt+← (또는 Mac에서 Ctrl+-)를 사용하세요. 이것은 위치를 잃지 않고 코드를 탐색하는 강력한 방법입니다.

이제 complex_workflow.nf(앞서 언급한 설명 전용 파일)를 사용하여 더 복잡한 워크플로우에서 탐색을 살펴봅시다. 이 워크플로우에는 별도의 모듈 파일에 정의된 여러 프로세스와 일부 인라인 프로세스가 포함되어 있습니다. 복잡한 다중 파일 구조는 수동으로 탐색하기 어려울 수 있지만, 정의로 이동하는 기능은 탐색을 훨씬 더 관리하기 쉽게 만듭니다.

  1. complex_workflow.nf를 엽니다
  2. 모듈 정의로 이동합니다
  3. Alt+← (또는 Ctrl+-)를 사용하여 뒤로 이동합니다
  4. workflow 블록의 FASTQC 프로세스 이름으로 이동합니다. 이것은 프로세스 이름으로 직접 연결됩니다(이 예제에서는 모듈 파일과 동일하지만 훨씬 더 큰 파일의 중간 부분일 수 있습니다).
  5. 다시 뒤로 이동합니다
  6. workflow 블록의 TRIM_GALORE 프로세스로 이동합니다. 이것은 인라인으로 정의되어 있으므로 별도의 파일로 이동하지 않지만, 여전히 프로세스 정의를 보여주며, 여전히 원래 위치로 돌아갈 수 있습니다.

4.2. 심볼 탐색

complex_workflow.nf가 여전히 열려 있는 상태에서, VSCode 상단의 검색 창에 @를 입력하여 파일의 모든 심볼에 대한 개요를 얻을 수 있습니다(키보드 단축키는 Ctrl/Cmd+Shift+O이지만 Codespaces에서는 작동하지 않을 수 있습니다). 이렇게 하면 현재 파일의 모든 심볼을 나열하는 심볼 탐색 패널이 열립니다:

심볼 탐색

다음이 표시됩니다:

  • 모든 프로세스 정의
  • 워크플로우 정의(이 파일에 두 개의 워크플로우가 정의되어 있습니다)
  • 함수 정의

입력을 시작하여 결과를 필터링하세요.

4.3. 모든 참조 찾기

프로세스나 변수가 코드베이스 전체에서 어디에 사용되는지 이해하는 것은 매우 유용할 수 있습니다. 예를 들어, FASTQC 프로세스에 대한 모든 참조를 찾으려면 먼저 정의로 이동하세요. modules/fastqc.nf를 직접 열거나 위에서 했던 것처럼 VS Code의 빠른 탐색 기능을 Ctrl/Cmd-클릭으로 사용할 수 있습니다. 프로세스 정의에 도착하면 FASTQC 프로세스 이름을 마우스 오른쪽 버튼으로 클릭하고 컨텍스트 메뉴에서 "모든 참조 찾기"를 선택하여 사용된 모든 인스턴스를 확인하세요.

참조 찾기

이 기능은 두 개의 별개 워크플로우에서의 사용을 포함하여 FASTQC가 작업 공간 내에서 참조되는 모든 인스�스를 표시합니다. 이 통찰력은 FASTQC 프로세스 수정의 잠재적 영향을 평가하는 데 중요합니다.

4.4. 개요 패널

탐색기 사이드바(탐색기 아이콘 클릭)에 있는 개요 패널은 현재 파일의 모든 심볼에 대한 편리한 개요를 제공합니다. 이 기능을 사용하면 함수, 변수 및 기타 주요 요소를 계층적 보기로 표시하여 코드 구조를 빠르게 탐색하고 관리할 수 있습니다.

개요 패널

개요 패널을 사용하여 파일 브라우저를 사용하지 않고 코드의 다른 부분으로 빠르게 이동하세요.

4.5. DAG 시각화

VS Code의 Nextflow 확장 프로그램은 워크플로우를 방향성 비순환 그래프(DAG)로 시각화할 수 있습니다. 이것은 프로세스 간의 데이터 흐름과 의존성을 이해하는 데 도움이 됩니다. complex_workflow.nf를 열고 workflow { 위의 "Preview DAG" 버튼을 클릭하세요(이 파일의 두 번째 workflow 블록):

DAG 미리보기

이것은 단지 '진입' 워크플로우이지만, 위쪽의 workflow RNASEQ_PIPELINE { 위의 "Preview DAG" 버튼을 클릭하여 내부 워크플로우의 DAG도 미리 볼 수 있습니다:

내부 워크플로우 DAG 미리보기

이 워크플로우의 경우, DAG의 노드를 사용하여 코드의 해당 프로세스 정의로 이동할 수 있습니다. 노드를 클릭하면 편집기에서 관련 프로세스 정의로 이동합니다. 특히 워크플로우가 큰 규모로 성장하면, 이것은 코드를 탐색하고 프로세스가 어떻게 연결되어 있는지 이해하는 데 정말로 도움이 될 수 있습니다.

요약

정의로 이동, 심볼 검색, 참조 찾기, DAG 시각화를 사용하여 복잡한 워크플로우를 효율적으로 탐색하여 코드 구조와 의존성을 이해할 수 있습니다.

다음 단계는?

더 큰 Nextflow 프로젝트에서 여러 상호 연결된 파일로 효과적으로 작업하는 방법을 알아보세요.

5. 여러 파일에서 작업하기

실제 Nextflow 개발은 여러 상호 연결된 파일로 작업하는 것을 포함합니다. VS Code가 복잡한 프로젝트를 효율적으로 관리하는 데 어떻게 도움이 되는지 살펴봅시다.

5.1. 빠른 파일 탐색

complex_workflow.nf가 열려 있는 상태에서, 여러 모듈을 가져오는 것을 알 수 있습니다. 이들 간의 빠른 탐색을 연습해 봅시다.

Ctrl+P (또는 Cmd+P)를 누르고 "fast"를 입력하기 시작하세요:

VS Code가 일치하는 파일을 보여줍니다. modules/fastqc.nf를 선택하여 즉시 이동하세요. 이것은 찾고 있는 파일을 대략적으로 알고 있을 때 파일 탐색기를 클릭하는 것보다 훨씬 빠릅니다.

다른 패턴으로 시도해 보세요:

  • "star"를 입력하여 STAR 정렬 모듈 파일(star.nf)을 찾습니다
  • "utils"를 입력하여 유틸리티 함수 파일(utils.nf)을 찾습니다
  • "config"를 입력하여 설정 파일(nextflow.config)로 이동합니다

5.2. 다중 파일 개발을 위한 분할 편집기

모듈로 작업할 때는 종종 메인 워크플로우와 모듈 정의를 동시에 봐야 합니다. 이를 설정해 봅시다:

  1. complex_workflow.nf를 엽니다
  2. 새 탭에서 modules/fastqc.nf를 엽니다
  3. modules/fastqc.nf 탭을 마우스 오른쪽 버튼으로 클릭하고 "Split Right"를 선택합니다
  4. 이제 두 파일을 나란히 볼 수 있습니다

분할 편집기

다음과 같은 경우에 매우 유용합니다:

  • 워크플로우 호출을 작성하는 동안 모듈 인터페이스 확인, 그리고 미리보기가 충분하지 않은 경우
  • 다른 모듈 간의 유사한 프로세스 비교
  • 워크플로우와 모듈 간의 데이터 흐름 디버깅

5.3. 프로젝트 전체 검색

때로는 특정 패턴이 전체 프로젝트에서 어디에 사용되는지 찾아야 합니다. Ctrl/Cmd+Shift+F를 눌러 검색 패널을 엽니다.

작업 공간 전체에서 publishDir을 검색해 보세요:

프로젝트 검색

이것은 publish 디렉토리를 사용하는 모든 파일을 보여주며, 다음에 도움이 됩니다:

  • 출력 구성 패턴 이해
  • 특정 지시문의 예제 찾기
  • 모듈 간 일관성 보장

요약

빠른 파일 탐색, 분할 편집기, 프로젝트 전체 검색을 사용하여 복잡한 다중 파일 프로젝트를 관리하여 워크플로우와 모듈에서 효율적으로 작업할 수 있습니다.

다음 단계는?

코드 서식 지정 및 유지 관리 기능이 워크플로우를 구성되고 읽기 쉽게 유지하는 방법을 알아보세요.


6. 코드 서식 지정 및 유지 관리

적절한 코드 서식 지정은 미학뿐만 아니라 가독성, 이해, 복잡한 워크플로우를 업데이트하는 용이성을 향상시키는 데 필수적입니다.

6.1. 자동 서식 지정 실습

basic_workflow.nf를 열고 의도적으로 서식을 망쳐 봅시다:

  • 일부 들여쓰기 제거: 전체 문서를 강조 표시하고 shift+tab을 여러 번 눌러 가능한 한 많은 들여쓰기를 제거합니다.
  • 무작위로 여분의 공백 추가: channel.fromPath 문에서 ( 뒤에 공백 30개를 추가합니다.
  • 일부 줄을 어색하게 나눔: .view { 연산자와 Processing sample: 문자열 사이에 새 줄을 추가하되 닫는 괄호 } 앞에는 해당 줄바꿈을 추가하지 않습니다.

이제 Shift+Alt+F (또는 MacOS에서 Shift+Option+F)를 눌러 자동 서식 지정을 하세요:

VS Code가 즉시:

  • 프로세스 구조를 명확하게 보여주도록 들여쓰기 수정
  • 유사한 요소를 일관되게 정렬
  • 불필요한 공백 제거
  • 읽기 쉬운 줄 나눔 유지

자동 서식 지정이 모든 코드 스타일 문제를 해결하지 못할 수 있음에 유의하세요. Nextflow 언어 서버는 코드를 깔끔하게 유지하는 것을 목표로 하지만, 특정 영역에서는 개인의 선호도도 존중합니다. 예를 들어, 프로세스의 script 블록 내부에서 들여쓰기를 제거하면 포맷터는 그대로 두는데, 의도적으로 그 스타일을 선호할 수 있기 때문입니다.

현재 Nextflow에 대한 엄격한 스타일 적용이 없으므로 언어 서버는 어느 정도의 유연성을 제공합니다. 그러나 명확성을 유지하기 위해 메서드 및 함수 정의 주변에 서식 지정 규칙을 일관되게 적용합니다.

6.2. 코드 구성 기능

빠른 주석 처리

워크플로우에서 코드 블록을 선택하고 Ctrl+/ (또는 Cmd+/)를 눌러 주석 처리하세요:

// workflow {
//     ch_input = channel.fromPath(params.input)
//         .splitCsv(header: true)
//         .map { row -> [row.sample_id, file(row.fastq_path)] }
//
//     FASTQC(ch_input)
// }

다음에 완벽합니다:

  • 개발 중에 워크플로우의 일부를 일시적으로 비활성화
  • 복잡한 채널 작업에 설명 주석 추가
  • 워크플로우 섹션 문서화

Ctrl+/ (또는 Cmd+/)를 다시 사용하여 코드 주석을 해제하세요.

개요를 위한 코드 접기

complex_workflow.nf에서 프로세스 정의 옆의 작은 화살표를 확인하세요. 클릭하여 프로세스를 접습니다(축소):

코드 접기

이렇게 하면 구현 세부 사항에 빠지지 않고 워크플로우 구조의 높은 수준 개요를 얻을 수 있습니다.

괄호 일치

커서를 { 또는 } 괄호 옆에 놓으면 VS Code가 일치하는 괄호를 강조 표시합니다. Ctrl+Shift+\ (또는 Cmd+Shift+\)를 사용하여 일치하는 괄호 사이를 이동하세요.

다음에 중요합니다:

  • 프로세스 경계 이해
  • 누락되거나 추가된 괄호 찾기
  • 중첩된 워크플로우 구조 탐색

다중 줄 선택 및 편집

여러 줄을 동시에 편집하기 위해 VS Code는 강력한 다중 커서 기능을 제공합니다:

  • 다중 줄 선택: Ctrl+Alt (또는 MacOS의 경우 Cmd+Option)를 누른 상태에서 화살표 키를 사용하여 여러 줄을 선택합니다
  • 다중 줄 들여쓰기: 여러 줄을 선택하고 Tab을 사용하여 들여쓰기하거나 Shift+Tab을 사용하여 전체 블록을 내어쓰기합니다

다음에 특히 유용합니다:

  • 전체 프로세스 블록을 일관되게 들여쓰기
  • 여러 줄에 한 번에 주석 추가
  • 여러 프로세스에서 유사한 매개변수 정의 편집

요약

자동 서식 지정, 주석 처리 기능, 코드 접기, 괄호 일치, 다중 줄 편집을 사용하여 깔끔하고 읽기 쉬운 코드를 유지하여 복잡한 워크플로우를 효율적으로 구성할 수 있습니다.

다음 단계는?

VS Code가 코드 편집을 넘어 더 넓은 개발 워크플로우와 어떻게 통합되는지 알아보세요.


7. 개발 워크플로우 통합

VS Code는 코드 편집을 넘어 개발 워크플로우와 잘 통합됩니다.

7.1. 버전 관리 통합

Codespaces와 Git 통합

GitHub Codespaces에서 작업하는 경우, 일부 Git 통합 기능, 특히 소스 제어를 위한 키보드 단축키가 예상대로 작동하지 않을 수 있습니다. 초기 설정 중에 디렉토리를 Git 리포지토리로 여는 것을 거부했을 수도 있으며, 이는 교육 목적으로는 괜찮습니다.

프로젝트가 git 리포지토리인 경우(이것이 그렇습니다), VS Code는 다음을 표시합니다:

  • 색상 표시기가 있는 수정된 파일
  • 상태 표시줄의 Git 상태
  • 인라인 diff 보기
  • 커밋 및 푸시 기능

소스 제어 버튼(소스 제어 아이콘)을 사용하여 소스 제어 패널을 엽니다(VSCode를 로컬에서 작업하는 경우 Ctrl+Shift+G 또는 Cmd+Shift+G)하여 git 변경 사항을 확인하고 편집기에서 직접 커밋을 스테이징하세요.

소스 제어 패널

7.2. 워크플로우 실행 및 검사

워크플로우를 실행한 다음 결과를 검사해 봅시다. 통합 터미널(Windows 및 MacOS 모두에서 Ctrl+Shift+ 백틱)에서 기본 워크플로우를 실행하세요:

기본 워크플로우 실행
nextflow run basic_workflow.nf --input data/sample_data.csv --output_dir results

워크플로우가 실행되는 동안 터미널에서 실시간 출력을 볼 수 있습니다. 완료 후 편집기를 떠나지 않고 VS Code를 사용하여 결과를 검사할 수 있습니다:

  1. 작업 디렉토리로 이동: 파일 탐색기 또는 터미널을 사용하여 .nextflow/work를 탐색합니다
  2. 로그 파일 열기: 터미널 출력의 로그 파일 경로를 클릭하여 VS Code에서 직접 엽니다
  3. 출력 검사: 파일 탐색기에서 게시된 결과 디렉토리를 탐색합니다
  4. 실행 보고서 보기: HTML 보고서를 VS Code 또는 브라우저에서 직접 엽니다

이렇게 하면 여러 애플리케이션 간에 전환하지 않고 모든 것을 한 곳에 보관할 수 있습니다.

요약

VS Code를 버전 관리 및 워크플로우 실행과 통합하여 단일 인터페이스에서 전체 개발 프로세스를 관리할 수 있습니다.

다음 단계는?

이러한 모든 IDE 기능이 일상적인 개발 워크플로우에서 어떻게 함께 작동하는지 확인하세요.


8. 요약 및 빠른 참고 사항

위에서 논의한 각 IDE 기능에 대한 빠른 참고 사항은 다음과 같습니다:

8.1. 새로운 기능 시작

  1. 빠른 파일 열기 (Ctrl+P 또는 Cmd+P)로 관련 기존 모듈 찾기
  2. 분할 편집기로 유사한 프로세스를 나란히 보기
  3. 심볼 탐색 (Ctrl+Shift+O 또는 Cmd+Shift+O)으로 파일 구조 이해
  4. 자동 완성으로 새 코드를 빠르게 작성

8.2. 문제 디버깅

  1. 문제 패널 (Ctrl+Shift+M 또는 Cmd+Shift+M)로 모든 오류를 한 번에 확인
  2. 정의로 이동 (Ctrl-클릭 또는 Cmd-클릭)으로 프로세스 인터페이스 이해
  3. 모든 참조 찾기로 프로세스가 어떻게 사용되는지 확인
  4. 프로젝트 전체 검색으로 유사한 패턴 또는 문제 찾기

8.3. 리팩토링 및 개선

  1. 프로젝트 전체 검색 (Ctrl+Shift+F 또는 Cmd+Shift+F)으로 패턴 찾기
  2. 자동 서식 지정 (Shift+Alt+F 또는 Shift+Option+F)으로 일관성 유지
  3. 코드 접기로 구조에 집중
  4. Git 통합으로 변경 사항 추적

요약

이제 Nextflow 개발을 위한 VS Code의 IDE 기능에 대한 빠른 여행을 마쳤습니다. 이러한 도구는 다음을 통해 생산성을 크게 향상시킬 것입니다:

  • 실시간 구문 검사를 통한 오류 감소
  • 지능형 자동 완성으로 개발 속도 향상
  • 복잡한 다중 파일 워크플로우에서 탐색 개선
  • 일관된 서식 지정을 통한 품질 유지
  • 고급 강조 표시 및 구조 시각화를 통한 이해 향상

모든 것을 기억하기를 기대하지 않지만, 이제 이러한 기능이 존재한다는 것을 알았으므로 필요할 때 찾을 수 있을 것입니다. Nextflow 워크플로우를 계속 개발하면서 이러한 IDE 기능은 자연스럽게 익숙해져, 구문 및 구조와 씨름하는 대신 고품질 코드 작성에 집중할 수 있게 될 것입니다.

다음 단계는?

다음과 같은 다른 교육 모듈을 진행하면서 이러한 IDE 기술을 적용하세요:

  • nf-test: 워크플로우를 위한 포괄적인 테스트 스위트 생성
  • Hello nf-core: 커뮤니티 표준을 사용하여 프로덕션 품질의 파이프라인 구축

이러한 IDE 기능의 진정한 힘은 더 크고 복잡한 프로젝트를 작업하면서 나타납니다. 단계적으로 워크플로우에 통합하기 시작하세요 - 몇 번의 세션 내에 자연스럽게 익숙해지고 Nextflow 개발에 접근하는 방식을 변화시킬 것입니다.

속도를 늦추기 전에 오류를 포착하는 것부터 복잡한 코드베이스를 쉽게 탐색하는 것까지, 이러한 도구는 여러분을 더 자신감 있고 효율적인 개발자로 만들어 줄 것입니다.

즐거운 코딩 되세요!