분류 전체보기(289)
-
개발일지 (9월 회고)
정신없는 3분기를 보내다 보니 6월부터는 아예 개발일지를 작성하지 못했다. 많은 일들이 있었고 많은 생각들이 흘러갔던 지난 3달이었기 때문에 명확하게 기록을 남기지 못한 점에 대해서는 아쉬움이 남지만 기억에 잡히는대로 의미있었던 일들과 앞으로 걸어갈 방향에 대해서 조금이나마 정리해보고자 한다. Next Step 사내 프론트엔드 팀에서 내걸고 있는 슬로건이기도 하고, 그전부터 스스로에게 계속 질문했던 것이기도 하다. "다음 단계로 가기 위해서는 무엇을 해야 하는가". 이 질문에 대해 답을 내놓기 위해서는 "다음 단계"가 무엇인지부터 스스로 정의해야 했고, 이를 고민하는데 오며가며 참 많은 고민들을 했었던 것 같다. 다음 단계를 "좀 더 나은 프론트엔드 개발자가 되는 것"으로 국한하면 질문에 답변하기가 굉장..
2021.09.26 -
[Kubernetes in Action] Pods
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 쿠버네티스의 Basic Building Block인 Pod의 정의와 동작원리에 대해 설명합니다. 또한 쿠버네티스에서 권장하는 Pod사용방식에 대해 안내하며 JSON, YAML 포맷을 통해 파드를 생성하고 종료하는 방법에 대해 설명합니다. 마지막으로 namespace & label등과 같은 개념에 대해서 설명합니다. Introducing Pods 파드(Pod)는 쿠버네티스의 Basic Building Block으로써 컨테이너들을 포함합니다.(일반적으로 1개의 파드에 1개의 컨테이너를 넣는 것을 권장하지만, 경우에 따라서 하나의 파드안에 여러 개의 컨테이너들을 넣을 수 있습니다.) 컨테이너를 하나씩 배포하는 도커와..
2021.09.25 -
[Kubernetes in Action] First Steps with Docker And Kubernetes
Kubernetes in Action 2nd Edition을 정리한 글입니다. Overview 도커와 쿠버네티스를 사용하여 간단한 애플리케이션을 Deploy 해보는 Chapter입니다. 간단한 애플리케이션을 컨테이너화 하고 쿠버네티스를 통해 배포해보면서 쿠버네티스의 동작 원리를 이해합니다. MacOS환경에서 진행되었으며 Docker, Kubernetes 등의 설치와 관련된 내용들에 대해서는 다루지 않습니다. Busybox Example 우선 도커 플랫폼이 어떻게 동작하는지 알아보기 위해 이미 만들어져있는 Busybox이미지를 사용해서 실행시켜 보도록 하겠습니다. # docker run : # tag를 명시하지 않으면 latest tag의 이미지를 찾습니다. docker run busybox:latest ..
2021.09.23 -
[Kubernetes in Action] Introducing Kubernetes
Kubernetes in Action 2nd Edition 을 정리한 글입니다. Overview Introduction Chapter인 만큼, Kubernetes 이전의 서비스 구조와 배포방법과 그에 따른 쿠버네티스의 필요성을 안내합니다. 그리고 쿠버네티스의 구성, 쿠버네티스를 알기 위해 반드시 알아야 하는 리눅스 컨테이너 시스템에 대해 설명하며, 리눅스 컨테이너 시스템을 활용한 대표적인 컨테이너 플랫폼인 도커(Docker)에 대해 살펴봅니다. Moving from monolithic apps to microservices 요즘, 거대한 monolithic application은 각각 그 도메인별로 나누어 작고 독립적인 단위로 배포가 됩니다. 이렇게 작게 나누어져 독립적으로 배포되고 기능하는 컴포넌트들을..
2021.09.21 -
[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