$ ls -lt posts/ | sed -n 21,40p
SY Tech Blog_
-
ecs with ec2
Amazon ECS를 EC2로 사용하려는 이유엔 몇 가지가 있을 수 있다. 다중 태스크를 돌릴 게 아니라 개발용으로 한 개만 실행시킬 거라면 ec2의 인스턴스 패밀리를 낮게 잡아서 실행하는 것이 비용적으로 효율적일 것이다.
[cloud] -
Good code bad code 정리 - 4장: 오류
오류는 복구 가능한 것과 불가능한 것으로 나뉜다. Good code bad code 4장의 빠르게·요란하게 실패하기, 기본값이나 널 객체로 오류를 숨기면 안 되는 이유를 정리했다.
[book] -
Good code bad code 정리 - 3장: 코드 계약
소프트웨어 개발은 보통 팀 단위로 이루어진다. 1장에서 언급된 코드 품질의 핵심 요소에 있었던 ‘예측 가능하고, 오용하기 어렵게 만들어라’ 이 두 항목은 다른 개발자와 상호작용 할 때 발생할 수 있는 문제와 관련이 있다.
[book] -
Good code bad code 정리 - 2장: 추상화 계층
코드 작성의 본질적인 목적은 ‘문제 해결’이다. 큰 문제는 하위 수준의 작은 문제들로 쪼개진다. 문제를 해결하기 위해 코드를 어떻게 구성하는가는 개발자에게 달린 문제다.
[book] -
Good code bad code 정리 - 1장: 코드 품질
코드 품질이 좋아야 하는 이유는 여러가지이다. 고품질의 코드는 신뢰할 수 있고, 유지보수가 쉬우며, 버그가 적다. 개발자는 코드를 작성해 문제를 해결하는 직업이다. 개발자가 작성한 코드가 프로덕트가 되기까지는 일련의 과정을 거친다.
[book] -
NestJS - Serialization
Serialization 즉 직렬화다. 한국어로 놓고 보면 의미가 잘 와닿지 않는다. 직렬화란 네트워크 응답을 보내기 전에 발생하는 과정이다. 클라이언트에게 데이터를 전송하기 전에 정해진 규칙에 맞게 데이터를 변환하고 정제화 하는 작업을 말한다.
[backend] -
Nest.js 에러 처리 깔끔하게 하기
Nest.js는 Java Spring 프레임워크의 영향을 많이 받은 객체 지향형 프레임워크이다. 모듈간 의존성 주입 방식으로 프로젝트가 구성되는데 이때 컨트롤러와 서비스를 만들게 된다.
[backend] -
Bitbucket에서 ECR로 push하는 Pipeline 구축하기
Bitbucket pipeline으로 ECR 자동 배포 구성하는 방법이다.
[cloud] -
Rxjs 알아보기
RxJS는 비동기적이고 이벤트 기반의 프로그램을 다루기 위한 라이브러리이다. RxJS는 observable한 sequence를 사용한다...
[frontend] -
Linux tail 명령어 - 실시간 로그 출력
파일의 마지막 부분만 보여주는 Linux tail 명령어의 사용법과 -n, -c, -f 같은 옵션, tail -f로 로그를 실시간으로 따라가는 방법을 정리했다.
[misc] -
AWS ECS
Amazon ECS(Elastic Container Service)는 컨테이너 애플리케이션을 쉽게 배포하고 관리할 수 있는 완전 관리형 컨테이너 오케스트레이션 서비스이다.
[cloud] -
Docker & Dockerfile 그리고 Multi-stage
Dockerfile과 Multi stage 도커파일은 도커 이미지를 생성하기 위한 선언형 스크립트다. 기본 규칙만 익혀두면 다른 프로젝트의 Dockerfile도 빠르게 읽고 이해할 수 있다. Format 도커파일의 기본 작성 포맷은 아래와 같다. 명령문(instruction)은 대소문자를 구분하지 않지만 편의상 대문자로…
[cloud] -
Redis Stream 알아보기
Redis stream은 append only 로그와 비슷하게 동작하는 데이터 구조다. O(1)의 랜덤 액세스가 가능하며 컨슈머 그룹이라는 고성능 기능도 탑재되어있다. redis stream을 이용하면 기록과 동시에 실시간으로 이벤트를 소비할 수 있다. 사용 가능한 예시는 다음과 같다. 이벤트 소싱 (유저 액션 트래킹)…
[misc] -
verdaccio private npm registry 구축하기
내부에서 사용하기 위한 npm 라이브러리를 만들게되었다. 테스트를 위해 private npm에 배포하려고 보니 유료 서비스였다. 무료로 해결할 방법을 찾다가 verdaccio를 발견해서 사용해봤는데 사용법이 매우 간편해서 정리해두려한다. registry란 package의 레포지토리이다. yarn, npm, pnpm을 지…
[misc] -
rollup.js
rollup.js는 javascript module 번들러이다. 번들링 라이브러리라는 면에서 webpack과 같은 역할을 한다고 볼 수 있는데, 보통 webpack은 애플리케이션 번들링에 사용하고 라이브러리 제작에는 rollup을 사용하는 것이 일반적이라고 한다. rollup 또한 webpack 처럼 모든 기능을 자체적…
[misc] -
NodeJS 구조 및 성능 향상 시키기
Node.js 서버 튜닝을 진행해야 해서 동작 원리부터 정리해 두기로 했다. 분명히 많이 공부한 내용인데 왜 다시보면 새로운 건지 모르겠다. Node.js는 비동기 이벤트 드리븐 Javascript 런타임이다. 프로그램: 컴퓨터가 실행 가능한 코드 모음 프로세스: CPU로부터 자원을 할당받은 독립적인 개체 컴퓨터의 메모…
[backend] -
serverless esbuild로 패키지 사이즈 줄이기
serverless로 AWS Lambda를 패키징 하다보니 코드가 늘어날 수록 패키징 및 deploy 시간이 점점 더 늘어났다. 이대로 안되겠다 싶어 방법을 찾아보던 중 를 발견해 적용해보았는데 결과는 대만족! 설치 공식 홈페이지에서 자세한 옵션과 설치 및 적용 방법을 볼 수 있다. 적용 방법은 너무너무 간단하다. 그리…
[cloud] -
Javascript 비동기 에러핸들링
유틸 함수로 만든 함수에서 에러 핸들링에 작성한 코드가 작동하지 않는 것을 발견했다. 원인을 분석하다가 단단히 잘못 작성했다는 것을 깨달았다. 이렇게 코드를 작성할 경우 동기적으로 발생한 에러는 잡아낼 수 있지만, 메서드 실행으로 인한 비동기적으로 발생한 에러의 경우 가 없기 때문에 문으로 잡아낼 수 없다. 따라서 간단…
[frontend] -
React 모바일 디바이스 100vh 사용하기
브라우저는 정책이 시시때때로 바뀌어서 언제 에러가 발생할지 모른다. 모바일 디바이스의 경우 iPhone은 하단바 때문에 를 사용해 전체 화면에 적용하려고 하면 하단 부분이 잘리는 경우가 있다. 대부분 최신 브라우저에서 사용 가능한 속성이 새로 나왔다고는 하지만 나의 경우 잘 적용되지 않았다. 이를 해결해주는 라이브러리가…
[frontend] -
React 컴포넌트 테스트 하기
테스트에 사용한 라이브러리는 과 이다. React 뿐만 아니라 UI 컴포넌트 테스트를 위한 툴을 가지고 있는 패키지이다. test runner는 패키지에 포함되어 있지 않으며 사용자가 원하는 테스트 프레임워크를 사용하면 된다. 를 사용하지 않고도 테스트를 할 수는 있지만 이 라이브러리를 사용하면 테스트에 필요한 세부 코…
[frontend]