알고리즘

- 유니온파인드 파이썬 코드로 구현, 나중에 크루스칼로 미니멈스패닝트리 구하는데 사용한다

- 우선순위큐는 힙으로 만들어진건 알고 있었는데, 힙이 어떻게 돌아가는지는 잘은 몰랐음

맥스 힙, 민 힙 등.. 삽입하는건 직관적이 삭제할때는 루트 지우고 가장 작은 값을 루트에다 넣고 스왑하면서 내리는 식으로하더라


자바스크립트

- 클로져 공부한지 꽤 되어서 다시 봐봤음, 클로저 보다는 let 이 사용되는 이유.. 렉시컬 스코프에서 var 변수는 함수 스코프에 사용하고

let은 블록 스코프에서 사용한다는거..

- 기본적으로 자바스크립트의 this는 main(anonymous function)이라는거 그리고 함수 내에서 함수를 호출하더라도 main 컨텍스트에서

호출하게되는 건 알고있었는데, 뭔가 스코프랑 개념이 꼬였음


깃허브

- 협업 안한지 꽤 되어서 rebase, merge하는 영상 봤고, pull request하기 까지의 과정 다시 봤음..

- 유튜브에서 git 사용하는 과정 보여주는 동시에 그림으로 타 브랜치에 커밋되어있는 것과 마스터 브랜치 합쳐지는거 보여주는 좋은 영상을봤음


TDD 및 클린코드

- TDD 해봐야지 할때마다 계산기 예제 같은 체리피킹같은 영상들만보다가 프론트엔드 TDD하는 영상을 봤는데

다음 프로젝트나 개발할때 꼭해보고싶게 만들더라

- 테스팅도 단계가 나눠져있고 보통은 unit test까지만 신경씀.. TDD도 포함

소프트웨어 공학적으로 봤을 때 unit -> integration -> system -> acceptance 테스트가 있다고 하더라

퍼펫티어라고 시스템 테스팅에 포함되는 e2e 테스팅을 하는 라이브러리가 있는데

개발하면서 unit이랑 system 테스팅을 동시에 진행하게 되어서 저 흐름이 꼭 맞는것은 아닌가보다 생각이 들었음


- 클린코드라고 거창하게 했지만 쟈스에서 파이프라인을 사용한 코딩방법을 보았음

유너리 함수 즉 인자를 하나만 가진 함수, 순수 함수 즉 동일한 값에 동일한 리턴값을 주는 함수에만 적용되는 방법이라고는하는데...

실제로 잘 쓰일지는 모르겠음.. 예제도 문자열 바꾸는 그런 예제였고..

응용하기 나름이라고 생각하고 나름 비동기, 동기 함수도 섞어서 사용할 수 있고 코드도 직관적으로 바뀌니 필요할 경우에 적용해보아야겠다고

생각이 들었음.


리덕스

- 리엑트 후크있어서 쓸필요가 없을 줄 알았는데 컴포넌트 간의 state를 공유를 못해서 어쩔수없이 써야할 경우가 생긴다고하더라

부모 컴포넌트와 자식 컴포넌트가 있을때 자식 컴포넌트는 부모의 state에 접근할 수 있지만(props 전달)

부모들은 지 자식새키들 어떻게 사는지 잘 모르는 것 처럼 부모는 자식의 state에 접근할 수 없음.

옛날에 윈프 공부했을 때 부모 프로세스랑 자식 프로세스 공부했을 때 자식 프로세스가 종료할 때 핸들값을 반환받는걸 기다린다 이런걸 봤던거 같은데

가물가물해서 다시 봐야겠음.. 뭔가 꼬리에 꼬리를 무는거같긴한데..

- 아무튼 리덕스는 모든 컴포넌트의 state를 관리할 수있는 방법을 제공함, 리덕스 말고 context API가 있는데 리덕스가 contextAPI로 만들어졌고 좀 더

편리하다고하더라



3달 정도 컴퓨터 관련해서 손 땠는데 다시하니깐 재밌다

슬럼프오면 던져놓고 다른거하다가 오는것도 좋네