인터넷(Internet)이란 전 세계의 컴퓨터가 서로 연결되어 정보를 교환할 수 있는 하나의 거대한 컴퓨터 통신망입니다.
웹(Web)이란 인터넷 네트워크를 이용하여 통신되는 정보의 집합입니다.
1세대 웹의 특징은 웹 서버가 HTML 페이지 전체와 CSS를 클라이언트에 전송하는 구조입니다.
2세대 웹의 특징은 동일한 서버에서 HTML, CSS, Javascript, 그리고 Data 전부가 클라이언트로 전송하는 구조입니다.
3세대 웹의 특징은 SPA(Single Page Application)의 등장으로 단일 HTML 페이지와 메인 Javascript 파일로 HTML 요소 생성부터 모든 페이지 및 기능을 동적으로 처리할 수 있게 됩니다.
현대 웹 시스템 아키텍처에서는 동시 접속자 수와 데이터 양의 증가로 Micro Service Architecture 구조를 갖습니다.
현대 웹 시스템 개발에는 PM, Designer, Scrum Master, Tester, Frontend Developer, Backend Developer, Full Stack Developer, DevOps, SysOps, Data Sientist, Data Engineer 직군이 필요합니다.
인터페이스(Interface)란 서로 다른 두 개의 물체가 상호간에 정보나 신호를 주고받기 위해서 필요한 접점이나 경계면을 말합니다.
사용자 인터페이스(User Interface, UI)는 인간과 컴퓨터 사이에서 의사소통을 목적으로 만들어진 물리적, 가상적 접점(매개체)을 의미합니다.
응용 프로그램(Application)이란 운영체제(MacOS, Linux, Window 등)에서 실행되는 모든 소프트웨어를 말합니다.
웹 시스템에서 API란 클라이언트 application(Chrome 브라우저)와 데이터베이스 application(MySQL, Oracle, Postgres, 인스타그램 서비스의 데이터 집합), 데이터를 읽거나 쓰기위해서 이 두 애플리케이션 사이에서 소통의 역할을 하는 접점이 API입니다.
주니어 개발자로 커리어를 시작하는 지금 초기에는 API 개발에서 시작해서 서비스 서버 구축 및 운영 업무까지 역량을 키우는 것을 목표로 잡는 것이 중요합니다. (내가 서버 구축이 잘되어 있는 큰 회사에 갈수도 있지만, 서버 구축이 잘 되어 있지 않은 회사에 갈 수도 있으므로)
API와 데이터베이스와의 연결(Connection)을 포함한 RESTful HTTP API 구조(아래 그림 참고)를 스스로 만들 수 있게 되는 것을 목표로 학습하시길 바랍니다.