그 기술이 왜 태어났는지를 봐야함
가령 이런게 있음
비동기 프로그래밍이 왜 유행이 됐고, 쓰레드가 현재의 이러한 방향으로 진행됐는가
어차피 프로그래밍 단일 기술 내용 백날 외워도 잊어먹는데
자기안의 배움의 역사적 서사로 이해하면 굵직한 큰건 외워짐
대부분의 기술은 필연으로 태어남
목적을 모르면 전부 뒤엉켜 보임.
자잘하게 작은거 하나하나 외우면 답 없음.
가령 async/await를 동시성 도구로 외우는것보다
프로그래밍의 쓰레드라는 개념의 흐름을 봐야함
1.단일 쓰레드 블로킹 방식은 순차 처리하다보니, UI 멈춤으로 인해서 유저 이탈율이 컸다
따라서 그에 대한 해결책으로
2.멀티쓰레딩이 나왔다. 멀티쓰레딩은 병렬로 돌리지만, RAM 낭비가 컸고, 락으로 인해서 복잡도 관리가 어려웠다. RAM낭비가 크다보니 당시 컴퓨터 성능때문에 개선의 필요성이 필요헀다.
3. 램낭비를 막기위해서, 블로킹을 콜백으로 전환해서 효율을 극대화했다. 이때 노드와 자바 스크립트가 나왔다. 하지만 이때 콜백으로 인해서 추론이 어려워졌다.
4. async/awiat로 구조화하고, 구조는 동기처럼 쓰되, 동작은 비동기로 하고, 제어 흐름을 눈으로 읽을 수 있게했다.
즉
기술 공부는
문제->제한 조건->기술 해법->단점->후속 기술
이런식으로 봐야함
왜 그 기술이 태어났는가로 배우면 잊히진않더라
당연히 저런 구조로 외우면 그 기술이 극복한게 생각날거고, 그 기술은 이게 안된다라는걸 쉽게 외울 수 있음
꿀팁 고맙다 이기야