점근적 분석
서비스 개발에서 원하는 정보를 신속하게 찾는일은 매우 중요
어떤 데이터 구조, 알고리즘도 모든 비즈니스 상황에서 최적의 성능을 제공하지 못함
알고리즘이 최적의 성능을 낼 수 있는지 확인하기 위해 실행속도를 측정
알고리즘의 실행 비용 or 복잡성의 측정에 대한 이야기를 꺼낼 때는 입력값이 상당히 큰 규모를 의미
점근적 분석을 통해 아래의 답을 얻을 수 있다.
- (데이터가 폭주하는) 최악의 상황이라면, 얼마만큼의 저장 공간이 필요한가?
- 알고리즘이 특정 규모의 입력값을 처리하는 데 걸리는 시간은 얼마인가?
- 과연 그 문제를 해결할 수 있는가?
예
- 숫자 목록을 정렬하는 함수의 실행 시간 분석, 입력 데이터 크기에 따라 함수의 실행시간이 얼마나 길어져야할지 알아야 한다.
- 정렬 알고리즘의 성능을 비교하기 위해, T(n) = 삽입형 정렬 알고리즘(insertion sort)의 실행시간을 계산 하는 함수c , k = 실행시간의 이차 함수를 나타냄, T(n) = 병합형 정렬 알고리즘(merge sort)의 실행 시간을계산하는 함수c , k = 실행시간의 리니어리드믹(linearithmic)함수를 나타낸다.$$ f(x) = cxlog_2(x)+k $$일반적으로 점근적 성장 속도가 느릴수록 알고리즘의 성능이 좋은 것으로 판단.$$ f(x) = dx+k > f(x) = cx*log_2(x)+q $$
- 이는 c,d,k 그리고 q>0라는 동일한 조건에서 cxlog_2(x)+q가 d*x+k에 비해 x의 값 변화에 크게 반응하기 때문
- 이런 기준에 따르면 선형 알고리즘이 리니어리드믹 알고리즘 보다 항상 점근적 분석에서 좀 더 좋은 평가를 받는다.
- x값이 커짐에 따른 f(x)의 증가 속도를 의미한다.
- 알고리즘 실행 속도의 저하 여부를 판다할 떄는 대규모의 x 값이 의미가 있다.
- $$ T(n) = cnlog_2(n)+K $$
- $$ T(n) = c* n^2+K $$
데이터 크기 분석 방법
우리는 상수 c,k에 정확한 값을 모른다. 점근적 분석을 통해 상수의 변화와 무관하게, 선형 로그식인 병합형 정렬 알고리즘보다 빠르다는 것을 알게 되었다.
점근적 분석에 의한 실행시간측정에서는 상수르 무시하는 경우가 대부분
빅오(Big-O)
- 함수의 점근적 분석을 표현하는 가장 대표적인 방법중하나
- 알고리즘 표현에서 상수를 감춤으로써 실행속도를 간편하게 측정
- 함수의 알고리즘 실행 시간 중 외부 경계선,성장의 순서(order of growth)를 비교한다.
- 외부 경게선은 해당 알고리즘이 분석을 완전히 마치기까지 걸린 최대 시간을 의미
삽입형 정렬 알고리즘의 작동 원리
- 첫번째 아이템을 정렬 순서대로 놓여 있다고 가정
- 두 번째 아이템과 바로 앞 아이템의 크기를 비교, 두 번째 아이템이 더 작은 수일 경우 첫 번째 아이템과 두 번째 아이템의 위치를 서로 바꾼 뒤 다시 맨앞으로 이동
- 동일한 패턴 반복
- 현재 아이템이 34와 이전 아이템 63을 비교한 결과 34가 63보다 작은 수이므로 34 를 한칸 우측으로 이동, 작은 수를 만날 때 까지 우측으로 계속 이동
- func insertionSort( alist: inout [Int]){ for i in 1..<alist.count { let tmp = alist[i] var j = i - 1 while j >= 0 && alist[j] > tmp { alist[j+1] = alist[j] j = j - 1 } alist[j+1] = tmp } }
위와 같은 숫자 비교를 500개 아이템이 있는 배열을 대상으로 한다면 그리 오랜시간이 걸리지 않을 것
$$ f(x) = c*n^2+q $$
위의 식을 생각해보자, 이 함수의 복잡성을 또 다른 공식인
$$ f(x) \epsilon O(x^2) $$
나타낼 수 있는데 이는 점근적 판단에서 f 가 x^2의 이차 방정식 보다 빠르게 증가 할수 없음을 나타냄
빅오 표현이 종종 잘 못 사용되는 경우를 발견, 예를 들어 f(x)의 복잡성이 바로 O(x^2)라고 설명 이는 함수f의 실행시간이 가장 오래 걸릴 때가 바로 O(x^2)라고 하는 것 함수 f가 곧 O(x^2)와 같다는 것
사업계획서 작성
애플 디벨로퍼 아카데미생들중 사이드 프로젝트를 위한 팀을 구성했는데 공모전을 발견하여서 사업계획서 작성에 대해서 오후 7시에만나서 새벽3시까지 아이디어 회의와 사업계획서 작성법에 대해서 공부하였다.
아이템명
맞춤화된 펫 라이프스타일을 제공하는 반려견 하이엔드 서비스 플랫폼 (가제)
Ⅰ. 문제점 (Problem)
<aside> 💡 향후 개발하고자 하는 기술의 국내외 시장의 문제점 등을 서술 (인용 시 출처 표기)
Ⅱ. 솔루션 및 핵심 경쟁력(Solution)
💡 - 앞서 제시한 문제점을 해결하기 위한 솔루션(제품, 서비스 등)과 핵심 경쟁력(보유 기술 등)을 명시
- 기술 개발 관련 내용(특허출원, 논문, 기술이전 등)은 영업 비밀에 해당하지 않는 수준에서 최대한 자세히 기재
Ⅲ. 사업화 전략(Value-up)
- 목표 시장
<aside> 💡 - 진입하고자 하는 국내·외 목표 시장의 분류, 규모, 시장점유율 및 성장가능성 등 객관적 수치를 바탕으로 작성
- 신시장 창출 시 향후 예상되는 시장의 가치 산출하여 기재
</aside>
- 경쟁사 분석
<aside> 💡 - 직간접적 경쟁관계에 있는 국내외 업체, 제품 및 서비스 등 분석
- 경쟁사 대비 차별화 포인트(기술, 사업화 전략 등) 중점적으로 제시
</aside>
- 사업화 계획
<aside> 💡 - 비즈니스 모델 등 사업화 전략 작성 (비즈니스 모델은 Ⅲ.-4 매출 계획과 함께 작성하여도 무방)
- 시장 진입 전략 작성 시, 앞서 제시한 목표 시장 및 경쟁사 분석을 기초로 하여 구체적으로 서술
</aside>
- 매출 전략
<aside> 💡 - 직전연도 (`22년도 결산 기준) 총 매출액 작성
- 향후 2개년도 (23년도~24년도) 예상 매출액 산정 및 구체적인 근거 제시 필수
</aside>
- 투자유치 계획
<aside> 💡 - 구체적인 근거를 기반으로 필요자금을 분석하여 투자유치 목표 금액 제시
- 자금 조달을 통한 기대 효과 명시 (As is → To be)
</aside>
- 필요자금 분석
- 기대 효과
- 글로벌 진출 전략 (optional)
<aside> 💡 - 창업팀 상황에 따라 선택적으로 작성
- 작성 시 글로벌 진출을 위한 단계별 진입 전략 기재, 실현 가능하고 구체적인 실적 및 계획을 작성 (법인설립, 투자유치 등)
- 해외법인 등 관계사를 보유하고 있는 창업팀은 필수 기재
</aside>
Ⅳ. 팀 소개(Team)
- 팀 소개
- 대표자 이력
- 핵심인력 이력 (optional)
- 주주 및 旣투자 현황
- 연혁 및 기타사항
엔젤 계수
- 저출산시대에 유아용품 비즈니스가 핫하다, 아이들이 줄어드는 만큼 소비 비용이 늘어난다
제 25회 포스코 아이디어 마켓 플레이스
(~ 4/2) 해당 행사 사업계획서 작성법은 영상 참고
No.1 Accelerator 포스코 아이디어 마켓 플레이스 사업계획서 작성법
정주영 창업 경진대회
(3/15 ~ 4/12)
'기타 > Today I Learned' 카테고리의 다른 글
[TIL] Swift 제어문 (1) | 2023.04.22 |
---|---|
[TIL] Swift 문법(문자열과 문자) (0) | 2023.04.17 |
[TIL] 기본 연산자(Basic Operators) & 데이터 구조 (0) | 2023.03.28 |
[TIL] Switch문, 삼항연산자, 데이터구조 (0) | 2023.03.26 |
[TIL] Swift 문법(contains, allSatisfy) (0) | 2023.03.19 |