Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- programmers
- Algospot
- C언어
- 따라하며 배우는 C언어
- 생활코딩
- dfs
- 정수론
- server
- 백준
- 종만북
- Algorithm
- Python
- 따라하면서 배우는 C언어
- sorting
- BFS
- BOJ
- String
- php
- JavaScript
- DP
- BASIC
- udemy
- greedy
- graph
- Math
- web
- 인프런
- C
- 따배씨
- Cleancode
Archives
- Today
- Total
몽상실현개발주의
분산된 함수에서 에러 관리를 위한 중앙 집중식 에러 데이터 핸들링 전략 본문
AWS Lambda 함수에서 여러 파일에 걸쳐 있는 함수들이 작동 중 발생하는 에러를 중앙에서 관리하고 추적하는 방법은 여러가지가 있지만, 여기서는 공유 모듈을 사용하는 방법에 대해 설명하겠습니다. 이 접근 방식은 특히 각 함수가 서로 다른 파일에 분리되어 있을 때 유용합니다. 공유 모듈을 생성하여 해당 모듈 내에서 상태를 관리하고, 필요한 모든 파일에서 이 모듈을 import하여 사용합니다.
# 공유 에러 핸들러 모듈 생성
먼저, 에러 데이터 리스트를 관리하고, 에러를 추가하는 함수를 제공하는 errorHandler.js라는 공유 모듈을 만듭니다.
// errorHandler.js
// 에러 데이터 리스트를 관리할 배열 초기화
const errorDataList = [];
// 에러 데이터를 리스트에 추가하는 함수
const addErrorData = (errorData) => {
errorDataList.push(errorData);
};
// 에러 데이터 리스트를 가져오는 함수
const getErrorDataList = () => errorDataList;
module.exports = { addErrorData, getErrorDataList };
# 각 함수 파일에서 공유 모듈 사용
각 함수가 정의된 파일에서 errorHandler.js 모듈을 import하고, 에러가 발생했을 때 addErrorData 함수를 호출하여 에러 정보를 추가합니다.
// first.js
const { addErrorData } = require('./errorHandler');
const first = () => {
// ... some code
try {
// ... code that might throw an error
} catch (error) {
addErrorData({ function: 'first', error: error.message });
}
};
module.exports = first;
# Lambda 핸들러에서 에러 데이터 리스트에 접근
Lambda 핸들러에서는 각 함수를 import하고 실행한 후, errorHandler.js를 통해 에러 데이터 리스트에 접근할 수 있습니다.
// lambdaHandler.js
const first = require('./first');
const second = require('./second');
const third = require('./third');
const { getErrorDataList } = require('./errorHandler');
exports.lambdaHandler = async (event, context) => {
first();
second();
third();
const errorDataList = getErrorDataList();
return { statusCode: 200, body: JSON.stringify({ errorDataList }) };
};
이 방식을 사용하면, 여러 파일에 걸쳐 있는 함수들에서 발생하는 에러들을 한 곳에서 수집하고 관리할 수 있습니다. 각 함수는 필요할 때마다 공유 errorHandler 모듈의 addErrorData 함수를 호출하여 에러 정보를 추가하며, Lambda 핸들러는 언제든지 getErrorDataList 함수를 호출하여 모든 에러 데이터에 접근할 수 있습니다. 이러한 방식은 코드의 응집도를 높이고, 에러 관리를 더욱 효율적으로 만들어 줍니다.
'Language > Javascript' 카테고리의 다른 글
[Udemy/CleanCode] 2.09 호이스팅 주의하기 (0) | 2022.09.08 |
---|---|
[Udemy/CleanCode] 2.08 임시변수 제거하기 (0) | 2022.09.08 |
[Udemy/CleanCode] 2.07 전역 공간 사용 최소화 (0) | 2022.09.08 |
[Udemy/CleanCode] 2.06 function scope & block scope (0) | 2022.09.08 |
[Udemy/CleanCode] 2.05 var 를 지양하자 (0) | 2022.09.08 |
Comments