TIL

241029 TIL

247wd 2024. 10. 29. 21:15

아티클 읽기티클 읽기

https://maily.so/founderstory/posts/1gz2kl25z3q

 

26살에 연매출 9000억을 만든 세계 1위 유튜버가 팀을 운영하는 방법

팀원들에게만 공개하는 문서가 유출되었습니다.

maily.so

Jimmy(미스터 비스트)
- 98년생
- 미국
- 유튜버 구독자 전체 1위, 3.24억명
- 연 매출 9,000억원

일하는이유
- 최고의 '유튜브 동영상'을 만든다는 것
- 할리우드가 아니다. 1년에 하나가 아닌, 1주일에 1개의 영상을 업로드하는 플랫폼이다

유튜브 핵심
- 클릭율(CTR), 평균 조회 시간(AVD), 평균 조회 비율(AVP)입니다
- 썸네일중 '50시간'과 '케첩+50시간'의 클릭율 차이
- 영상의 첫 1분에 가장 많은 사람들이 이탈한다. 그래서 여기에 가장 많은 신경을 써야한다

와우 팩터 (Wow Factor)
다른 크리에이터가 할 수 없는 일을 해야 합니다. 

끝까지 보게 되는 구조
영상 마지막에 사용자들이 보상을 받을 수 있는 구조를 만들어야 해요. 

우리는 A급 플레이어와만 일합니다
리 회사에는 A급 플레이어를 위한 자리만 있습니다. 집착이 강하고, 실수로부터 배우고, 똑똑하고, 변명하지 않고, 유튜브의 가치를 믿는 사람들이요.

마감 기한을 똑똑하게 지켜내세요
상대의 눈을 똑바로 보고 너가 지금 우리 작업의 병목 현상이라고 말할 수 있어야 해요.

가장 중요한 일이 무엇인지 파악하세요
다른 어떤 것도 우선순위 1번보다 중요하게 생각하지 마세요.

창의적으로 생각하면 비용을 절감할 수 있습니다
2000만원 vs 1년치 도리토스

안된다는 말을 듣고 바로 포기하지 마세요
 한 사람이 안된다고 했다고 해서 멈추지 마세요. 당신이 생각할 수 있는 모든 옵션이 소진되어 더이상 할 수 있는 게 없다고 느껴질 때 멈추세요.

어떤 컨텐츠를 볼 것인지 신중하게 생각하세요
작가나 감독이라면, 어떤 음식을 먹을지 관리하는 것처럼 어떤 컨텐츠를 소비할 지 완벽하게 관리해야 할 겁니다. 지난 3년 동안 경제 뉴스만 봐 왔던 사람은 코미디언처럼 웃기기 힘들 거예요.


좋은 컨텐츠를 만들 수 있는 방법에는 한계가 없습니다
제가 말하고자 하는 건 아기 인형처럼 단순한 소재로도 무궁무진한 컨텐츠를 만들 수 있다는 것입니다.

야망이 있다면, 가장 일하기 좋은 회사일 거예요
저는 돈을 쌓아두는 것에 관심이 없습니다. 이 비즈니스가 성장하는 걸 도와준 사람들에게 보답하는 것을 중요하게 생각해요.

==========================

 

창업 아이디어
1. 최고의 '앱'을 만드는 것
 - 데스크탑이 아닌 스마트폰에서 구동되는 최고의 앱을 만들자

2. 단운로드, 첫 1분간 유저경험, 평균 사용 시간을 늘리자

3. 와우팩터, 다른 앱들이 할 수 없는 일을 해내자

4. 모든 기능을 사용할 수 있게 해보자

5. 단순한 아이디어로도 무궁무진한 앱을 만들수 있다.

6. A급 동료와 일하자

7. 어떤 앱을 사용할지 신중하게 생각해보자

8. 야망을 가지자

9. 일한 시간이 중요하지 않다. 결과와 스피드가 중요하다

10. 앱 이름과 홍보물과 내용물이 일치해야하는 이유

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

북클럽 리마인드 - 김우현 매니저

CH 2 앱비즈니스분석 주차

- 앱비지니스 분석 주차
- 공공배달 앱 서비스
- 다음주부터 창업 시작

다음주 예고) **CH 3  아이디에이션 주차는** 

- 개발 : 문법 심화를 배우는 시간입니다.
- 창업 : 창업 트랙의 다른 수강생들을 만나보면서 아이디어를 발산해보고, 함께할 분들을 찾아보는 시간입니다.

앱 서비스가 실패하는 대표적인 원인 4가지
-고객의 문제 해결에 도움이 안돼서 (good VS must)
-시장이 크지 않아서
-성능과 기능의 부족
-부실한 마케팅 전략

팀노션 페이지 작성 필요, 제출 필요
팀 스크럼 통해서 부진/ 실패한 앱 서비스 리서치

아침 4시간, 오후 4시간, 저녁 2시간
총 10시간 + 점심저녁 2시간

ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

형변환 함수 (Type Casting Function)
1. toString()

2. int.parse('')
   int.tryParse(’’)

3. double.parse('')
   double.tryParse(’’)

4. toList()
특정 Collection 타입의 값을 List 타입으로 변환한 값을 반환해요.

5. toSet()
특정 Collection 타입의 값을 Set 타입으로 변환한 값을 반환해요.
Map 에는 적용하지 못 한답니다 ㅜㅜ

6. asMap()
특정 Collection 타입의 값을 Map 타입으로 변환한 값을 반환해요.
List 의 Index 가 Map 의 키로, List 의 값이 Map 의 값으로 할당돼요.
Set 은 Index 가 없기 때문에 Set 에는 적용하지 못 한답니다 ㅜㅜ

Set<String> fruitSet = {'사과', '오렌지', '수박'};
var fruitList = fruitSet.toList();
var fruitMap = fruitList.asMap();
print(fruitMap); // {0: 사과, 1: 오렌지, 2: 수박}


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ

 

고차 함수 (Higher-order Function)
함수를 다루는 함수
Collection 타입의 데이터에 있는 요소를 처리하거나 변환할 때 사용해요.


1. map()
매핑한다 개념
Collection 타입인 데이터의 각 요소에 특정 함수를 적용한 새로운 Collection 타입의 데이터를 반환해요.

map(([매개변수]) { return [매개변수에 적용할 동작] });

map(([매개변수]) => [매개변수에 적용할 동작] );

2. where()
Collection 타입의 데이터에 있는 각 요소들을 특정 조건에 넣었을 때, 참인 요소들만 필터링한 새로운 Collection 타입의 데이터를 반환해요.

where(([매개변수]) { return [조건식] });

참고로, isEven 은 짝수면 true 를, 홀수면 false 를 반환해요.
number.isEven 은 number % 2 == 0 와 같다고 보면 돼요 🙂

where(([매개변수]) => [조건식] );

원본 데이터를 직접 가공하지 않고, 특정 함수를 적용한 새로운 데이터를 반환해요.

3. firstWhere()
Collection 타입의 데이터에 있는 각 요소들을 특정 조건에 넣었을 때
참인 요소들 중 첫번째 요소를 반환해요.

원본 데이터를 직접 가공하지 않고, 특정 함수를 적용한 새로운 데이터를 반환해요.

조건식이 참인 요소가 없는 경우에는 오류가 발생해요 🚨

List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var result = numbers.firstWhere((number) {
  return number > 10;
});
print(result); // StateError

4. lastWhere()
Collection 타입의 데이터에 있는 각 요소들을 특정 조건에 넣었을 때, 참인 요소들 중 마지막 요소를 반환해요.

lastWhere(([매개변수]) { return [조건식] });

lastWhere(([매개변수]) => [조건식] );

5. reduce()
Collection 타입의 데이터에 있는 요소들을 하나의 값으로 결합해요.

reduce(([매개변수1], [매개변수2]) { return [적용할 동작] });

reduce(([매개변수1], [매개변수2]) => [적용할 동작] );

List<int> numbers = [1, 2, 3, 4, 5];
int result = numbers.reduce((a, b) {
  print('a : $a');
  print('b : $b');
  print('a + b : ${a + b}');
  print('----------------------');
  return a + b;
});
print('result : $result');

/*
a : 1
b : 2
a + b : 3
----------------------
a : 3
b : 3
a + b : 6
----------------------
a : 6
b : 4
a + b : 10
----------------------
a : 10
b : 5
a + b : 15
----------------------
result : 15
*/

6. fold()
Collection 타입의 데이터에 있는 요소들을 하나의 값으로 결합해요.
오잉 ? 그럼 reduce() 랑 같은건가요 ? 🤔

fold(초기값, ([매개변수1], [매개변수2]) { return [적용할 동작] });

fold(초기값, ([매개변수1], [매개변수2]) => [적용할 동작] );

fold와 reduce의 차이에 대해 알아야 한다


7. any()
Collection 타입의 데이터에 있는 요소 중 하나라도 주어진 조건을 만족하면 true 를 반환해요.

8. every()
Collection 타입의 데이터에 있는 모든 요소가 주어진 조건을 만족하면 true 를 반환해요.


9. takeWhile()
Collection 타입의 데이터에 있는 요소들을 주어진 조건에 넣었을 때 참이 되는 동안은 해당 요소들을 반환하고, 조건이 처음으로 거짓이 되는 순간부터의 요소들은 모두 무시해요.

takeWhile(([매개변수]) { return [조건식] });


takeWhile(([매개변수]) => [조건식] );

10. skipWhile()
Collection 타입의 데이터에 있는 요소들을 주어진 조건에 넣었을 때, 참이 되는 동안은 해당 요소들을 건너뛰고, 조건이 처음으로 거짓이 되는 순간부터의 요소들을 모두 반환해요.

takeWhile(([매개변수]) { return [조건식] });

takeWhile(([매개변수]) => [조건식] );

 


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
지금까지 배운 함수들을 가지고 메서드 체이닝 방식으로 함수형 프로그래밍 을 해봅시다 💪🏻

1. map() + where()

List<int> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var result = numbers
  .map((number) => number * 2)
  .where((number) => number > 5);
print(result); // (6, 8, 10, 12, 14, 16, 18, 20)

2. where() + reduce()


3. where() + map() + fold()


ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ


'TIL' 카테고리의 다른 글

241024~31 WIL  (1) 2024.10.31
241030 TIL  (0) 2024.10.31
241028 TIL  (5) 2024.10.28
241021~25 WIL  (0) 2024.10.25
241025 TIL  (3) 2024.10.25