Development(54)
-
[Kubernetes in Action] Volumes
Overview 이전 포스팅들에서 파드와, 파드와 상호작용하는 다른 쿠버네티스 리소스들에 대해서 살펴보았습니다. 이번 포스팅에서는 다시 파드로 돌아가서, 파드 안에 있는 컨테이너들이 외부의 Disk Storage나 Shared Storage를 사용하는 방법에 대해서 살펴보려고 합니다. 파드는 하나의 Logical Host 단위로 동작하기 때문에 파드 내에서 돌아가는 프로세스들은 CPU, RAM, Network Interface등을 공유합니다. 그렇지만 파드 내에 있는 개별적인 컨테이너들은 대체적으로 격리된 파일 시스템(isolated filesystem)을 갖는데, 그 이유는 파일 시스템이 컨테이너의 이미지로부터 오기 때문입니다. 컨테이너가 시작될 때, 이미지에 정의된 파일들이 빌드 타임에 추가됩니다. ..
2021.10.09 -
[React] Atomic Design Pattern에 대한 고찰
Overview 리액트를 사용해서 프론트엔드 웹 애플리케이션을 개발하는 경우, 많은 곳에서 Atomic Design Pattern을 사용하게 됩니다. 컴포넌트를 하나의 함수로 보고, 클린 아키텍쳐의 관점에서 재사용 가능한 컴포넌트들을 그 기능과 구성에 따라 구조화 하여 사용하는 이 패턴은 어느샌가 프론트엔드 아키텍쳐를 이루는 하나의 교과서처럼 되어 알려지고 있습니다. 하지만 이 Atomic Design Pattern을 실제 애플리케이션에 적용해서 개발하다보면 생각보다 많은 부분들이 "추상적"이고 "주관적"이라는 느낌을 받는 경우가 많습니다. 오히려 적용한 이후에 코드가 더 관리가 어려워지고 지저분해지는 경우도 많은데, 이는 Atomic Design Pattern이 처음 등장할 때 그 사용처가 "Desig..
2021.09.18 -
[ELB] Connection Draining
Usecase 한 기술 회사에서 운영하는 서비스는 ELB(Elastic Load Balancer)뒤에 EC2 인스턴스를 두고 부하를 분산하는 방식을 사용하고 있습니다. 이때, EC2가 health check에 실패하여 unhealthy상태로 들어가게 되면 진행중이던 in-flight Request가 끊어지는 이슈가 발생하게 됩니다. 이를테면, 특정 EC2 인스턴스로부터 수십초가 걸리는 파일 다운로드를 수행중이라고 했을 때, 파일을 다운로드받는 도중, 해당 인스턴스가 unhealthy상태로 바뀌게 되면 커넥션이 끊어지면서 파일 다운로드에 실패하게 되는 것입니다. 이러한 상황을 막기 위해 취할 수 있는 방법에는 어떤 것이 있습니까? Connection Draining When Connection Draini..
2021.07.28 -
[SQS] Long Polling & Short Polling
Usecase 자사의 메세지 큐를 AWS의 SQS로 대체하려는 서비스 회사가 있다고 가정합니다. 이 회사가 SQS로의 마이그레이션을 고려할 때 가장 중요하게 생각하는 요소가 '비용'이라고 할 때, 고려할 수 있는 옵션은 어떤 것이 있나요? Short Polling 기본적으로 SQS(Simple Queue Service)는 대기열에서 메세지를 수신하기 위해 Short Polling을 사용합니다. Short Polling의 경우 SQS로 보내는 쿼리(ReceiveMessage)에 메세지가 없는 경우에도 즉시 응답을 전송하며, SQS서버의 부분 집합(Weighted Random Distribution Method를 통해 선정한 전체 서버 노드들의 일부)에서 메세지를 꺼내어 Response를 리턴합니다. 따라서..
2021.07.27 -
[Webpack] Plugins
위 포스팅은 이전 포스트의 내용을 이어서 진행합니다. [Webpack] Config file & Asset Modules [Webpack] Introduction & Setup [Webpack] Loaders Plugins webpack 공식 문서에는 플러그인에 대해 다음과 같이 정의하고 있습니다. 로더는 특정 유형의 모듈을 변환하는 데 사용되지만, 플러그인을 활용하여 번들을 최적화하거나, 애셋을 관리하고, 또 환경 변수 주입등과 같은 광범위한 작업을 수행 할 수 있습니다. 플러그인은 webpack의 핵심 요소이며, webpack의 컴파일 프로세스를 활용할 수 있는 방법을 제공해 준다는 점에서 커스텀 영역을 넓혀줍니다. 플러그인은 webpack 컴파일(번들링)과정에서 발생하는 주요 이벤트에 후킹하여 여러..
2021.06.12 -
개발일지 (11월 3주차 회고)
Feedback 디자인 시안은 정말 중요하다. 웹 개발자가, 특히 작은 규모의 프로젝트에서 일하는 웹 프론트엔드 개발자가 빠지기 쉬운 함정 중의 하나는(내가 빠져서 그런가), 디자인 시안에 맞추어 개발하지 않고, 자신의 개발 편의에 맞춰 시안을 조금씩 조금씩 자기 입맛에 맞게 수정하려는 태도인 것 같다. 디자인 시안 (이번 같은 경우는 Zeplin)에 명시된 margin, color, font 등을 엄격하게 준수하고, 애매한 점이 있으면 (시안에 나오지 않는 애니메이션 효과 등) 해당 사항에 대해서 적극적으로 디자인 팀과 소통하여 의사결정을 하는 단계가 필요하다. 유들 있는 Validation. 프론트엔드를 개발한다고 하면 거의 대부분의 프로젝트에서 빠지지 않는 것이 Form Control이다. 사용자의..
2020.11.20