개발 환경에 대해 이해하려면 프론트 엔드, 백엔드, 어드민, DB 크게 4가지를 이해해야 함
모든 서비스에는 최소한 세가지 단위 존재
사용자에게 노출되는 서비스 화면 : 프론트 엔드 (Front end)
각각의 화면에 들어가는 데이터와, 사용자 입력 정보들 : 백엔드 (Back end)
그리고 이 모든 것을 실시간으로 저장, 기록하는 창고 (Data base / DB)
사용자에게 노출되는 서비스화면
쉽게 말해 웹이나 앱의 화면 단위를 다루는 곳
어떤 컨텐츠가 화면에 들어가고, 그게 어디에 들어가는지 또 어떻게 보일지를 다룸
시각적인 지점이 영향을 많이 받기 때문에 미적 감각이 있고 개발 언어도 잘 아는 사람들이 이 역할을 맡음
프론트엔드 개발자: 웹서비스와 앱 서비스, 다양한 디바이스에 맞는 화면을 일관성있게 만들어내며 시각적으로 아름다운 배치와 편의성 모든 것을 한꺼번에 다루는 사람
웹사이트나, 앱 서비스에 들어가는 UI 컴포넌트를 코드로 작성
작성한 코드를 다른 화면에서도 사용할 수 있도록 블럭, 단위화하는 과정을 모아 디자인 시스템을 만들거나, 자체적인 가이드 라인을 만듬
서버에 필요한 정보를 요청하는 기능을 만듬
주로 사용하는 언어: HTML, CSS, Javascript 등
사용자가 볼 수 없는 영역
사용자가 입력한 정보와 각 화면에 들어가는 정보의 이동
데이터가 얼마나 정확한지 데이터 전달 속도가 얼마나 빠른지가 중요
백엔드는 데이터의 이동을 다룸
백엔드 개발자: 사용자가 입력하거나 정리된 정보를 보내고 차곡차곡 저장하는 ‘자동화 시스템’을 만들어 실제 서비스가 소수의 인원으로 원활하게 동작할 수 있게 만드는 사람
단순한 페이지 이동에서부터 아이템 만들기, 수정, 삭제 등 서비스 안에 들어있는 모든 기능은 동작 과정에서 여러 데이터를 주고받음
서비스를 이용하기 위해 우리가 휴대폰 인증을 받듯 각각의 기능에서도 데이터가 출발한 곳과 가려는 목적지를 확인하는 토큰 (인증서)을 발급해줌
백엔드 개발자는 이런 시스템을 설계하고, 만드는 작업을 하며 서비스 완성 이후에는 수만명의 사람들이 서비스를 사용해도 서버가 멈추지 않도록 유지보수를 맡는 역할을 함
주로 사용하는 언어: Java, C#, Javascript
서비스의 각 페이지에 들어가는 모든 정보를 담고있는 창고 역할
아주 작은 정보단위들을 모두 담을 수 있고 이 내용을 합쳐 상황마다 다른 정보 꾸러미를 만들어내기도 함
데이터베이스(DB)는 서비스의 핵심임
모든 서비스에는 사용자의 ID정보, 구매기록, 활동내용, 문의사항 등 다양한 데이터값들이 들어있으며 모두 데이터베이스 안에 저장 됨
서비스 화면을 보여주기 위한 데이터 또한 DB 안에 저장 됨
데이터베이스는 실제 사용자들의 기록이기 때문에 내용이 손상되거나 없어진 경우 서비스를 종료하게되는 상황에 처할 수도 있음
사용자의 한가지 타입으로 서비스를 운영하고 유지 보수, 관리하기 위한 사람
일반적으로 서비스 운영자나 관리자도 개발자의 한 종류라고 생각하지만 실제로 관리자는 큰 범주로 봤을 때, 여러 사용자 타입들 중 하나로 구분할 수 있음
Example - 작은 앱 서비스 하나가 있다고 가정
서비스를 만든 개발자와 서비스를 운영하면서 일반 사용자들과 소통하는 관리자 계정이 존재
관리자는 사용자들이 우리 서비스를 잘 쓰고있는지 확인하는 ‘관리자 사이트’에 들어감
관리자 사이트는 일반 사용자에 비해 많은 서비스 정보를 보여주는 화면으로 어디까지나 서비스 운영을 위해 필요한 정보를 다룰 뿐 서비스의 데이터베이스를 다루거나 서버의 구조를 바꾸는 건 불가능함
이는 개발자와 운영자의 역할이 정확히 나뉘어있다는 것을 의미
규모가 작은 서비스라면 관리자가 서비스를 개발한 개발자 일수도 있으나 규모가 크고 서비스를 만든 회사와 쓰는 곳이 다르다면 상황은 많이 달라짐
ERP 시스템처럼 커다란 프로그램은 개발한 곳과 쓰는 곳이 서로 다름
프로그램을 구매해 쓰는 회사 내에서 또 다시 관리자 계정을 만들 수 있고 이런 관리자들은 일반 회사원보다 많은 정보를 확인하고 관리할 수 있지만 실제 서비스의 데이터베이스를 변경하거나 수정할 수는 없음
서비스의 규모가 커졌을 뿐 관리자는 여전히 ‘여러 사용자 타입’들 중 하나이므로 서비스의 핵심 정보인 데이터베이스에는 함부로 접근할 수 없음
세상에 존재하는 서비스들은 모두 비슷한 과정을 거쳐서 만들어지고 수정이 되며 그 과정을 정리하면 다음과 같음
대부분의 서비스는 이런 과정을 반복해서 진행하며 그 과정에서 데이터베이스의 구조를 수정하거나 서비스의 화면별 UI를 수정하기도 함