4주차 기록

김은혁·2021년 6월 6일
0
post-custom-banner

배운 내용

javascript Koans에 대해 배우고 DOM객체, 고차함수를 학습한 후 이를 바탕으로 React 기초를 학습하였다.

느낀 점

Koans 학습하는 과정에서 2주차 블로그에서 정리했었던 Destructuring assginment(구조 분해 할당)에 대해 배우게 되었다. 학습하며 생긴 호기심으로 인해 정리한 부분을 이렇게 학습하게 되니 그런 과정들이 참 의미 있는 시간이었다는 생각이 들었다.
그리고 지난주까지의 학습을 포함해서 DOM까지의 학습은 내가 익숙하지 않거나 학습이 부족해서 난항을 겪은 일은 있었지만 어떤 구조가 복잡하다고 느껴지거나 어려운 적은 없었다. 하지만 고차함수 코플릿을 혼자 진행하며 많이 어렵다고 생각을 했고 주어진 시간안에 문제를 다 해결하지 못 한 것도 과정 중에 처음 겪은 일이었다. 하지만 페어와 같이 남은 문제를 해결하며 원리를 잘 이해하게 되었고 잘 해결할 수 있었다. 페어프로그래밍의 순기능을 경험한 일이었다. React에서도 구조가 꽤 복잡해지고 어려워졌다는 생각을 하였다. 전체적으로 틀이 제공되었기 때문에 주어진 스프린트는 해결할 수 있었지만 더욱 공부가 필요하다고 느꼈다. Advanced문제는 이런저런 시도를 해보았지만 아직 해결을 하지 못하였다. 아마 주어진 틀을 많이 깨고 새로 코딩을 해야하는 부분이 아닐까 하는 생각이 든다.

String Reverse

String은 각 글자들이 배열의 인덱스에 저장이 되어서 배열로 사용할 수 있다는 생각에 당연히 배열에 사용하는 메서드들을 사용할 수 있다고 생각을 했지만 그렇지 않았다. 때문에 문자열을 배열로 고치고 배열의 상태에서 원하는 기능을 수행한 다음에 배열을 다시 문자열로 고치는 과정이 필요했다. split과 join 메서드를 이용하여 해결할 수 있었다.

function firstReverse(str) {
  // code here ... :)
  str = str.split('').reverse().join('');
  
  return str;
}

고차함수

고차함수는 아직 조금 어렵고 이해하기 난해한 부분이 있지만 굉장히 훌륭한 기능이라는 생각이 들었다. 배열 같은 경우 각 원소에 접근하려면 반복문의 사용이 불가피하다고 생각했었는데 고차함수를 적용시키면 이런 문제를 해결할 수가 있었다.

// 반복문을 사용한 각 원소에 2배를 곱한 배열

function getDoubledElements(arr) {
  
  if(arr.length !== 0) {
    for (let i=0; i<arr.length;i++){
      arr[i]*=2;
    }
  }
  
  return arr;
}

// 고차함수를 사용한 각 원소에 2배를 곱한 배열

function getDoubledElements(arr) {
  
  if (arr.length !== 0){
    arr = arr.map(function (el) {
      return el * 2;
    });
  }

  return arr;
}

위의 두 코드를 비교하면 코드의 길이에는 큰 차이가 없지만 디버깅했을 때 반복문은 배열의 길이만큼 더 많은 과정을 수행할 것이다. 때문에 이런 경우 고차함수를 사용하여 코딩한다면 더 좋은 코드를 만들 수 있을 것이다.

post-custom-banner

0개의 댓글