웹 서비스 개발 구현 단계
webService.Develop.ui 글에 이어, 개발 쪽으로 넘어가서 데이터 베이스나 API 설계가 되면, 데이터 베이스 설계에 따라 실제적으로 DB 데이터 베이스 프로그램에 적용한다. 실제 적용하는 것을 implement ‘구현'이라고 한다. DB는 무료인 mariadb나 유료인 mysql, oracle, ms를 사용한다. 규모가 큰 프로젝트인 경우 oracle를 많이 사용하며, 중규모 정도는 mysql, 소규모나 개인은 대부분 mariadb를 사용한다.
DB를 구현하면서 로직도 설계에 따라 구현한다. 화면에 가져와야 할 데이터를 DB에서 검색해서 로직에 따라 데이터를 가공한 후 화면에 전달한다. 이러한 과정을 개발하는 것을 BackEnd 개발이라고 한다. 단어에서 말하듯이 뒤에서 처리하는 것을 말한다.
대부분의 개발은 backend를 말하며, 다른 말로 서비스 개발이라고도 한다. db에서 데이터를 검색해서 데이터를 전달해 주는 부분이기 때문에 데이터를 서비스해 준다는 의미로 사용된다. backend 개발은 주로, java, python, php, c#, c++ 등의 언어를 사용하여 개발한다. 프로그래밍 언어는 interpreter, compiler 언어가 있지만, 자세한 것은 나중에 다시 설명하도록 하겠다.
backend에서 요청받은 데이터를 db에서 검색해서 로직에 따라 데이터를 가공하고 데이터를 전달해 주는데, 이러한 데이터를 요청하고 전달받는 것을 frontend가 담당한다. frontend도 단어처럼 앞단에서 처리하는 것을 말한다.
앞서 설명했던 퍼블리싱은 디자인된 화면을 동적인 화면으로 만드는 것을 말한다. 다시 말해, 퍼블리싱은 화면 구현이 주목적이다. 데이터를 보여주는 것도 퍼블리싱의 영역이지만, 좀 더 세분화하여 backend에 데이터를 요청하고 전달받은 데이터를 화면에 맞게 보여주는 역할은 퍼블리싱이 아닌 frontend의 역할이다.
frontend에서도 backend에서 받은 데이터를 가공하여 화면에 보여줄 수도 있다. 그냥 단순히 전달받은 데이터를 화면에 그대로 보여주는 것이 아닌, 리스트 형태로 가공하여 보여줄 수도 있고, 데이터에 따라 화면의 다른 부분을 변경할 수도 있다.
frontend는 backend와 같이 로직으로 구현되기 때문에 frontend 개발이며, backend와 마찬가지로 개발 영역이다. frontend 개발은 주로 react, vue, angularjs, 아이폰 개발 언어인 Objective C, 안드로이드 개발 언어인 java, kotlin을 사용한다.
지금까지 기획, 디자인, 퍼블리싱, frontend, backend, db를 살펴보았다. 구현하는 부분만 좀 더 크게 나누어 보면, 퍼블리싱, frontend는 client이고, backend, db는 server로 구분된다. client 개발이라고 하면 퍼블리싱, frontend 개발이고, server 개발이라면 backend, db이다. client와 server가 한 묶음이라고 보면 안 된다.
server는 하나이지만, client는 여러 개일 수 있다.
데이터를 API로 서비스해 주는 server가 있다면 API를 통해 데이터를 받아 웹으로도 개발될 수 있고, 모바일 앱으로도 개발될 수 있다. 상품을 예로 든다면 상품을 제조하는 공장이 server이며, 제조된 상품을 판매하는 곳을 client라고 할 수 있다. 상품 판매는 백화점이 될 수 있고, 온라인이 될 수 있고, 시장 또는 개인이 판매할 수 있기 때문에 client는 server하나에 여러 개의 채널을 가질 수 있다.