항해/항해99

(WIL)weekly I learned 02 회고록

youngble 2021. 11. 14. 21:20

배운것

  • JS 를 이용하여 알고리즘문제를 푸는 실질적 방법을 알게됨
  • 알고리즘을 위한 JS의 내장함수 메서드를 많이 알게되고 쓸수있게됨 
    1. filter,reduce,slice,Math,splice,split,join
    2. toString,parseInt,Number,push,sort,reverse, arrow functio
    3. includes, ... 나머지 매개변수 Rest Parameters, date 등등..
  • 정규표현식(아주 유용하고 확실하게 더 알고싶다)
    1. 하위표현식 ()
    2. []범위
    3. \w, \d,\D, {2},  gi, ^, ., *, $, 
    4. (lookahead)전방 탐색 ?= , lookbehind후방탐색 ?<=
  • ES : ECMAScript 
    • ES5 : 2015년 출시된 버전
    • ES6: 2016년 출시된 버전
      • 템플릿 리터럴  : `` 백틱을 사용하여 문자열과 함께 변수 내용을 쓸때 가독성이 좋아짐차이점 : 6에서 등장한 문법들은 화살표함수, 템플릿 리터럴(백틱 ``), this, 변수선언 let 과 const ,  모듈, 클래스 가 있다 .

 ES5 기존 형식:

ES6 추가 형식: 

`` 백틱을 사용 가독성이 좋음

  • 화살표 함수 : 함수 선언이 간편하고 보기 편함

ES5 함수 선언
ES6 함수선언

  • this :  ES5 경우 해당 객체 안에서 선언된 함수에서는 this는 해당 객체가 아닌 window를 바라보고 있기 때문에 함수 안에서 this.name, this.age 를 하여도 아무 값이 나오지 않는다

ES5

                       ES6 경우 화살표 함수를 쓰면 함수가 선언된 스코프에 자동 바인딩이 된다.

ES6 this

  • 변수 선언 let,const :

1.let은 한번 선언된 변수에 동일한 이름으로 선언할 수 없다. 하지만, 값은 재할당할 수 있다.

let 선언과 할당

2. const는 한번 초기화된 변수에 재할당/재선언할 수 없다.

const 재할당, 재선언 불가

그리고, let, const블록 스코프 또는 Function 함수 스코프 내부에 선언되면 해당 스코프 밖에서 안에 있는 변수를 참조할 수 없다.

즉, 중괄호로 묶인 부분 내부에 선언된 let, const를 중괄호 외부에서 참조할 수 없다고 한다.

let 과 const 의 스코프 범위

 

  • 모듈 

ES5 에선 모듈을 위해 js 파일을 import 하거나, export 하기 어렵고 그러한것이 제한되었는데

ES6 부터는 import/export 모듈을 관리할 수 있다

  • 클래스

S5에선 class라는 키워드는 없었지만 프로토타입을 통해 실현 가능했다.

 

ES6에서는 class 키워드를 사용해서 선언할 수 있다.

 

클래스의 상속과 오버라이딩은 super를 사용해서 수행할 수 있다

 

이상으로 ES5 와 ES6 의 차이를 설명하고 배운것을 적었다

 

느낀점

 

알고리즘을 통해 문제를 풀면서 앞으로 있을 코딩테스트가 어떤지 어떤 레벨인지를 더욱 체감할수 있었던 시간이였다. 

막연하게 책으로만 보면서 이해하기보다 문제를 풀음으로써 언제 필요하고 어떻게 응용할수있고, Brute Force 로 했을때의 로직을 좀더 쉽게 내장 함수로 표편하고 가독성있고 짧게 쓸수 있는지도 배우게 되었다. 나는 2주차를 진행하면서 정말 재미있게 한것같다. 문제를 보고 원하는 문제의 로직을 발견하고 그것을 코드로 구현한다는게 재미있고 성취감도 컸고, 문제 하나하나 풀면서 알게되는 방법들, 그리고 다른사람들이 어떤 식으로 했는지를 보면서 요번 주차에서도 다시한번  개발자로써의 나의 무기,장비를 입듯이 한발 내딛고 성장하고 나아간다고 느꼈다.

하지만 어떤건지 큰그림을 알았지만 시간복잡도, 공간복잡도, 스택, 큐, 해쉬, 트리, 힙, DFS & BFS 는 제대로 공부하지않았기 때문에 항해99 스파르타코딩에서 제공하는 강의를 들으면서 공부해가야한다. 그리고 틈틈이 예전에 사서 보고있던 deepdive 자바스크립트 책도 마저 읽어야한다.

 

사람들이 알고리즘을 하면서 코딩테스트 없는곳으로 골라서 기술면접을 보는데로 가고싶다고 하는거같은데, 나는 꾸준히 알고리즘 공부와 문제를 풀면서 알고리즘적 사고를 할수있고 어떻게 응용하고 헤쳐 나갈수있는 개발자가 되기위해 코딩테스트를 보는 회사를 지원하고싶다. 

기술은 배워서 쓸수있지만 사고는 내가 생각해야하고 응용하고 해결해야하기 때문이다. 

 

'항해 > 항해99' 카테고리의 다른 글

항해99 TIL05 JSX  (0) 2021.11.21
항해99 TIL 04  (0) 2021.11.19
(WIL)weekly I learned 01  (0) 2021.11.07
Today I Learned(TIL) 3  (0) 2021.11.06
Today I Learned(TIL) 2  (0) 2021.11.03