5.1 약간의 역사
90년대 인터넷 혁명이 막 시작되었을 때, 인터넷 서비스를 어떻게 제대로 개발해야 할지 아무도 몰랐어. 모든 기능이 사용자에게 바로 제공됐고, 이 접근 방식은 기존의 소프트웨어 개발과 많이 달랐어.
당시 가장 큰 검색 엔진이었던 Yahoo는 할리우드에서 접근 방식을 차용하기로 하고, 매니저를 프로듀서라고 불렀어 :) 당연히 그들은 실패했지.
이건 흥미로워. Yahoo는 다른 회사를 인수하는 데 있어서 가장 큰 실패자야. 한때 Google과 Facebook을 몇 차례나 인수하라는 제안을 받았지만, 결국 그들의 경력이 저물어가는 시기에 Microsoft가 400억 달러에 그들을 인수하려 했지만 다시 거절했어. 몇 년 후, 그들은 겨우 30억 달러에 인수되었어. 90년대 전성기 시절 Yahoo는 2000억 달러로 평가됐고, 만약 Google을 인수했더라면 오늘날 그들의 가치는 몇 조에 이를 수도 있었을 거야. Yahoo처럼 되지 마.
인터넷 혁명 이후, 수십 가지의 다양한 소프트웨어 개발 방법이 시험되었고, 지금은 상황이 안정화되었어. 표준 역할, 표준 과정, 표준 소프트웨어가 존재해.
학습 과정을 통해 현대 IT 회사에서 일할 때 필요한 모든 것을 배우게 될 거야, 현대 개발 도구와 함께.
5.2 제품 팀
일반적인 개발 팀은 다음과 같이 구성돼:
-
어떤 기능과 특성이 제품에 있어야 하는지 결정하는 사람들
- Product Owner
- Business Analyst
-
제품이 어떻게 보일지 결정하는 사람들
- UI Designer
- UX Designer
-
모든 것을 구현하는 개발자들
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
-
제품의 질 좋은 작동을 책임지는 사람들
- QA Automation
- DevOps
Product Owner는 소프트웨어 개발에서 제품을 관리하고 팀이 가장 중요한 작업에 집중하도록 하여 중요한 역할을 해. 그는 제품의 비전을 정하고, 작업 목록(backlog)을 작성하고 우선순위를 매기며, 각 개발 단계가 비즈니스 목표와 사용자 요구에 최대한 부합하도록 보장해.
UX Designer는 사용하기 편리하고 효율적인 제품 인터페이스를 만드는 일을 해. 이는 사용자 요구를 연구하고, 프로토타입을 개발하고, 인터페이스를 테스트하는 것을 포함해. 이 작업은 제품과의 사용자 상호작용을 개선하여 최대한 이해하기 쉽고 편리하게 만드는 것을 목표로 해.
DevOps 전문가는 소프트웨어 개발과 운영 관리 프로세스를 최적화하여 제품 업데이트를 더 빠르고 쉽게 출시할 수 있도록 해. 그들의 작업은 시스템의 테스트 자동화, 배포 및 모니터링, 인프라 설정 및 지속적인 통합과 전달 (CI/CD) 보장 등을 포함해.
5.3 개발 팀
실제 개발은 프로그래머에 의해 이루어져. 그들은 대략 5가지 범주로 나눌 수 있어:
- Software Architect
- Backend Developer
- Frontend Developer
- Mobile Developer
- DBA
역할과 그 내용은 팀의 크기와 제품의 특성에 따라 달라질 수 있지만, 대략 이렇게 되어 있어:
Software Architect: 복잡한 소프트웨어 시스템의 아키텍처 설계를 담당해. Architect는 기술 인프라를 개발하고, 다양한 소프트웨어 제품 구성 요소의 구조와 상호작용 방법을 결정하며, 확장성, 성능, 보안을 보장해.
Backend Developer: 애플리케이션의 서버 측 개발을 전문으로 해. Backend Developer의 작업은 로직 구현, 데이터베이스 및 데이터 관리 시스템 통합, 사용자 요청 처리 및 프론트엔드와의 상호작용 유지 등을 포함해.
Frontend Developer: 웹 애플리케이션의 사용자 인터페이스를 개발해. 이 역할은 HTML, CSS, JavaScript 및 상호작용적이고 반응성 있는 인터페이스를 생성하기 위한 프레임워크와 라이브러리에 대한 지식을 요구해, 이는 제품과의 사용자 상호작용을 돕는 역할을 해.
Mobile Developer: 모바일 디바이스용 애플리케이션 개발을 담당해. Mobile Developer는 다양한 운영 체제(예: iOS 및 Android)를 위해 애플리케이션을 만들고, 플랫폼의 특성, 디바이스 성능 및 사용자 경험을 고려해.
DBA (Database Administrator): 데이터베이스의 관리, 가용성, 보안 및 최적화를 담당해. DBA는 데이터베이스 설정, 모니터링 및 유지보수 작업뿐만 아니라 백업 및 데이터 복구 전략 개발을 수행해.
GO TO FULL VERSION