자바스크립트3 [자바스크립트] 동기와 비동기, 코드 실행 방식에 대해서 동기(Synchronous)와 비동기(Asynchronous)는 코드 실행 방식의 두 가지 주요 접근 방식이다. 동기는 직렬적으로 태스크를 수행하는 방식으로, 이전 태스크가 완료되어야 다음 태스크를 수행할 수 있다. 한 작업이 실행하는 동안, 다른 작업은 실행을 기다린다. 다시 말해, 코드의 실행이 순차적으로 일어나기에 이전 작업이 완료되지 않으면 다음 작업을 수행할 수 없다. 이 방식은 코드가 실행될 때 보통 호출한 함수가 반환될 때까지 기다릴 필요가 있을 때 사용된다. 만약, 동기 방식에서 순차적으로 실행되는 코드에서 문제가 발생하면 전체 애플리케이션이 멈추거나, 느려지는 문제가 발생할 수 있다. 자바스크립트는 기본적으로 동기적인 방식으로 실행되지만, 동기적인 실행방식의 단점이 있기 때문에 비동기적으.. 개발기초 2023. 4. 14. [자바스크립트] 비동기적 처리를 위한 '이벤트 루프'에 대해 알아보자 이벤트 루프의 존재 이유 : 비동기적 처리! 자바스크립트의 쓰레드 블로킹 최소화 자바스크립트는 싱글 쓰레드 기반의 언어로, 한 번에 한 가지 일만 처리할 수 있다. 즉 모든 작업을 순차적으로 처리하며 하나의 작업이 끝나기 전에는 다른 작업을 수행할 수 없다. 자바스크립트는 기본적으로는 동기적인 방식으로 동작한다. 동기적으로 동작할 때 발생할 수 있는 문제는 쓰레드 블로킹(Thread Blocking)이다. 쓰레드 블로킹은 어떤 쓰레드가 특정 작업을 수행하는 동안, 다른 쓰레드들이 해당 작업이 끝날 때까지 대기하는 상태를 말한다. setTimeout 같은 동작이 요구될 때를 말한다. 이러한 상황은 프로그램의 실행 속도를 느리게 하고, 성능에 영향을 미치고, 교착상태(데드락) 같은 문제를 초래할 수 있다. .. 개발기초 2023. 4. 13. TIL : 리팩토링, 모듈화로 재사용성, 유지보수성 높이기(nestJS, EJS) Nest.js, ejs 사용 환경. 재사용성과 유지보수성을 높이기 위하여, 기존 코드를 모듈화 하였다. 이를 통해 각 게시판, 게시글 마다 반복적으로 들어가는 날짜 표기 기능에 대한 코드를 대폭 줄일 뿐만 아니라, 유지 보수의 편리성을 얻었다. 먼저, 어떤 상황이었는지 정리해본다. 문제상황 - 프로젝트 진행 초기에는 당장 기능 구현을 우선시하다보니, 일단 코드를 짜는데 급급하기만 했다. 그러다보니 동일한 기능에 대해서 조건문이 생기기 시작했고, 결국에 저렇게 코드가 길어져버렸다... - 반복문 코드가 들어가는 게시판 구역(HTML 테이블)은 최소 8개 이상(각 게시판, 인기글, 통합검색 결과, 각 게시판 검색페이지)이다. - 게다가 게시글 상세페이지 접속시 게시글 내부 본문의 시간표기, 본문 하단의 이전.. 개발 학습일지(TIL) 2023. 3. 24. 이전 1 다음