동기 처리와 비동기 처리함수를 호출하면 함수 코드가 평가되어 함수 실행 컨텍스트가 생성되며 콜 스택에 푸시되고 함수 코드가 실행된다. 함수 코드의 실행이 종료되면 실행 컨텍스트는 실행 컨텍스트 스택에서 팝되어 제거된다.const foo = () => {};const bar = () => {};foo();bar(); 함수의 실행 순서는 실행 컨텍스트 스택으로 관리한다. JS 엔진은 단 하나의 실행 컨텍스트 스택을 갖는다. 이처럼 JS 엔진은 한 번에 하나의 태스크만 실행할 수 있는 싱글 스레드 방식으로 동작하며 이러한 동작 방식 때문에 이전 작업이 끝나기전에 다음 작업을 할 수 없는 블로킹 현상이 발생한다.// sleep 함수는 일정 시간(delay)이 경과한 이후에 콜백 함수(func)를 호출한다.fun..
새로운 프로젝트를 진행하며 웹을 제공해줄 웹 서버를 구축해야했는데, 이전에 같이 프로젝트를 개발했던 팀원이 라즈베리파이를 이용해 웹 서버를 구축한 것을 봤다. 재미있을것 같아 필자도 라즈베리파이를 이용해 웹 서버를 구축할 예정이다.물론 저수준 웹서버이지만, 그래도 서버를 구축을 경험, 서버비 절약(AWS의 프리티어 기간이 끝나 악덕한 비용을 본 경험이....)을 위해 진행할 예정이다. 위의 사진과 같은 흐름으로 통신이 이루어질 것이다. 위 과정에서 라즈베리파이를 웹 서버로 이용하기 때문에 외부 IP로 파일을 내보내는 과정이 필요하다. 이러한 경우 3가지 과정이 필요하다.라즈베리파이의 내부 IP 고정IP 포트포워딩라즈베리파이에서 DB 및 nodejs 등의 설치 및 테스트 내부 IP 고정우선 라즈베리파이를..
비즈니스와 기술적, 두 관점으로 나뉜다. 비즈니스적 관점1. 온라인 상의 상점이나 건물을 만드는 작업이다.이는 회사의 서비스를 소개, 고객에게 어필하여 고객이 유입 가능한 통로를 만드는 것. 2. 또한 퍼널 단계에서 사용자가 각 구매 단계별 적절한 UI를 단계별로 보여주고, 각 퍼널의 전환 비율과 이를 개선시키기 위한 고민을하는 것. 3. 최적화된 프로세스로 UI/UX 반영에서 Backend Service 까지 전달하는 것. 기술 관점크게 4가지가 있다.1. 퍼블리싱: 전반적인 웹 페이지의 화면을 만듬 => HTML 마크업, CSS 스타일링2. 재사용 가능한 UI 컴포넌트 제작(React), 디자인 시스템 구축(Storybook)3. 클라이언트와 서버 상태 관리: 각 상황에 맞는 데이터를 서버에서 가져..
타입스크립트를 이용해 새로운 프로젝트를 진행하던 어느날 처음 보는 에러를 마주쳤습니다. element implicitly has an 'any' type because expression of type 'string' can't be used to index type '{ duelist: boolean; recon: boolean; sentinels: boolean; controllers: boolean; nodicision: boolean; }'. no index signature with a parameter of type 'string' was found on type '{ duelist: boolean; recon: boolean; sentinels: boolean; controllers: boo..