본문 바로가기
비개발자의 개발 지식 스터디/개발 프로세스

제품 개발하기

by 열정주니어 2023. 7. 17.
반응형

제품 개발하기

  • IT 제품은 IT 서비스를 제공하기 위해서 만들어야 하는 웹, 앱, 서버 등 폭넓은 의미로 사용되므로 IT 회사에서는 서비스를 개발할 때 제품을 개발한다고 이야기 함

 

제품팀은 어떻게 구성될까

  • 일반적으로 제품팀은 PM 혹은 PO, 기획자, 디자이너, 개발자가 한 팀이 되어 활동함

  • PM은 Project Manager로 제품을 개발할 때 전반적으로 일정, 역할, 태스크 관리 등을 주도
  • 기획자는 서비스 기획을 담당
    • 예를 들어 친구초대 이벤트를 진행하기로 했다면 기획자는 간단한 화면 구성(프로토타입)을 그려보는 동시에 친구 초대의 정책도 같이 기획함
  • 디자이너는 UI/UX를 담당
    • 우리가 사용하는 모든 웹, 앱은 디자이너가 디자인한 화면을 개발자가 구현해놓은 결과물
  • 개발자는 제품팀에서 나온 기획과 디자인을 바탕으로 실제 제품을 구현

  • 요새 스타트업에서는 기획자 대신 PO, 디자이너, 개발자로 팀을 구성해 기획에 제품팀 모두가 참여하면서 각자의 역할을 주체적으로 부여하는 애자일 방식으로 진행
  • 보통 기획자, 디자이너는 개발자와 커뮤니케이션을 잘 하기 위해서는 개발용어를 아는 것 뿐만 아니라 배경지식들을 잘 이해하고 있어야 함

 

비즈니스 로직 개발하기

예시) 친구초대 기능 개발

  • 기획자가 친구초대 정책을 기획하고, 디자이너가 그에 맞춰 디자인을 작업

개발자가 개발하는 과정 1

  • 기획과 디자인이 어느정도 윤곽이 나오면 개발자도 코딩을 시작

  • 프론트엔드 개발자는 프로토타입을 보면서 화면의 전체적인 구성을 미리 설계
    • 프로토타입에서 "A페이지, B페이지 추가" 등의 정보들이 들어있으면 프론트엔드 개발자는 디자인이 나오기 전에 화면 구성, 간단한 기능들 구현을 먼저 진행
  • 백엔드 개발자는 기획을 토대로 데이터베이스와 API 서버를 개발
    • 친구 초대의 기능의 경우 회원가입한 유저는 어떤 친구를 통해 초대되었는지 데이터를 가지고 있어야 하므로 데이터베이스를 수정해야 함
    • 초대받은 친구가 가입했을 때 보상을 줘야 하므로 회원가입 관련 API 코드에 친구 초대관련 코드가 추가되야 함

프로토타입 예시

  • 프로토타입은 실제로 디자인 결과물이 나오기 전에 미리 전체적인 그림을 그려주는 역할
  • 위 사진처럼 실제 페이지 구성이 어떻게 되는지, 버튼을 누르면 어떻게 가는지 등 프로세스를 담고 있음

개발자가 개발하는 과정 2

  • 프론트엔드 개발자는 최종 디자인을 받아 구체적인 화면 구성 진행
    • 버튼, 텍스트, 이미지 등의 배치와 크기를 정하는 작업을 하고 백엔드 개발자가 개발한 API 정보를 받아서 사용
  • 백엔드 개발자는 개발한 API를 직접 사용하면서 문제가 없나 직접 테스트
    • 기획과 다른 방향으로 API 코드가 동작하는지 등을 확인
  • 실제로 회사마다 제품을 개발하는 프로세스가 조금씩 다를 수 있음

 

로그 수집

  • 보통 IT 제품에서 로그를 수집
    • 로그를 통해 이번 제품 개발이 성과가 있는지 측정할 수 있음
  • 프론트엔드 개발자는 '친구 초대 링크에 얼마 들어왔는지', '버튼을 얼마나 클릭했는지' 등의 유저 로그 수집
    • 유저 로그를 이용하여 유저들의 행동을 분석해서 더 나은 제품을 개발할 수 있음
  • 백엔드 개발자는 서버 관련 로그 수집 
    • 서버 로그를 이용하여 모니터링 할 수 있음

 

데이터 트래킹

  • 데이터 트래킹은 데이터를 추적하는 것을 의미
    • 사용자의 행동 데이터를 수치로 나타내기 위해서 구글 애널리틱스를 이용해 데이터를 수집하여 데이터베이스에 저장하는 것 
    • 일반적으로 유저들이 웹, 앱에서 행동하는 것을 로그 데이터 형태로 수집한 후 로그를 다루는 서버로 전송
    • 그래서 보통 제품 개발을 진행한 후 버튼 클릭, 페이지 진입 등 유저가 사용하는 특정 행동 리스트에 유저 로그를 수집할 수 있는 코드를 추가

 

테스트 코드 작성

  • 테스트 코드 작성 이유
    • 이 버튼이 눌렸을 때 API 호출을 잘 하는지, API 서버에서는 제대로 동작을 하는지 등 사람이 직접 사용하면서 문제점을 찾음
    • 이런 과정을 코드로 짜서 자동화 해놓으면 사람의 테스트 시간도 아낄 수 있고, 동시에 휴먼 에러(사람이 낼 수 있는 실수)도 줄일 수 있으므로 개발자들이 테스트 코드를 작성
    • 위 예시와 같이 친구 초대의 경우 "초대 링크로 가입을 했을 때 초대자가 무사히 포인트를 발급받았는지" 를 테스트 코드로 작성함
    • 테스트를 통과하면 친구 초대의 기능이 잘 동작한다는 것이고, 실패한다면 문제가 있다는 것이니 코드를 수정해야 함
  • 테스트 코드 종류
    • 기능 테스트 or E2E 테스트: 위와 같이 사용자의 관점에서 기능이 잘 작동하는지 확인하는 테스트
    • 단위 테스트: 개발자들이 짜놓은 코드의 작은 부분들(함수, 클래스 등)을 테스트하는 것
    • 테스트 커버리지: 테스트 코드가 얼마나 적용되어 있는지를 이야기하는 것

 

TDD

  • 테스트를 최우선으로 하는 개발 프로세스로 테스트를 먼저 작성해서 테스트를 통과하는 코드 위주로 개발하는 방법
    • 테스트가 있으므로 코드가 안정성이 있지만 개발하는 기간이 그만큼 길어지는 단점 존재

 

Reference

https://www.inflearn.com/course/it-%EA%B0%9C%EB%B0%9C%EC%A7%80%EC%8B%9D#

 

IT 회사에서 비개발자가 살아남기 위한 모든 개발 지식 A to Z - 인프런 | 강의

본 강의는 멤버십 구독 개념으로 한 번 구매하면 계속 추가되는 수업도 수강할 수 있습니다😃, [사진] 이 강의는!  단순히 개발 용어만을 알려주지 않습니다.IT 회사에서 개발자들이 실제로 하

www.inflearn.com

https://www.grabbing.me/IT-A-to-Z-By-1e1fbc981b7c4c03ac44943085ac8304

 

[IT 개발자와 일할 때 필요한 모든 개발지식] A to Z 자료 모음집 By 그랩

장담하건대 이 내용들만 알고 계시면 IT 개발의 전체적인 흐름은 전부 파악한다고 보셔도 무방합니다.

www.grabbing.me

 

반응형

'비개발자의 개발 지식 스터디 > 개발 프로세스' 카테고리의 다른 글

서비스 배포하기  (0) 2023.07.18
개발 코드 통합하기  (0) 2023.07.18