Static Web App 서비스를 통한 쉬운 배포
프로젝트도 끝나고 뭔가 재미난게 없을까 하다가, 마침 관심있게 보고 있던 서비스를 사용해보며, 공모전(?)에도 참여할 수 있는 기회가 있어서 HackaLearn 챌린지에 참여하게 되었다.
* 링크: https://github.com/devrel-kr/HackaLearn
이번 챌린지/해커톤? 의 취지는 Microsoft Learnings 라는 학습 모듈을 통해 서비스를 이해하고, 간단히 사용해보며 -> 이 서비스를 활용하여 간단한 개발을 해보고 그 과정을 올리고 -> SNS 및 블로그 글을 통해 다른 사람에게도 공유 하며 서비스를 알리고 관심을유도? 하는데 있지 않았을까 싶다.
참고로, Azure Static Web App 이란 서비스는 대략 이런것이다. 말 그대로, 내가 정적인 (뭐 간단한 이미지 파일 몇개랑, 텍스트 등의 정적 콘텐츠 위주) 페이지를 만들려고 할떄 사용하면 무척 편한 서비스이다.
Azure가 정적인 컨텐츠는 CDN에 배포하고 관리해주고, End point도 생성해서 주기 떄문에, 예전에 홈페이지 만들어서 hosting하기 까지의 번거로운 과정이 굉장히 단순해진다. 서비스 생성 단계 자체도 굉장히 심플하다.
보다 친절한 설명이 필요하다면: https://www.youtube.com/watch?v=pws9zYmolvs
근데 여기다 왜 Azure Function을 붙이냐.. 사실 순수한 정적 컨텐츠만을 가진 홈페이지란 잘 없다. 정적 컨텐츠 + 약간의 로직을 프로세싱하는 과정이 필요할텐데(예를들면, 다른 API 나 DB 에서 데이터를 끌어와서 보여줘야 하거나, 사용자의 인증을 좀 붙여야 한다거나.. 등등) 이걸 이 Severless 기술인 Azure Function을 이용한것이다. Azure Funtion을 이용하기 때문에 딱 내가 필요할때만 Serverless형태의 서비스인 Azure Function 띄워서 필요한 처리하고, 안쓸땐 멈춰있고, 호스팅이나, 다른 서비스와의 연동에 대한 걱정/코드 작성 부분은 최소화하고 진짜 구현해야 하는 로직 위주로 작성해서 빠르게 개발 할 수 있다보니 좋다.
그래서 위의 두 서비스의 합(?) 이 좋다고 생각했다.
마지막으로 그럼 github는 왜 쓰일까?여기서??
요즘 개발자들에게 git 및 DevOps 개발및 배포 자동화는 국룰.. Defacto가 되었다.
Azure Function과 Azure Static Web App을 쓰면, 페이지는 hosting 할 수 있지만 코드를 형상관리하고 빌드 배포할수가 없다. 이 빈 공백을 매꾸워주는데 Github 및 Github Action이 활용된다. 게다가 사용하면서 편했던점이 Azure Static Web App을 만들때 그 당시에 필요한 기본 뼈대를 갖춘 Github Action 이 자동 생성되기 때문에 그 이후로는 따로 수정하지 않아도 해당 Github main 브랜치에 코드 푸쉬만 해도 hosting하는 페이지에 지속 배포가 되어서 편하다.
좋았던점: 역시 백문이 불여일타... 라고 서비스에 대한 설명을 읽어보는것과 직접 써보는 것은 정말 다르다. 써보면서 더 익숙해질 수 있어서 좋았다.
아쉬웠던점: ..... 과연 이 설명을 보고 초심자가 끝까지 방황하지 않고 따라할 수 있을까? 싶었다. 참 Microsoft Documentation에 대해 항상 아쉬움을 많이 느끼는 사람인데 이번에도 그런점이 정말아쉬웠다.
이 challenge의 전제는 Git 및 Github에 대해 익숙하고, 리액트나 앵귤러 등등 프론트엔드 프레임워크 하나 어느정도 익숙하며, Azure Funtion의 경험이 있는 사람이 하기에는 약간의 불친절한 설명 돌뿌리에도 걸려넘어지지 않고 진행 할 수 있을 것 같으나.. 만약 이 모든게 처음이거나 잘 모르면... 나는 중간에 포기했을것 같다.