

 AWS Cloud9 는 더 이상 신규 고객이 사용할 수 없습니다. AWS Cloud9 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. [자세히 알아보기](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# AWS Cloud9 IDE의 향상된 언어 지원
<a name="enhanced-lang-support"></a>

AWS Cloud9 는 다음 언어로 코딩할 때 개발 환경을 개선하기 위해 향상된 지원을 제공합니다.
+ **Java**: 확장을 통해 코드 완성, 오류에 대한 linting, 컨텍스트별 작업 및 디버깅 옵션과 같은 기능을 제공할 수 있습니다.
+ **Typescritpt**: *언어 프로젝트*는 TypeScript의 향상된 생산성 기능에 대한 액세스를 제공합니다.

**Topics**
+ [향상된 Java 지원](enhanced-java.md)
+ [향상된 TypeScript 지원](projects.md)

# Java 개발을 위한 향상된 지원
<a name="enhanced-java"></a>

AWS Cloud9 는 Java로 작업할 때 개발 환경을 개선하기 위해 향상된 언어 지원을 제공합니다. 주요 생산성 기능에는 코드 완성, 오류에 대한 linting, 코드 렌즈, 디버깅 옵션(예: 중단점 및 단계별 실행)이 포함됩니다.

**중요**  
향상된 생산성 기능은 Amazon EC2 인스턴스에 연결된 AWS Cloud9 개발 환경에서만 사용할 수 있습니다.  
또한 Java에 대한 향상된 언어 지원을 사용할 때 최적의 IDE 환경을 보장하기 위해 AWS Cloud9 환경을 지원하는 Amazon EC2 컴퓨팅 인스턴스에는 **2GiB** 이상의 메모리가 필요합니다. 가 EC2 컴퓨팅 인스턴스에 RAM이 충분하지 않음을 AWS Cloud9 감지하면 Java에 대한 향상된 기능을 활성화할 수 있는 옵션이 제공되지 않습니다.

## 향상된 Java 지원 활성화 및 사용자 지정
<a name="activating-java-support"></a>

다음 조건이 충족되면 Java에 대한 향상된 지원을 활성화하는 옵션이 자동으로 표시됩니다.
+  AWS Cloud9 환경이 메모리가 2GiB 이상인 Amazon EC2 인스턴스에 연결되어 있습니다. GiB 
+ Java 개발과 연결된 파일로 작업하고 있습니다.는 `*.java`, `*.gradle` (Gradle 빌드 도구와 연결됨) 및 `pom.xml` (Apache Maven 빌드 도구와 연결됨) 파일 이름과 확장명을 AWS Cloud9 확인합니다.
+ 2**020년 12월 11**일 이후에 생성된 AWS Cloud9 환경에서 작업하고 있습니다. 현재 이 날짜 이전에 생성된 개발 환경에서는 Java 생산성 기능을 사용할 수 없습니다.

이러한 조건이 충족되면 Java 코딩 및 디버깅을 위한 추가 생산성 기능을 활성화할 것인지 묻는 대화 상자가 표시됩니다. **활성화(Activate)**를 선택하면 IDE의 기능을 사용할 수 있습니다.

![\[코드 완성\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/working_with_java_rework.png)


**참고**  
 AWS Cloud9 환경을 생성할 때 시작되는 Amazon EC2 인스턴스에는 *Amazon Coretto 11*이 이미 설치되어 있습니다. Amazon Coretto는 무료로 사용할 수 있는 Open Java Development Kit(OpenJDK)의 프로덕션용 멀티플랫폼 배포판입니다. 즉 AWS Cloud9 out-of-the-box Java 애플리케이션 개발 및 실행을 시작할 수 있습니다.

 AWS Cloud9 인터페이스를 사용하여 향상된 언어 및 디버깅 지원을 수동으로 활성화 및 비활성화할 수도 있습니다. **기본 설정(Preferences)**, **Java 지원(Java Support)**, **향상된 Java 지원(Enhanced Java Support)**을 선택합니다.

![\[향상된 Java 지원 수동으로 활성화 및 비활성화\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/activate_java_extensions_update.png)


의 Java 개발에 대한 향상된 지원 AWS Cloud9 은 IDE의 두 가지 확장으로 제공됩니다.
+ Red Hat의 Java(TM) 언어 지원
+ Java용 디버거

 AWS Cloud9 인터페이스를 사용하면 이러한 익스텐션의 성능을 사용자 지정하는 다양한 설정에 액세스할 수 있습니다. 확장 설정을 변경하려면 **기본 설정(Preferences)**, **Java 지원(Java Support)**을 선택합니다.

이러한 설정에 대한 자세한 내용은 확장의 GitHub 리포지토리에서 설치된 버전의 ReadMe 페이지를 참조하세요.
+ [Red Hat의 Java(TM) 언어 지원](https://github.com/redhat-developer/vscode-java/tree/v1.8.0)
+ [Java용 디버거](https://github.com/microsoft/vscode-java-debug/tree/0.40.1)

## 기능 하이라이트
<a name="key-java-features"></a>

향상된 Java 지원을 활성화한 후 다양한 생산성 향상 기능을 사용할 수 있습니다.

** 코드 완성**

코드 완성 기능을 통해 편집기는 입력하는 코드를 기반으로 컨텍스트 인식 제안을 제공합니다. 예를 들어 객체 이름 뒤에 점(".") 연산자를 입력하면 편집기에 해당 객체에 사용할 수 있는 메서드나 속성이 표시됩니다.

![\[코드 완성\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/code-complete-java.png)


**코드 렌즈**

코드 렌즈를 사용하면 소스 코드에서 직접 컨텍스트별 작업에 액세스할 수 있습니다. Java 개발의 경우 코드 렌즈는 특정 메서드를 실행하고 디버그할 수 있도록 하여 단위 테스트를 용이하게 합니다.

![\[코드 렌즈 액세스\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/context-specific-actions.png)


**코드 linting**

코드 linting은 코드를 빌드하기도 전에 편집기가 코드의 잠재적 오류를 강조 표시하는 방법을 설명합니다. 예를 들어, linting 도구는 초기화되지 않은 변수를 사용하려고 하거나 다른 유형을 예상하는 변수에 값을 할당하려고 하면 호출합니다.

![\[코드 빌드 전에 린팅으로 오류 강조 표시\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/linting.png)


**디버깅 옵션**

중단점과 조사식을 구현할 수 있습니다. 소스 코드에서 중단점을 설정하고 디버거 창을 표시하여 관련 조건을 정의합니다.

![\[디버깅 옵션\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/debugging_options.png)


**구성 파일을 사용하여 디버깅**

또한 AWS Cloud9 이 `launch.json` 및 `tasks.json` 구성 파일을 통해 지원하는 시작 구성 및 작업을 사용하여 디버깅 구성을 제어할 수도 있습니다. 시작 구성의 예와 사용 방법은 [Java 디버그 구성](https://github.com/microsoft/vscode-java-debug/blob/main/Configuration.md)을 참조하세요.

**Java 명령**

**Ctrl\$1** 또는 **F1**을 눌러 AWS Cloud9 명령 패널에서 명령을 실행할 수 있습니다. 그런 다음 "java"를 입력하여 관련 명령을 필터링합니다.

![\[사용 가능한 Java 명령 나열\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/java_commands.png)


**빠른 수정 사항**

빠른 수정을 통해 누락된 요소에 대한 스텁을 생성하여 선언되지 않은 변수 또는 정의되지 않은 메서드를 사용하여 발생하는 오류를 해결할 수 있습니다.

![\[빠른 수정 구현\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/quick_fix_java.png)


**리팩터링**

리팩터링을 동작을 변경하지 않고 코드를 재구성할 수 있습니다. 가져오기 구성 또는 생성자 생성과 같은 옵션에 액세스하려면 항목에 대한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **리팩터링(Refactoring)**을 선택합니다.

![\[리팩터링 기능\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/refactoring_java.png)


**이름 바꾸기**

이름 바꾸기는 단일 작업으로 코드에 나타나는 모든 위치에서 선택한 변수, 함수 및 클래스의 이름을 쉽게 수정할 수 있는 리팩터링 기능입니다. 이름을 변경하려면 항목에 대한 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 열고 **이름 바꾸기(Rename)**를 선택합니다. 이름 바꾸기는 코드에서 이름의 모든 인스턴스에 영향을 줍니다.

![\[클래스 이름 바꾸기\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/renaming_refactoring_java.png)


## Java 개발을 위한 선택적 도구
<a name="optional-tools"></a>

향상된 Java 지원을 제공하는 확장에는 Gradle 및 Maven 자동화 도구를 프로젝트 개발에 통합할 수 있는 기능이 포함됩니다. 이러한 도구는 AWS Cloud9 개발 환경에 사전 설치되어 있지 않습니다. 이러한 선택적 빌드 도구를 설치하고 사용하는 방법에 대한 자세한 내용은 다음 리소스를 참조하세요.
+ **Gradle**: [시작 가이드](https://docs.gradle.org/current/userguide/userguide.html)
+ **Maven**: [5분 동안 알아보는 Maven의 모든 것](https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html)

## Java 확장 관련 문제 탭
<a name="problems-panel"></a>

 AWS Cloud9 IDE의 문제 탭에서 환경 내 Java 프로젝트의 문제를 보고 해결할 수 있습니다 AWS Cloud9 . AWS Cloud9 IDE에서 문제 탭을 표시하려면 **View**(보기)를 선택하고 메뉴 모음에서 **Problems**(문제)를 선택합니다.

![\[문제 탭 열기\]](http://docs.aws.amazon.com/ko_kr/cloud9/latest/user-guide/images/problems-panel.png)


콘솔에서 **\$1** 아이콘을 선택하고 **Open Problems**(문제 열기)를 선택하여 문제 탭을 열 수도 있습니다. 탭에서 문제를 선택하면 해당 파일이 열리고 문제 세부 정보가 표시됩니다.

# 향상된 TypeScript 지원 및 기능
<a name="projects"></a>

 AWS Cloud9 IDE를 사용하면 *언어 프로젝트를* 사용하여 TypeScript의 향상된 생산성 기능에 액세스할 수 있습니다. 언어 프로젝트는 AWS Cloud9 개발 환경의 IDE에 있는 관련 파일, 폴더 및 설정의 모음입니다.

IDE를 사용하여 사용자 환경에서 언어 프로젝트를 생성하려면 [언어 프로젝트 생성](#projects-create) 섹션을 참조하세요.

## 사용 가능한 프로젝트 생산성 기능
<a name="projects-features"></a>

 AWS Cloud9 IDE는 TypeScript에 대해 다음과 같은 프로젝트 생산성 기능을 제공합니다.

### Autocomplete
<a name="projects-features-autocomplete"></a>

편집기에서 파일을 입력하면 해당 컨텍스트의 삽입점에 기호 리스트가 표시됩니다(해당 기호를 사용할 수 있는 경우).

삽입 지점의 목록에서 기호를 삽입하려면 기호가 아직 선택되어 있지 않은 경우 위쪽 화살표 또는 아래쪽 화살표 키를 사용하여 기호를 선택한 다음 `Tab` 키를 누릅니다.

`Tab` 키를 누르기 전에 선택한 기호에 대한 정보가 포함된 스크린 팁이 표시될 수 있습니다(해당 정보가 제공되는 경우).

기호를 삽입하지 않고 목록을 닫으려면 `Esc` 키를 누릅니다.

### 거터 아이콘
<a name="projects-features-gutter-icons"></a>

활성 파일의 거터에 아이콘이 표시될 수 있습니다. 이러한 아이콘은 코드를 실행하기 전에 코드의 경고 및 오류와 같은 가능한 문제를 강조 표시합니다.

문제에 대한 자세한 내용을 보려면 마우스 포인터로 해당 문제의 아이콘을 잠시 가리킵니다.

### 빠른 수정 사항
<a name="projects-features-quick-fixes"></a>

편집기의 활성 파일에서, 코딩 오류 및 경고에 대한 정보를 표시하고 해당 코드에 자동으로 적용할 수있는 수정 사항을 표시할 수 있습니다. 오류 또는 경고 정보와 가능한 수정 사항을 표시하려면, 빨간색 점선 밑줄(오류의 경우) 또는 회색 점선 밑줄(경고의 경우)이 있는 코드 부분을 선택합니다. 아니면 빨간색 또는 회색 점선 밑줄이 있는 코드에 커서를 놓고 `Option-Enter` 키(macOS) 또는 `Alt-Enter` 키(Linux 또는 Windows)를 누릅니다. 제안된 수정 사항을 적용하려면 목록에서 수정 사항을 선택하거나 화살표 키를 사용하여 수정 사항을 선택하고 `Enter` 키를 누릅니다. 마우스 클릭으로 빠른 수정 사항을 선택하는 기능을 켜거나 끄려면 **AWS Cloud9**, [**기본 설정(Preferences)**], [**사용자 설정(User Settings)**], [**언어(Language)**], [**힌트 및 경고(Hints & Warnings)**], [**클릭 시 사용 가능한 빠른 수정 사항 표시(Show Available Quick Fixes on Click)**]를 선택합니다.

### 참조 찾기
<a name="projects-features-find-refs"></a>

편집기의 활성 파일에서, 해당 참조에 대한 액세스 권한이 IDE에 있는 경우 기호에 대한 모든 참조를 삽입점에 표시할 수 있습니다.

이렇게 하려면 기호 내의 아무 삽입점에서나** `Find References` **명령을 실행합니다. 예:
+ 삽입점에서 마우스 오른쪽 버튼을 클릭한 다음 [**참조 찾기(Find References)**]를 선택합니다.
+ 메뉴 모음에서 [**이동, 참조 찾기(Go, Find References)**]를 선택합니다.
+ macOS, Windows 또는 Linux에 대해 기본적으로 `Shift-F3` 키를 누릅니다.

참조를 사용할 수 있는 경우 활성 파일의 위에, 해당 기호 옆에 창이 열립니다. 이 창에는 해당 기호가 참조되는 파일의 목록이 있습니다. 이 창에는 목록의 첫 번째 참조가 표시됩니다. 다른 참조를 표시하려면 목록에서 해당 참조를 선택합니다.

창을 닫으려면 닫기(**X**) 아이콘을 선택하거나 `Esc` 키를 누릅니다.

다음 조건에서는** `Find References` **명령을 사용할 수 없거나 명령이 정상적으로 작동하지 않을 수 있습니다.
+ 활성 파일의 프로젝트에는 해당 기호에 대한 참조가 없습니다.
+ IDE가 활성 파일의 프로젝트에서 해당 기호의 참조 중 일부 또는 전부를 찾을 수 없습니다.
+ IDE가 활성 파일의 프로젝트에서 해당 기호가 참조되는 하나 이상의 위치에 액세스할 수 없습니다.

### 정의로 이동
<a name="projects-features-go-to-def"></a>

편집기의 활성 파일에서, 해당 참조에 대한 액세스 권한이 IDE에 있는 경우 기호에서 해당 기호가 정의된 위치로 이동할 수 있습니다.

이렇게 하려면 기호 내의 아무 삽입점에서나** `Jump to Definition` **명령을 실행합니다. 예:
+ 삽입점에서 마우스 오른쪽 버튼을 클릭한 다음 [**정의로 이동(Jump to Definition**]을 선택합니다.
+ 메뉴 모음에서 [**이동, 정의로 이동(Go, Jump to Definition**]을 선택합니다.
+ macOS, Windows 또는 Linux에 대해 기본적으로 `F3` 키를 누릅니다.

정의를 사용할 수 있는 경우 해당 정의가 별도의 파일에 있더라도 삽입점이 해당 정의로 전환됩니다.

다음 조건에서는** `Jump to Definition` **명령을 사용할 수 없거나 명령이 정상적으로 작동하지 않을 수 있습니다.
+ 이 기호는 해당 언어의 기본 기호입니다.
+ IDE가 활성 파일의 프로젝트에서 정의 위치를 찾을 수 없습니다.
+ IDE가 활성 파일의 프로젝트에서 정의의 위치에 액세스할 수 없습니다.

### 기호로 이동
<a name="projects-features-go-to-symbol"></a>

다음과 같이 프로젝트 내의 특정 기호로 이동할 수 있습니다.

1. 편집기에서 파일을 열어 프로젝트의 파일 중 하나를 활성화합니다. 파일이 이미 열려 있으면 편집기에서 탭을 선택하여 해당 파일을 활성 상태로 만듭니다.

1. **`Go to Symbol` **명령을 실행합니다. 예:
   + [**이동(Go)**] 창 버튼(돋보기 아이콘)을 선택합니다. [**바로 가기(Go to Anything)**] 상자에 `@`을 입력한 다음 기호 입력을 시작합니다.
   + 메뉴 모음에서 [**이동, 기호로 이동(Go, Go To Symbol)**]을 선택합니다. [**이동(Go)**] 창에서 **@** 뒤에 기호 입력을 시작합니다.
   + macOS 경우 기본적으로 `Command-2` 또는 `Command-Shift-O`를 누르고 Windows 또는 Linux의 경우 기본적으로 `Ctrl-Shift-O`를 누릅니다. [**이동(Go)**] 창에서 **@** 뒤에 기호 입력을 시작합니다.

   예를 들어 이름이 `toString`인 프로젝트에서 기호를 모두 찾으려면 `@toString` 입력을 시작합니다(또는 **@**가 이미 표시되어 있는 경우 **@** 뒤에 `toString` 입력 시작).

1. 원하는 기호가 [**기호(Symbols)**] 목록에 표시되면 해당 기호를 클릭하여 선택합니다. 아니면 위쪽 화살표 또는 아래쪽 화살표 키를 사용하여 선택한 다음 `Enter` 키를 누릅니다. 그러면 삽입점이 해당 기호로 전환됩니다.

이동하려는 기호가 활성 파일의 프로젝트에 없는 경우 이 절차가 정상적으로 작동하지 않을 수 있습니다.

## 언어 프로젝트 생성
<a name="projects-create"></a>

다음 절차에 따라 AWS Cloud9 IDE에서 지원되는 프로젝트 생산성 기능을 사용할 언어 프로젝트를 생성합니다.

**참고**  
지원되는 프로젝트 생산성 기능은 언어 프로젝트의 일부인 파일에 사용하는 것이 좋습니다. 프로젝트의 일부가 아닌 파일에 일부 지원되는 프로젝트 생산성 기능을 사용할 수 있지만, 이러한 기능은 예기치 않은 결과를 보일 수 있습니다.  
예를 들어 IDE를 사용하여 프로젝트의 일부가 아닌 환경의 루트 수준에 있는 파일 내에서 참조 및 정의를 검색할 수 있습니다. 그러면 IDE는 동일한 루트 수준의 파일에서만 검색할 수 있습니다. 이 경우 참조 또는 정의가 동일한 환경의 다른 언어 프로젝트에 실제로 존재하더라도 참조나 정의가 검색되지 않을 수 있습니다.

### TypeScript 언어 프로젝트 생성
<a name="projects-create-typescript"></a>

1. TypeScript가 환경에 설치되어 있는지 확인합니다. 자세한 내용은 [에 대한 TypeScript 자습서 AWS Cloud9](sample-typescript.md)의 [1단계: 필수 도구 설치](sample-typescript.md#sample-typescript-install) 섹션을 참조하세요.

1. 환경의 IDE의 터미널 세션에서 프로젝트를 생성할 디렉터리로 전환합니다. 디렉터리가 없으면 새로 생성한 후 해당 디렉터리로 전환합니다. 예를 들어 다음 명령을 사용하여 환경의 루트(`~/environment`)에 `my-demo-project`라는 디렉터리를 생성한 다음, 해당 디렉터리로 전환합니다.

   ```
   mkdir ~/environment/my-demo-project
   cd ~/environment/my-demo-project
   ```

1. 프로젝트를 생성하려는 디렉터리의 루트에서** `--init` **옵션을 사용하여 TypeScript 컴파일러를 실행합니다.

   ```
   tsc --init
   ```

   이 명령이 성공적으로 실행되면 TypeScript 컴파일러가 프로젝트 디렉터리의 루트에 `tsconfig.json` 파일을 생성합니다. 이 파일을 사용하여 TypeScript 컴파일러 옵션, 프로젝트에 포함하거나 제외할 특정 파일 등 다양한 프로젝트 설정을 정의할 수 있습니다.

   `tsconfig.json` 파일에 대한 자세한 내용은 다음을 참조하세요.
   +  TypeScript 웹 사이트에서 [tsconfig.json 개요](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html)를 참조하세요.
   +  json.schemastore.org 웹 사이트에서 [tsconfig.json 스키마](http://json.schemastore.org/tsconfig)를 참조하세요.