-
초코의 풀스택 도전기 19: 조건문과 반복문의 심화(2)스토리텔링 2024. 10. 25. 10:36
조건문과 반복문을 활용하는 기본적인 방법을 익힌 초코는, 이번에는 좀 더 고급 기술을 배우고 싶었다. 이제는 코드를 더욱 간결하게 쓰고, 실수를 줄일 수 있는 방법이 궁금해졌다. 그 생각을 들은 멘토는 고급 조건문과 반복문의 기술을 소개하며 설명을 시작했다.
1. 3항 연산자 (Ternary Operator)
멘토는 초코에게 먼저 조건문을 더 간단하게 처리할 수 있는 방법을 알려주었다.
"초코, 기억나? 우리가 if-else를 사용해서 조건문을 만들었잖아. 근데 가끔 그게 너무 길어질 때가 있어. 그럴 때 3항 연산자라는 걸 사용할 수 있어."
let temperature = 30; let message = temperature > 25 ? "더운 날씨입니다." : "적당한 날씨입니다."; console.log(message);
초코는 코드를 보며 의아한 표정을 지었다. "멘토님, 이게 뭐예요? ?와 :는 뭔가요?"
멘토는 웃으며 설명했다. "이게 바로 3항 연산자야. 간단하게 말하면, 조건 ? 참일 때의 값 : 거짓일 때의 값의 형태로, 한 줄로 짧게 작성할 수 있어. if-else보다 훨씬 간결하지? 여기서는 온도가 25도보다 높으면 '더운 날씨입니다'가 출력되고, 그렇지 않으면 '적당한 날씨입니다'가 출력돼."
결과:
더운 날씨입니다.
초코는 고개를 끄덕였다. "아, 그렇군요. 간단한 조건은 이렇게 처리하면 되겠네요!"
2. 배열 순회를 위한 for...of와 객체 속성을 위한 for...in
다음으로 멘토는 배열과 객체를 다룰 때 유용한 반복문을 설명해주었다. "기존의 for문 외에도 배열과 객체를 더 쉽게 다룰 수 있는 방법이 있어. 바로 for...of와 for...in이지."
for...of로 배열 순회하기:
let fruits = ['사과', '바나나', '오렌지']; for (let fruit of fruits) { console.log(fruit); }
초코는 코드를 보고 말했다. "아, 이건 배열 안에 있는 과일들을 하나씩 출력하는 거죠?"
"맞아. for...of는 배열의 각 요소를 순회할 때 사용해. 여기서 fruit은 배열에 들어 있는 각 과일을 의미해."
결과:
사과 바나나 오렌지
"그럼 객체는 어떻게 처리하죠?" 초코는 또다른 궁금증을 내비쳤다.
for...in으로 객체 속성 순회하기:
let person = { name: '초코', age: 25 }; for (let key in person) { console.log(`${key}: ${person[key]}`); }
"객체를 순회할 때는 for...in을 사용해. 여기서는 객체의 속성 이름인 key를 가져오고, person[key]로 그 속성의 값을 불러올 수 있지."
결과:
name: 초코 age: 25
"배열과 객체를 이렇게 다룰 수 있으니, 더 많은 데이터를 효율적으로 처리할 수 있을 거야!" 멘토는 강조했다.
3. break와 continue로 반복문 제어하기
초코는 반복문에 대한 더 깊은 이해를 원했다. "그런데 반복문을 쓸 때, 특정 조건에서 멈추거나 넘어가는 방법도 있나요?"
"물론이지! 그럴 때는 break와 continue를 사용해. 반복문이 중간에 멈추거나, 특정 반복만 건너뛸 수 있어."
break로 반복 중단하기:
for (let i = 0; i < 10; i++) { if (i === 5) { break; } console.log(i); }
"여기서는 i가 5일 때 반복을 멈추도록 하고 있어. break는 즉시 반복문을 끝내는 역할을 해."
결과:
0 1 2 3 4
"이번엔 continue를 써서 특정 조건만 건너뛰는 방법을 보여줄게."
continue로 반복 건너뛰기:
for (let i = 0; i < 10; i++) { if (i === 5) { continue; } console.log(i); }
"이번에는 i가 5일 때만 건너뛰고, 나머지 숫자는 정상적으로 출력되지."
결과:
0 1 2 3 4 6 7 8 9
"이렇게 break와 continue를 사용하면 반복문의 흐름을 유연하게 제어할 수 있어."
4. 배열을 처리하는 고차 함수: map, filter, reduce
멘토는 마지막으로 반복문 대신 배열을 처리할 수 있는 더 간편한 방법을 설명해주었다. "반복문 대신 고차 함수라는 걸 사용하면 배열을 더 간결하게 처리할 수 있어. map, filter, 그리고 reduce가 대표적이야."
map으로 배열의 값을 변환하기:
let numbers = [1, 2, 3, 4, 5]; let doubled = numbers.map(number => number * 2); console.log(doubled);
"여기서 map은 배열의 각 요소를 두 배로 만든 후, 그 결과를 새로운 배열로 반환해."
결과:
[2, 4, 6, 8, 10]
filter로 조건에 맞는 값만 남기기:
let numbers = [1, 2, 3, 4, 5]; let evenNumbers = numbers.filter(number => number % 2 === 0); console.log(evenNumbers);
"filter는 조건에 맞는 값만 남겨. 여기서는 짝수만 남겼지."
결과:
[2, 4]
reduce로 값 축약하기:
let numbers = [1, 2, 3, 4, 5]; let sum = numbers.reduce((total, number) => total + number, 0); console.log(sum);
"마지막으로, reduce는 배열의 모든 값을 합산하거나 다른 방식으로 축약할 때 사용해."
결과:
15
마무리하며
이번 시간에는 초코가 조건문과 반복문을 더 효율적으로 사용하는 법을 배웠다. 간결한 3항 연산자, 배열과 객체를 순회하는 새로운 반복문, 그리고 break와 continue로 반복문을 제어하는 방법까지. 마지막으로 배열을 처리하는 고차 함수까지 익히고 나니, 초코는 훨씬 더 능숙하게 데이터를 처리할 수 있을 것 같은 자신감이 생겼다.
"멘토님, 오늘 배운 건 정말 실전에서 자주 쓰일 것 같아요!" 초코는 미소를 지었다.
"맞아, 이번에 배운 내용은 실제로 많은 코드에서 유용하게 쓰일 거야. 다음 시간에는 함수와 같은 고급 주제를 다뤄볼까?" 멘토는 다음 단계를 예고하며 초코를 격려했다.
'스토리텔링' 카테고리의 다른 글
초코의 풀스택 도전기 21: 자바스크립트(JavaScript) 함수의 심화(1) (1) 2024.10.27 초코의 풀스택 도전기 20: 자바스크립트(JavaScript) 함수로 코드를 더 효율적으로 관리하기 (0) 2024.10.26 초코의 풀스택 도전기 18: 조건문과 반복문의 심화(1) (0) 2024.10.24 초코의 풀스택 도전기 17: 조건문과 반복문으로 흐름을 제어하다 (0) 2024.10.20 초코의 풀스택 도전기 16: 자바스크립트에서 변수와 데이터 타입을 이해하다 (0) 2024.10.17