ziglog

    Search by

    우테코 21주차 기록

    June 26, 2021 • ☕️ 5 min read

    우테코 21주차 기록


    19, 20주차는 우테코의 가장 긴 방학이었다. 못 만났던 친구들도 많이 만나서 정말 원없이 알차게 놀고, 잦은 음주🍻 로 가득했던 2주였다.

    그래도 학습로그도 작성하고, React 공식 문서와 TypeScript handbook, UX 강의 시청과 코어 자바스크립트 완독까지 마무리했다. 아마 React Query도 공부했을 걸?

    방학의 끄트머리 여행까지 다녀온 후 기획안과 모의면접 준비까지 열심히 달렸다!


    모의면접 - 헷갈렸어요

    런타임 vs 컴파일 vs 트랜스파일

    • 런타임: 컴파일 과정을 마친 프로그램이 사용자에 의해 실행될때의 환경 또는 시간
      • JavaScript의 런타임: 브라우저, Node.js
    • 컴파일: 한 언어로 작성된 소스코드를 다른 언어로 변환하는 것. 프로그램을 위한 소스코드를 작성하고 이를 컴파일 하여 기계어코드로 변환하는 일련의 과정
      • Java → bytecode
      • C → assembly
    • 트랜스파일: 한언어로 작성된 소스 코드를 비슷한 수준의 추상화를 가진 다른 언어로 변환하는 것
      • ES6 → ES6
      • C++ → C
      • coffeescript → javascript

    👾 TypeScript가 JavaScript로 변환되는 것은 비슷한 수준의 추상화라는 점에서 트랜스파일링이라고 하기도 하지만, 이 역시 컴파일로 통칭해서 사용하는 것이 일반적이다.

    Ref

    JS 콜백

    • 특정 조건일 때 해당 함수를 실행하라고 알려주는 것
    • 콜백 함수를 다른 함수의 인자로 전달할 때 그 제어권도 함께 위임한다.

    JS callback & Promise

    • callback - 다른 함수의 실행이 끝나면 실행되는 함수
      • 함수 실행 순서를 조정하기 위해 사용
      • 너무 많은 흐름, callback hell이 탄생할 수 있음
    • Promise - 비동기 callback 실행 시 반환되는 객체
      • task가 성공적으로 수행된 이후 .then()에 callback을 붙일 수 있음
      • task가 실패했다면 .catch()

    → 둘 다 비동기를 만들어준다는 점에서는 동일하다!

    Ref https://dev.to/neisha1618/callbacks-vs-promises-4mi1

    JS promise vs generator

    • Generator의 제어권을 Promise에게 넘긴다.
      • yield를 호출해 멈춘 Generator을 Promise가 제어하도록 하는 것이다.
    • generator는 비동기적 구현을 동기적 구현으로 추상화시킬 수 있다.
      • 즉 동기적으로 작동하는 것처럼 코드를 작성할 수 있다.

    Ref https://suhwan.dev/2018/04/18/JS-async-programming-with-promise-and-generator/

    리듀서는 왜 순수함수여야할까

    • state를 직접 변경하는 것은 순수하지 않은 동작이다.

      • 순수함수는 같은 input에 대해 반환되는 값이 항상 일정하리라고 보장되는 함수를 의미한다.

        Copy
        const add = (a, b) => a + b; //pure function
      • 함수 내 변수 외에 외부의 값을 참조, 의존하거나 변경하지 않아야 한다.

    • state의 불변성을 유지하라는 뜻으로 생각할 수 있다.

    • state가 불변성을 유지해야 하는 이유는, redux는 참조값으로 상태 변화를 감지하기 때문이다.

      • 참조값이 아닌, 원시값 자체를 비교하기 위한 deep copy는 연산 비용이 너무 크기 때문이다.

    Ref https://www.freecodecamp.org/news/why-redux-needs-reducers-to-be-pure-functions-d438c58ae468/


    모의면접 - 피드백

    • 면접관이 피면접자가 맘에 들어서 질문을 끌어내는 경우는 좋은 신호
    • 장황하게 답변시 면접관이 끊으면 안 좋은 신호
    • 면접관과 호흡 맞추기, 핑퐁이 되어야 한다.
    • 흐름이 중요하다. 운이 좋으면 실력이 없어도 흐름 잘타서 면접이 잘 끝날수도 있다. 운이 안 좋아 꼬투리를 잡히면 안타깝다.
    • 지그는 회피 스킬을 잘 쓰긴 하는데 너무 많이 회피하진 말자. 흐름을 빠르게 바꾸자!
    • “잘 모르겠지만”으로 시작하지 말자.
    • 도치법, 두괄식으로 답변하자. 그런데 장황한 사람들이 하면 큰일난다. 길을 잃어요! 면접관도 길을 잃어요.
    • 블로그를 잘 쓰자. 뭘 쓰든 다 따라올 수밖에 없다
    • “~ 이렇게 알고 있다.”는 금물. 아는 게 아는 게 아니다. 내재화된 자신만의 해석을 얘기해주는 것이 좋다.

    Ref https://www.youtube.com/watch?v=gXfEE6v5bSI


    기타

    프론트엔드에서 TDD가 가능하다는 것 - FE CONF 2020

    Ref https://www.youtube.com/watch?v=L1dtkLeIz-M


    마무리

    Lv3 시작 일주차, 아직도 제대로 코딩을 시작한 건 없고 뭔가 흐름을 놓친 기분이다. 어디까지 워라밸을 챙겨야 하는 건지 모르겠다. Life가 Work를 압도할 지경이다. 나 자신을 챙기겠다는 건강한 마인드가 이제는 조금 핑계가 되어가는 것 같다. Lv3 시작과 동시에 다시 정신 차리겠다고 했는데, 지난 한 주도 애매하게 보냈다. 비교하지는 않으려고 하는데, 아무래도 십 수년의 습관이 남아있나 보다. 슬슬 불안감이 찾아온다. 불안감을 없애는 방법은 나 자신을 다시 단련하는 방법밖에 없을 것 같다. 충분히 잘 쉬고 놀았으니 다시 몰두하기!

    이제 진짜 시작될 팀매칭도 기대된다. 주제들도 흥미롭고, 어떤 팀원과 함께하게 될지 궁금하다. 팀이 벌써 매칭되는 꿈까지 꿔버렸다. 역시나 이상한 내용들이 섞여 있는 어질어질한 꿈이었지만… 어떤 팀이 되든, 어떤 프로젝트가 걸리든 멋진 크루들과 함께 신나게 달려가 보고 싶다.


    Relative Posts:

    우테코 22주차 기록

    July 4, 2021

    우테코 17-18주차 기록

    June 5, 2021

    zigsong

    지그의 개발 블로그

    RotateLinkImg-iconRotateLinkImg-iconRotateLinkImg-icon