Wecode - Project 2 (부트캠프)/Project 2 kick off

Project 2 - Kick off : Business Modeling (Product+ing) 경래 멘토님 세션

JBS 12 2023. 9. 26. 18:17

Product +ing

= 비전공자 개발자 배출하면서 위코드에서 만든 신입 소프트웨어 엔지니어가 전달 받고자 하는 철학, 가치관 

= “Business Modeling” 

 

MVP 

Branding 


고려요소 

  1. 제품 Product
  2. 고객 End-User 
  3. 기술 Tech 

 = PET  (암기하기 편하게, 개발자의 애완동물처럼 생각 ) 

 

<거시적 관점>

  • 어떤 타겟 고객층를 위해, 
  • 어떤 가치를 제공하고자 기술력을 도입 
  • 존재론적인 가치를 물어보셔야 한다. 나는 이 회사에 왜 필요하지? 나는 주니어 개발자로서 왜 이런 상품ㅇ르 개발하지? 

 

<미시적 관점>

  • Git hub, pull request.md 에 나온 것. 
  • SI 개발자들보다도 못한 개발을 한 것 
  • 개개인이 작성하는 개발 티켓, 개발 pull request 올리는데, 궁극적으로 해당 제품과 고객에게 어떤 기대효과로 다가가게 되는지 
  • 하루하루 할당된 티켓 처리하는 앵무새가 되는 것. C 레벨은 커녕, 매너리즘 번아웃에 빠짐. 

원래 잘하고 있던 걸 생각하게 됨. 나 이거 왜 됐지 ?하고. 왜냐면 원래 잘하고 있던 건, 어린시절부터 탄탄하게 쌓아 올렸으니. 근데 개발자로 직업 전환이, 개발자 커리어의 잣대가 탄탄하지 않는다면, 

30만 개발자, 얼어붙은 채용시장 시대에, 

 


 (면접에서도 고려 요소)

1. Product

1-1. 웹 개발자가 다루는 제품이란? 

돈을 받으면서 회사에 기술력을 받으며 만드는 웹개발 제품은? 

 

수익창출은 회사가 원하는 것 중 하나일 뿐..

 

Ex. 배달 -> 쿠팡/ 배민 

-> 개발 플랫폼으로 어떤 걸 전달하고 싶을까> 

 

편의성, 

고객에게 ‘어떤' 제품적 가치전달하고 싶을까? = 배달 플랫폼은 무엇을 판매한다 

시간을 판매한다. 

 

식사 설거지 기회비용을 생각해서 시키는 것. 

 

본질은 시간 판매. 

 

우아한 형제 개발자라면, 어떻게 하면 고객들에게 시간을 잘 팔게 생각해야겠네. 

-> 저는 배민 많이 써서 배달 음식 좋아해서 지원 (서탈) 

Key 핵심 코어 value를 파악해야 함. 

 

웹 개발자의제품 -> 편리성, 업무의 효율성 개선 시켜주는 도우미 제품이 많다. 

 

Ex.클라우드 서비스 없을 떄, 

Usb 들고 하드 들고 다님

-> 구글 drive, icloud drive, naver cloud 씀. 내가 어느 곳에 있든. 

 

그럼 그걸 개발하는 개발자들은> 어떠헥 하면 더 높은 용량의 서비스를 고객들이 사용할 수 잇ㅇ르지 고민

고객들만의 분류를 어덯게 하게 할 수 잇을까

제품, 가치에 대한 공감 일으킴.

 

숙제: 핸드폰 열어보면 나도 모르게 정말 많이 들어갓던 웹 앱 서비스 

-> 고객 관점에ㅓㅅ 왜 사용? 뭘 구매? 곱씹어보기 

 

제품의 목적: 범죄율 하락? 등 어떤 기능이 있는지

배달의민족-> 문화가 바뀜. 10년 전 배달 문화와 지금의 문화로 보면 식도락, 삶의 변화 (한강, 홈파티) 

 

이런걸 생각하며 ,스스로를 아껴줘야 

 

1-2. 제품을 대할 때 어떤 관점? 

 

철학과 가치관을, 

 

채팅 앱 서비스 개발하는 서비스 -> 그 서비스의 철학과 비젼을 고민해서 -> 내가 어떻게 add on 할 수 있을까?

제품을 대할 때는 끊인 없는 철학과 ownership을 기반으로, 그 제품을 내 자식처럼 아껴야 함= 프로페셔널리즘, 장인 정신 (잘나가는 개발자를 나뉘는 것) 



1-3. 우리 제품의 매출 발생 원리는?

영리성을 띄어야 함 

돈을 벌어야 함. 

 

이 서비스 제품의 매출 발생 원리를 알아야 함. 

 

내가 쓴 코드가 어떠한 캐쉬플로우를 통해 나에게 돌아오는지 사고. 

 

제품ㅇ르 통해서, 우리 제품이 더 올바른 수익성 구조를 띠기 위해서, 

동반 성장에 도움 주기 위해서, 

지금 맡은 pr 티켓에 우선순위에 따라 지금 당장 처리하겠금. 

 

Task, action item 처리하는 모든 것을 판단하는 기준 

 

입사할 회사에서 파악해야 함. 


2. End-User

2-1. Customer vs End-User 

  •  Customer : 돈을 지불해서 제품 사용
  • End-User: 돈을 지불하지 않든, 제품을 사용하는

 

Ex. 한 사람은 customer 이자 end user일 수 

Customer 아닌데 enduser일 수도 있고

Customer 인데 enduser 가 아닐 수



돈을 지불했지만 그 제품 사용하지 않기도 함. →입사 시 컴퓨터에 계약된 모든 microsoft word 깔려 있음. 그것의 customer 회사, enduser는 나

그렇다면 개발자는, customer를 고려해야 할까, end-user를 고려해야 할까?

end -user! 

사용성에 입각한 고민

 

다른 사람은 비즈니스에 대한 고민만 할 때에,

비즈니스 고민 + 사용성 (고객 니즈)

 

2-2. 누가 언제, 왜 사용하는가? 

 

B2C 세븐일레븐- 고객

B2B 위코드와 모두싸인, 이마트에 수주하는 과자회사

 

Inter ; 외부고객과 마주하는

Intra: 국방망 내부 통신망 (내부 고객을 위한 앱) → admin 페이지/ 외주가 아닌, 회사 내부 직원들이 사용하는 직원들을 위한 앱 



2-3. 개발자가 필요한 최소한의 고객 전략? 

  1. 고객 분석
  2.  고객 경험 
  3. 고객 니즈 
  4. 문제 해결 
  5. 가치 창출 



에어비엔비 bed and breadkfast

  • 소파 빌려주던 서비스 
  • 컴공러 오기 전에, 컨퍼런스 지역 축제 열린 날, 그때 그 지역에 과도하게 많은 투숙객 > 그 지역 호텔으로는 숙박 수요로는 감당 안되니> 집에 남는 소파로 하자 

 

우버 탄생

  • 크리스마스 이브, 밤에 

 

사용자는 우리의 웹 서비스를 왜 사용하고 있을까?

  • 당근마켓 왜 쓰고 있는거지? -> 당근 하면 당근마켓 생각나게 하는게,(생활쓰레기 줄여주고, 생활 커뮤니티를 만들어주고) -> 당근마켓에서 당근으로 바꾼 것도 pivoting, 이젠 서비스 확장 -> 그럼 백엔드 인프라 서비스 팀은 무엇을 하고 있겠구나 예상. 개발자 시선에서 분석할 수 있는 분석력 가져야 함 -> 그 방법. 사용자는 우리의 서비스를 왜 사용? 
  • 구글 캘린더 왜 쓰고 있는거지? 고민해야 나의 코드가 가치 있을 수
  • 배달의 민족 왜 쓰고 있는거지? 



당근마켓에서 당근으로 바꾼 것도 pivoting, 이젠 서비스 확장 -> 그럼 백엔드 인프라 서비스 팀은 무엇을 하고 있겠구나 예상. 개발자 시선에서 분석할 수 있는 분석력 가져야 함 -> 그 방법은, 1. 사용자는 우리의 서비스를 왜 사용? 

 

2. 고객의 동선 파악

훨씬 유연하고 편리한 동선과 사용 흐름을 위한 기술적 고민과 개발 

이게 개발자 주니어의 시작

 

CTO 는 누구를 마주? CEO, COO, CFO 등 각각의 전문가들과 마주하는데,

그들과 동일한 지식의 수준에서 얘기할 수 없다면, 

그 ㅈ격아 안된다느 것

제품 개발과 동시에 무엇을 공부하고 성장할지를 병행 구조로 가져가야.

 

Unelss, 한날한시에 쓰임 받고 버려지는 개발자. 

 

우리는 나이 들면 어쩔 수 없이 리더의 자리에서 올라가는데, 

 

리더 안해, 나 팔로워만 해 = 사회에서 도태 될 것. 

전략적으로 발전해나가야 하는데, 

 

CTO는 수많은 C레벨에 어깨를 나란히 하는 사람들인데, 내 존재와 철학 가치를 말할 수 없다면 임원회의에서 까이겠죠. 그러면 까라면 까 가되고, 이러헥 되면 안되는데도 이렇게 가야만 하는 . 자괴감 

그렇기에 이 철학은 주니어 레벨부터 끊임 없이 차곡차곡 쌓아 나가야 함. 

 


3. 기술 

 3-1. 우리가 사용한 기술 스택과 각 스택별 버전은 어덯게 되는가?

 

지금은 가장 최신 버전으로, long term version 을 npm으로 무지성으로 다운하는데,

회사에서는 그 버전도 고려하면서 다운 받을 것. 

 

억지로 다운그레이드, 업그레이드를 선택ㄷ적으로 할 것. 

 

초기 환경 세팅 시, 섬세하고 첨예하게 관리해야 함. Unelss, 수습기간 통과를 못 할 것. 

초기 횐경은 굉장히 기본이라. 

 

집에서 독학 < 부트캠프를 조금이라도 뽑는 이유는, 이러한 철학을 경험했을 것이라. 

 

그 이점을 활용

 

3-2. 우리 회사의 비즈니스 로직이 무엇인지 알아야, 어떻게 API에 녹여내는가? 

 

비즈니스 로직: (소스코드를 그려서 분기처리, 따져가면서, layer 층별 분리 -> 사용자 동선, 매출 원리를 알아야 함) 



빈 화이트 보드에 설계도를 그려낼 수 있어야 함. 

테크적으로 비즈니스 로직을 고민해야 

 

그 이후에 진행.

 

작은 스타트업은 pm이 없음. 투자 받아야 하니. 그럼 경영진이 짜는데 - 혼돈

→ 그럼 어떤 흐름으로 가고, 어떤 분기에서 빠져서, 어떻게 해서 매출로 흐르는지 해야 ㅎ는데,

이럴 때, 어떤 코드로 짜지 않았는데? 시행착오 겪을 것

 

그게 바로 2차 프로젝트 (고객 +제품)

 

3차때는 그것을 개선 

 

3-3. 기술 구현이 가장 효율적인 방법으로 이루어졌는가?

 

구조화 통해, 문법 바꾸고 싶은 경우, 

그것을 내려놓고 등한시 모른 채 = 장인 정신 없는 것

 

기술적으로 올바른 제품성을 기여하기 위해

우리 회사의 완성도를 위해서,”제가 주말에 좀더 봤는데, 그때 올린 코드 제가 refactoring 티켓 저에게 발급해도 될까요?” 



3-4. 코드의 확장성과 유지 보수성 고려되었는가?

아무렇게나 코드 쓰고 퇴사, 휴가 노노

내가 쓴 코드는 추후 입사할 주니어 개발자 등 모두가 쓴다

 

개발자는 남이 편하기 위해서 내가 힘든 직업

코드를 칠때 수고를 못 느낌ㄴ, 그 수고로움은 동료 개발자, 동료 비개발자, 고객에 간다

 


웹 프로그래밍 전략 생각

TTT 

DDD- Domain Driven - 내 Domain 전문가들과 비개발자들과 기획 ex. 토스 뱅크 샐러든느 통합 은행할때 우리는 금융당국과 각각의 은행에 어떤걸 필요하고, 



Test Driven  - 테스트가 주도하는 개발,

테스트 코드를 미리 짜놓고, 우리의 api가 이뤄낼 것을 알기에,

거기에 기반해서, 본격적으로 짜 내는 거 

 

제품을 만들고 테스트 후 제품 출시가 아니라, 

요즘 트렌드는, 테스트를 만들고 제품 출시



내가 지원하는 회사가 어떠한 전략을 지니고 활용하는지 

-우리회사는 TTT -> 그러면 섬세한 전략 _> 입사 지원 전략

  • 우리 회사는 DDD야 -> 고객 중심으로 생각 해서 입사 준비 전략

 

PR template / PRD를 쓸때” 이런 고민을 했다. “아직 시기 어린 사람이지만, 누가봐도 이 사람은 고민하면서 코드를 짰구나 알 수 있음, 

 



이게 되면 바로 이력서에 이동하면 되는 것



이력서 -> 리뷰 기능을 그 어떤 것보다 중요시 했구나 느껴짐




예시

 

어떤 기획과 현상은 개발자가 만드는 것. 

 

마켓컬리는 무엇을 판매한다? 

마켓컬리가 신선함을 판다.  → 새벽배송, 샛별 배송 생각나게 하는것도 신선함을 판매하기에 

(유통망 

 

아이디 치는데, 경고 메세지가 실시간으로 나옴. (예전만해도 모든 내용 다 기입 후, enter 쳐야만 확인 가능했는데, 쳤단 거 싹 사라져서 다시 기입해서 고객 이탈)

→ 프론트 엔드의 고민: 고객의 정보는 소중한데 왜 꼭 다 쳐야만 후행하는 기능일까? 

최소 기초 요구조건 (비번 아이디 조건) 을 실시간으로 전달한다면, 고객들이 더 편리함을 느끼지 않을까?

 

고객의 편리함으로 고객 유저 이탈. 

 

성별 - 선택 안함 (non- binary) 나를 그와 그녀로 지칭하지 마라. 

고객의 유입 전환 위해 (난 여기 못 들어가겠구나 하고) 

 

만약 내가 회사 운영하는데,큰 손실 

 

백엔드는 테이블 구조, erd 모델링 서비스에도 영향을 준다.

 

이런 것들이 내가 작성하는 코드에 영향을 준다는 것을 연쇄사고로 건너건너 알아야 




마켓컬리는 

간편 로그인이 없는 이유 → 고객의 정보를 자기 데이터베이스에 저장하고 싶어서. 

소셜 정보 로그인 하면, 네이버 / 카카오 데이터베이ㅡㅅapi를 거치게 되기 때무넹. 

 

간편 로그인을 통한

유저의 유입과 전환이 그러헥 필요하지 않기 때문에 

우리 서비스 이용자들은 재방문 의사가 많을 것이라는 자신이 잇어서, 

 

처음부터 내 데이터베이스에 저장하게 위해 

비즈니스 플로우 경험하게끔. 

 

이름도 모른느 스사트업이 내 정보를 갖고 잇으면 

데이터베이스 털리면 그럴텐데

마켓컬리는 기술력 자신 





마켓컬리의 필수 입력사항이 주소 -> 최후 아웃풋은 고객이 받는 제품 -> 배송지 입력 정보 

보통은 비회원 주문까지 열어주고, 배송지 입력을 결제할 떄 열어주는데

마켓 컬리의 필수입가결 정보는 배송지이다. 

 

데이터베이스 설계할 떄 주소입력잘르 null fasle로 하게 하는 이유. 




 

순서  -> 신선도 순

 

마켓컬리가 가장 자신 잇는, 고객에게 노출 시키고 싶은. 

보통은 채소 숨 죽으니 자신 없는데 

자신 잇기때문에 

먼저 내놓는 것. 

 

→ 백엔드는 이런 이유에서 erd 데이터베이스에 이렇게 저장하는구나 

→프론트: 어떻게 보일지 고민



 

항공 사진, 장바구니가 바로 옆에 잇음

밤에 주문해도 아침 밥상에 오려놓앗을 때 이런 느낌이구나를 

간접적으로 계속 주고 있음

 

마켓컬리 상세페이지 ->

장바구니로만 결제할 수 잇게 되어있음

장바구니/ 결제하기 이렇게 나와있는데,

 

 개별 상품에 대한 게 없음. 

기획자 고민, 백엔드/ 프론트가 한 것. 



마켓컬리는 고객으로 하게끔, 마트에서 카트에 담는 느낌을 주게 하려고 

온라인 매장에서 고객의 경험 줄게

장바구니 줄게 거기에 담아서 너네가 원하는 거 다 사 

그리고 최종 결제할때 가져가



하나만 구매하기엔 다른 건 뭐 없나 ? 생각하게 됨

배송비도 ㅣㅇㅆ으니,

다시한 번 고민하게 되고 

다시한번 상품리스트 한번에 확인할 수 잇게 하는게 장바구니 기능

 

내가 원한건 전복하나인데 절대 전복 하나르 ㄹ못사

무조건 장바구니 가서 해야 함



결제페이지도, 토큰을 열어야지만 나옴

산 거 다 나열해주면, 다시 합리적 사고 후 물건  뺄 수도 있음

 

그래서 프론트 엔드는 이런시긍로 토글 처리, ui 한 것



백엔드가 return으로  다 쐈겟지만, 프론트는 그걸 다 사용하지 않고 몇개만 올린 것



(카드 회사 개발자도 uxui로 신용카드 내역을 찾기 어렵게 꽁공 숨겨놓는다고. 

사람들이 자기가 얼마 쓴지도 모르고 긁게

카드 회사 매출이 리볼빙, 할부 나눠 갚기 이자니까. 그거 높음) 

 

제품성 고객성을 열심히 쓰고 , 블로그에 올리고, 이후 이력서에 복붙

자산과 경험의 축적

 

인사채용담당자 생각보다 엄격 잣대

우리 자사제품 이해,? 고객 이해? 제품 특징 기여? 

우리 특정 부서의 기능 이 잇는데 그 특징, 가치를 이해?

 

자바스크립트는 기깔나게 하는데, 제품/고객 고민 못하는 독학 경쟁자들과 우위 



기업협업 가자마자 채용됏던 분 -> pr sample 중 한명 보기 

 

주니어 개발자 10프로만 이 고민 할 것. 

나머지ㄴㄴ 리더 돼서 전달 받고 그제서야 ㅇㅇ 


Study kit >

 

로그인 회원가입/ 제품 /결제 / 주문 

4가지 꼭지가 없는 회사는 없음 

 

→ 평소 사용하는 웹서비스/ 앱 서비스를 고민할 것 -> 내가 자주 사용하는 구글 캘린더, 카카오 지도 

네이버 지도가 아닌, 아이폰 캘린더가 아닌 이거를 내가 사용하는 이유/ 뭐가 좋아서인지

  • 백엔드의 관점
  • 프론트 백엔드 공통의 관점에서 
  • 어떠한 문화 사회 변화 일으켰고, 어떤 이익을 줬는지