본문 바로가기

분류 전체보기

(67)
[TS] 타입스크립트(TypeScript) ⚡ 타입스크립트는? 위키백과에 따르면 타입스크립트는 자바스크립트의 슈퍼셋인 오픈소스 프로그래밍 언어라고 한다. 마이크로소프트에서 개발 유지하고 있으며 자바스크립트와 다르점으로는 엄격한 문법을 지원하는 점이 다르다. 타입스크립트는 자바스크립트 엔진을 사용하면서 커다란 어플리케이션을 개발할 수 있게 설계된 언어라고 하는데 그럼에도 자바스크립트의 슈퍼셋이기에 자바스크립트로 작성된 프로그램이 타입스크립트 프로그램에서 작동하는 것도 볼 수 있다. 타입스크립트는 자바스크립트와 다르게 자신이 원하는 타입을 정의할 수 있고, 구동은 자바스크립트로 컴파일 되서 실행할 수 있는 오픈 소스라고 할 수 있다. 그렇다면 자바스크립트를 써도 될 텐데 왜 이걸 쓰는 것일까? 타입스크립트는 자바스크립트와 다르게 자신이 원하는 타입을..
[Docker] 도커란 무엇인가 🐳 도커란 무엇인가? 위키백과에 따르면 도커는 리눅스의 응용 프로그램들을 프로세스 격리 기술들을 사용해 컨테이너로 실행하고 관리하는 오픈 소스 프로젝트라고 한다. 리눅스에서 운영 체제 수준 가상화의 추상화 및 자동화 계층을 추가적으로 제공하는 도커는 독립적인 "컨테이너"가 하나의 리눅스 인스턴스 안에서 실행할 수 있게 함으로써 가상 머신을 시작하여 유지보수해야 하는 부담을 없애준다라고 한다. 왜 도커를 쓸까? 일반적으로 서버를 관리한다는 건 복잡하고 어려우며 개발자들의 섬세한 작업이 필요한 영역이라고 한다. 그렇기에 모두가 동일한 환경에서 서버를 관리하는 것은 상상하기 어려운 일 일수도 있다. 그럴때 우리가 만약 모두가 똑같은 환경에서 똑같이 관리를 할 수 있다면 어떨까? 도커는 개발 환경 요소들이 설치..
[NestJS] MVC 디자인 패턴 MVC 패턴은 무엇일까 MDN에 따르면 MVC(모델-뷰-컨트롤러) 는 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이며 소프트웨어의 비즈니스 로직과 화면을 구분하는데 중점을 두고있다고 한다. 어떤 서비스를 만든다고 가정했을때, 그것을 유지보수를 하고 또 다른이들과 공유를 하면서 만들어야 할 때가 있는데 그때 좀 더 쉽고 깔끔하게 만들 수 있는 방법을 우리는 항상 생각해야한다. 만약 그렇지 못한다면 나의 코드는 나만이 수정할 수 있게되는 극단적인 상황도 벌어질 수 있고, 더 나아가 에러가 났을때 원인을 찾는게 어려울 수도 있다. 그럴때 MVC의 장점이 부각된다. MVC패턴은 BE와 FE를 구분하고, 또 BE안에서 비지니스 로직과 컨트롤러 등을 구분하여 세세하게 ..
[JS] 인증번호 토큰을 만들기 토큰을 만들기 전에 필요한 메소드 들을 MDN에서 공부해보자. Math.floor : 함수는 주어진 숫자와 같거나 작은 정수 중에서 가장 큰 수를 반환 Math.random : 0 이상 1 미만의 구간에서 근사적으로 균일한 부동소숫점 의사난수를 반환 padStart : 메서드는 현재 문자열의 시작을 다른 문자열로 채워, 주어진 길이를 만족하는 새로운 문자열을 반환 String() : 문자열로 변환 자 메소드를 보니까 어떻게 만들지 감이 잡히는가? 그럼 한번 만들어보자! 더보기 function getToken(num) { cosnt result = String(Math.floor(Math.random() * 10 ** num)).padStart(num,'0'); console.log(result); ret..
[Node.js] 라이브러리 lodash lodash가 뭔데? 자바스크립트의 라이브러리 중 하나로 array, collection, date 등 데이터의 필수적인 구조를 쉽게 다룰 수 있게끔 하는데에 사용된다고 한다. 함수형태로 미리 만들어둔 것들을 필요할때마다 꺼내쓸 수 있는데 lodash 라이브러리도 그러한 형태이다. 이러한 라이브러리를 사용하는 이유는 설치를 통해 편리하게 함수를 이용할 수 있고, 성능이 좋은 다양한 메소드를 활용할 수 있어 코드를 짜는데 수월하기 때문에 사용하기도 한다. 어떻게 쓰는데? 터미널을 열어서 간단하게 명령어를 입력하면 된다. ## 터미널 yarn add lodash 명령어로 lodash를 설치했으면 이제 내 파일과 연결을 해주어야 한다. // 내파일.js import _ from 'lodash'; js파일 제일..
[Node.js] CI/CD ⚡ CI/CD가 무엇일까? CI/CD는 애플리케이션 개발 단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법이라고 한다. CI/CD의 기본 개념은 지속적인 통합, 지속적인 서비스 제공, 지속적인 배포이며 CI/CD는 새로운 코드 통합으로 인해 개발 및 운영팀에 발생하는 문제(일명 "인테그레이션 헬(integration hell)")을 해결하기 위한 솔루션이라고 볼 수 있다. 뜻을 하나씩 나눠서 생각해보자. CI는 지속적 통합이라고 하며 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미한다고 한다. 이는 모든 개발이 끝난 후에 코드 품질을 관리하는 고전적인 방식으로 단점을 최소화 하기 위한 개념이라고도 볼 수 있다고 한다. CD는 지속적인..
[Node.js] Microservice 🌨️ Microservice는 무엇인가? 마이크로서비스는 무엇일까? 위키백과에 따르면 다음과 같다고 한다. 어플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처 스타일의 일종인 소프트웨어 개발 기법으로 섬세하고 프로토콜이 가벼운 편이라고 한다. 어플리케이션을 더 작게 여러 서비스로 분할 할 때의 장점으로 모듈성을 개선하고 어플리케이션의 이해, 개발, 테스트를 더욱 쉽게 해주고 침식에 더 탄력적으로 만들어준다는 부분을 꼽을 수 있고, 규모가 작은 자율적인 팀들이 팀별 서비스를 독립적으로 개발, 전개, 규모 확장을 할 수 있게 함으로써 병렬로 개발할 수 있게 한다고 한다. 또 지속적인 리팩토링을 통해 각각의 서비스 아키텍처가 하나로 병합될 수 있게 허용해 주며 지속적 배포와 전개를..
[Node.js] BigQuery 🔍️ BigQuery가 뭘까? 빅데이터 분석용으로 유명한 BigQuery. 빅쿼리가 뭘까? 위키백과에 따르면 Big Query는 다음과 같다고 한다. 페타바이트(PB)급 이상의 데이터에 대해 스케일링 분석(필요시 실시간으로 컴퓨팅 자원을 동적으로 확장)을 가능하게 하는 완전 관리형 서버리스 컴퓨팅 데이터 웨어하우스라고 한다. 결국 빅쿼리는 확장성이 뛰어나고 가격 대비 성능이 좋은 기업용 서버리스 데이터 웨어하우스인 셈이라고 볼 수 있다. 객체 스토리지, 스프레드시트의 데이터, 관리형 열 형식 스토리지를 통해 논리적 데이터 웨어하우스를 생성하여 모든 배치와 연속적으로 생성되는 스트리밍 데이터를 분석하게 되는데 이런 빅쿼리는 어떤 점때문에 사용하는 것일까. 👍️ BigQuery의 장점 빅쿼리의 공식 사이트에..