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

Project3: kick-off [좋은 설계란?] 세션 ; 소헌 멘토님

JBS 12 2023. 10. 9. 11:30

첫번째로 획기적인 게 계산기

 

손으로 계산 하던 걸 다 대체 



고객이 우리 제품의 가치, 의미 누를 수 있도록 -> 아이디어, 기획을 결과물을 완성 

3 요소 

  1. Product 
  2. End user
  3. Tech 

 

좋은 제품은 좋은 설계에서 나온다 

 

설계란?

System Design 

> 주어진 서비스의 시스템을 어떻게 설계할지 정의 

 

(소프트웨어에서의) 좋은 설계란? 

> 오늘 요구하는 기능을 온전히 수행, 

다음에 일어날 일들을 (내일의 변경을) 매끄럽게 변경(수용)할 수 있는 설계

 

  • 개발팀에서 기획팀에게 초기의 단계에 일어난 일을 변경하는 건 어렵, 뒷단 설계를 하는 (백엔드는 굉장히 flexible에게 구성하고, 앞단으로 갈 수록 미리 받은 요구사항에 맞춰서 수행)

설계 전략 

  • 방법론이 많이 개발됨 

DD : Driven Design /  Driven Development 

 

Test Driven Development :

통과할 수 있게 test code만 미리 다 짜놓는  (코드는 알아서 짜. 결과가 먼저 만들어져서, 개발의 flexibility는 떨어짐) 

  • 백엔드 개발자가 안에 어떻게 만들어놓았는지는 모르겠는데, 누르면 나와 
  • 프론트: ui test 자동화는 버튼을 눌러봐, 안에 어떻게 코드 짰는지 모르겠지만 status 가 나와 
  • 결과물이 변하면 안돼,무조건 똑같이 나와야 해 라는 회사에선 TDD로. 

 

Behavior Driven Design 

  • 사용자의 행동 중심으로 개발 
  • 유저가 편하게 

Domain Driven Design 

  • 도메인 기반
  • 에듀 테크면 교육업 최적화, 커머스 도메인이면 제품 구매 결제에 큰 어려움이 없도록 커머스 시스템에 맞춰서 설계 

 


좋은 설계는 어떻게 제품에 영향을 끼치는가

  • 사용자 경험 | User Experience: 속도, ui 배치에서 달라질 수 있어서 (더 핫한 ui라고 해서 좋은 게 아님, 고객 연령대에 따라)
  • 팀 협업 | Team Collaboration ; 문서 수정하면, 원본 파일이 생겨서 협업 속도 올라감. 계획을 같이 짜고 문서 만드는 것 -> 결국 시간 절약
  • 비용절감 | Cost Efficiency
  • 기술 선택 | Choice of Tech Stack 
  • 확장성 
  • 유지 보수 | Maintenance
  • 무엇을, 어떻게 설계할 수 있을까?



비즈니스 목표에 맞춰서 잘 가야 함. 방향성!