개발팀의 구성

honeybeeveloper·2022년 8월 16일
0

일반적인 개발팀은 어떻게 구성되어 있을까?

  • 기획자 (PM)
    Product Manager. 개발하고자 하는 서비스를 정의하고 기획하는 역할을 담당하는 직군.
    개발하려는 시스템이 주는 가치 정의부터 세세한 기능들의 기획 및 정의를 구현하고 지속적으로 고객들과 커뮤니케이션 하면서 기능들의 정의와 기획을 발전시켜 나가는 역할.
    선택사항이지만 뛰어난 PM이 되려면 개발 프로세스와 자세한 개발 사항을 이해하고 지시, 가이드 할 수 있는 개발기술이 있으면 좋다.

  • 디자이너
    일반적으로 웹 시스템 개발에서 UI(User Interface) 및 UX(User Experence)를 구현하는 역할을 담당하는 직군.
    사용자가 서비스를 잘 사용할 수 있도록 디자인하는 역할.

  • 프론트엔드 개발자
    프론트엔드 시스템의 UI, UX를 구현하는 역할을 담당하는 직군.

  • 백엔드 개발자
    백엔드 시스템은 크게 2가지 분야로 나눌 수 있는데, API 개발을 담당하는 개발자 그리고 데이터 수집, 분석, 관리 등의 데이터 관련 시스템을 담당하는 개발자로 나눌 수 있다.
    두 분야는 많이 다르며 요구되는 기술이나 능력도 차이가 있다. 주로 데이터를 처리하고 분석하는 시스템 구현이 API 구현보다 난이도가 높다. 따라서 경력과 경험이 많은 백엔드 개발자들이 주로 담당한다.

  • 데브옵스 (DevOps)
    Development Operation. 개발 분야에서 나타나는 일종의 추세. 개발자가 시스템 개발뿐 만 아니라 시스템 운영까지 담당하는 것을 의미한다.
    클라우드 서비스가 발달하면서 실제 서버 하드웨어를 다루지 않게 되고 자연스럽에 시스템 운영 담당자 없이 개발자들이 직접 시스템 인프라스트럭처를 구현하는 추세이다.
    또한 시스템 운영뿐 만 아니라 빌드, 테스트, 배포 등 개발에서 배포되기까지의 과정을 자동화하여 전체적인 개발 사이클을 효율적으로 더 빨리 진행될 수 있는 개발 환경을 구축하는 역할도 담당한다.
    최근에는 IAC(Infrastructure As Code) 개념의 발달로 서버 환경 설정부터 전체적인 시스템 인프라스트럭처 구현 및 관리까지 자동화가 가능하다.
    개발자라면 개발 능력과 함께 반드시 데브옵스 능력도 키우는 것이 좋다.

  • 풀스택 개발자
    프론트엔드 개발과 백엔드 개발 둘 다 가능한 개발자.

  • 시스옵스 (SysOps)
    시스템 인프라스트럭처(System Infrastructure)의 구현과 관리 및 운영을 담당하는 직군. 실제 하드웨어를 다룬다. 서버를 직접 설치하고 운영하며 그 외 물리적인 네트워크 구축 및 운영 등 시스템 인프라스트럭처 운영에 필요한 모든 부분을 담당한다.
    클라우드 서비스가 대세가 되면서 수요가 감소하고 있다.

  • 데이터 사이언티스트 (Data Scientist)
    데이터 분석에 필요한 알고리즘과 모델링의 구현을 담당하는 직군.
    많은 양의 데이터를 분석하고 그 속에서 새로운 가치를 도출할 수 있는 데이터 사이언티스트의 수요가 증가하고 있다.

  • 데이터 엔지니어 (Data Engineer)
    데이터 사이언티스트가 데이터를 분석할 수 있도록 데이터를 정리하고 정석화시키는 시스템을 구현하는 직군.

  • 테스터 (Tester)
    시스템을 테스트하여 검증하는 역할을 담당하는 직군.
    테스터는 크게 2가지 역할로 나눌 수 있는데, 하나는 QA(Quality Assurance)로 직접 손으로 테스트하는 매뉴얼 테스팅을 담당한다. 다른 하나는 테스트 자동화 시스템을 구현하는 테스터(Software Engineer in Test)들이다.





내가 이제 까지 해 온 역할은 무엇이고, 앞으로 하고 싶은 역할은 무엇인가?

참고 : 책 <깔끔한 파이썬 탄탄한 백엔드>

profile
꿀벌같은 개발자가 되고 싶습니다.

0개의 댓글