Skip to main content
Bring your team and maximize your impact at Dreamforce. Register three or more to unlock $999 passes.

์ปฌ๋ ‰์…˜ ์‚ฌ์šฉ

ํ•™์Šต ๋ชฉํ‘œ

์ด ์œ ๋‹›์„ ์™„๋ฃŒํ•˜๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ชฉ๋ก์„ ์„ ์–ธํ•˜๊ณ  ์ดˆ๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชฉ๋ก์— ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์ „๋ฌธ๊ฐ€์—๊ฒŒ์„œ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ๊ณ„์…จ๋‚˜์š”? ์ด ๋น„๋””์˜ค๋ฅผ ์‹œ์ฒญํ•˜์—ฌ ์ด ๋ชจ๋“ˆ์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์ œ๋ฅผ ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

์ปฌ๋ ‰์…˜

์ปฌ๋ ‰์…˜์€ ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ณ€์ˆ˜ ์œ ํ˜•์ž…๋‹ˆ๋‹ค. ์ฐจ์— ๊ด€ํ•œ ์˜ˆ์‹œ๋ฅผ ๋“ค์ž๋ฉด, ๋‚ด๋ถ€์— ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ์„คํƒ•์ด ๋“ค์–ด ์žˆ๋Š” ์„คํƒ• ๊ทธ๋ฆ‡์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ ์„คํƒ• ๊ทธ๋ฆ‡์€ ์ปฌ๋ ‰์…˜, ๊ฐ์„คํƒ•์€ ํ•ด๋‹น ์ปฌ๋ ‰์…˜์— ์ €์žฅ๋˜๋Š” ํ•ญ๋ชฉ์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

์ปฌ๋ ‰์…˜์ด ๋ ˆ์ด๋ธ”๋œ ์„คํƒ• ๊ทธ๋ฆ‡. ์„คํƒ• ๊ทธ๋ฆ‡์˜ ๊ฐ์„คํƒ•์€ ์ปฌ๋ ‰์…˜์—์„œ ๋ ˆ์ด๋ธ”์ด ์ง€์ •๋œ ํ•ญ๋ชฉ์ž…๋‹ˆ๋‹ค.

Apex ์ปฌ๋ ‰์…˜์—๋Š” ๋ชฉ๋ก, ์„ธํŠธ ๋ฐ ๋งต์ด๋ผ๋Š” ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์ด ์žˆ์ง€๋งŒ ์ด ๋ชจ๋“ˆ์—์„œ๋Š” ๋ชฉ๋ก์— ์ค‘์ ์„ ๋‘ก๋‹ˆ๋‹ค.ย 

๋ชฉ๋ก

Apex ๋ชฉ๋ก์€ ์‡ผํ•‘ ๋ชฉ๋ก์ฒ˜๋Ÿผ ๋™์ผํ•œ ์œ ํ˜•์˜ ํ•ญ๋ชฉ์ด ์ •๋ ฌ๋œ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

  1. ์ฐจ
  2. ์„คํƒ•
  3. ๊ฟ€
  4. ์šฐ์œ 

์‡ผํ•‘ ๋ชฉ๋ก์˜ ๊ฐ ํ•ญ๋ชฉ์€ ๋ฌธ์ž์—ด์ด๋ฉฐ ๊ฐ ํ•ญ๋ชฉ์€ ๋ชฉ๋ก ๋‚ด ์œ„์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชฉ๋ก์„ ์„ ์–ธํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ชฉ๋ก ์˜ˆ์•ฝ์–ด, <> ๋ฌธ์ž ๋‚ด ๋ฐ์ดํ„ฐ ํ˜•์‹(๋ชจ๋“  ํ•ญ๋ชฉ์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์ด ๋™์ผํ•ด์•ผ ํ•จ) ๋ฐ ์˜ˆ์•ฝ์–ด new๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์žฅ์˜ ๋์—๋Š” ํ•„์ˆ˜ ๊ด„ํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Note

์˜ˆ์•ฝ์–ด๋Š” ํŠน๋ณ„ํ•œ ์˜๋ฏธ๊ฐ€ ์žˆ์–ด ๋ณ€์ˆ˜ ์ด๋ฆ„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋‹จ์–ด์ž…๋‹ˆ๋‹ค. 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[

Note

Apex์—์„œ ๋ชฉ๋ก์„ ์„ ์–ธํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ˆ์‹œ์—์„œ๋Š” ๋ชฉ๋ก ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ๋Š” groceries๋ผ๋Š” ๋ฌธ์ž์—ด ๋ชฉ๋ก์„ ์„ ์–ธํ•˜๊ณ  ๊ทธ ํฌ๊ธฐ๋ฅผ 4๊ฐœ์˜ ๋ฌธ์ž์—ด๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋นˆ groceries ๋ชฉ๋ก์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

4๊ฐœ์˜ ์Šฌ๋กฏ์œผ๋กœ ๋‚˜๋‰˜์–ด ์žˆ๋Š” groceries๋ผ๋Š” ๊ณต๊ฐ„.

๊ฐ ํ•ญ๋ชฉ์˜ ์ˆœ์ฐจ์  ์œ„์น˜๋Š” ์ธ๋ฑ์Šค๋ผ๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค. ์ธ๋ฑ์Šค๋Š” ํ•ญ๋ชฉ์„ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋Œ€๋ถ€๋ถ„ ์ˆซ์ž ์„ธ๋Š” ๋ฒ•์„ ๋ฐฐ์šธ ๋•Œ 1๋ถ€ํ„ฐ ๋ฐฐ์›๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ์ˆซ์ž๊ฐ€ 0๋ถ€ํ„ฐ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด์ œ Apex ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋ชฉ๋ก์ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  1. ์ฐจ
  2. ์„คํƒ•
  3. ๊ฟ€
  4. ์šฐ์œ 

๋ชฉ๋ก์—์„œ ํŠน์ • ํ•ญ๋ชฉ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ์ธ๋ฑ์Šค๋Š” ์ฐจ์˜ ๊ฒฝ์šฐ ์ธ๋ฑ์Šค 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์™€ ๊ฐ™์ด ์žฌ๋ฃŒ ์ด๋ฆ„์ด ์“ฐ์—ฌ ์žˆ์Šต๋‹ˆ๋‹ค.

์ ('.')์ด groceries์™€ add ์‚ฌ์ด์— ์žˆ๋Š” ๊ฒƒ์„ ๋ณด์…จ๋‚˜์š”? Apex๋Š” ์  ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์  ํ‘œ๊ธฐ๋ฒ•์€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. 6๋ฒˆ ์ค„์—์„œ Apex๊ฐ€ ์ œ๊ณตํ•˜๋Š” add ๋ฉ”์„œ๋“œ๋ฅผ ์ ์œผ๋กœ groceries ๋ชฉ๋ก์— ์—ฐ๊ฒฐํ•˜์—ฌ ํ•ญ๋ชฉ(Tea)์„ ๋ชฉ๋ก์— ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

9๋ฒˆ ์ค„์€ ํŠน์ • ์ธ๋ฑ์Šค(์œ„์น˜)์— ํ•ญ๋ชฉ์„ ์‚ฝ์ž…ํ•˜์—ฌ ๋ชฉ๋ก์— ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€ํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค.ย 

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 ๋„์›€๋ง ์‚ฌ์ดํŠธ์—์„œ ์–ธ์ œ๋“ ์ง€ ์ƒˆ๋กœ์šด ํ”ผ๋“œ๋ฐฑ ์–‘์‹์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ ์˜๊ฒฌ ๊ณต์œ ํ•˜๊ธฐ