Front-end_dev
lang : ES6 dev dependency : webpack(with babel)util : google fontslib : material.js(UI)physics engine : matter.js(rigid body 2d physics) 이전프로젝트까지에서는 canvas에서 제공하는 low level api로만 작업하다가 처음으로 물리엔진(주로 강체동역학)을 써서 같이 작업해봤습니다. 언제부턴가 녹화 프로그램들이 녹화만햇다하면 엄청버벅거려서 저 동영상에서도 엄청 버벅거리네요 실제로는 하나도 잔렉없습니다....ㅜ
# 무한루프while(1) { ….}이런코드를 만들고나서 한 2,3초후에 컴퓨터가 뻗더라고요. 원래는 당연히 알고있는건데 하드웨어쪽을 배우면서 살짝 햇갈렷거든요.ATMega128같은경우는 1개의 프로세스안에서 실행되는거고 우리가사용하는 컴퓨터는 멀티프로세스라서 한개의 프로세스에서 무한루프가 걸리면 다른것들을 처리할 수가 없으므로 뻗는게 당연하지만, ATMega128같은 경우는 한개의 프로세스라서 while(1) { } 이런코드가 전혀이상하지 않다는거죠 # 애니메이션에 대한 정확한 이해예를들어 사각형을 계속해서 랜더링한다는 프로그램이 있다고 가정 하면, 그 프로그램은 무한루프안에서 동작한다고 볼 수 있죠. 근데 while(1) { } 이런 거는 안됩니다. 왜냐하면 위에서 말했다시피 프로그램이 뻗게되요. 그..
군대가기전에 썻던 앵귤러(프레임워크)도그렇고 현재 공부하고있는 물리엔진(프레임워크)에서도 그렇고 프레임워크나 라이브러리에서 이벤트는 빠지질 않는 것 같습니다. 그래서 한 번 구현해봤습니다. 우선 먼저 이게 어떻게 돌아갈까 생각을 해봤는데,첫번째로 생각해본게 기존의 동작을 오버라이딩하는 것 입니다. 근데 이건 매번 check해야하므로 이벤트방식의 프로그래밍과는 전혀 거리가 멉니다. 예를들면, LED가 1개 켜져있는데 스위치를 누르면 LED가 꺼지는 프로그램이 있습니다. 여기서 하드웨어프로그래머는 2가지방법이있겠죠. 1번쨰는 단순 무한루프안에 핀값(스위치가눌렸는지안눌렸는지)을 체크하는 구문을 넣는거고, 2번째는 인터럽트를 사용해서 값을 체크하는거죠여기서 차이점은 값을 계속해서 체크하냐안하냐의 차이입니다. 따..