웹 앱 개발 방법 – 기초 지식, 개발 절차, 추천 언어 해설

웹 애플리케이션은 Google, Yahoo!, EC 사이트, SNS 등 웹 브라우저에서 사용할 수 있는 애플리케이션입니다. 프라이빗으로 사용하는 것은 물론입니다만, 엔지니어라면 업무로 한 번은 보고 듣거나 실제로 개발에 종사하거나 하는 사람도 많을 것입니다.

웹 어플리케이션 개발이라고 하면 보기 허들이 높을 것 같습니다만, 간단한 것은 프로그래밍의 기초가 이해되어 있으면 누구나 도전할 수 있습니다. 이 기사에서는 중급 엔지니어에서 처음으로 웹 애플리케이션 개발하는 분들을 위한 기초 지식과 구체적인 개발 절차를 설명합니다.

 

애초에 웹 애플리케이션 개발이란?

웹 애플리케이션은 웹 서버(서버 측) 및 웹 브라우저(클라이언트 측)에서 실행되는 앱이며, 웹 애플리케이션 개발은 이러한 애플리케이션의 개발 작업을 의미합니다. 동영상 공유 서비스의 「YouTube」나, SNS의 「Facebook」 「twitter」, 음식 리뷰 사이트의 「먹어 로그」등이, 잘 알려진 웹 어플리케이션입니다.

또한 비슷한 단어에 웹 사이트 개발이 있습니다. 혼동하기 쉬운 용어이지만, 일반적으로 웹사이트가 관공청이나 기업의 홈페이지 등 정적인 컨텐츠를 표시하는 구조인데 반해, 웹 애플리케이션은 이용자로부터의 요구에 따라 데이터를 검색한다.・동적으로 데이터를 표시시키는 기능을 실현하는 구조입니다.

웹 애플리케이션의 특징 1. 개별 설치가 필요 없음

웹 애플리케이션의 특징은 앱을 PC나 스마트폰 등 사용자의 단말기에 설치할 필요가 없다는 점에 있습니다. 웹 브라우저만 있으면 즉시 이용할 수 있으므로 이용자의 편리성이 높은 것이 특징입니다.

웹 애플리케이션과 쌍을 이루는 것으로 “네이티브 앱”이 있습니다. 네이티브 앱은 앱 스토어를 통한 설치가 필요한 애플리케이션으로 스마트폰 앱이나 office 등을 들 수 있습니다.

또한, 최근에는 Web·네이티브 어플리를 조합한 「하이브리드형」이나, Web 사이트를 Web어플리케이션과 같이 이용할 수 있는 「PWA」라고 하는 구조도 등장하고 있습니다.

웹 애플리케이션의 특징 2. 사용자의 운영 환경에 의존하지 않음

웹 어플리케이션은 웹 브라우저상에서 이용하기 때문에 이용자 단말의 OS나 버전, 디바이스의 차이에 의존하지 않습니다. 웹 어플리케이션의 릴리스에 있어서 호환성 확인은 필요합니다만, 단말에 인스톨이 필요한 「네이티브 앱」과 같이 Windows용, Mac용과 개별 어플리의 개발은 불필요합니다.

이용자로서는 웹 브라우저만 있으면 자유롭게 사용할 수 있는 메리트가 있어, 개발자로서는 단말이나 동작 환경에 맞춘 개발·동작 보증을 위해서 비용·기간이 걸리지 않는 것이 메리트라고 할 수 있겠지요.

웹 애플리케이션과 네이티브 앱 하이브리드 앱의 차이

애플리케이션에는 웹 애플리케이션 외에 ‘네이티브 앱’, ‘하이브리드 앱’이라는 유형이 있습니다. 각각 어떤 특징을 가진 응용 프로그램인지 자세히 살펴 보겠습니다.

네이티브 앱이란?

네이티브 앱은 스마트폰이나 태블릿에 설치하여 기기에서 작동하는 애플리케이션입니다. ‘스마트폰용 애플리케이션’이라는 표현은 일반적으로 네이티브 앱을 가리키는 데 사용됩니다.

네이티브 앱은 App Store 또는 Google Play에서 설치하고 사용합니다. 단말기에 직접 설치하기 때문에, 웹 어플리케이션과 비교하면 기동이나 동작이 빠르다는 특징이 있습니다. 그 중에는 전파가 불안정한 장소나 오프라인에서도 안정적으로 동작하는 어플리케이션도 존재합니다.

또, 단말 자체에 갖추어져 있는 카메라나 GPS등의 기능도 최대한으로 활용할 수 있는 점도, 네이티브 앱의 장점이라고 할 수 있을 것입니다.

한편, 네이티브 앱은 디바이스나 OS에 맞춰 개발할 필요가 있기 때문에 개발 비용이 높아지기 쉽다는 특징도 있습니다.

하이브리드 앱이란?

하이브리드 앱은 웹 애플리케이션과 네이티브 앱의 특징을 결합한 애플리케이션입니다.

웹 브라우저에서 사용하는 것 외에도 기기에 설치해도 사용할 수 있습니다. 따라서 네이티브 앱처럼 카메라나 각종 센서 등 단말기의 기능을 이용할 수 있다는 특징이 있습니다.

하이브리드 앱은 스마트폰이나 태블릿과 같은 기기에 애플리케이션을 설치하고 사용합니다. 웹 어플리케이션 부분은 배포할 필요가 없기 때문에, 어플리케이션의 추가·변경할 때마다 단말에 재설치하는 번거로움이 없다는 장점이 있습니다.

웹 애플리케이션의 구체적인 개발 절차

웹 어플리케이션이라고 해도 순서를 따라 개발할 수 있으면 누구나 간단한 Web 어플리케이션의 작성이 가능합니다. 백문은 언뜻 보지 않고, 한 번이라도 웹 애플리케이션을 개발하면 개발의 흐름이나 「감각」을 이해할 수 있어 이후의 개발은 원활하게 진행됩니다.

개발에 있어서 특별한 툴 등도 필요 없기 때문에, 개발용의 PC와 인터넷 환경을 가지런히 해 봅시다.

웹 애플리케이션의 작동 방식 이해

우선 웹 애플리케이션의 기본적인 사고방식을 이해해 둡시다. 예를 들어, 데이터베이스에 저장된 메모의 내용을 화면에 표시시키는 웹 어플리케이션에서는 다음과 같은 처리가 움직입니다.

클라이언트 단말기에서 화면 표시 요청

요청을 받은 웹 서버는 서버 상에 배치된 웹 어플리케이션을 실행 혹은 배후에 있는 어플리케이션 서버 등이 데이터베이스를 검색

웹 응용 프로그램은 지정된 조건으로 데이터베이스를 검색하고 HTML 텍스트를 만듭니다.

웹 서버가 클라이언트 단말기에 결과를 반환하고 지정된 웹 화면이 표시됩니다.

위는 간단한 웹 애플리케이션의 예입니다만, 보다 본격적이고 다양한 기능을 담은 웹 애플리케이션을 개발하기 위해서는 HTML이나 JavaScript, Java나 PHP·Ruby 등의 서버 측 의 개발 언어 , 이용하는 데이터베이스 나 SQL 지식도 필요합니다.

또한 작성한 웹 애플리케이션을 인터넷으로 공개하고 많은 사람들이 이용할 수 있도록 하고 싶은 경우에는 보안 대책이나 SEO에 대한 지식도 중요합니다. 한 번에 모든 지식을 습득하는 것은 어렵기 때문에, 어떤 웹 어플리케이션을 개발하고 싶은지를 명확히 한 다음, 만들면서 필요한 주변 지식을 차례로 공부해 나가는 것이 중요합니다.

개발 언어 선택

웹 응용 프로그램의 기본 메커니즘을 이해할 수 있다면 실제로 개발할 프로그램 언어를 선택하십시오. 웹 어플리케이션 개발에서는 JavaScript나 Java, Ruby, Python , PHP등이 자주 사용되는 언어입니다.

덧붙여 어떤 언어가 좋고 나쁘다는 것은 없고, 각각의 프로그램 언어에 의해서 향하고 있는 개발이나 특징이 있습니다. 기본적인 처리의 흐름은 같기 때문에, 이미 습득이 끝난 언어가 있으면, 그 언어로 Web 어플리케이션 개발할 수도 있고, 참고서나 Web 학습 사이트의 샘플 코드를 사용하는 경우는 지정의 언어에 따릅니다 .

프레임워크 선택

프레임워크란 웹 어플리케이션이나 시스템을 개발하는데 있어서 필요한 기능이나 처리를 틀(패키지화)한 것을 말합니다. 프레임워크를 사용함으로써 개발을 효율화하고 신속한 개발을 할 수 있게 되기 때문에, 여러 멤버로 개발을 하는 업무용의 Web 어플리케이션 개발에서는 필수 구조입니다.

프레임워크를 사용하지 않고 1부터 개발하는 것도 가능합니다만, 엔지니어로서 Web 어플리케이션 개발을 일로 하고 싶다면, 몸에 두어 손해는 없습니다.

프레임 워크는 전세계에 많이 존재하며 추세도 있습니다. 기본적인 프레임워크로서 다음을 배워 두는 것이 좋습니다.

· Django : 파이썬 용 프레임 워크. 간단한 코드로 쉽게 개발할 수 있습니다.

· AngularJS : 자바 스크립트의 단골 프레임 워크. MVC 모델을 기반으로 앱 디자인에서 사용

· Ruby on Rails : Ruby 용 프레임 워크. 일본어로의 참고 정보가 풍부하고 사용하기 쉽다

· CakePHP: PHP용 프레임워크. 사용하기 쉽고 편리함

이용하는 프로그램 언어에 맞추어 인기의 프레임워크를 함께 활용해 봅시다.

개발 환경 만들기

실제로 어플리케이션을 작성하기 위해서 개발 환경의 구축을 진행합니다. 기본적인 구축 내용은 다음과 같습니다.

· 개발 언어 및 프레임 워크 설치

· 프로그램 작성을위한 편집기 및 통합 개발 환경 준비

· 프로그램 실행 환경 준비

또, 복수인으로 개발하는 것을 전제로 한다면 버전 관리의 구조를 도입하는 것이 추천입니다. SourceTree, GitHub 등의 서비스를 이용하는 것이 좋습니다.

완성된 앱 게시

한 가지 웹 애플리케이션 개발이 끝나면 인터넷에 공개해 봅시다. 렌탈 서버를 빌려 공개하거나 보다 간편하게 체험하고 싶다면 AWS, GCS(Google Cloud Storage), Azure, Heroku 등의 클라우드에서 이용할 수 있는 애플리케이션 플랫폼(PaaS) 서비스를 이용하는 것도 하나의 방법입니다.

인터넷상에서 공개하면 자신이 만든 웹 어플리케이션을 가족이나 친구 등 제3자라도 URL로부터 액세스하는 것이 가능하게 됩니다.

웹 애플리케이션 개발에 도전합시다.

웹 어플리케이션 개발은 전세계 많은 엔지니어가 개발에 종사하고 있기 때문에 참고 서적과 웹 사이트도 풍부하게 갖추고있어 시작하기 쉬운 것이 장점입니다. 처음에 개발의 전체상을 잡으면 이후의 개발을 원활하게 진행할 수 있으므로, 실제로 손을 움직여 웹 어플리케이션을 만들어 보는 것이 추천입니다.

갑자기 어려운 것을 만들려고 하면 좌절해 버리므로, 우선은 게시판이나 뉴스 사이트 등 심플한 Web 어플리케이션에 도전해 봅시다.