brunch

You can make anything
by writing

C.S.Lewis

by 안영회 습작 Feb 27. 2023

다시 보는 웹 앱의 미래

베터코드 인사이트의 시작 19편

네 편의 Cloud Native 시리즈를 쓰고 난 후에 과거에 인상 깊게 있었던 글이 떠올랐다.

Cloud Native가 무슨 말인가?

Cloud Native가 만드는 규모의 경제

Cloud Native 승자는 집적이 가능한 개발 조직

CNCF는 PaaS를 대체한다


The Future of Web Apps

'The Future of Web Apps'라는 기사인데, 중국에 있던 2018년에도 인상 깊게 읽고 생각을 정리한 글이었다. 2016년 글이니까 이제는 7년이나 흘러서 일부는 현실이 되었을 것이고, 일부는 예상과 다른 방향이 되었을지도 모르겠다. 어찌 되었든 5년 이상의 시간이 흐른 지금 선도 기업의 CTO들의 예상과 현실을 비교해 보는 일도 흥미로울 수 있겠다는 생각으로 글을 쓴다. 시장 규모에 대한 예측은 내가 관련 데이터를 확인할 수 없다는 점에서 제외하고 11개 항목을 훑어보기로 한다.


개방성(openness), 유연성(flexibility)과 편의성(convenience)

먼저 전체적으로 11개 항목을 훑어보았는데 가장 눈에 띄는 구절은 11번째 항목에 포함된 아래 문장이었다.

In the end the web wins – openness, flexibility, and convenience will always prevail in the long run.

웹의 변천사에서 통제된 방식의 사용자 경험과 열린 경험(between controlled and open experiences on the web) 중 하나가 우세한 듯 보이는 현상이 있었지만, 궁극적으로는 항상 개방성(openness), 유연성(flexibility)과 편의성(convenience)이 살아남았다는 점이다.


<Cloud Native 승자는 집적이 가능한 개발 조직>편에서 나의 주장을 뒷받침하는 듯한 인상을 받는다. 최종 사용자 경험 관점에서 개방성(openness), 유연성(flexibility)과 편의성(convenience)은 Cloud Native와 무관하다. 다만, Cloud Native는 컨테이너라는 개방성과 유연성을 중심으로 한 산업 표준이 만드는 환경이다. 여기서 빠른 속도로 사용자 반응을 반영할 수 있는 역량을 가진 조직이 적응력을 높인 모듈들을 활용한다는 상상이 <Cloud Native 승자는 집적이 가능한 개발 조직>편의 핵심 메시지였다.


모바일 우선 시대의 아키텍처 변화

모바일 앱이 모바일 웹사이트보다 우선시되어야 하는지 묻는 질문에 답은 '모바일이 우선시되는 것은 분명하다'는 점이었다.

Mobile is the future but will mobile apps dominate over mobile websites? It’s certainly a “mobile-first” world.

그리고 궁극적으로 프로그램 자체의 내용(what you’re doing)과 방화벽 뒤의 기기와 소통 필요성 등을 주요 변수로 언급했다. 앱과 웹 사이트 구분이 점차 의미를 잃을 것이라는 분석으로 읽었다. 이 역시 개방성(openness), 유연성(flexibility)과 편의성(convenience)이라는 기준으로 보면 자연스러운 흐름이다.


기사에는 없는 내용이지만, 이전에 언급했던 BFF 등의 아키텍처 패턴을 보면 두 가지 기기에서 모두 사용할 수 있는 재사용(Reuse) 자산을 어떻게 만드느냐의 관점으로도 기술 변화를 읽을 수 있다.

'응용의 집적'이 소프트웨어 개발 조직의 경쟁력이 될 것이라는 나의 주장을 부각하기 위해 재사용(Reuse)이라는 표현을 넣었다.


이러한 기조가 모바일을 넘어서도 펼쳐질 것이라는 주장도 있었다.

We are moving to the ubiquitous nature of web applications in TVs, refrigerators, interfaces into Tesla.

이러한 조류에 대해서는 동의하지 않는 사람을 드물겠지만, 1999년 GM의 온스타 영상이 주었던 멋진 상상 중에 상당수는 아직 만들어지지 않았다. 기술자들의 예상(혹은 희망)이 적중한다고 해도 실현에는 훨씬 더 긴 시간이 필요한 듯하다.


이에 반해 점진적으로 우리의 삶이 바뀌는 것 또한 사실이다.

Internet web applications will become more integrated into our daily lives with IoT, wearables, apps that make our lives easier and more manageable. Practical applications.

우리 집에도 아내와 내가 모두 와치를 찾고 있다. (각각 매우 다른 용도로 쓴다) 그리고, 중국에 있을 때 QR의 높은 생활 침투를 생각하면 IoT에 대한 상상이 실생활 체감으로 어떤 경험을 만들어 줄지 미리 경험한 듯하다.


개발 도구가 아닌 협업 방식의 변화

지난 5년을 돌아볼 때 CTO들의 견해와 내 견해가 갈리는 부분이 있다.

Tools for web application development – virtual tools.

완전히 그들의 견해에 반대한다는 의미가 아니라 구체적인 발전 양상에 대한 상상이 조금 다르다. 그들은 과거 MDA의 환상과 비슷한 방식의 발전을 말하는 듯하다. 하지만, 그들이 잘 나가는 스타 CTO인 탓에 '기술'을 강조하고 싶어 하는 욕망을 인정하면 당연한 일이다. 그와 달리 나는 혁신을 위한 협업에 오랫동안 관심을 가졌던 탓에 그들과 현상에 대한 이해가 조금 달랐다.


하지만, 아래 문장에서 그들의 전망과 나의 이해가 만날 수 있었다.

Online collaboration of UI and then drop into IDE and go from there.

나는 피그마 인수 금액이 무려 한화 28조에 달한다는 사실에, 어도비가 기대한 부가 가치가 무엇일까 궁금했다. MS의 깃허브 인수 가격의 3배가 넘는 액수다. 그러다가 최근에 동료들과 디자인 시스템 연구를 하면서 깨달았다.


피그마는 종전의 UI 디자인 도구를 넘어 이력을 관리할 수 있는 강력한 협업 기능이 탑재되어 있고, 무엇보다 UI 요소를 토큰화해서 디자인 시스템을 구축할 수 있게 해 준다. 바로 이 토큰이 IDE를 통해 개발자와 피그마를 사용하는 UI/UX 전문가가 협업하는 표준의 후보가 될 수 있다.


여기서 독자분들은 또 주의를 기울일 필요가 있다. 이러한 상상은 내가 인용한 기사에 나오는 것이 아니라 <Cloud Native가 만드는 규모의 경제>라는 배경에서 필자가 그리는 전망이다.


웹, 모바일, 데스크톱 앱의 통합

선도 기업 CTO들의 다음 문장은 처음 읽을 때 굉장한 영감을 주었다. 지금 이 현상은 진행 중이라고 생각한다.

I think that greatest opportunity lies in uniting web, mobile and desktop apps.

나만 보더라도 두레이 같은 업무용 일상 도구는 업무 관리 용도로는 노트북 환경에서 브라우저로 접근하고, 일정 확인이나 스트림 보기(업무 통지 확인)는 모바일 앱에서 하고, 화상 통신을 위한 용도는 데스크톱 앱으로 사용한다. 앞장에서 인용한 BFF 그림이 또 필요하다 느껴진다.

내가 이어온 주장을 떠올려보면 이는 Cloud Native가 만드는 규모의 경제에 편승해 '응용의 집적'을 부추기는 환경적 요인이 될 것이다.  


요소 기술 측면에서 웹 앱과 네이티브 앱의 경계 허무는(merging of web apps and native apps) 기술로 소개된 Web assembly를 당시 주목했는데, 5년이 지나도 아직 체감할 수 있는 수준은 아니다. 다만, 주변에서 Rust를 말하는 개발자들이 종종 있는데 찾아보니 웹 어셈블리 구현할 때 가장 선호하는 언어였다.


(CTO들은) 비슷한 내용이지만 기술적으로는 다르게 볼 수 있는 오프라인 웹 앱의 활성화도 논했다.

web applications will replace the offline ones completely.

본격적인 오프라인 웹 앱이 아니더라도 탭이나 브라우저를 닫거나 열 때, 직접의 작업을 기억해서 복원해 주는 기능들을 보면서 사용성 중심으로 바라보면 오프라인 앱의 기능은 부분적으로도 여러 곳에 구현되어 있다.


NoCode 보다 피부에 와닿는 Cloud RPA

다음 문장을 볼 때 가장 먼저 떠오른 기억은 중국 RPA 서비스를 보고 느낀 충격이었다.

Rapid Application Development. Kill complexity and increase development speed.

인터넷으로 자료만 접한 MS의 콘퍼런스에서 NoCode에 대한 야망을 확인한 일이 있다. 하지만, 개인적으로는 피부로 느낄 일은 아직 없었다. 그런데, 중국에서 일하는 동료가 RPA 기능 시연을 동영상으로 보내준 일이 있는데, 나는 그 풍부한 기능이 모여있는 라이브러리를 보고 충격을 받았다.

내가 본 중국 PRA 서비스의 기능 목록

공교롭게도 페북으로 공용준 님이 알려 주신 CloudEvents 링크를 타고 웹 서핑을 하다가 Cloud Native 진영에서도 유사한 서비스들이 많이 존재한다는 사실을 알았다. 그런 경험이 <Cloud Native가 무슨 말인가?> 이후의 시리즈를 쓰게 된 또 다른 동기이기도 하다.


응용 프로그램 존재 형식의 변화

아래 문장도 처음 읽을 당시 나에게 강렬한 영감을 주었던 내용이다.

Applications that are built will integrate across devices with APIs providing a more integrated ecosystem.

지금은 마이크로 서비스가 이 글을 쓰일 때에 비해서는 우리나라에서도 보편화되었다. 하지만, 단일 조직 안에서는 그 필요성이 불분명한 경우가 많다. 부수적인 작업은 늘어나는 반면에 즉각적인 효과가 분명하기 어렵다. 마이크로 서비스라 아키텍처로의 이행은 사실 지속 가능한 시스템이 되기 위한 길이라고 할 수도 있고, 앞선 글에서 내가 썼던 표현인 잦은 출시와 채널 확장을 위한 준비일 수도 있다. 기업의 경쟁력 혹은 조직의 역량 자체이지 그렇게 바꾸었다고 즉각적으로 현재의 비즈니스가 좋아지는 것은 아니다.


그리고 CTO들이 아래 문장에 함축한 인프라 환경의 변화는 컨테이너가 완성(?)시켜 가는 듯하다.

Web development is going to occur even faster, getting more done sooner.

이에 대해서는 이미 <Cloud Native가 만드는 규모의 경제>편에서 내 생각을 충분히 정리했다.



지난 베터코드 인사이트의 시작 연재

1. 추적성(Traceability)과 그 쓰임새

2. 베터 어드민의 아기 발걸음 그리고 작명

3. Funnel을 마케팅 말고 engagement 분석에?

4. 디지털 대전환기란 나에게 무엇인가?

5. 기술 부채는 무엇인가?

6. 폭포수 방식 설계는 기술 부채를 남긴다

7. 기술 부채는 낮은 코드 품질에 대한 것이 아니다

8. loosely-coupled: 빠르게 재구성하는 힘

9. 건강한 조직이 만들어지는 배경

10. 구축 사업 관리에 가려진 기술 부채

11. 기술은 쓰임새(use case)에 따라 고르고 조합한다

12. Ubiquitous Language 만들 결심

13. 회사 대표가 엔지니어에게 충분한 권한을 주는가?

14. Cloud Native가 무슨 말인가?

15. Cloud Native가 만드는 규모의 경제

16. Cloud Native 승자는 집적이 가능한 개발 조직

17. CNCF는 PaaS를 대체한다

18. 두레이를 이용한 팀 OKR 활용하기

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari