웹 서비스의 역사와 발전

Sunghee Kim·2022년 5월 10일
0

- 1세대, 2세대, 3세대 웹 서비스의 특징을 조사해 주세요.

1세대 웹서비스의 특징?
정적이고,단순히 정보전달 위주의 웹이었다.
특별히 기능이 많지 않으며, 무엇보다 User Interaction 이 많이 요구되지 않았다.
2세대 웹서비스의 특징?
다이나믹한 요소들이 요구되기 시작하면서 웹기반의 언어인 자바스크립트의 출현함과 동시에 역할이 커지기 시작했다. 자바스크립트를 통해 서버에 필요한 데이터를 주고 받고 다이나믹한 user interaction을 구현하게 되었지만 현재 API개념이 아직 널리 사용되지 않았고, 동일한 서버에서 프론트영역과 백엔드 영역 둘다 전송했다.
3세대 웹서비스의 특징?
SPA(Single Page Application) 하나의 파일로 전체 사이트를 구현하고 동적인 기능이 주가 되었다. 기존에는 서버가 페이지 구성에 필요한 요소를 매번 전송했지만 3세대부터는 파일은 처음 한번만 송수신하고 그 뒤로 실시간 데이터만 주고 받음.

  • Frontend 와 Backend가 구조적으로 분리가 되면서, Frontend 서버와 Backend API 서버도 분리가 되며 그에 따라 Frontend 개발과 Backend 개발 업무가 분리가 되는 구조로 발전된다.

- 3세대 웹에서 존재하는 포지션들을 조사하고 각 포지션의 역할을 요약해 주세요.

  • Product manager(기획자)
    개발하고자 하는 서비스를 정의하고 기획하는 역할을 담당

  • Designer

    • 웹 UI(User Interface) 및 UX (User Experience) 를 구현하는 역할을 담당
    • 사용자가 직접 경험하고 사용하는 서비스를 눈에 보기 좋게, 사용하기 편리하게 디자인하는 역할
  • Frontend Developer

    • HTML, CSS, JavaScript 로 프론트엔드 시스템을 구현하는 역할
    • 사용자와 가장 밀접하게 연결되어 있는 개발자
    • 우리나라에는 퍼블리셔(publisher) 라고하는 HTML, CSS 만 담당하는 한국만의 고유 직군이 있음.
  • Backend Developer

    • 백엔드 시스템을 개발하는 역할.
    • Backend 개발자들도 크게 2가지로 나뉨
      • Backend 에서 좀더 앞 쪽을 담당하는 (즉 API 개발을 담당하는) 개발자.
      • Backend에서도 완전 뒤쪽, 즉 데이터 수집, 분석, 관리 등의 데이터 관련 시스템을 개발하는 개발자.
  • DevOps (Development Operations)

    • 시스템 개발(Development) 뿐만 아니라 시스템 운영(Operation)까지 담당하는 것

    • 직군 이라기 보다는 개발 분야에서 나타나는 문화나 추세

    • AWS 등의 클라우드 서비스가 발달함에 따라 서버 구축 및 운영 등의 System Infrastructure 관리까지 백엔드 개발자가 직접 구현하는 추세

    • DevOps 에 대한 수요가 굉장히 높은 편. 개발 능력과 함께 DevOps 능력도 키울 것.

  • SysOps (System Operations)
    Data Center 를 사용하여 시스템System Infrastructure 의 구현과 관리 및 운영을 담당하는 직군

    • DevOps 와 다르게 실제 하드웨어을 운영하는 회사에 필요한 직군
    • 직접 데이터 센터에 서버를 구성하지 않고 AWS 같은 클라우드 서비스가 점점 더 많이 쓰이는 추세.
      따로 SysOps 인력을 두지 않고 DevOps 개발자들이 System Infrastructure 를 담당하는 추세.
  • Data Scientist

    • Machine Learning, AI 등의 데이터 분석에 필요한 알고리즘과 모델링의 구현을 담당하는
    • 많은 양의 데이터를 분석해서 새로운 정보와 가치를 만들어 낼 수 있는 직군
  • Data Engineer담당

  • Tester

    • 시스템을 테스트하여 검증하는 역할을
    • Data Scientist 가 데이터를 분석할 수 있도록 데이터를 정리하고 정석화 시키는 시스템을 구현하는 역할을 담당하는 직군
    • QA (Quality Assurance) - 직접 manual testing을 실행하는 직군.
    • Software Engineer in Test / Test Automation Engineer - Manual testing이 아닌 자동 테스트 시스템을 전문으로 구현하는 개발자.
  • Others

    • Project Manager
    • Scrum Master
      • Scrum 개발론이 개발팀 에서 널리 사용 됨에 따라 scrum process 를 관리하고 코치하는 직군이 생김.
    • Software Architecture
      • 규모가 굉장히 큰 시스템을 개발하는 회사는 Software Architecture 라고 해서 시스템의 전체 구조 디자인을 담당하는 직군이 따로 있는 곳도 존재.
      • 주로 오래된 경력의 전문가 개발자들이 software architecture role을 담당.
      • Software Architecture 직군은 요즘에는 많이 사라지고 있는 추세. Scrum 개발론이 널리 적용되고 있기때문에, 예전처럼 누군가가 시스템 구조 디자인만 따로 담당하고 개발자들은 전달된 디자인을 개발만 하는 구조는 더이상 어울리지 않는다.
      • 요즘은 개발자들이 scrum 절차에 따라 직접 시스템 디자인을 구현하고 발전시켜 나간다.
profile
개발하는 스트롱맘

0개의 댓글