[ 모던 자바스크립트 스터디 ] 레이블 문 , 타입 변환과 단축 평가
·
Archive/Develop
자바스크립트 책을 읽으며 생소한 개념이 있어 정리해보려고 한다. 레이블 문 (label statement) a: console.log('a'); 위의 코드는 a 라는 레이블 식별자가 붙은 레이블 문이다. 이 레이블 문은 프로그램의 실행 순서를 제어하는데 사용하고, 이 레이블 문을 탈출하려면 break 문에 레이블 식별자를 지정해주면 된다. a : { console.log(1); break a; console.log(2); } console.log('Done! ^~^'); 위 코드의 실행 결과는 아래와 같다. console.log(1); 이 실행 된 이후 break a; 문을 통해 a 레이블을 탈출하게 되어 아래의 console.log(2); 는 실행되지 않는 것을 확인할 수 있다. 이러한 레이블 문은 중..
[ 모던 자바스크립트 스터디 ] 자바스크립트 개요, 변수 호이스팅
·
Archive/Develop
해당 포스팅은 모던 자바스크립트 딥 다이브 책을 읽으며 기록하는 포스팅입니다. 제 식대로 조금 편안하게 해석하여 기록합니다. 자바스크립트 특징 다른 프로그래밍 언어와 마찬가지로 기존에 존재하는 많은 프로그래밍 언어에서 영향을 받았다. 기본적인 문법은 C와 JAVA를 마킹했고, self 는 프로토타입 기반 상속, scheme 은 일급 함수의 개념을 차용했다. 또한 자바스크립트는 개발자가 별도의 컴파일 작업을 수행하지 않는 인터프리터 언어이다. 파이썬과 마찬가지인 것이다. 물론, 자바스크립트에서 파생된 타입스크립트 등의 언어는 해당 언어를 자바스크립트로 변환해주는 일종의 컴파일 작업을 거친다. 그렇지만 자바스크립트 자체는 컴파일 작업을 하지 않음을 기억하고 있어야한다. 이건 이론적으로 알고 있는 내용이지만,..
[ NestJS ] TypeORM 기존 테이블 -> entity 생성
·
Archive/Develop
TypeORM 은 entity.ts 를 테이블로 만들어준다. 반대로 typeorm-model-generator 는 이미 존재하는 테이블을 entity 파일로 만들어준다. 나는 현재 이미 존재하는 db 를 가지고 entity 를 생성하여 코드를 작성해야하기에 typeorm-model-generator 를 다운로드 받아 사용하겠다. npm i typeorm-model-generator 현재 내가 개발을 진행하는 서버엔 내 코드만 존재하는 것이 아니기에 전역에 설치하는 g 옵션은 제거한 상태로 설치했다. 제대로 설치했다면, package.json 의 depoendencies 에 typeorm-model-generator 를 확인할 수 있다. 이제 아래 명령어로 entity 파일을 생성해보자. typeorm-m..
AWS Microservice 웨비나 후기
·
Archive/ETC
마이크로 서비스란 무엇인가? 비즈니스 도메인을 중심으로 모델링되어있는 독립적으로 배포 가능한 서비스 단위 이다. 각각의 서비스가 서로 느슨하게 연결되어 있어 독립 실행이 가능해야한다. 쓰리 티어 아키텍처 (ui team, backend team, dba) 현재 동작되는 서비스에 추천 서비스를 넣는다고 했을때, 각각의 팀은 따로 개발한다. 쓰리 티어같은 경우는 기술 스택을 기준으로 팀이 나누어졌다면, 비즈니스 도메인을 중심으로 모델링을 하여 아래 구조로 변경할 수 있다. 카탈로그, 유저 관리, 추천 해당 강의에서는 마이크로 서비스에서의 ci/cd 가 가장 핵심적인 키워드 이다. 이렇게 마이크로서비스로 나뉠때 조심해야하는것은 데이터베이스 이다. 여러 마이크로서비스는 각 서비스 자신의 데이터를 소유해야한다. ..
AWS DevOps 웨비나 후기
·
Archive/ETC
회사를 다니기 시작하면서 좋은 경험들을 많이 해보는 것 같다. 8월 17일에 aws 에서 열린 DevOps 웨비나에 참석해서 직접 AWS 의 서비스를 이용하여 CI/CD 작업을 자동화하는 실습을 진행했다. 오프라인이었다면 더욱 좋았을 테지만(오프라인에서는 개발자 키트를 준다... 다음엔 꼭 오프라인으로 가봐야지) 아쉽게도 선착순 신청에 밀려 웹에서 해당 웨비나를 수강했다. 핵심적이고, 내가 가장 와닿았던 이론 내용들을 담아보겠다. DevOps 가 왜 필요한 것인가? 사실 일반적인 개발 플로우로 보자면 Develop -> QA -> Operation 으로 흘러간다. 만약 현재 배포되어 있는 애플리케이션에 치명적인 버그가 생겨 빠른 시일 내에 재배포가 필요하다면 해당 단계를 거쳐서 배포해야할 것이다. 이러한..
[ Flask ] migrate 오류 해결
·
Archive/Develop
언제 한번 블로그 포스팅도 전부 다 수정을 하긴 해야하는데,,, 애초에 새롭게 파는 것도 나쁘지 않아보인다. 우선 오늘은 앞으로 쌓인 일이 많으니 기록용으로 migrate 할때 나왔던 오류를 빠르게 수정해보겠다. 현재 에러코드는 아래와 같다. ERROR [flask_migrate] Error: Target database is not up to date. migrate 과정 중 위 에러를 발견했다. 플라스크 마이그레이트 깃헙을 뒤져보다 아래 이슈가 있었고, 해당 에러는 alembic_version 테이블이 삭제되었을 때 발생하는 것이라는 사실을 알아냈다! 이슈 답변에 이해를 못한 상태로 alembic_version table을 삭제하지 말라고 되어있고, 대신 history를 확인하여 현재 db에 반영되어..