ddps-lab / architect-cloud

Kubernetes , AWS Serveless
6 stars 4 forks source link

서버리스 API 구현 #32

Closed mumat0103 closed 4 months ago

mumat0103 commented 4 months ago

현재 node.js의 express를 사용하여 서버리스 API를 구현하려고 하고 있습니다. 다만 해당 프레임워크와 언어에 익숙하지 않아서 시간이 제법 걸리고 난이도가 있을 것으로 예상됩니다. 재일님과 상의한 결과, RDS에 있는 데이터를 불러오고 수정하는 API를 만드는 것이면 굳이 Express를 사용하지 않고, Boto3를 사용하여 RDS를 조작하고 응답값을 json 형태로 정적 웹 페이지에 쏘는 방식으로 하면 어떨까라는 얘기를 했습니다. 해당 방식으로 진행을 하는 것이 괜찮을지 궁금합니다.

kmu-leeky commented 4 months ago

응 그렇기는 하지. 어찌보면 express 에서 하는 웹 서버 기능을 람다에서 하는거니까. 가능하면 RDS 도 서버리스 기반으로 바꾸고, 람다에서 요청 처리하게끔 하면 좋을것 같기는 하다.

mumat0103 commented 4 months ago

네 알겠습니다. 해당 방법으로 진행하도록 하겠습니다.

mumat0103 commented 4 months ago

웹 페이지에서 수행하는 RDS Read 기능을 수행하기 위한 Lambda Function을 제작하고, 이를 이용한 API 구현. API를 S3 위의 정적 웹 페이지에서 활용하도록 함.

boto3를 통해 Lambda Function 구현 예정

mumat0103 commented 4 months ago

테스트 하다가 express로 api가 제대로 동작해서, 원래대로 express를 사용해서 api 구현하도록 하겠습니다. 제가 프론트 쪽 작업 진행하고 재일님이 api 제작하기로 하였습니다.

kmu-leeky commented 4 months ago

오케이. 다음 미팅때 해당 모듈이 어떻게 동작하는지 분석되는 만큼 설명을 해주면 좋겠다. 전처럼 람다에서 바로 사용하는건 직관적이었는데, 어제 코드를 봤을때는 공부가 필요해보이더라.

mumat0103 commented 4 months ago

람다에 express를 올려서 api 서버를 구현하고, s3에 정적 html 파일을 호스팅하여 동작하게끔 하였습니다.

http://csk-s3-test.s3-website-us-west-2.amazonaws.com/views/home.html

위 링크에 접속하면 확인할 수 있습니다.

kmu-leeky commented 4 months ago

오케이. 잘했다. s3 수정까지 마무리가 된거지? 훌륭하다. 지연시간 및 화면 바뀔때 잔상이 조금 남는것 같은데 그건 차차해결하고 기술적인 내용은 내일 만나서 설명해줘.

chris0765 commented 4 months ago

image

update가 안되던 문제가 있어서 수정했습니다.

해당 body 필드값 검증 코드로 인해 수정이 불가능했던 것으로 보이는데, create와 같은 기준을 적용하는 것이 나을 듯 하여 검증 부분을 제거했습니다.

값이 있는지 없는지를 검사하는 가장 기초적인 부분은 클라이언트에서 검사 후 요청을 전달하므로 제거해도 괜찮을 것으로 판단했습니다.

kmu-leeky commented 4 months ago

재일아 어떤 context 에서 나온 이슈인지, 앞뒤 전후 상황을 조금 설명해주면 좋겠다.

chris0765 commented 4 months ago

위 url에 접속하여 홈페이지의 기능들이 정상적으로 동작하는지 다시 테스트하였고, 리스트 업데이트, 요소 생성, 요소 삭제는 정상적으로 동작하나, 요소 수정이 정상적으로 동작하지 않는 것을 확인했습니다. (seou;을 seoul로 수정하려했으나, 리스트에는 계속 seou;이 표시됨)

이를 해결하기 위해 Lambda 코드를 살펴보았고, update 함수의 앞부분인 필드값 검증 부분이 불필요하게 있음을 확인했습니다. (자세한 것은 이전 코멘트와 같습니다.)

해당 부분 주석 처리하는 것으로 홈페이지의 요소 수정 기능이 정상적으로 작동하는 것을 확인할 수 있었습니다.