-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
- 람다 함수 내부에 비동기 작업이 있을 경우 handler함수를 async function으로 선언해서 내부코드에 callback 사용이 없도록
Line 18 in fcf5560
if(data.url.match(/https?:\/\//g) !== true){ - input 검사 더 디테일하게. http://www.naver.com 이렇게 들어오면?
Line 29 in fcf5560
dynamoDb.put(params, (error) => { - 이미 있는 경우엔 stats 날라가면서 다 덮어 씌워지는데? 이런 경우엔 먼저 get으로 있는지 체크하고 있을 경우에 400번대 에러를 return
- https://github.com/junanhouse/urlshortener/blob/main/api/list.js
- 지금은 상관없는데 나중에 이 기능에 100만개의 record가 생기게 된다면? 지금 구조대로면 한 번에 로딩돼서 시스템 부하가 일어남. 불러올 때 limit을 걸고 페이지네이션 기능을 구현하는 쪽으로 개선할 수 있겠음
Line 16 in fcf5560
const params2 = { - 변수명 의미있게 짓기
Line 35 in fcf5560
body: 'Invalid Value2!!', - ddb 내부에서 에러가 난거고 400대 에러가 아님. 따라서 에러메세지는 invalid value가 아니라 unknown error라던지 internal server error같은게 나야함
Line 30 in fcf5560
dynamoDb.update(params2, function(err,data){ - stats을 올리는 경우는 myurltable에서 알맞는 id로 데이터를 잘 가져왔을 경우임. 이 로직대로면 잘못된 값이 들어가거나 get이 실패하는 경우에도 update 구문이 실행됨. 따라서 get과 update의 순서를 바꿔주어야 함.
Metadata
Metadata
Assignees
Labels
No labels