내배캠15일차_map() reduce() fold()

1. dart 함수형 프로그래밍 복습


1] map()


map()을 사용해서 새로운 리스트를 만들어내기.
파라미터 'x'를 사용하여 멤버 이름 앞에 블랙핑크를 앞에 붙여준 
newBlackPink, newBlackPink2를 만들었다. 
newBlackPink, newBlackPink2는 표현은 같지만 서로 다른 리스트임을 알 수 있다.



연속된 숫자를 split(' ')으로 분리한 뒤, x.jpg형태로 map() 적용.
toList()를 통해 리스트 형태로 도출한다.



컬렉션 Map에서 key값과 value값 따로 map()을 통해 리스트 형태로 만들기 



컬렉션 Set (중복허용)도 map()을 통해 리스트화, 다시 toSet()으로 만들어준 것.





2] reduce()



reduce()를 통해 리스트 numbers 내의 숫자의 합계 구하기.



최고 점수 학생을 구하는 과정. 심화과제 도전문제 기능 중 하나.




1) 합계 
var total = numbers.reduce((a,b) => a+b);

2) 최댓값
var max = numbers.reduce((a,b) => a > b ? a : b
var topStudent = student.reduce((a,b) => a['score'] > b['score'] ? a : b (최고점 학생찾기)

3) 최솟값
var min = numbers.reduce((a,b) =>a < b ? a : b

4) 곱셈 누적
var product = numbers.reduce((a,b) => a * b

5) 문자열 합치기
var text = words.reduce((a,b) => '$a $b');





3] fold()

fold()는 매개변수 2개 필요, 첫번째 매개변수는 초기값을 할당한다. 

int 초기값 0, String 초기값 ' ' 

final count(int)처럼 처음 컬렉션 타입(String)과 다른 타입의 결과값을 도출할 수 있음.  



4] cascading 


두 개의 리스트 합치기, [...리스트1, ...리스트2]
... : cascading operator 라고 한다.



2. 인사이트 아티클

내 사업 잘될지 궁금하면, 엄마를 찾아라

https://eopla.net/magazines/34825#


좋은 고객 인터뷰 기준

아이디어 대신 고객의 삶을 묻는다.

가정 대신 과거 경험을 묻는다.

칭찬이 아닌 증거를 찾는다.

시장 검증 실험이 되어야 한다.



고객 인터뷰에서 꼭 물어야 할 다섯가지 질문

1) 이 문제를 겪을 때 가장 힘든 점은 무엇이었나요?

2) 마지막으로 이 문제를 겪은 건 언제였나요?

3) 그 상황이 왜 힘들었나요?

4) 이 문제를 해결하기 위해 어떤 방법을 시도해 보셨나요?

5) 기존에 사용했던 해결책 중 무엇이 마음에 들지 않았나요?



처음 만든 시제품을 누구에게 보여줘야 할까?

1) 이 문제가 지금 돈으로 얼마나 큰 비용을 발생시키는가?

2) 문제를 얼마나 자주 겪는가?

3) 문제를 해결할 권한과 예산을 가진 사람인가?

세 가지가 겹치는 지점이 최적의 첫 고객이자, 제품의 초기 파트너가 될 수 있다.



스타트업에서 해야할 일 2가지

제품을 만들고,

고객과 이야기 하는 것.



시장검증을 위해 미리 인터뷰에 대한 계획과 전략이 필요하다고 생각하며 보게 된 아티클.

최소 20명 이상, 고객의 의견은 많을 수록 좋다고 들었다.

문제를 찾을 때도, 솔루션을 찾을 때도 사람들과 자연스럽게 대화를 나누며

그들이, 혹은 나부터 겪는 불편함은 무엇인지 찾는 습관을 들여야겠다.





댓글

이 블로그의 인기 게시물

내배캠16일차_Flutter_스토어 앱 만들기

내배캠 [3주차 WIL]