kick-off(3) 웹서비스의 역사, 백엔드 개발자의 역할_10.24

송철진·2022년 10월 24일
0

웹서비스의 역사와 발전

요약

  • 인터넷(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 직군이 필요.

1. 1세대, 2세대, 3세대 웹의 차이점

1세대 웹2세대 웹3세대 웹
주 기능단순하고 정적인 정보 제공동적인 정보 주고 받음JS가 HTML요소 생성, 페이지, 기능을 동적 처리
전달방향서->클(단방향)서<->클(양방향)FE서버<->웹브라우저<->BE API서버<->DB
기술적 요소HTML, CSSHTML, CSS, Javascript(소규모)HTML, CSS, Javascript, Database, FE Server, BE API Server, Data(JSON, XML)
특징User Interaction 요구 없음User Interaction 구현SPA 의 등장 (FE)
웹브라우저와 서버 간 데이터 전송, 연산작업(BE)
FE/BE 구분 없음FE/BE 구분 됨

2. 현대 웹 시스템 아키텍처 란?

  • 웹서비스의 복잡성 증가: User Interaction의 중요성, 사용자 수, 데이터의 양 증가
  • 새로운 문제점: 동시 접속자 수, 데이터의 양
  • System Architecture 발전: FE 서버/BE 서버 분리. BE API 서버의 세분화. 데이터 요청 분산 처리(API Gateway).

3. 백엔드 개발자(backend developer)의 역할 은?


백엔드 시스템을 개발하는 역할.

  • 앞 쪽: API 개발자(프론트엔드에서 제공한 정보를 정제해서 서버에 전달할 수 있게)
  • 완전 뒤쪽: 데이터 수집, 분석, 관리 등의 데이터 관련 시스템 개발자.
    (경력이 높아질 수록 좀 더 난이도가 있는 뒷 부분에 해당하는 시스템을 많이 구현.) → DevOps

QnA

Q1. FrontEnd Server 란? 꼭 필요한가? BE Server와 차이
A1. 리액트로 작성된 서버. BE서버는 데이터베이스에서 정보를 보내주듯이, FE서버는 고객센터에 리뷰, 회원가입 인터페이스, 자주 묻는 질문 등 프론트엔드에 박아놓고 렌더링해서 단말기로 보내주기도 함

Q2. 스크럼 방식으로 개발? 현업에서 진행되는 사례?
A2. 애자일 프로세스(순환구조)의 일종; 목표를 정해서 1~2주일 단위(스프린트)로 하나의 모듈씩 개발해서 합쳐서 체계적으로 하나의 프로그램을 제작
<->워터폴(개발 기간을 스케줄링, 선프로세스 후프로세스)
데일리 스탠드업 미팅(어제 한 것, 내일 할 것, 막힌 기술적 사항 15분 간 공유)
회고를 잘해야 한다. keeping problem try 지속적 해결해야할 문제를 노력해

Q3. 빅데이터, 머신러닝, DBA 로 커리어 방향이라면 성장 로드맵?
A3. 정해진 것이 없더라도 끊임없이 공부. DB모델링 이해도 높. mau(실제 사용자 접속수)가 높은 회사에 취업해서(인프라 탄탄 어떻게 구축했나?) 경험을 쌓기.

Q4. 위코드에서 TypeORM을 쓰는 이유?
A4. 왜 그 기술을 썼는가? object relational mapping? 객체로서 매핑해주는. 관계형 데이터를 노드js기반 api서버에서 어떻게 읽고,쓰고,갖고 오는지 sql문으로 번역해서 대신 전해주는 역할.(번역가) typeScript(데이터타입을 정의하는)와 가장 호환이 잘되는 모듈이라서.

Q5. Node.js로 취업할 수 있나? 경쟁력?
A5. java spring의 취업 풀이 넓다.=수요많고 공급많고(자바공화국)
but 취업 풀 걱정없음. MSA라고 해서 서비스마다 다른 기술을 사용.

Q6. REST API 왜 쓰는가?
A6. 배우기 쉬움. http와 호환성 높음(개발자 동일).

profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글