공지

배포 준비

Software deployment is all of the activities that make a software system available for use.

- ROGER S. PRESMAN, Software engineering

지금까지는 각자 Git의 코드를 내려받고 로컬 환경에서 작업 해 왔을 것입니다. 그러나 여러분이 만든 것을 실제 사용자가 이용 가능한 상태로 제공하려면 배포(deploy)과정을 거쳐야 합니다. 일반적으로 배포는 소스 코드를 빌드하고, 산출물을 특정 플랫폼에서 실행하는 형태로 진행됩니다.

예를 들어 웹의 경우 서버에 배포를 진행하게 됩니다. 서버는 여러가지 형태가 있는데, 개인이 소유한 물리 장비를 이용하여 서버를 구축할 수도 있지만 요즘은 AWS, AZURE, NCP같은 PaaS를 이용하는 것이 사실상 표준이 되었으므로 여러분도 클라우드 플랫폼을 이용한 배포를 진행해 보는 것을 권장합니다.

안타깝게도 일전에 안내드린 것 처럼 DND는 서버 관련 후원을 받지 못한 상황입니다. 여러분 개인 계정의 Free Tier를 사용하거나, Firebase, Heroku 등으로 해주세요. 😿

물론 아직 프로젝트가 완성되지 않았을테니 배포하는 서비스의 퀄리티는 전혀 신경쓰지 않으셔도 됩니다. 예행 연습을 한다고 생각하고 지금까지 개발된 기능까지만 배포를 해 주세요. (Hello World만 떠도 상관 없습니다 ㅎㅎ)

QA를 위한 테스트

지금까지 기능을 개발할 때는 간단한 테스트로 작동만 확인하고 넘어갔을테지만, 실제 사용자의 접근 방식은 무궁무진합니다. 유저가 처한 상황, 디바이스, OS 버전, 플랫폼 등 너무나도 다양한 변수가 존재하기 때문에 신규 기능을 출시하기 전에는 항상 QA(Quality Assurance), 즉 테스트 과정을 거쳐야 합니다.

테스트라고 표현했지만, 실제로 QA는 단순히 테스트라는 단어로 담아낼 수 없을만큼 매우 체계적이고 다양한 검증을 합니다.

예를 들어, 웹 서비스의 경우 Chrome에서 안정적으로 동작하지만 IE에서는 먹통일수도 있으며 Safari에서는 엉뚱하게 동작할 수 있습니다. PC와 모바일 사이즈에서는 의도한대로 동작하지만 태블릿 사이즈에서는 엉망일수도 있습니다. 아이폰 IOS에서는 잘 동작하지만 잘 동작하지만 샘숭 안드로이드에서는 크래시가 일어날 수 있습니다.

(말 그대로 예시일 뿐 표준이라는게 있기 때문에 이렇게까지 엉망진창은 아닙니다. ^^;;)

모든 마이너한 경우까지 검증할수는 없겠지만, 기본적으로

웹 위주로 예시를 들었지만, 앱도 마찬가지로 여러가지 환경에서 동일한 동작이 보장되어야 합니다. 여러분이 진행중인 프로젝트에서 여러가지 테스트를 진행 해 보세요.

과제 제출물