Skip to main content

컬렉션 사용

학습 목표

이 유닛을 완료하면 다음을 수행할 수 있습니다.

  • 목록을 선언하고 초기화합니다.
  • 목록에 항목을 추가하는 두 가지 방법을 알아봅니다.
전문가에게서 유용한 정보를 배울 수 있다는 사실을 알고 계셨나요? 이 비디오를 시청하여 이 모듈에서 다루는 주제를 자세히 알아보세요.

컬렉션

컬렉션은 여러 항목을 저장할 수 있는 변수 유형입니다. 차에 관한 예시를 들자면, 내부에 여러 개의 각설탕이 들어 있는 설탕 그릇이 있습니다. 이때 설탕 그릇은 컬렉션, 각설탕은 해당 컬렉션에 저장되는 항목으로 간주됩니다.

컬렉션이 레이블된 설탕 그릇. 설탕 그릇의 각설탕은 컬렉션에서 레이블이 지정된 항목입니다.

Apex 컬렉션에는 목록, 세트 및 맵이라는 세 가지 유형이 있지만 이 모듈에서는 목록에 중점을 둡니다.  

목록

Apex 목록은 쇼핑 목록처럼 동일한 유형의 항목이 정렬된 그룹입니다. 

  1. 설탕
  2. 우유

쇼핑 목록의 각 항목은 문자열이며 각 항목은 목록 내 위치가 있습니다. 목록을 선언하려면 몇 가지가 필요합니다. 목록 예약어, <> 문자 내 데이터 형식(모든 항목의 데이터 형식이 동일해야 함) 및 예약어 new를 사용합니다. 이 문장의 끝에는 필수 괄호가 있습니다. 

List <String> groceries = new List <String>();

참고

참고

예약어는 특별한 의미가 있어 변수 이름으로 사용할 수 없는 프로그래밍 단어입니다. new, string, false, null 등의 단어는 변수에 같은 이름을 지정하려고 하면 구문 오류가 발생합니다.

빈 목록 선언

  1. Developer Console에서 Debug(디버그) | Open Execute Anonymous Window(익명 실행 창 열기)를 클릭합니다.
  2. 이 코드를 복사하여 Enter Apex Code(Apex 코드 입력) 창에 붙여 넣습니다.
    //Declare the groceries list
    List<String> groceries = new List<String>();
      
    //The output for this statement is an empty list, ().
    System.debug('Groceries Value: ' + groceries);
  3. Open log(로그 열기) 확인란을 선택하고 Execute(실행)를 클릭합니다. 그러면 Execution Log(실행 로그)가 열리며 코드 실행 결과가 표시됩니다.
  4. 창 아래에 있는 Debug Only(디버그만) 확인란을 선택합니다.

코드를 실행할 때 출력이 ()인 것을 보셨을 것입니다. 목록에 아무것도 추가하지 않았으므로 출력이 비어 있는 상태입니다. groceries 목록을 선언할 때 항목을 추가할 수 있는 하나의 빈 공간을 만들었습니다. 

groceries라는 이름의 비어 있는 큰 슬롯.

크기가 설정된 목록 선언

목록의 길이를 정확히 알고 있다면 목록을 선언할 때 크기를 설정할 수 있습니다. 다음과 같이 데이터 형식 뒤에 오는 괄호([ ]) 안에 크기를 포함하면 됩니다. 

String[] groceries = new String[4];

참고

참고

Apex에서 목록을 선언하는 방법에는 여러 가지가 있습니다. 이 예시에서는 목록 크기를 설정하기 위해 배열 표기법을 사용합니다.

이 코드는 groceries라는 문자열 목록을 선언하고 그 크기를 4개의 문자열로 설정합니다. 빈 groceries 목록은 다음과 같습니다.

4개의 슬롯으로 나뉘어 있는 groceries라는 공간.

각 항목의 순차적 위치는 인덱스라는 숫자입니다. 인덱스는 항목을 참조하는 방식입니다. 우리는 대부분 숫자 세는 법을 배울 때 1부터 배웁니다. 하지만 많은 프로그래밍 언어에서는 숫자가 0부터 시작됩니다. 따라서 이제 Apex 코드를 작성하면 목록이 다음과 같이 보일 것입니다. 

  1. 설탕
  2. 우유

목록에서 특정 항목을 가리키는 데 사용하는 인덱스는 차의 경우 인덱스 0, 설탕의 경우 인덱스 1, 꿀의 경우 인덱스 2가 되는 식입니다. 

다음과 같이 목록에서 특정 항목을 인덱스(목록 내 위치)로 참조하면 됩니다.

groceries[0];

  1. Developer Console에서 Debug(디버그) | Open Execute Anonymous Window(익명 실행 창 열기)를 클릭합니다.
  2. 이 코드를 복사하여 Enter Apex Code(Apex 코드 입력) 창에 붙여 넣습니다.
    String[] groceries = new String[4];
    System.debug('Initialized groceries: ' + groceries);
      
    System.debug('Item 0: ' + groceries[0]);
  3. Open log(로그 열기) 확인란을 선택하고 Execute(실행)를 클릭합니다. 그러면 Execution Log(실행 로그)가 열리며 코드 실행 결과가 표시됩니다.
  4. 창 아래에 있는 Debug Only(디버그만) 확인란을 선택합니다.

목록의 첫 번째 항목 값은 null입니다. 목록에 항목을 몇 개 더 추가해 보겠습니다.

목록 초기화

목록 초기화란 목록에 초기 값을 할당하는 것입니다. 목록에 항목을 추가하는 방법은 두 가지입니다.

  1. 목록을 선언하고 초기화합니다.
    //Sets the first item in the list to 'Tea'
    List<String> groceries = new List<String>{'Tea'}; 
  2. 빈 목록을 선언하고 나중에 값을 추가합니다.
    List<String> groceries = new List<String>();
    groceries.add('Tea');

목록 선언 및 초기화

값을 사용하여 목록을 초기화하는 구문은 빈 목록을 선언하는 것과 유사합니다. 차이점은 괄호( ( ) )를 사용하는 대신 중괄호( { } )를 사용하여 값을 추가하는 것입니다. 

  1. Developer Console에서 Debug(디버그) | Open Execute Anonymous Window(익명 실행 창 열기)를 클릭합니다.
  2. 이 코드를 복사하여 Enter Apex Code(Apex 코드 입력) 창에 붙여 넣습니다.
    //Declare the groceries list
    List<String> groceries = new List<String>{'Tea','Sugar','Honey','Milk'};
      
    //The output for this statement is Tea, Sugar, Honey, Milk
    System.debug('Groceries: ' + groceries);
  3. Open log(로그 열기) 확인란을 선택하고 Execute(실행)를 클릭합니다. 그러면 Execution Log(실행 로그)가 열리며 코드 실행 결과가 표시됩니다.
  4. 창 아래에 있는 Debug Only(디버그만) 확인란을 선택합니다.

빈 목록을 선언하고 나중에 값 추가

하지만 나중에 항목을 추가하려면 어떻게 해야 할까요? Apex는 목록으로 작업할 수 있는 방법을 제공합니다. 추가 방법을 사용하여 식료품 항목을 groceries 목록에 추가해 보겠습니다.

  1. Developer Console에서 Debug(디버그) | Open Execute Anonymous Window(익명 실행 창 열기)를 클릭합니다.
  2. 이 코드를 복사하여 Enter Apex Code(Apex 코드 입력) 창에 붙여 넣습니다.
    //Create the groceries list
    List<String> groceries = new List<String>();
      
    //The output for this statement is null
    System.debug('Groceries: ' + groceries);
      
    //Use the add method to add an element to the list
    groceries.add('Tea');
    groceries.add('Sugar');
    groceries.add('Honey');
    groceries.add(2, 'Milk');
      
    //The output for this statement is Tea, Sugar, Milk, Honey
    System.debug('Groceries: ' + groceries);
  3. Open log(로그 열기) 확인란을 선택하고 Execute(실행)를 클릭합니다. 그러면 Execution Log(실행 로그)가 열리며 코드 실행 결과가 표시됩니다.
  4. 창 아래에 있는 Debug Only(디버그만) 확인란을 선택합니다.

groceries라는 이름의 공간. 4개의 슬롯으로 나뉘어 있으며 각 슬롯에는 Tea, Sugar, Milk, Honey와 같이 재료 이름이 쓰여 있습니다.

groceriesadd 사이에 점(“.”)이 있는 것을 발견하셨나요? Apex는 점 표기법을 사용합니다. 점 표기법은 여러 가지 용도로 사용됩니다. 줄 8에서 Apex가 제공하는 add 방법을 점으로 groceries 목록에 연결하여 항목(Tea)을 목록에 추가합니다.

줄 11은 특정 인덱스(위치)에 항목을 삽입하여 목록에 항목을 추가하는 또 다른 방법을 보여 줍니다. 

groceries.add(2, ‘Milk’);

Apex 코드로 작업하다 보면 어떤 방법을 사용할지 결정하는 방법을 배우게 됩니다. 하지만 이 유닛에서 기본 사항을 배우면 시작하는 데 도움이 될 수 있습니다. 

목록 이해

목록에 항목을 추가하는 방법마다 약간씩 다른 결과가 나오며, 때로는 예상치 못한 결과가 발생하기도 합니다. 다음과 같이 연습해 보세요.

  1. Developer Console에서 Debug(디버그) | Open Execute Anonymous Window(익명 실행 창 열기)를 클릭합니다.
  2. 이 코드를 복사하여 Enter Apex Code(Apex 코드 입력) 창에 붙여 넣습니다.
    String[] groceries = new String[4];
    System.debug('Groceries: ' + groceries);
      
    groceries.add('Tea');
    groceries.add('Sugar');
    System.debug('Added 2 items: ' + groceries);
      
    groceries.add(1, 'Honey');
    System.debug('Added Honey in index 1: ' + groceries);
      
    System.debug('Item 0: ' + groceries[0]);
  3. Open log(로그 열기) 확인란을 선택하고 Execute(실행)를 클릭합니다. 그러면 Execution Log(실행 로그)가 열리며 코드 실행 결과가 표시됩니다.
  4. 창 아래에 있는 Debug Only(디버그만) 확인란을 선택합니다.

다음과 같이 흥미로운 결과를 얻었습니다.

네 개의 디버그 로그 이벤트. 줄 2에는 Initialized groceries: (null, null, null, null)이라고 나와 있습니다. 줄 6에는 Added 2 items: (null, null, null, null, Tea, Sugar)라고 나와 있습니다. 줄 9에는 Added Honey in index 1: (null, Honey, null, null, null, Tea, Sugar)라고 나와 있습니다. 줄 11에는 Item 0: null이라고 나와 있습니다.

줄 4와 5에 두 개의 문자열을 추가할 때 인덱스를 지정하지 않았기 때문에, 목록 끝에 Tea와 Sugar가 추가되어 목록 크기가 4개의 문자열에서 6개의 문자열로 늘어났습니다. 줄 8에서 명시적으로 Honey에 대해 인덱스 1을 지정했는데 왜 Honey가 목록의 첫 번째에 있지 않을까요? 프로그래밍에서는 항상 1이 아닌 0부터 세기 시작한다는 점을 기억하세요. 줄 11에서 목록의 첫 번째 인덱스는 0으로, 현재 null 값을 포함하고 있습니다. 

코드를 작성하는 것은 수학 문제를 푸는 것과 매우 유사합니다. 방정식은 하나이지만 푸는 방법은 매우 다양합니다. 이 유닛에서는 Apex에서 목록으로 작업하는 여러 방법이 있다는 점을 알았습니다. 목록을 선언하거나 초기화하든, 목록의 특정 값을 참조하든 여러분의 선택에 달려 있습니다. 옵션이 너무 많다고 느껴지나요? 걱정하지 마세요. Apex에 더 익숙해지면 다양한 방법을 시도해 보세요. 어떤 상황에 어떤 방법이 가장 적합한지를 더 잘 이해하게 될 것입니다.

리소스

Salesforce 도움말에서 Trailhead 피드백을 공유하세요.

Trailhead에 관한 여러분의 의견에 귀 기울이겠습니다. 이제 Salesforce 도움말 사이트에서 언제든지 새로운 피드백 양식을 작성할 수 있습니다.

자세히 알아보기 의견 공유하기