logo
logo
백엔드
ExpressJS
Node.js를 위한 웹 프레임워크이며, 사실상 NodeJS의 표준 웹 프레임워크로 불리고 있다.
StackOverflow 질문 수: 95943
Github Stars : ★ 66642
사용 기업
교육
인공지능
직장
금융/보험
부동산/인테리어
패션
이커머스
여행
소셜/컨텐츠
종합
기타
모빌리티
블록체인
헬스케어
푸드테크
techstack-logo
클라썸
techstack-logo
슈퍼브에이아이
techstack-logo
플렉스
techstack-logo
토스랩
techstack-logo
핀다
techstack-logo
직방
techstack-logo
카카오스타일
techstack-logo
무신사
techstack-logo
쿠팡
techstack-logo
야놀자
techstack-logo
라인
techstack-logo
네이버
techstack-logo
버킷플레이스
techstack-logo
엔코위더스
techstack-logo
크리에이트립
techstack-logo
쿼타랩
techstack-logo
차봇모빌리티
techstack-logo
플리토
더 보기
기술 블로그 글
현대자동차그룹
커넥티드카 글로벌 날씨 서비스에서 AWS Step Functions 살펴보기
들어가며안녕하세요. 현대차.기아의 정보제공서비스를 개발하고 있는 인포테인먼트CCS개발팀 최지윤 연구원입니다.최근 AWS 환경에서 글로벌 원소스 서버리스 아키텍처로 날씨 서비스를 개발하면서 'AWS Step Functions'라는 솔루션을 접하게 되었습니다.AWS Step Functions는 복잡한 워크플로를 자동화하고 시각적으로 관리할 수 있는 기능을 제공합니다.특히 AWS Lambda를 활용한 서버리스 아키텍처에서 함수를 연결하여 여러 작업 흐름을 정의하는 데 유용합니다.하지만 Step Functions는 단순히 Lambda 함수들을 연결하는 것에 그치지 않고, 다양한 확장성이 있는 기능을 제공합니다.이번 글에서는 Step Functions의 주요 기능을 소개하고, 이를 효과적으로 활용하는 방법을 알아보겠습니다.Step Functions 개요1) 워크플로(Workflow) 유형Step Functions에는 두 가지 워크플로 유형이 있습니다.표준 워크플로(Standard Workflow)는 장기 실행이 필요한 복잡한 프로세스에 적합합니다.실행 시간이 최대 1년까지 가능하며 상태 저장 기능이 지원되어 중간 단계의 데이터를 유지할 수 있습니다.또한, 상태 전환 시 상세 실행 기록을 AWS 관리 콘솔에서 시각적으로 조회할 수 있어 추적 및 디버깅이 용이합니다.예를 들어, 고객 주문을 처리하는 시스템에서는 여러 단계의 승인과 검증이 필요할 수 있습니다. 표준 워크플로를 활용하면 이러한 단계를 안정적으로 관리할 수 있습니다.익스프레스 워크플로(Express Workflow)는 빠르게 실행되어야 하는 이벤트 기반 작업에 최적화되어 있습니다.실행 시간이 최대 5분으로 제한되지만 초당 수천 개의 실행을 처리할 수 있는 높은 처리량을 제공합니다.실행 내역은 기본적으로 CloudWatch Logs에만 저장되어 상태 저장이 필요하지 않은 경우에 비용을 절감할 수 있습니다.예를 들어, IoT 센서 데이터를 실시간으로 분석하거나 사용자의 요청을 기반으로 즉각적인 처리가 필요한 경우 빠르고 효율적인 처리가 가능합니다.표준 워크플로익스프레스 워크플로실행 시간최대 1년최대 5분처리량낮음 (1초당 2,000)높음 (1초당 100,000)상태 저장지원기본적으로 미지원비용 모델실행당 비용실행 시간 및 요청 수 기반 비용로그 및 디버깅Step Functions 내부에 실행 이력 저장,시각적 디버깅 표시CloudWatch Logs에 실행 내역 저장,CloudWatch에서 디버깅2) 함수 오케스트레이션함수 오케스트레이션은 여러 개의 작업을 정의하고 이를 특정한 순서로 실행되도록 설정하는 것을 의미합니다.Step Functions를 사용하면 Lambda 함수 그룹(단계)을 특정 순서대로 실행되도록 워크플로로 구성할 수 있습니다.각 Lambda 함수가 순차적으로 또는 조건에 맞게 호출되며, 하나의 Lambda 함수 출력이 그 다음 Lambda 함수의 입력으로 전달되어 함수 간의 데이터 흐름이 명확하게 정의합니다.이러한 작업을 구성할 때 활용되는 주요 개념은 다음과 같습니다.상태(State): 각 작업을 나타냅니다. 예를 들어 Lambda 함수를 실행하는 것, 대기하는 것, 오류 처리하는 것 등을 포함합니다.전환(Transition): 하나의 상태에서 다른 상태로 넘어가는 규칙입니다.상태 기계(State Machine): 상태와 전환의 집합으로, 전체 워크플로를 나타냅니다. Step Functions는 이 상태 기계를 실행하고 관리합니다.3) 분기분기는 워크플로 내에서 조건에 따라 다른 경로로 흐름을 분리할 수 있는 기능입니다. 이는 Choice 상태를 사용하여 구현됩니다.Choice 상태는 주어진 조건에 맞는 경로를 선택하는 역할을 하며 조건에 따라 여러 가지 작업을 수행할 수 있도록 합니다.조건을 설정할 때는 해당 상태로 유입된 입력 페이로드 값을 기준으로 조건식을 작성합니다.예를 들어, 특정 값이 일정 범위에 있을 때, 또는 특정 값이 존재할 때 다음 실행을 결정할 수 있습니다.4) 오류 처리오류 처리 기능을 통해 실패한 작업이 발생하면 다시 시도하거나 대체 단계를 자동으로 실행합니다.서비스 중 예상치 못한 오류가 발생하더라도 워크플로를 중단하지 않고 적절한 조치에 따라 지속적으로 실행할 수 있습니다.재시도(Retry)는 특정 상태에서 오류 발생 시 자동으로 재실행하도록 설정하는 기능입니다.네트워크 문제와 같은 일시적인 장애 환경에서 워크플로의 신뢰성을 높일 수 있습니다. 설정 방법은 다음과 같습니다.ErrorEquals: 어떤 유형의 오류에 대해 재시도할지를 정의합니다.IntervalSeconds: 첫 번째 재시도를 몇 초 후에 할지를 설정합니다.MaxAttempts: 최대 몇 번까지 재시도를 할지를 설정합니다.BackoffRate: 재시도 간의 간격을 점진적으로 증가시키는 백오프 비율을 설정합니다.캐치(Catch)는 오류가 발생했을 때 재시도하는 대신 대체 작업을 수행하거나 오류를 다른 상태(State)로 전달하는 기능입니다.단순히 오류를 감지하는 것이 아니라, 예외 흐름을 정의하여 적절한 후속 조치를 수행할 수 있습니다. 설정 방법은 다음과 같습니다.ErrorEquals: 어떤 오류를 캐치할지를 정의합니다.Next: 오류 발생 시 실행할 다음 상태(State)를 지정합니다.ResultPath: 오류 정보를 저장할 경로를 설정합니다.5) 휴먼 인 더 루프휴먼 인 더 루프(Human-in-the-Loop, HITL)는 자동화된 프로세스에서 사람이 개입하여 의사 결정을 내리거나 검토한 후 다음 실행으로 넘어가도록 하는 기능입니다.예를 들어, 대출 신청이나 계약 승인 등의 프로세스에서 사람이 최종 승인을 내려야 하거나 분류된 데이터에 대해 사람이 검토 및 수정을 해야하는 경우 등에 활용할 수 있습니다.Step Functions에서 Wait 상태를 추가하거나 작업의 콜백 기능을 활용하여 사람의 응답을 기다리도록 구현할 수 있습니다.6) 병렬 처리병렬 처리는 여러 작업이나 상태를 동시에 실행하는 기능으로 이를 구현하기 위해 Parallel 상태를 정의할 수 있습니다.여러 독립적인 작업을 병렬로 실행하고 모든 작업
expressjs
지마켓
설계란 고민의 연속이다 2편
안녕하세요 VI Engineering 팀 김윤제입니다.Gmarket Mobile Web Vip(View Item Page = 상품 상세)를 담당하고 있는 Backend Engineer 입니다. 예전부터 쓰고자 한 내용들이 많았는데 귀차니즘이 심해서 이렇게 한 번에 몰아서 쓰게 되네요.이번 편은 지난 편 설계란 고민의 연속이다 1편에 이어 2편입니다. https://dev.gmarket.com/1041편을 보신 후에 2편을 보시는 게 많은 이해가 될 것입니다. (안 보시면 이해가 안 갈 수도 있어요)자세한 이야기는 아래에서 상세히 다루도록 하겠습니다. 최선은 무엇인가!어떤 설계가 좋은 설계인지 모듈 설계를 AS-IS와 비교하며 하나씩 살펴보도록 하겠습니다.배송 모듈지마켓에는 배송 타입이 스마일 배송, 스마일 프레시, 당일 배송, 일반 통계 배송, 설치 예약이 있습니다.각 배송 정보를 구하는 로직은 다르지만 유일한 공통점은 배송비 로직이 같다는 것입니다.AS-IS의 방식 v1, v2와 신규 플랫폼 모듈에서 나아갈 방향 TO-BE 버전을 살펴보겠습니다.[AS-IS V1][C#]public Ship getShipping(String shippingType) { if (shippingType == ShippingType.SMILE) { } else if(shippingType == ShippingType.SMILE_FRESH) { } else if(shippingType == ShippingType.EXPRESS) { } else if(shippingType == ShippingType.GENERAL_STATISTICS) { } else if(shippingType == ShippingType.INSTALL) { }}if문의 향연이 펼쳐집니다.이런 상황에서 배송 타입이 지속적으로 더 추가된다고 해보겠습니다.제트기 배송, 위성 배송이라고 가정해보겠습니다.저 밑에 추가적으로 else if 가 추가 될 것입니다.또한 그 else if 문 안에 비즈니스 로직이 들어갈 것입니다.하지만 이게 전부가 아닙니다이런 문제도 있습니다.Rider의 한계?Rider는 인텔리제이와 동일한 회사 제트브레인에서 만든 개발 툴입니다.Rider의 한계를 경험하신 분이 계실지 궁금합니다.저런 식으로 하나의 클래스 안에서 if문의 향연을 펼칠 시 코드 라인이 매우 길어져Rider가 코드 컴파일을 못한다는 점입니다.(물론 이런 케이스를 발견한 분은 얼마 안 계실 겁니다..)오류 나도 못 잡습니다. 자동완성도 안됩니다. 색깔도 인식을 못합니다. 왼쪽[문제]-오른쪽[정상] 이게 끝이 아닙니다.최악은 하나의 파일 안에서 저렇게 무한 if문을 태운다면 코드 라인도 엄청나게 길어질 뿐만 아니라비슷한 기능에 대한 협업이라도 할 시에 Commit Merge 전쟁이 발발합니다.매 기능 수정 할 때마다 Merge시 30분은 소요됩니다.즉, 유지보수가 굉장히 어려워집니다. [AS-IS V2]현재 저는 이것을 개선했습니다. 아래에 블로그는 제가 개
csharp
expressjs
스푼
2023 AWS re: Invent — S3 Express One Zone Storage Class
2023 AWS re: Invent — S3 Express One Zone Storage Class안녕하세요. Spoonradio에서 SRE팀을 Lead하고 있는 Martin(최상기)입니다. 6년만에 다녀온 2023년도 AWS re:Invent 이야기를 하려고 합니다.AWS re:Invent는 매년 Las Vegas 에서 11월 마지막주 부터 약 1주일간 열리는 행사로 AWS 의 새로운 기술과 사례 등이 발표되고 공유되는 자리입니다. 규모 또한 전 세계에서 수 많은 엔지니어들이 참여하는 세계 최대의 클라우드 기술 행사 중 하나입니다.이번 행사에 Spoonradio는 Backend, ML, Audio, DevOps 엔지니어 5명이 참여하여 다양한 경험을 하고 돌아 왔습니다. 글로벌 행사인 만큼 너무나도 많은 기술이 소개 되었는 데, 그 중 개인적으로 관심이 깊었던 “Amazon S3 Express One Zone Storage Class”에 대해 말씀드리겠습니다.Amazon S3 Express One Zone Storage Class 란?AWS CEO인 Adam Selipsky의 기조 연설에서 새롭게 선보이는 기술 중 Amazon S3 Express One Zone을 가장 먼저 발표했습니다.AWS의 가장 오래된 서비스 중 하나인 Amazon S3는 저렴하고 다양한 용도로 사용할 수 있는 매력적인 클라우드 스토리지 서비스로 평가받고 있습니다. 거의 모든 AWS 서비스가 S3를 기반으로 하고 있어 효율적이고 통합된 클라우드 환경을 제공합니다. 특히, 높은 내구성(99.999999999%)과 가용성(99.99%) 그리고 저렴한 비용은 많은 기업 및 프로젝트에서 선택의 이유가 됩니다. 그러나 중요한 단점 중 하나는 예측하기 어려운 대기 시간으로, 이는 특히 대규모 및 다양한 사용자의 요청에 노출될 때 고려해야 하는 측면입니다.이러한 단점은 데이터 분석을 위해 대량으로 데이터를 바로 S3로 읽어 들이는 데 많은 제약이 있습니다. 이번 발표로 가장 자주 액세스하는 데이터와 지연 시간에 민감한 애플리케이션에 일관된 한 자릿수 밀리초 데이터 액세스가 가능해 졌습니다.특징S3 Standard에 비해 데이터 액세스 속도를 10배 향상시키고 요청 비용을 50% 절감할 수 있습니다.S3 Express One Zone을 사용하면 AWS 지역 내의 특정 AWS 가용 영역을 선택하여 데이터를 저장할 수 있습니다.동일한 가용 영역에 스토리지와 컴퓨팅 리소스를 함께 배치하여 성능을 더욱 최적화할 수 있으므로 컴퓨팅 비용을 낮추고 워크로드를 더 빠르게 실행할 수 있습니다.위와 같은 장점으로 머신러닝(ML) 교육 및 추론, 대화형 분석 및 미디어 콘텐츠 제작과 같은 요청 집약적인 작업을 위한 가장 성능이 뛰어난 스토리지 클래스이므로, 데이더 분석을 위해 대량의 데이터를 빠르게 처리해야하는 데이터 분석 분야에서의 워크로드에 있어 보다 이점을 누릴 수 있을 것으로 보입니다.고려 사항성능과 비용적 사항저장 비용이 버지니아 기준 S3 Standard는 한달에 50TB까지는 GB당
expressjs
hadoop
여기어때컴퍼니
AWS re:Invent 2023 Keynote 소개
안녕하세요. 여기어때컴퍼니 인프라개발팀 캐쉬 입니다.AWS re:Invent 2023에 참석하게 되어, 몇 가지 Keynote 내용들을 소개하려고 합니다.새로운 기능 소개가 포함된 Keynote의 주요 내용은 아래 12가지로 구분됩니다.Amazon S3 Express One ZoneAWS Graviton 4 — (R8g Instances for EC2)AWS Trainium2Amazon Bedrock새로운 기능 3가지 (Fine Tuning, Retrieval Augmented Generation with Knowledge Bases, Continued Pre-training for Amazon Titan Text Lite&Express)Agents for Amazon BedrockGuardrails for Amazon BedrockAmazon Code Whisperer customization capabilityAmazon Q (Code Transformation, Amazon QuickSight, Amazon Connect)Zero-ETL integrations with Amazon RedshiftAmazon DynamoDB Zero-ETL integration with Amazon Opensearch ServiceAmazon Data Zone AI recommendationsKipher이번 Keynote는 AI에 포커싱하여 많은 기능들을 소개했습니다. Adam Selipsky가 소개했던 기능 중 몇 가지만 요약해서 정리해 보겠습니다.Amazon S3 Express One ZoneAmazon S3 Express One ZoneAWS는 경쟁 클라우드 제공 업체에 비해 3배 더 많은 데이터 센터, 60% 더 많은 서비스, 40% 더 많은 기능을 제공하고 있습니다. Selipsky는 Amazon 스토리지의 일부 역사를 살펴보며 Amazon S3가 어떻게 발전했는지 되돌아보는 자리에서 “Amazon S3 Express One Zone”을 소개했습니다.Amazon S3 Express One Zone은 매우 빠른 데이터 액세스가 필요한 애플리케이션을 실행하기 위해 특별히 구축된 새로운 스토리지 클래스입니다. 클라우드 객체 스토리지 서비스 중 하나로 350조 개가 넘는 객체 또는 데이터 조각을 보유하고 초당 평균 1억 건 이상의 데이터 요청을 처리합니다. 기존 S3 스토리지보다 최대 10배 더 빠르고 이제 데이터 처리 속도가 빨라져 고성능 다운로드가 필요한 워크로드의 경우에도 컴퓨팅 비용을 최대 60%까지 절감할 수 있습니다. 또한 데이터 액세스 비용도 S3 표준보다 50% 낮으므로 이러한 워크로드를 훨씬 저렴한 비용으로 실행할 수 있습니다.AWS Graviton 4 (R8g Instances for EC2)AWS Graviton4R8g Instances for EC2“AWS가 구축한 칩 중 가장 강력하고 에너지 효율적인 AWS Graviton4로 업그레이드할 시간!” 이라는 말과 함께 Graviton4를 소개했습니다. Graviton4는 기존
expressjs
java
연관 기술 스택
techstack-logo
Fastify
techstack-logo
NestJS
techstack-logo
NodeJS
Copyright © 2025. Codenary All Rights Reserved.