본문 바로가기

Dev. Back-End

(40)
자바스크립트 이벤트 루프 동작 구조 브라우저의 멀티 쓰레드로 작업을 동시에Javascript는 싱글 쓰레드 언어라고 들어본적이 있을것이다. '싱글' 쓰레드라 한번에 하나의 작업만 수행이 가능하다.반면에 java나 python은 멀티 쓰레드를 지원하기때문에 원하는 코드 로직을 동시에 수행 시키는 멀티 작업이 가능하다. 그런데 웹 어플리케이션에서는 network 요청이나 event 처리, timer와 같은 작업을 멀티로 처리해야하는 경우가 많이 있다.만약에 싱글쓰레드로 브라우저 동작이 한번에 하나씩 수행하게 된다면 우리가 파일을 다운로드 받는 동안에는 브라우저는 파일을 다 받을때까지 웹서핑도 못하고 멈춰 대기해야한다. 따라서 파일 다운로드, 네트워크 요청, 타이머, 애니메이션 이러한 오래 걸리고 반복적인 작업들은 자바스크립트 엔진이 아닌 브라..
Slack 메시지로 GitHub Actions 자동 배포 하는 방법 Slack 메시지로 GitHub Actions 자동 배포 하는 방법 GitHub Actions이란? : GitHub에서 호스팅되고 관리되는 자동화된 워크플로우입니다. 이것을 사용하여 소프트웨어 개발 프로세스를 자동화하고 프로젝트를 빌드, 테스트 및 배포할 수 있습니다. GitHub Actions은 GitHub 리포지토리와 완전히 통합되어 있으며, 이벤트 및 트리거에 응답하여 워크플로우를 실행하도록 설정할 수 있습니다. GitHub Actions를 사용하면 프로젝트의 CI(Continuous Integration) 및 CD(Continuous Deployment)를 설정할 수 있습니다. 이를 통해 코드 변경 사항이 발생할 때 자동으로 테스트가 실행되고, 코드가 머지되거나 푸시되면 빌드 및 배포 작업이 자동..
[MySQL] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp 에러 Rancher desktop 툴을 사용해서 도커를 띄웠다. 버전은 1.6.2버전 최신이었다. docker compose up -d 를 사용해서 띄웠더니 TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details) 위처럼 에러가 발생하면서 계속 불규칙적으로 restarting이 되었다. exec로 접속도 안되고 dbeaver UI툴로도 안붙었다. mysql: image: mysql:5.7 platform: linux/amd64 # m1에서 docker pull 시 ERROR:no matching mani..
TypeScript와 JavaScript의 개념 및 차이점 ● Typescript란 ? : 타입스크립트는 마이크로소프트(MS)에서 개발하여 2012년10월에 첫 출시되었습니다. 오픈소스 프로그래밍 언어로 어떤 브라우저나 호스트, 운영체제에서도 동작합니다. 타입스크립트는 자바스크립트의 상위 집합으로서 ECMA의 최신 표준을 충분히 지원합니다. ES6의 새로운 기능들을 사용하기 위해 Babel과 같은 별도 트랜스파일러를 사용하지 않아도 됩니다. 타입스크립트는 정적 타입 언어이기 떄문에 컴파일 시간이 조금 걸리지만, 안정성이 보장됩니다. 반면에 자바스크립트는 동적 타입 언어이기 때문에 런타임 속도는 빠르지만 타입 안정성이 보장되지 않습니다. 인터프리터 언어인 자바스크립트와는 다르게 컴파일 언어인데, 전통적인 C계열의 컴파일 언어와는 차이가 있어 브라우저에서 이해할 수..
NestJS과 Express의 개념 & 비교 (차이점, 특징 등) ● NestJS란? Nestjs의 공식 사이트 Nest (NestJS)는 효율적이고 확장 가능한 Node.js서버측 애플리케이션을 구축하기 위한 프레임워크입니다. 프로그레시브 자바스크립트를 사용하고 TypeScript로 빌드되고 완벽하게 지원하며(하지만 여전히 개발자가 순수 자바스크립트로 코딩할 수 있음), OOP (객체 지향 프로그래밍 Object Oriented Programming), FP (함수형 프로그래밍 Functional Programming) 및 FRP (함수형 반응형 프로그래밍 Functional Reactive Programming) 요소를 결합합니다. express를 기본으로 채택하고 그 위에 여러 기능을 미리 구현해놓은 것이 nestjs입니다. ※ NestJS 특징 NestJS를 이..
[Redis] 레디스 GUI Medis 쉽게 설치하는 방법 * Medis란? : 간단하게 값 조회하고 편집하려고 Redis cli 클라이언트와 Redis command cheat sheet를 함께 띄워두고 떠듬떠듬 작업하다보니 더는 안 되겠어서 괜찮은 오픈소스 GUI 툴을 찾아보았습니다. Medis를 발견하고 사용해 봤는데 역시 그래픽이란 혁명적이에요. Medis는 Node.js, React, Electron으로 만들어진 오픈소스 Redis 클라이언트 어플리케이션입니다. 키와 config의 조회 및 수정, SSH 터널링, 커맨드 입력을 위한 터미널 등 기본적인 기능과 많은 고급 기능들을 지원합니다. Windows용 클라이언트의 경우, exe 파일이 배포되고 있습니다. 👉 Medis for Windows 그러나 macOS용 클라이언트는 직접 빌드해서 사용해야 합니..
nodejs와 mysql 연동 에러 해결하는 방법 문제 : Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client 위와 같은 에러가 발생하고 있었습니다. package.json에서 버전문제인가 싶어서 npm install을 다시 해줘도 동일한 문제가 발생했습니다. 해결: ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '사용할 패스워드'; 를 입력해서 mysql에서 실행해준뒤에 flush privileges; 새로고침해주고 나니 정상 작동 했습니다.
[Jenkins] job scheduling 설정하는 방법 (batch) 1. new item -> freestyle project를 클릭해줍니다. 2. 얼마만큼마다 job을 실행할지 입력해줍니다. 위 사진은 1분마다 돌도록 설정하였습니다. 위와 같이 환경변수로 설정한 $GIT_PROJECT 경로로 입력해주어도 되고, 테스트만 위한것이라면 echo "jenkins job test"라고 입력해주면 됩니다. 또는 해당경로를 잡아 실행할 shell파일을 입력해주어도 됩니다.