$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

RESTful API를 위한 SPA ViewModel 변환
SPA ViewModel Transformation for RESTful API 원문보기

Journal of Internet Computing and Services = 인터넷정보학회논문지, v.24 no.1, 2023년, pp.9 - 15  

조동일 (Division of R&D, TOMATOSYSTEM)

초록
AI-Helper 아이콘AI-Helper

SPA(Single-Page Application)는 RESTful API와 통신을 위해 데이터의 변환을 필요로 한다. BFF(Backend for Frontend) 패턴은 이 변환을 서버에서 처리하고 있으나 통신 횟수를 증가시키고 개발과 배포를 어렵게 하는 문제가 있다. 본 연구에서는 SPA의 ViewModel과 RESTful API의 모델을 SPA에서 직접 매핑하는 아키텍처를 제안한다. 제안한 아키텍처는 RESTful API의 문서 모델인 OpenAPI 사양을 이용하여 RESTful API 모델과 ViewModel 간의 매핑 모델을 자동 생성한다. SPA의 통신 컴포넌트는 생성된 모델을 이용하여 RESTful API 데이터와 ViewModel을 자동 변환한다. 사례 연구를 통해 기존 BFF 방식과 비교한 결과 제안한 아키텍처는 BFF에 비해 높은 개발 생산성을 보였고 부하테스트 결과 BFF에 비해 약 6 %이상 낮은 서버 CPU 점유율을 기록하였다.

Abstract AI-Helper 아이콘AI-Helper

Single-Page Application(SPA) requires data transformation for communication with RESTful API. The Backend for Frontend(BFF) pattern handles this transformation in the server, but there is some problem that increases the number of communication and makes development and distribution difficult. In thi...

주제어

표/그림 (7)

AI 본문요약
AI-Helper 아이콘 AI-Helper

문제 정의

  • 본 연구는 OAS(OpenAPI Specification)를 이용하여 SPA에서 RESTful API 모델과 SPA의 ViewModel을 직접 매핑하는 DMM(Direct Model Mapper) 아키텍처를 제안한다. DMM을 위해 본 연구에서는 ViewModel Map의 생성과 통신 컴포넌트의 자동변환을 지원하기 위한 일반화된 ViewModel을 제시하였고, OAS를 이용한 모델 간 매핑방법을 설계하였다.
  • 본 연구에서는 RESTful API 모델을 SPA의 ViewModel과 별도의 데이터변환 없이 직접 매핑하는 DMM을 제안하였다. DMM은 개발툴에서 OAS를 이용해 RESTful API 모델과 SPA의 ViewModel 간의 매핑정보를 SPA 개발과정에서 정의한다.

가설 설정

  • 본 연구에서는 RESTful API는 OAS에 맞춰 명세 되어 있다고 가정한다. 일반적으로 Java 언어에서는 소스코드에 Annotation을 추가하여 명세 되고 Swagger는 이 Annotation을 읽어 문서화한다.
본문요약 정보가 도움이 되었나요?

참고문헌 (14)

  1. HM Adrian, N Scholz, and F Matthes. "A Model-driven?Approach for Generating RESTful Web Services in?Single-Page Applications.", Proceedings of the 6th?International Conference on Model-Driven Engineering?and Software Development, pp.480-487, 2018.?https://doi.org/10.5220/0006608204800487 

  2. J Freeman, J Jarvi and G Foust. "HotDrink: a library?for web user interfaces." ACM SIGPLAN Notices Vol?48, No.3, pp.80-83, 2012.?https://doi.org/10.1145/2480361.2371413 

  3. J Munro, "Knockout. js: building dynamic client-side?web applications", O'Reilly Media, Inc., pp.3, 2014. 

  4. Model-view-viewmodel?https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93viewmodel 

  5. A Pavlenko, N Askarbekuly, S Megha and M Mazzara,?"Micro-frontends: application of microservices to web?front-ends", Journal of Internet Services and?Information Security (JISIS), Vol.10, No.2, pp. 49-66,?2020.?http://doi.org/10.22667/JISIS.2020.05.31.049 

  6. S Newman, "Building Microservices", pp.41-47,?O'Reilly Media, 2015. 

  7. K Brown and B Woolf, "Implementation patterns for?microservices architectures", Proceedings of the 23rd?Conference on Pattern Languages of ProgramsOctober,?No.7, pp.1-35, 2016.?https://dl.acm.org/doi/10.5555/3158161.3158170 

  8. V Atlidakis, P Godefroid and M Polishchuk. "RESTler:?Stateful REST API Fuzzing", 2019 IEEE/ACM 41st?International Conference on Software Engineering?(ICSE), pp.748-758, 2019.?https://doi.org/10.1109/ICSE.2019.00083 

  9. E Viglianisi, M Dallago and M Ceccato,?"RESTTESTGEN: Automated Black-Box Testing of?RESTful APIs", 2020 IEEE 13th International?Conference on Software Testing, Validation and?Verification (ICST), pp.142-152, 2020.?https://doi.org/10.1109/ICST46399.2020.00024 

  10. https://swagger.io/specification/ 

  11. H Wu, L Xu, X Niu and C Nie, "Combinatorial?Testing of RESTful APIs." ACM/IEEE International?Conference on Software Engineering (ICSE),?pp.426-437, 2022.?https://doi.org/10.1145/3510003.3510151 

  12. JC Alonso, A Martin-Lopez, S Segura, JM Garcia?and A Ruiz-Cortes, "Automated generation of?realistic test inputs for web APIs", Proceedings of?the 29th ACM Joint Meeting on European Software?Engineering Conference and Symposium on the?Foundations of Software Engineering, pp.1666-1668,?2021. https://doi.org/10.1145/3468264.3473491 

  13. P Godefroid, BY Huang and M Polishchuk,?"Intelligent REST API data fuzzing", Proceedings of?the 28th ACM Joint Meeting on European Software?Engineering Conference and Symposium on the?Foundations of Software Engineering, pp.725-736,?2020. https://doi.org/10.1145/3368089.3409719 

  14. S Karlsson, A Causevic and D Sundmark,?"QuickREST: Property-based test generation of?OpenAPI-described RESTful APIs.", 2020 IEEE 13th?International Conference on Software Testing,?Validation and Verification (ICST), pp.131-141,?2020.?https://doi.org/10.1109/ICST46399.2020.00023 

관련 콘텐츠

오픈액세스(OA) 유형

BRONZE

출판사/학술단체 등이 한시적으로 특별한 프로모션 또는 일정기간 경과 후 접근을 허용하여, 출판사/학술단체 등의 사이트에서 이용 가능한 논문

저작권 관리 안내
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로