충남대학교 컴퓨터공학과의 "실전코딩" 강의를 필기한 내용입니다.

이 문서는 보관이 목적이고, 관리되지 않습니다. 따라서 잘못된 정보가 포함되어 있거나 순서가 뒤죽박죽일 수 있습니다.

DevOps

  • 개발자는 개발만, 서버관리는 관리자만 이렇게 하는 전통적인 팀 구성이 아닌
  • 개발자가 서버관리와 배포까지도 관여하는 그런 구조를 의미한다

Functional Team

  • 기획, 개발, 데베, 디자인, 인프라(물리서버) 등등 팀이 명확하게 구분되어 있고 그 팀은 그 팀이 맡은 역할만 하는 구조

장점

  • 고용이 쉽다 - 한가지만 잘하는 사람을 뽑아도 되니까 + 개인의 능력을 측정하기도 쉬우니까 인사고과도 쉽다
  • 지금 서비스의 유지보수가 아니라 새로운 큰 서비스를 런칭한다는 등의 큰 프로젝트에는 목표가 팀마다 같기 때문에 효율적으로 운용된다 - 큰 프로젝트의 경우 효율적이다

단점

  • Silo Effect : 약간 팀 간 서로의 사정을 모르니까 서로간 사이가 안좋아지고 소통이 잘 안될 수가 있다 - 단합이되는게 아니고 서로 이기적 관계가 될 수 있다 - 작은 유지보수의 경우 비효율적이다

Product-based Team(Agile Organization)

  • 팀을 기능 위주로 구성하는게 아닌 서비스 위주로 구성하는 것
  • Product Owner : 더 나은 서비스가 되기 위해서는 어떤것들이 필요한지 등등의 생각을 하는 사람
  • Dev Manager : 스크럼 마스터. 애자일 팀 안에서 애자일 사이클이 잘 돌아갈 수 있도록 관리해주는 역할
  • 이런 사람들하고 개발자, 디자이너, DBA, 인프라 전문가 들이 하나의 서비스를 위해 다 같이 모여서 일하는 구조
  • 하나의 서비스를 일으키기 위해 다같이 모여서 단합하는 분위기이다
  • 물론 개인의 주 업무는 있지만 이것만 하는게 아니고 디자이너가 html도 가능하면 이사람도 같이 돕던가 하는 식으로 다양한 업무를 겸직하게 된다
  • 이런 주 업무가 아닌 일을 soft skill라고 하는데 이런 스킬의 역량이 필요하다는 점에서 고용, 능력측정 등이 어려운 면이 있다
  • 그리고 다른 서비스 팀과는 여전히 단절되어 silo effect가 아예 없어지지는 않는다

Cloud Computing

  • 컴퓨터를 필요한 만큼 쓰고, 사용한 만큼 돈내는 구조
  • 여기서 컴퓨터는 물리적 컴퓨터가 아니고 가상의 컴퓨터를 말한다

종류

  • Infrastructure - Iaas : 컴퓨터만 띡 주는거 - 환경은 내가 다 설정해야 된다
  • 개발환경까지 다 제공해주는거
  • SaaS : 완성된 서비스를 하나 제공하는거 - 웹메일같은거

장점

  • Agility : 리소스를 세팅하기가 쉽고 안쓰는거 지우기도 편하다?
  • Elasticity : 스케일링이 쉽고 빠르다
  • Cost : (잘만 사용하면) - 가격을 절감할 수 있다
  • Deploy globally : 서비스를 개시하는데 물리적 지역의 제약이 없다 - 미국서버를 열라면 미국에 가야되는데 클라우드를 이용하면 그럴리가 없다