728x90

 

서론

5년 내 스타트업 생존확률은 14%다. 수익을 내지 못하거나 전망이 어둡거나 정부의 지원금을 받는 좀비스타트업도 포함된 수치이다.

하지만 14%에 불과하다. 한 정부 보고서에서 밝힌 창업 후 5년 이상 운영된 스타트업의 비율이다. 헷갈리면 안 된다. 14%는 '성공 확률'이 아닌 '생존 확률'이다. 큰 수익을 내지 못하거나 사업 전망이 밝지 못하지만 정부의 지원금을 받으며 5년 이상 유지되는 일명 '좀비 스타트업'들도 이 14%에 포함된다. 

 

창업 시 정부 규제가 큰 장벽이다. 허가를 받아야 할 관련 부처가 넘쳐났다. 건강 정보를 상업적으로 이용하는 것은 아닌가 라는 정부의 의심에 맞서서 증명하는 과정이 필요했다. 

 

시장이 준비되지 않은 상태에서 출시되어 외면받는 경우도 있다.

 

가장 많이 겪는 실패는 팀 내 분열이다. 

 

변화를 외면하다 사장되는 사업도 있다. 처음에 개발한 기술에만 의존하여 새로운 기술 개발은 도외시하다 실패하는 것이다. 

 

14%의 낮은 생존 확률을 뚫고 성장하는 기업은 우리가 자주 이용하고 소비하는 브랜드들이다.

 

0 이 작은 기업들은 어떻게 시장을 장악했나

창업 5년차, 지속 가능한 성장의 힘을 말하다

그들의 성공에는 이유가 있다

이것은 갈비인가 통닭인가

시장이 비어 있는 이유를 파악할 것

아무도 차지하지 않은 시장은 매력적일 수 밖에 없다. 시장에 최초로 진입함으로써 인프라 구축 등의 우위를 먼저 확보하는 선점 우위 효과를 누릴 수 있기 때문이다.

성공한 스타트업은 창업 전 시장 분석과 관련 규제 파악을 철저히 했다는 공통점이 있다. 단순히 경제적 요소뿐만 아니라 정치적, 사회적, 기술적 요인도 사업에 있어서 중요하기 때문에 이를 복합적으로 살펴보고 냉정하게 분석해야 한다.

 

감성을 건드려라

힘내라, 응원한다, 옷에 얽힌 이야기와 대여자의 긍정적인 메시지

 

기술 투자는 생존 전략이다

진입장벽이 낮은 시장은 선두 주자와 비슷한 서비스를 내세운 카피캣(모방 서비스) 업체들이 쉽게 진출이 가능하다. 이들이 기존 업체들을 위협하면, 결국 한정된 파이를 나누어야 한다. 이 과정에서 시장을 선점했던 업체가 몰락하는 경우도 왕왕 생긴다. 치열한 경쟁에서 승리하기 위해선 경쟁업체와 차별화된 서비스를 제공해야 한다. 서비스의 차별화를 일으키는 것은 결국 기술 개발이다.

 

1 숙박? 놀이! 서비스를 명확하게 정의하라

휴가 트렌드 바꾼 스테이케이션의 선두 주자 >> 야놀자

 

숫자로 보는 브랜드

모바일과 가장 먼 곳이 O2O의 블루오션

2015 투자유치 설명회 이수진 대표, 가장 큰 경쟁자는 부정적인 대중의 인식이다. 국내 숙박 예약 시장은 모바일 혁명이라는 메가트렌드에 가장 느리게 반응한 분야 중 하나다. 2005년 모텔 소개 및 예약 온라인 커뮤니티로 사업을 시작한 '야놀자'가 모바일 커머스 시장에서 소비자에게 받아들여진 것은 2014년으로 무려 10년 가까운 시간이 필요했다. 이용자들은 오늘 묵을 모텔을 미리 예약해야 할 필요성을 느끼지 못했다. 국내 숙박의 경우 일정이 변동될 가능성도 높고 예약 사이트를 통해서도 내부 청결도나 시설 등에 대한 정보를 얻기 어렵다는 인식이 있었다. 예약을 할 때 본인의 정보를 노출시키는 것도 꺼려했다.

게다가 공급자인 모텔 업주들도 미리 예약하는 고객보다 직접 찾아와서 현장 결제하는 워크인 고객을 선호했다. 그래야 예약이 없는 방을 낮에도 틈틈이 대여해 현금을 확보할 수 있기 때문이다.

모바일 체제로 변화하는 시대의 흐름을 빠르게 알아차리고, 그 영향력에서 뒤쳐져 있던 시장을 찾아내 모바일 체제로 합류시킨 덕분이었다. 2009년부터 온라인 예약을 도입했으나 번번이 실패했어요. 2014년의 마지막 시도가 성공했던 이유는 모바일 예약을 도입했기 때문이었습니다. 모바일의 즉시성이 모텔 콘텐츠와 맞아떨어졌던 거죠.

국내 전자상거래 규모는 44조원, 오프라인 상거래는 320조원으로 7배나 차이가 난다.

온라인과 오프라인을 연결하는 온라인-오프라인 연계 서비스가 해답으로 주목받는 이유다.

 

전자상거래 187조

모바일 130조

청년 창업의 경우 기술 기반의 제조업보다 아이디어 기반의 서비스업 비중이 높다. 특히 기존에 있는 사업을 소비자와 이어주는 O2O 플랫폼은 진입장벽이 비교적 낮다.

이미 시장이 형성되어 있는 곳은 경쟁이 심하고, 아직 O2O 시스템이 활발하지 않은 분야에서는 새로운 시장을 개척한다는 것 자체에서 오는 리스크가 클 수밖에 없다.

 

오픈 노하우로 시장을 선점하다

야놀자가 모텔 운영 프로그램을 개발한 이유는 사업의 기준이 됨으로써 시장 장악력을 높이기 위함이다. 이처럼 야놀자가 노하우를 공유하고 모텔 시장을 키우기 위해 다양한 노력을 하는 이유는 이것이 실질적인 수익성을 높이는 방법임을 알고 있기 때문이다. 심지어 야놀자 아카데미는 경쟁사 직원이나 타 숙박 앱의 제휴 업주들도 교육을 받으러 온다. 질적으로 성숙한 서비스는 더 많은 고객을 끌어들여 시장을 성장시키는 밑거름이 되는 것이다.

노하우를 공개하면 여러 사람의 아이디어가 합쳐져 새로운 것을 개발할 수 있고, 노하우를 공개해야 시장이 확대되고 성숙해져서 실질적인 생산성이 유발된다고 생각해요. 한 사람이 힘차게 목소리를 내는 것보다 여러 사람이 목소리를 내는 게 시장은 더 빠르게 확장되고 성장할 수 있는 구조가 만들어지니까요. 다만 그 안에서 선두는 뺏기지 말아야죠.

 

브랜딩에 무게를 덜어내자

친근한 단어, 야놀자

수익 모델의 연결고리를 만들어라

고객과 서비스의 본질을 파악하는 데 집중해요. 주변 놀이 공간 입장권 및 이용권 연계하여 판매

 

 

해외시장 진출 전략, 투자와 제휴

야놀자는 3년간 해외 진출 전략을 짰다. 

 

플랫폼은 진화해야 한다

트립어드바이저

 

2 소비 패턴을 바꾸려면 혁신적으로 좋아야 한다

새벽 배송으로 신선식품 이커머스의 기준을 세우다 >> 마켓컬리

배송 전쟁의 서막을 열다

식품의 경우 신선도가 중요하고, 당장 오늘 저녁에 먹을 것이기 때문에 온라인으로 사는 것보다 오프라인에서 바로 구매하는 경향이 컸다. 또한 수량을 자유롭게 선택하기 힘들고, 배송비에 대한 부담도 무시할 수 없다. 특히 신선도의 경우 직접 눈으로 확인하지 못하는 이상 마켓에 대한 신뢰도가 선택에 큰 영향을 끼칠 수 밖에 없는데, 이 불편함들을 감수하면서도 믿고 살 수 있을 만큼의 상품을 제시한 업체가 나오지 않았던 것이다.

 

우리 기업의 히트텍은 무엇일까

모든 종류의 '처음'에는 저항이 굉장히 심해요. 그래서 혁신적으로 좋아야 하는 거에요. 너무 좋아서 쓰지 않고는 견딜 수 없는 정도가 되어야 새로운 것을 받아들일 수 있어요.

 

인터넷에서 가장 많이 판매되는 품목은 바로 의류다. 셀 수도 없이 많은 의류 쇼핑몰이 생겨나고 사라지지만 그 중 오랜 기간 동안 소비자의 선택을 받는 쇼핑몰은 그들만의 특징이 있다. 바로 고객이 불필요한 결정장애에 빠지지 않게 쇼핑몰이 추구하는 스타일의 옷만 큐레이션해 제공한다는 점이었다. 쇼핑몰이 타깃으로 삼은 고객층에 어울릴 만한 옷을 잘 골라주니, 고객은 취향만 맞는다면 그 쇼핑몰의 선택을 신뢰하고 재구매하는 선순환이 일어나는 것이다. 이 전략은 큐레이션이 제대로 이루어진다면, 재고 리스크를 줄인다는 점에서 기업에게 이득이 크다. 

 

마켓컬리는 인기 상품과 제철음식을 큐레이션해 보여줄 뿐 아니라, 국내에서 구하기 힘든 외국의 식재료를 소개해 젊은 여성 소비자들에게 큰 호응을 얻었다.

잘되는 쇼핑몰에는 각 품목별로 주력 상품이 있다. 유니클로의 대표 상품인 '히트텍'. -> 트래픽 드라이버, 자연스럽게 다른 상품도 구경한다. 자신만의 분명한 히트텍이 있어야 지속적으로 고객을 끌어들일 수 있다.

 

우유 한 병에 지켜야 할 가치

마켓컬리가 우유 PB 상품을 론칭하기까지의 과정을 들여다보면, 그들의 상품 기획과 공급 업체 선정 기준, 기업 철학을 엿볼 수 있다. 상품 기획 단계에서 사전 공부 기간이 상대적으로 길다. 큐레이션 서비스를 전면에 내세운 만큼 꼼꼼하게 고른 상품이라는 믿음을 줄 수 있어야 했다. MD 들이 모여 여러 업체와 목장의 우유를 놓고 블라인드 테스팅을 진행하기도 한다. 

마켓컬리에서는 대표와 담당 MD가 참석하는 상품위원회가 열린다. 원재료, 성분, 제조시설, 인증서류 등 70여 가지 기준과 MD들이 직접 먹어본 후의 냉정한 평가를 거쳐야 한다. 통과율은 10%다.

마켓컬리는 품질을 지키기 위해 당일 생산된 상품의 당일 배송을 원칙으로 하며, 식품 전용 냉장, 냉동 창고 구축을 통해 식품에 따라 최적의 보관 온도에 맞추어 패키징과 배송이 이루어진다.

 

생산과 유통, 서로 잘하는 것을 한다

마켓컬리가 생산자에게 제시한 조건은 두 가지였다. 하나는 반품 없이 매입한 상품은 마켓컬리가 전적으로 떠안겠다는 것이다. 생산자는 재고에 대한 부담을 지지 않는 대신, 상품 기획이나 품질에 대한 의견을 반영해주기로 했다. 마켓컬리가 리뷰를 통해 듣는 소비자의 의견을 적극적으로 생산자에게 전달해 소비자의 입맛에 맞는 상품을 생산하도록 하는 것이다.

우리가 먹고 싶은 것만 판다

김슬아 대표는 부정적인 리뷰는 꼭 읽는다고 한다. "제가 실망시키는 모든 고객이 저희의 실패에요. 그래서 저희의 실패는 매일 반복되고 있고, 위기는 매일매일 있죠." 고객의 후기는 마켓컬리에게 큰 도움이 된다. 상품에 대한 고객의 반응을 확인하는 건 물론이고, 신상품을 내놓을 때, 매출이 일정 수준 이상으로 올라가거나 떨어질 때, 주기적으로 사업의 방향이 맞는지를 확인할 때도 후기는 답을 준다. 그리고 이것이 고객의 만족도를 떨어뜨리지 않고 성장할 수 있었던 비결이라고 믿는다.

폐기율 1%의 비결

"당일 수확한 해산물이나 신선한 채소를 어떻게 다음 날 아침, 고객의 밥상에 올려놓지? 이 질문이 바로 샛별배송 서비스의 본질이에요"

마켓컬리는 수요를 미리 예측하고 예측한 수요만큼 팔아야 하고, 동시에 생산자는 예측한 수요만큼 정확히 수확을 해야 한다. 마켓컬리가 중점을 두는 부분은 바로 빅데이터를 이용한 수요 예측이다. 여기서 어긋나면 엄청난 재고를 버려야 하거나, 반대로 물건이 빠르게 품절되어 판매를 못한 만큼 손해를 입는 것은 물론 고객의 불만이 쌓여 재구매율이 떨어질 수 있다. 이를 위해 마켓컬리는 자체 개발한 수요 예측 프로그램을 이용한다. 날짜나 날씨, 판매량 변화, 시장가 등의 빅데이터를 분석 반영해 오늘 판매할 상품의 양을 정하는 것이다.

수요예측 기술이 아무리 정교하다고 해도 변수는 많다. 새로운 고객들이 많은 유입되는 겨웅에는 원하는 상품군이 크게 달라진다. 기존의 고객의 경우도 프로필이 계속 바뀌기 때문에 항상 같은 상품을 구매하지는 않는다. 특히 명절 직후에는 수요가 굉장히 드라마틱하게 바뀌는 경향을 보인다고 한다. 평상시에 잘 팔리던 상품들의 판매량이 뚝 떨어지고, 갑자기 냉동식품이 많이 팔린다든가 하는 것처럼 잘 안팔리던 제품의 판매량이 급상승하는 모습을 보이기도 한다.

반면, 수요 예측을 잘했더라도 신선식품의 특성상 입고량을 맞추기도 쉽지 않다. 특히 해산물을 나가보지 않는 이상 그날의 어획량을 정확히 파악하기가 힘들다. 기상이 악화돼 출항을 못하는 등의 변수도 많다. 이럴 때는 해당 제품의 사이트 내 노출 순위를 낮추거나, 대체 생산자들을 통해 물량 확보에 나서는 등 각 팀들이 유기적으로 소통하며 문제를 해결한다.

마켓컬리가 강점으로 내세우는 부분이 바로 여기에 있다. 생산과 판매에 대한 유동적인 상황에 대해 생산자, 상품MD, 마케팅팀, CS팀, 내부 물류팀 등이 서로 긴밀하게 커뮤니케이션하면서 빠르게 대응할 수 있는 시스템이 갖춰져 있다는 것이다. 마켓컬리는 이를 위해 각각의 팀들이 어떻게 일해야 하는지를 명확하게 정해놓고 있으며, 축적된 경험을 바탕으로 시스템을 더욱 정교하게 만들고 있다.

메시지가 하루에도 수천통씩 오간다.

 

마케팅 원칙, 빙산의 일각

첫 번째 원칙은 빙산의 일각이다. 마켓컬리가 실제로 가지고 있는 장점이 100이라면 그중에서 1만 보여준다는 것이다. 마케팅이 과장됐거나 거짓말을 했다는 걸 알게 되는 순간 고객은 기업에게 등을 돌린다. 마케팅이 진정성을 잃으면 마케터도 자신감을 잃고 결국 마케팅을 힘이 빠진다. 하지만 마케팅에서 보여주는 것이 실제로 고객이 경험할 수 있는 것 중에 아주 일부분이라는 것을 알게 되면, 고객은 이후 마켓컬리의 말에 무한한 신뢰를 보낼 것이다. 이것이 마켓컬리가 세운 장기적인 브랜딩 전략이다.

두 번째 원칙은, 마케팅이 서비스가 구조적으로 좋아질 수 있는 방향과 맞아야 한다는 것이다. 서비스 개선이라 냉장 물류 체인에 대한 투자를 하는 것, 더 많은 생산자를 포용하는 것 모두 규모가 커져야 할 수 있는 일들이다. 그러니 TV 광고 덕에 대중화를 얻고 많은 고객이 유입되면, 규모의 경제가 생성돼 기존의 이용자에게도 혜택이 돌아갈 수 있다고 보았다.

하지만 마켓컬리는 급속한 고객의 유입으로 서비스에 차질이 생기는 것을 경계했다. 그래서 마케팅을 하기 전에 냉장 체인에 투자하고, 공급사들에게 더 좋은 조건으로 물량을 늘릴 수 있도록 사전에 협의하는 등의 선투자를 진행했다. 회원 수가 늘었을 때 더 좋은 서비스를 할 수 있는 구조를 미리 만들어둔 것이다. 결과는 상상 이상이었다.

 

아는 경쟁자는 무섭지 않다

마켓컬리의 샛별배송이 성공한 이후 쿠팡, 헬로네이처 등 온라인 커머스 뿐만 아니라 롯데마트, 홈플러스 등 대형 유통 채널에서도 새벽 배송 서비스를 시작했다. 이들은 전국 유통망을 무기로 전국으로 새벽 배송을 할 수 있기 때문에 수도권 지역에 한정되어 있는 마켓컬리의 성장세가 둔화될 것이라는 전망이 나오기도 했다. 하지만 김슬아 대표의 생각은 달랐다. 현재 단순히 새벽에 배송한다는 것만을 내세운 업체들은 마켓컬리의 샛별배송 서비스의 본질을 이해하지 못했다고 생각한다. 

김슬아 대표가 두려워하는 건, 지금 어디에 있을지 모르는 신생 업체들이다. 실패와 학습, 또 실패를 반복하면서 이제까지와 완전히 다른 혁신적인 가치를 만들어낸다면 마켓컬리 역시 잠식될지 모른다는 공포다. 그들이 빠르게 실패하고 거기서 혁신적인 어떤 깨달음을 얻는 동안 마켓컬리는 불어난 몸집으로 인해 그 속도와 가벼움을 잃어버릴까 두려운 것이다.

 

 

 

미스프레시

중국

 

3 아이디어보다 빠른 실행력이 스타트업의 무기다

천편일률적인 투어 상품을 새롭게 콘셉팅하다 >> 마이리얼트립

시장은 커지는데 왜 기업 가치는 하락할까

해외여행을 가는 사람들의 자세

레드오션에서 차별화를 찾다

후기를 남기고 싶은 상품을 판다

사업이 예상을 벗어났다면, 그 예상을 버려라

까다롭게 검토하고 빠르게 결정하라

여행사도 IT기업이 되어야 한다

벨트라

 

4 플랫폼의 경쟁력은 트래픽이 아닌 축적된 데이터와 기술력

유저가 만든 63만 개의 인테리어 크라우드 쇼룸 >> 오늘의집

나만의 공간은 내가 꾸민다

인테리어를 몰라도 인테리어 사업을 할 수 있다

크라우드 쇼룸의 가치

이미지로 소통하는 세대를 공략하다

먼저 사람이 모이게 하라

역전의 기회는 반드시 온다

하우즈

 

5 SNS의 소통과 감성을 O2O 플랫폼에 담다

재구매율 80%, 1억 매출 작가를 배출한 핸드메이드 마켓 >> 아이디어스

밀레니얼 모멘트가 온다

자발적으로 더 비싸게 사는 플랫폼

판매자의 자부심이 마켓에 미치는 영향

유니크한 라이프스타일의 안내자

직원을 먼저 설득할 수 있어야 한다

정부의 규제로 휘청거릴 것인가, 지원으로 날개를 달 것인가

엣시

 

6 자발적인 바이럴을 부르는 상품을 서비스하다

미술을 즐기는 새로운 방식

불황을 먹고 크는 시장

서로 다른 시장의 교집합에서 블루오션을 찾다

사람이 사람을 부른다

그림 하나로 일상이 바뀌는 경험

직원의 특성을 존중하는 기업문화

시장을 개척한다는 것의 의미

라이즈아트

 

7 브랜딩이란 즐거움을 주는 것

수제맥주, 컬래버레이션으로 흥하다 >> 더부스 브루잉

컨슈머가 메이커가 되는 시대

대기업과의 경쟁에서 이기는 방법

전문가에게 맡겨라

품질에서는 타협하지 않는다

더부스 x 배달의민족, 치믈리 에일의 탄생

과감한 결단의 선점 효과

브루독

 

8 소수의 취향을 사로잡는 브랜드가 되다

2평짜리 매장에서 가맹점 100개의 블렌딩티 프랜차이즈로 >> 오가다

건강은 메가트렌드다

창업 후 3년, 더뎌진 성장

한방차로 커피를 상대할 수 있을까

메인 비즈니스는 포기하지 않는다

황금알을 낳는 거위가 한 마리일 필요는 없다

직원에게 답이 있다

헤이티

 

9 사회적 가치를 브랜드에 담다

10만 명 취준생을 서포트한 정장 공유 스타트업 >> 열린옷장

빌리고 빌려주는 공유의 시대

누구도 시장이라고 생각하지 않았던 시장

범국가적 시류는 사업의 기회다

정장에 이야기를 담아 공유하다

마케팅하지 않는 마케팅

환호할 때가 위기다

주인으로 대할 때 주인의식이 생긴다

렌트더런웨이

 

10 온-오프라인의 확장을 두려워하지 마라

최초의 소설데이팅 플랫폼에서 싱글라이프 비즈니스까지 >> 이음

연애는 사업이 된다

심플한 비즈니스 모델의 중요성

카피캣에 대처하는 방법

고객의 신뢰를 얻는 법

하락기를 인정하지 않으면 다시 일어설 수 없다

우리가 가장 잘하는 것은 무엇인가

이제는 라이프스타일 비즈니스가 대세다

틴더

 

 

 

 

 

728x90

 

배경

서비스 제공 가격 설정에 대해 많은 고민을 했다. 유사 서비스의 단가와 비교하면서 적절한 가격을 찾는 노력도 해보았다. 소비자는 같은 성분과 스펙의 두 상품이라 하더라도 가격이 비싼 것이 메리트가 있다고 느끼는 경우도 있었다. 그래서 마케팅 관련 서적을 찾아보던 중 가격 인상의 기술이라는 책이 눈에 들어왔고 목차를 보고 구입을 했다.

 

요약

가격을 올리는 행위는

가격을 올리는 순간 구매 고객층, 수준이 바뀐다.

가격을 올리고, 서비스에 정보를 더하는 순간 서비스의 가치가 더해진다.

가격을 올리는 순간, 경영의 범위가 확대된다.

 

상품, 서비스를 높은 가격에 팔기 위한 일반적인 가치

서비스 제공 시

1. 시간과 정성을 쏟는다.

2. 희소하다, 흔치 않다, 제작자가 한정되어 있다, 자라는 데 많은 시간이 든다.

3. 전문가가 있다, 전문가가 선정했다.

4. 역사가 길다, 대대로 이어져 내려 왔다, 이를 뒷받침하는 역사적 근거가 있다.

5. 높으신 분들, 역사적 인물, 저명인사가 애용한다.

6. 온라인으로 유통되지 않는다.

7. 실제로 다녀왔다, 보고 왔다, 멀리 지구 반대편에서 들여 왔다, 갖고 왔다.

8. 특허를 갖고 있다.

9. 개발과정에 놀라운 뒷이야기가 숨겨져 있다.

10. ㅇㅇ가 보장한다. 세계적인 연구기관 ㅁㅁ에서 인정받았다.

11. 장기간 사용해도 성능이 떨어지지 않는다.

12. 수만 번의 테스트를 거쳤다.

13. 보증수리 시스템이 잘 갖춰져 있다.

14. 긴급 상황에 대한 대처가 뛰어나다. 타 업체에서 흉내내지 못한다.

'타 업체와의 비교'와 함께 이런 '일반적인 가치'가 상품 설명에 추가된다면 더욱 큰 효과를 거둘 수 있다.

 

상품, 서비스의 가격은 일반적인 가치와 고객 특유의 가치로 결정된다.

일반적인 가치는 보편적으로 통용되는 가치로 위의 14가지 요소로 설명된다.

고객 특유의 가치는 고객마다 다르게 느끼는 고유의 가치다. 고객을 선별하고 고를수록 높은 가격에 판매할 수 있다.

 

제아무리 좋은 상품을 만들었지만 아무도 그 가치를 모른다면 무가치한 것이나 마찬가지다. 설명이라는 형태로 정보가 부가되어야만 비로소 상품에 가격이 붙는다.

 

가격 인상으로 인해 고객층이 완전히 바뀌면서 이 레스토랑은 관광코스에 들어갈 정도로 큰 인기를 얻었다. 지역민들 중에서 별장 소유주나 부유층 등이 단골로 찾아오면서 비수기 매출도 몇 배씩 늘었다.

 

가치를 전혀 모르는 고객을 대상으로 가치를 바르게 전달할 수 있다면, 여러분이 제공하는 상품 및 서비스의 가치는 무궁무진하게 올라갈 수 있다.

 

상품 및 서비스에 원래부터 형태가 없다면 얼마든지 자유롭게 붙일 수 있다.

 

타 업체가 하나같이 낮은 가격을 고수하고 있다면 이는 가격을 인상시킬 수 있는 최적의 환경이다. '비싼 것에는 나름의 이유가 있다'라고 생각하는 소비자의 심리가 가격 인상을 성공으로 이끌어 줄 것이다.

 

고객 특유의 가치에 대해 충분히 이야기한 후, 요금 제시와 구매 결정 단계에 이르렀다면 반드시 질문형 문장과 표현을 사용해서 마무리해야 한다. 마지막에는 반드시 질문형 표현을 사용하는 것이 중요하다 (가격은 ㅇㅇㅇ엔입니다만, 어떠십니까?, 괜찮으시겠습니까?, 문제없으십니까?)

 

느낀점

저가 전략이 많은 고객을 모을 수 있고, 다양한 경험을 쌓을 수 있는 장점이 있지만, 가격 인상을 통해 시간을 확보할 수 있고, 고객층을 달리할 수 있다는 점에서 좋은 방법이라고 생각했다. 책에서 이야기하는 일반적인 가치과 개인 마다의 고객 특유의 가치를 충분히 설명했는지 되돌아보아야겠다.

 

 

 

 

728x90

생각하는 시간이 길어서 행동을 주저한 경험이 있고 돌아보았을 때 오히려 빨리 실행하는 것이 더 좋았을 때도 있었다. 빠르게 실패하기 책을 읽으면서 인상깊었던 문장을 정리하고자 한다.

 

빠르게 실패하기 요약

 

만약 창의적인 일을 시도한다면 스스로에게 실패할 여유를 허락하는 것이 특히 중요하다. 우리는 모든 사람이 창의적이라는 점에 주목해야 한다. 우리 모두는 살면서 아이디어를 짜내고 문제 해결책을 찾으며 꿈꾸고 자신의 길을 개척해 나가고 있다. 그리고 당신 자신의 삶은, 당신이 만들어내는 궁극적인 창조물이다.

 

작가 앤 라모트는 『글쓰기 수업 Bird by Bird」에서 글을 쓸 때 부딪히는 도전에 대해 이렇게 말했다.
“하나의 작품을 완성하는 데 중요한 것은 정말 엉망진창인 초안을 써보도록 스스로에게 허락하는 것이에요. 정말 엉망인 초안을 쓰면 두 번째 안은 더 좋아지고 세 번째는 더 훌륭한 작품이 나올 확률이 높아지죠. 다 쓰고 나서야 자기가 무엇을 쓴 건지 깨닫는 작가들이 대부분이에요. 도대체 어떤 주제에 대해 쓰고 싶은 지, 어떻게 이야기를 펼쳐나갈지 몰라도 일단 자리를 잡고 앉아 단어들을 짜내는 게 중요해요. 그래야 스토리 전개 방향을 비로소 잡게 됩니다.”
바로 이런 태도가 빠르게 실패하기 Fail Fast의 핵심이다. 직접 해보지 않는 이상 일의 본질이 무엇인지, 일을 하면서 어떤 기분이 들지, 그 결과가 어떻게 될지는 모르는 일이다.

 

실수를 피하기 위해 공부하고 준비하며 질질 끄는 대신에 이들은 즉시 행동한다. 자신들의 노력이 완벽에는 한참 미치지 못하거나 경쟁력이 전혀 없어도 말이다. 성공은 대개 위태로운 상황과 어설픈 노력으로부터 시작된다. 그러니 성공을 거두고 싶다면 먼저, 그 일을 얼마나 망치게 될지 생각해 보라.

 

훌륭한 뮤지션이 되고 싶다면, 먼저 엉망인 음악을 수없이 연주해 봐야 한다.

언제나 탁월한 결정을 내리는 비즈니스맨이 되고 싶다면, 먼저 진부한 결정을 내리는 일정 시간을 보내야 한다.

소설을 한 권 쓰고 싶다면, 먼저 하찮은 이야기들을 써 봐야 한다.

중국어를 유창하게 하려면, 먼저 형편없는 중국어를 많이 해야 한다.

진정한 예술가가 되고 싶으면, 먼저 어설픈 예술을 창조해 봐야 한다.

에너지 효율이 좋고 미니멀한 디자인으로 최고의 상업 건축가가 되려면, 먼저 비효율적이고 거추장스러운 건축물을 디자인해 봐야 한다.

재능 있고 용감한 암벽 등반가가 되려면, 먼저 소심하고 서툰 암벽 등반가가 되어야 한다.

수학을 아주 잘해서 어려운 분석 문제를 척척 풀고 싶다면, 먼저 간단한 수학 문제와 씨름해야 한다.

훌륭한 테니스 선수가 되려면, 우선 수많은 경기에서 패배하는 경험을 쌓아야 한다. 

 

실패하면 실망할지 모른다. 그러나 시도하지 않는 것은 불행한 삶이다. (비버리 실즈, 성악가)

실수로 가득 찬 삶이 아무것도 시도하지 않는 삶보다 더 명예롭고 가치 있다. (조지 버나드 쇼)

실수를 하며 보낸 인생은 아무것도 하지 않고 보낸 인생보다 훨씬 존경받을 수 있을 뿐 아니라 유용한 삶이기도 합니다. (조지 버나드 쇼, 아일랜드 극작가 및 런던 경제학부 공동 설립자)

 

느낀점

너무 빠르게 행동해도 문제가 될 수 있지만, 너무 길게 고민해서 고민할 시간에 행동하는 게 더 나을 때도 있었다. 고민이 생기면 고민할 기간을 대략 생각하고 그 기간 내에 결정하고 사소한 거라면 빠르게 실행해보는 것이 중요할 것 같다. 뭔가 배울 때도 이론으로만 접하는 것보다 직접 실행해보면서 부족한 부분을 파악하고 수정해 가면서 실력이 늘었던 것 같다. 고민만 하다가 실행조차 못했던 경험도 있어서 빨리 실행해보는 것도 해봐야겠다.

 

728x90

 

1. 장단기금리차란?

미국 국채 10년물 금리 - 2년물 금리입니다.

만약 연준이 기준금리를 낮은 수준을 유지(단기금리 하락) 하고, 채권시장이 실물경제의 회복을 기대(국체 대신 주식을 매입 → 장기금리 상승)한다면 장단기 금리차가 확대됩니다. 따라서, 실물경제의 회복 국면에서 장단기 금리차가 확대되는 경향을 보입니다.

반면, 연준이 기준금리를 인상(단기금리 상승)하고, 채권시장이 실물경제의 침체를 기대(안전자산인 국채 매입 → 장기금리 하락)​한다면 장단기 금리차는 축소됩니다. 즉, 실물경제의 침체 국면에서 장단기 금리차가 축소되는 경향을 보입니다. 이것이 과해지면 장단기금리차 역전 현상이 발생합니다.

보통 10년물 금리가 2년물 금리보다 높은 것이 정상적인 상황입니다.

경제위기가 오기 전에 장단기금리차가 마이너스가 되는 경향이 있습니다.

장단기금리차가 마이너스를 찍으면 곧이어 경제성장률이 바닥으로 떨어지는 것을 쉽게 볼 수 있습니다.

 

2. 장단기금리차 지표 확인하기

https://fred.stlouisfed.org/series/T10Y2Y

 

10-Year Treasury Constant Maturity Minus 2-Year Treasury Constant Maturity

Source: Federal Reserve Bank of St. Louis   Release: Interest Rate Spreads Units:  Percent, Not Seasonally Adjusted Frequency:  Daily Notes: Starting with the update on June 21, 2019, the Treasury bond data used in calculating interest rate spreads is

fred.stlouisfed.org

2023년 1월 기준 -0.7 point로 2000년 전후로 IMF 시절과 비슷한 것을 볼 수 있습니다. 현재보다 더 떨어질지 올라갈지는 모르지만 장단기금리차 지표를 이해하면 경제를 이해하는 데 도움이 될 것입니다.

 

3. 경기순환시계 사이트

kosis.kr/visual/bcc/index/index.do;jsessionid=mR1DjF65YqFRDZrZZk1Kdg1ChkPX93QAxRdca1yloMEE2SHzVQy2gYV1M54F0XTv.STAT_WAS1_servlet_engine4?mb=N

 

경기순환시계

크기 X-12 X-10 X-6 X-4 02 / 2018 둔화 상승 하강 회복 추세 상회 추세 하회 전기대비 증가 전기대비 감소 *원하는 시점부터 경기순환시계가 돌아가는 모습을 볼 수 있습니다. 경기순환시계는 주요경제

kosis.kr

 

728x90

1학년 교양 과목 리포트를 공유한다. 경영학적 관점에서 공학자에게 필요한 지식을 배우는 과목이였는데, 느낀 점이 많았던 과목이였다. 아래는 '숨은 돈을 찾아라'에 대한 독후감이다.

728x90

 

책 읽기

독서 빈부 격차는 경제적 빈부 격차보다 무서운 것으로, 삶의 양극화를 만든다.

좋은 책을 읽는다는 것은 몇백 년 전에 살았던 가장 훌륭한 사람과 대화하는 것이다. - 데카르트

정말 좋은 책을 최대한 흡수한다면, 저자가 몇십 년에 걸쳐 어렵게 습득한 지식과 진리를 거저 얻는 것이다.

매일 조금이라도 책읽고 글쓰기 습관 만들기

 

오목이론

눈 앞의 이득과 소득에 집착하지 않고 장기적으로 두는 수 (ex 유튜브 등 채널 만들기)

 

기버이론 (역행자는 1을 받으면 2를 준다)

지난 1년간 자신이 어떤 기버 행동을 했는지 생각하기

https://becoming-linchpin.tistory.com/23

https://brunch.co.kr/@dongha-sohn/18

 

경제적 자유를 얻기 위한 5가지 공부법

1. 정체성 변화

자의식 과잉 상태 해체하기, 새로운 것 스펀지처럼 받아들이기

 

2. 20권의 법칙

이루고 싶은 것이 있다면 관련 책을 10권 이상씩만 꺼내서 훑어 봐도 패배할 가능성이 현저히 떨어진다.

 

3. 유튜브 시청

배우기 위한 동영상 시청

 

4. 글쓰기를 위한 초사고 세팅

글쓰기는 역행자의 사고를 갖기 위한 유일한 지름길이라고 했다. 글쓰기는 뇌를 발달시키고 논리성과 창의성을 증진시키지만 꽤나 귀찮고 어려운 일이다. 더군다나 그것을 남이 보는 공간에 올린다는 것은 필력이 부족하다고 느끼는 입장에서는 꽤나 용기를 내야 하는 일이다.

 

5. 온라인을 넘어 오프라인 학습으로
두뇌는 내가 속한 집단이 따르는 생각을 가치 있게 여기니 오프라인으로 참여하게 되면 소속된 집단에 대한 정체성이 생기고 집중도가 높아지는 것은 자명하다고 생각한다.

관심있는 교육이나 세미나 참여하기

 

타이탄의 도구들 (유전자에 각인된 장인정신을 역행하라)

https://adervise1.tistory.com/52

 

1. 온라인 마케팅 (유튜브, 인스타그램, 페이스북, 블로그, 스마트스토어 등의 매체)

2. 디자인 (Figma)

3. 동영상 편집 기술 (Adobe Premiere Pro, After Effect)

4. PDF책 제작과 판매 (전자책 판매 플랫폼)

5. 프로그래밍 (앱 개발, 웹 개발, 서버 개발)

 

실행력

실행과 도전 없이 책만 읽는 것은 의미 없는 행동이다. 생각한 이론이 맞는지 검증하는 과정이 실행력이다.

1. 블로그를 개설해서 아무거나 하나의 글을 써라

2. 유튜브를 개설해서 자신의 핸드폰의 영상을 아무거나 하나 업로드하라.

3. 최근에 본인이 관심을 갖고 있던 일 중 아무거나 하나를 해라.

 

실행력이 높은 사람이 인생이라는 게임에서 쉽게 경제적 자유를 얻는다.

 

핵심요약

1. 타이탄의 도구들 5가지 장착하기

2. 경제적 자유를 위한 5가지 공부법

3. 꾸준한 독서와 글쓰기

4. 실행력

728x90

클루지란

클루지란, 서툴거나 세련되지 않은 해결책을 뜻하는 공학자들의 용어입니다. 필요에 의하여 만들어졌으나, 몬가 완벽하지 않고 엉성하게 그 기능을 하는 것들을 말합니다.

개리마커스는 진화심리학자로서 인간의 뇌는 진화과정이 빚어낸 기이한 산물인 클루지로써 체계적이지 않고 불완전한 작동을 한다고 이 책에서 설명하고 있습니다.

이러한 클루지스러운 뇌로 인하여 왜 인간이 잘못된 판단을 하는지, 왜 인간이 할일이 많은데도 컴퓨터 게임이나 다른 개인의 쓸데없이 하는 것들에 대한 이유를 진화 심리학자 입장에서 이해 하기 쉽게 설명하고 있습니다.

개리마커스는 인간의 뇌는 완벽하지 않으므로, 잘못된 행동을 유발하지 않도록 합리적으로 행동하고 잘못된 행동을 막을 수 있는 13가지 방법을 제시하였습니다.

 

틀짜기(framing, 표현방식에 따라 다른 결정을 발생시킨다) 

한 나라에 희귀한 질병이 발발해 600명의 생명이 위협받는 상황에 처했다고 상상해보자.

그래서 이 질병을 퇴치할 두 대안 프로그램이 제안되었다. 이 때 두 프로그램의 결과에 대한 과학적 추정치는 정확히 다음과 같았다.

프로그램 A를 채택하면 200명의 생명을 구할 것이다.
프로그램 B를 채택하면 600명의 생명을 구할 확률이 3분이 1이고, 한명의 생명도 구하지 못할 확률이 3분의 2이다.
이 경우에 대부분의 사람들은 모든 생명을 위험에 떠 맡기고 싶지 않기 때문에 프로그램 A를 선택할 것이다.

그러나 똑같은 대안을 아래와 같이 다르게 제시하면 사람들의 선택은 정반대로 바뀐다.

프로그램 A를 채택하면 400명이 죽을 것이다.
프로그램 B를 채택하면 아무도 죽지 않을 확률이 3분의 1이고, 600명이 죽을 확률이 3분의 2이다.
600명 중에서 ‘200명의 생명을 구하는 것’은 좋은 생각처럼 보인다.

반면에 똑같은 600명 중에서 ‘400명을 죽게 놔두는 것’은 결코 좋아 보이지 않는다.

그러나 실제로는 문제의 표현 방식만 바뀌었을 뿐, 두 가지는 완전히 똑같은 결과를 나타내고 있다.

심리학자들은 이런 것을 가리켜 ‘틀짜기(framing)‘라고 부른다.

 

 

인간 뇌의 진화 (진화론)

다윈의 진화론이 인간이 포유류에서 진화한 과정을 설명한 것이라면, 인간의 뇌는 어떻게 진화의 과정을 거쳤는가? 그냥 이론적으로 생각해보면 당연하게 몸이 그렇게 진화했듯이 뇌도 현재를 살아가기에 최적화된 상태가 아닌 몸과 같은 진화 과정을 거쳤을 것이다.

 

신체의 클루지는.

인간의 척추는 네발 동물에 맞게 구성되어 있고, 망막은 앞쪽이 아닌 뒤쪽을 보도록 설계되어 있다.

진화의 관성 : 진화는 맨 처음부터 다시 시작하기보다는 이미 있는 것에 수정을 가하면서 작업하는 경향이 있다. 진화는 종종 옛것 위에 새로운 체계를 쌓아 올리는 식으로 전개된다.


인간 뇌의 진화의 역사

클루지는 우리가 진화해온 역사에 대한 통찰을 제공하고, 우리 자신을 어떻게 개선할 것인지에 대한 단서를 줄 수 있다.

 

인간 뇌의 클루지

맥락과 기억

인간의 맥락 의존 기억은 컴퓨터처럼 모든 기억을 똑같이 취급하는 것이 아니라 우선순위를 매긴다.

자주 일어나는 것, 최근에 필요로 했던 것, 지금과 비슷한 상황에서 이전에 중요했던것, 그러나 맥락 기억은 신뢰성이 없다.

허술한 기억에 대처하는 방법

 

1. 기억 재구성 전략

2. 기억 출처 전략

3. 장소법 전략

4. 운율과 박자를 이용한 전략

5. 반복 기억 전략

 

기억에 대한 요구를 줄이는 습관은 같은 장소에 같은 물건을 놓는 것이다.

 

오염된 신념

신념은 인간만이 가진 능력이다. 과연 자신이 생각하는 신념이 올바른 판단으로 생긴 신념이 아닐 수 있다.

오염된 신념의 예시

 

1. 후광효과

2. 단순한 친숙효과

3. 확증편향

4. 동기에 의한 추론

 

위와 같은 이유 때문에 인간은 논리적으로 추론하도록 진화하지 않았다.

 

선택과 결정

우리 뇌는 돈을 상대적으로 계산한다. 인간의 선택은 '경우에 따라서' 완전히 합리적이다.

반사체계와 숙고체계의 장단점을 인식하고 조화롭게 사용할 때 지혜로울 수 있을 것이다.

 

 

언어의 비밀

우리의 언어가 커뮤니케이션을 오히려 방해한다.

이메일, 전화가 오해를 불러일으키기도 하고, 자신에게 정확하다고 상대방에게 정확한 건 아니다.

 

위험한 행복

우리를 행복하게 하는 것은 무엇인가?

쾌락은 과연 우리를 행복하게 할까. 돈이 많으면 행복할까. 진화는 우리가 행복하도록 진화시킨 것이 아니라, 우리가 행복을 추구하도록 우리를 진화 시켰다.

 

심리적 붕괴

한 가지 일을 하면서도 다른 생각들을 많이 하고, 우울함은 한 번씩 찾아오고, 일을 뒤로 미루기도 한다.

인간으로 산다는 것은 자기 통제의 산에 오르기 위한 평생의 투쟁이다. 진화는 우리가 목표를 세우기 위한 지적 능력을 주었으나, 그것을 이루기 위한 의지력을 주지 않았다.

 

 

 

13가지 제안

1. 대안이 되는 가설들을 되도록 함께 고려하라

인간의 뇌는 객관적으로 평가하는 것이 불가능하다.
그러므로 우리의 사고를 개선할 수 있는 간단한 방법은 대안이 되는 가설들을 고려하도록 훈련하는 것이다.
단순히 대안들의 목록을 작성하는 것만으로 추론의 신뢰도를 높일 수 있다.
‘반대를 생각하라’라는 간단한 원칙의 가치는 많은 연구들을 통해 증명되었다.

 

2. 문제의 틀을 다시 짜고 질문을 재구성하라

이 비누는 99.4퍼센트 순수한가, 아니면 0.6 퍼센트 유해한가?
우리가 보고 듣는 것들은 최대한 긍정적으로 보이도록 제시되고 있다.
모든 문제를 하나 이상의 방식으로 물어보는 것은 이런 편향들을 교정하는 강력한 수단이 될 수 있다.

 

3. 상관관계가 곧 인과관계가 아님을 명심하라

미국 인구를 통틀어 신발크기와 일반지식 사이에는 높은 상관관계가 있다.
큰 신발을 신는 사람들은 작은 신발을 신는 사람들보다 역사와 지리에 더 많은 것을 아는 경향이 있다.
그렇다고 큰 신발을 사서 신는다고 여러분이 더 똑똑해지지 않는다.
이와 같이 상관관계와 인과관계는 절대로 같지 않다.

 

4. 여러분이 가진 표본의 크기를 결코 잊지 말라

하루하루 주식시장 변동을 특별한 뉴스와 결부시키는 주식시장 분석가들은 이렇게 말한다.
“오늘 시세가 올라간 것은 삼성전자가 예상외로 높은 분기 실적을 발표했기 때문입니다.”
그러나 이 표본은 잘못된 것일 수 있다. 어느 분석가가 오늘 삼성전자 시세 상승은 우연한 등락 이상의 아무것도 아닙니다.” 라고 말하는 것이 오히려 맞을 수 있다.

 

5. 자신의 충동을 미리 예상하고 앞서 결정하라

배가 고플 때 식료품을 사는 것과 배가 부를 때 식료품을 사는 것은 완전히 다르다.
그러므로, 미리 결정한 것들만 구매하기로 한다면, 우리는 좀 더 나은 소비생활을 할 수 있다.
미래를 계획하는 것이 현명한 행동을 할 수 있다.

 

6. 막연히 목표만 정하지 말고 조건 계획을 세워라

체중을 줄이겠다 또는 이 논문을 마감시한 전까지 끝낼 것이다 라는 막연한 목표보다 구체적인 목표를 세워라
조건계획으로 목표를 세워라. 즉 X이면 Y이다의 형태로 바꾸면 성공확률이 높아진다
체중을 줄이겠다 보다, 감자튀김을 보면 멀리하겠다 와 같은 방법이다.

7. 피로하거나 마음이 산란할 때는 되도록 중요한 결정을 내리지 말라

피로하거나 주의가 산만한 상태에서 생각하는 것은 술취한 상태에서 운전하는 것과 같다.
합리적이고 중요한 결정을 내려야 할 때의 승리의 조건은 적절한 휴식과 최대한의 주의 집중이다.

 

8. 언제나 이익과 비용을 비교 평가하라

이것은 당연한 논리지만, 많은 사람은 기분에 따라 결정하기 싶다.
특히 기회비용이라는 것에 주의 할 필요가 있다.
투자결정을 내릴 때, 이것 아니면 무엇을 했을 지에 대해 곰곰히 생각하라.
하나를 하면 다른 것은 할 수 없다는 점을 잊지 말라.

 

9. 누군가 여러분의 결정을 지켜보고 있다고 상상하라

실험 연구에 따르면 자신의 대답을 정당화 할 필요가 있다고 생각하는 사람들은 그렇지 않은 사람들보다 덜 편향된 결정을 내린다고 한다.
자신의 결정을 다른 사람들에게 해명할 필요를 느끼는 사람들은 더 많은 노력을 하고 세련된 결정을 하는 경향이 있다.
그러므로, 항상 누군가 당신의 결정을 보고 있다고 생각하면 훨씬 더 합리적인 결정을 할 수 있다.

 

10. 자신에게 거리를 두어라

우리의 마음은 가까운 것과 먼 것에 대해서 거의 완전히 다른 방식으로 생각하도록 구성되어 있다.
그러므로 우리는 미래의 내가 현재의 결정에 대해서 어떻게 느낄지를 되도록 자문해보아야 한다.
이렇게 할 수 있는 한 가지 좋은 방법은 ‘잠시 기다리는 것’이다.
만약 어떤 것이 내일도 원한다면 그것은 중요한 것일 가능성이 크다.
복잡한 결정은 시간을 두고 그것에 몰두 할 때, 가장 훌륭하게 이루어진다.

 

11. 생생한 것, 개인적인 것, 일화적인 것을 경계하라

본인이 원하는 제품을 구매할 때, 공식적인 보고서를 보고 결정하는 것이 아니라 일반적인 사람들이 말한 내용을 보고 결정하는 경향이 심하다. 블로그 같은 일화적인 내용을 보고 결정하는 것 보다 과학적인 것에 비중을 두고 결정하는 것이 훨씬 합리적이다.

 

12. 우물을 파되 한 우물을 파라(책 내용상으로는 '간단한 결정은 빨리 하라'인 것 같다)

무언가를 결정할 때 많은 것을 성찰할 때까지 마냥 기다릴 수 없다.
그러므로 한 우물을 판다면, 보다 현명하고 빠르게 결정할 수 있다.
선택을 망설이다 아무것도 선택하지 못하는 우를 범하지 마라

 

13. 합리적으로 되려고 노력하라

합리적으로 되자고 스스로 되뇌면, 자신을 자동적으로 그것에 대비할 수 있다.
합리적으로 되자고 스스로 되뇌는 것 자체만으로 충분치 않을 것이나 이것은 나머지 것들의 시너지 효과를 일으켜 도움을 줄 것이다.

728x90

학습목표


목표 : 유지 보수하기 편리한 방식으로 코드 개선하기

 

1. Model 만들기 (알람 정보)

fromMap method와 toMap method를 만들기

필드 추가하기

 

2. Folder Naming, File Naming기능별로 폴더를 만들고, 아래에 _screen.dart 만들기, 구성 요소는 components 폴더에 넣기

 

3. GetXController를 Singleton 방식으로 변경하기 ( 메모리 절약, 미리 생성한 인스턴스 활용 )

최상단 위젯에서 Get.put을 한 후 Get.find를 사용하여 기존 인스턴스 활용하기

 

 

회고


 

목표 : 유지 보수하기 편리한 방식으로 코드 개선하기

1. Model 만들기 (알람 정보)

fromMap method와 toMap method를 만들기

필드 추가하기

 

class AlarmModel {
  // 알람 id
  String id;
  // 사용자
  String userId;
  // 07:00
  String time;
  // 메모
  String memo;
  // 월,수,금 / 평일
  String days;
  // 속한 그룹 아이디
  String groupId;
  // 속한 그룹 이름
  String groupName;
  // 만들어진 날짜
  String insertDate;
  // 수정된 날짜
  String updateDate;
  // 그룹 주인 id
  String groupOwnerId;

  AlarmModel({
    required this.id,
    required this.userId,
    required this.time,
    required this.memo,
    required this.days,
    required this.groupId,
    required this.groupName,
    required this.insertDate,
    required this.updateDate,
    required this.groupOwnerId,
  });
  AlarmModel.fromJson(Map<String, dynamic> json)
      : this(
          id: json['id'],
          userId: json['userId'],
          time: json['time'],
          memo: json['memo'],
          days: json['days'],
          groupId: json['groupId'],
          groupName: json['groupName'],
          insertDate: json['insertDate'],
          updateDate: json['updateDate'],
          groupOwnerId: json['groupOwnerId'],
        );

  Map<String, dynamic> toJson() {
    return {
      'id': id,
      'userId': userId,
      'time': time,
      'memo': memo,
      'days': days,
      'groupId': groupId,
      'groupName': groupName,
      'insertDate': insertDate,
      'updateDate': updateDate,
      'groupOwnerId': groupOwnerId,
    };
  }
}

 

class ShareAlarmModel {
  // 속한 그룹 아이디
  String id;
  // 속한 그룹 이름
  String groupName;
  // 삭제, 숨김, 공개 플래그
  String shareState;
  // 만들어진 날짜
  String insertDate;
  // 수정된 날짜
  String updateDate;
  // 그룹 주인 id
  String userId;
  // 그룹에 속한 리스트 json 형태 생각하기
  String textAlarmList;

  ShareAlarmModel({
    required this.id,
    required this.groupName,
    required this.shareState,
    required this.insertDate,
    required this.updateDate,
    required this.userId,
    required this.textAlarmList,
  });

  ShareAlarmModel.fromJson(Map<String, dynamic> json)
      : this(
          id: json['groupId'],
          groupName: json['groupName'],
          shareState: json['groupName'],
          insertDate: json['insertDate'],
          updateDate: json['updateDate'],
          userId: json['userId'],
          textAlarmList: json['textAlarmList'],
        );

  Map<String, dynamic> toJson() {
    return {
      'id': id,
      'groupName': groupName,
      'shareState': shareState,
      'insertDate': insertDate,
      'updateDate': updateDate,
      'userId': userId,
      'textAlarmList': textAlarmList,
    };
  }
}

 

2. Folder Naming, File Naming기능별로 폴더를 만들고, 아래에 _screen.dart 만들기, 구성 요소는 components 폴더에 넣기

 

3. GetXController를 Singleton 방식으로 변경하기 ( 메모리 절약, 미리 생성한 인스턴스 활용 )

최상단 위젯에서 Get.put을 한 후 Get.find를 사용하여 기존 인스턴스 활용하기

 

// in GetMaterialApp
final ac = Get.put(AlarmController());

// Singleton
static AlarmController get to => Get.find();

// Usage
AlarmController.to.updateAlarmInfo();

 

728x90

학습목표


1. 알람이 울릴 때 지정한 알람 소리로 울리는 기능 구현방법 찾아보기

 

 

 

회고


1. 알람이 울릴 때 지정한 알람 소리로 울리는 기능 구현방법 찾아보기

 

awesome_notification 라이브러리 사용

 

android res 폴더에 알람 소리 파일이 존재해야 한다.

 

custom_sound notification channel 생성하기

 

channel group 생성하기

 

custom_sound notification channel에 notification 생성하여 알람 표시하기

 

728x90

학습목표


1. Firebase firestore CRUD 구현 및 테스트

내 알람 추가 기능을 위주로 firebase firestore에 데이터 쓰기/읽기/수정/삭제 구현해보기

 

회고


 

1. Firebase firestore CRUD 구현 및 테스트

내 알람 추가 기능을 위주로 firebase firestore에 데이터 쓰기/읽기/수정/삭제 구현해보기

 

alarm DB fields

alarmId : document.id로 대체

alarmTime 

alarmDay

alarmMemo

 

firestore 저장 화면

Oracle, MySQL 같은 relational database는 보통 테이블에 PK인 id를 지정하는데, Cloud Firestore는 NoSQL database이므로 collection안에 document.id로 document를 구분할 수 있다. 요일 정보와 시간 정보를 활용하여 알람이 울릴 시간을 지정할 수 있다. 

 

StreamBuilder를 사용하여 알람 정보를 실시간으로 가져오기

  // 위젯 빌드
  
  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    double height = MediaQuery.of(context).size.height;

    return Column(
      children: [
        // top bar
        topBar('내 알람'),

        Expanded(
            child: StreamBuilder<QuerySnapshot>(
          stream: Api('alarm').streamDataCollection(),
          builder:
              (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
            if (snapshot.hasData) {
              listMessage = snapshot.data!.docs;
              if (listMessage.length > 0) {
                return ListView.builder(
                  itemBuilder: (context, index) =>
                      buildItem(index, snapshot.data?.docs[index]),
                  itemCount: snapshot.data?.docs.length,
                  reverse: false,
                  controller: listScrollController,
                );
              } else {
                return Center(child: Text("알람이 없습니다."));
              }
            } else {
              return Center(
                child: CircularProgressIndicator(),
              );
            }
          },
        )),
      ],
    );
  }
  
    // 각각의 알람
    Widget buildItem(int index, DocumentSnapshot? document) {
        Map<String, dynamic> routine = document!.get('alarmDay');
        List alarmDayString = [];
        for (final mapEntry in routine.entries) {
          final key = mapEntry.key;
          final value = mapEntry.value;
          if (value == true) {
            alarmDayString.add(key);
          }
        }

        return Alarm(
            id: document.id,
            height: MediaQuery.of(context).size.height,
            time: document.get('alarmTime'),
            group: document.get('alarmMemo'),
            day: alarmDayString.join(', '),
            memo: document.get('alarmMemo'),
            remaining: "남은시간");
    }

서버에서 데이터를 렌더링할 때 보통 FutureBuilder와 StreamBuilder를 사용한다. FutureBuilder는 화면에 접근할 때 한 번 가져온다. StreamBuilder는 한 화면에서 데이터가 변경될 때마다 실시간으로 반영된다. 일단 즉각적으로 변경을 확인하고 싶어서 StreamBuilder를 사용하였다.

 

QuerySnapshot, DocumentSnapshot을 가져오거나 추가, 삭제, 수정하는 함수

// firestore crud

import 'package:cloud_firestore/cloud_firestore.dart';
import 'dart:async';

class Api {
  final FirebaseFirestore _db = FirebaseFirestore.instance;
  final String path;

  Api(this.path);

  Future<QuerySnapshot> getDataCollection() {
    return _db
        .collection(path)
        .get(); //Futuer Return single result over a period of time
  }

  Stream<QuerySnapshot> streamDataCollection() {
    return _db
        .collection(path)
        .snapshots(); // Stream Return multiple values over a period of time
  }

  Future<DocumentSnapshot> getDocumentById(String id) {
    return _db.collection(path).doc(id).get();
  }

  Future<void> removeDocument(String id) {
    return _db.collection(path).doc(id).delete();
  }

  Future<DocumentReference> addDocument(Map<String, Object> data) {
    return _db.collection(path).add(data);
  }

  Future<void> updateDocument(Map<String, Object> data, String id) {
    return _db.collection(path).doc(id).update(data);
  }
}

document를 추가할 때 id를 자동 생성해준다. 수정, 삭제는 id를 기준으로 수행한다. 전체 데이터 조회는 QuerySnapshot으로 받는다.

 

기능 시연 영상

https://youtu.be/B48QjVuWYTQ

 

 

728x90

학습목표


1. Firebase cloud messaging & foreground notification 기능 구현

앱이 실행 중일 때 notification 받도록 구현

 

2. Firebase cloud messaging & background notification 기능 구현

앱이 종료되었을 때 notification 받도록 구현

 

3. 특정 시간에 알람 설정 시, 앱이 실행되고 소리 또는 진동이 울리는 기능 구현

진동 모드, 무음 모드일 때 어떻게 처리하는지 찾아보기

 

회고


1. Firebase cloud messaging & foreground notification 기능 구현

앱이 실행 중일 때 notification 받도록 구현

 

2. Firebase cloud messaging & background notification 기능 구현

앱이 종료되었을 때 notification 받도록 구현

 

import 'dart:async';
import 'dart:math';

import 'package:awesome_notifications/awesome_notifications.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:notify/layout/default_layout.dart';
import 'package:notify/main.dart';
import 'package:notify/utils/notification_util.dart';

Future<void> onBackgroundMessage(RemoteMessage message) async {
  // 기존
  // await Firebase.initializeApp();
  // 앱 실행 코드 추가
  await init();
  runApp(const App());

  print('background messgae !!!');
  print(message.messageId);
  if (message.data.containsKey('data')) {
    // Handle data message
    final data = message.data['data'];
    print(data);
  }

  if (message.data.containsKey('notification')) {
    // Handle notification message
    final notification = message.data['notification'];
    print(notification);
  }
  // Or do other work.

  // awesome_notification background handler
  await AwesomeNotifications().createNotification(
      content: NotificationContent(
    id: 1,
    channelKey: 'basic_channel',
    title: message.notification!.title!,
    body: message.notification!.body!,
  ));
}

class FCM {
  final _firebaseMessaging = FirebaseMessaging.instance;

  final streamCtlr = StreamController<String>.broadcast();
  final titleCtlr = StreamController<String>.broadcast();
  final bodyCtlr = StreamController<String>.broadcast();

  setNotifications() {
    FirebaseMessaging.onBackgroundMessage(onBackgroundMessage);

    // handle when app in active state
    forgroundNotification();

    // handle when app running in background state
    backgroundNotification();

    // handle when app completely closed by the user
    terminateNotification();

    // With this token you can test it easily on your phone
    final token =
        _firebaseMessaging.getToken().then((value) => print('Token: $value'));
  }

  forgroundNotification() {
    FirebaseMessaging.onMessage.listen(
      (message) async {
        print('foregroundmessage');
        print(message);

        if (message.data.containsKey('data')) {
          // Handle data message
          streamCtlr.sink.add(message.data['data']);
        }
        if (message.data.containsKey('notification')) {
          // Handle notification message
          streamCtlr.sink.add(message.data['notification']);
        }
        // Or do other work.
        titleCtlr.sink.add(message.notification!.title!);
        bodyCtlr.sink.add(message.notification!.body!);

        // awesome_notifications
        // await AwesomeNotifications().createNotification(
        //     content: NotificationContent(
        //         id: 1,
        //         channelKey: 'basic_channel',
        //         title: message.notification!.title!,
        //         body: message.notification!.body!));
      },
    );
  }

  backgroundNotification() {
    FirebaseMessaging.onMessageOpenedApp.listen(
      (message) async {
        print('backgroundmessage');
        print(message);
        if (message.data.containsKey('data')) {
          // Handle data message
          streamCtlr.sink.add(message.data['data']);
        }
        if (message.data.containsKey('notification')) {
          // Handle notification message
          streamCtlr.sink.add(message.data['notification']);
        }
        // Or do other work.
        titleCtlr.sink.add(message.notification!.title!);
        bodyCtlr.sink.add(message.notification!.body!);
      },
    );
  }

  terminateNotification() async {
    RemoteMessage? initialMessage =
        await FirebaseMessaging.instance.getInitialMessage();
    print('terminatemessage');
    print(initialMessage);
    if (initialMessage != null) {
      if (initialMessage.data.containsKey('data')) {
        // Handle data message
        streamCtlr.sink.add(initialMessage.data['data']);
      }
      if (initialMessage.data.containsKey('notification')) {
        // Handle notification message
        streamCtlr.sink.add(initialMessage.data['notification']);
      }
      // Or do other work.
      titleCtlr.sink.add(initialMessage.notification!.title!);
      bodyCtlr.sink.add(initialMessage.notification!.body!);
    }
  }

  dispose() {
    streamCtlr.close();
    bodyCtlr.close();
    titleCtlr.close();
  }
}

 

알람 소리 재생 페이지

// import 'package:firebase_database/firebase_database.dart';
import 'package:audioplayers/audioplayers.dart';
import 'package:notify/addalarm/add_alarm.dart';
import 'package:notify/alarmlog/alarm_log.dart';
import 'package:notify/alarmsettings/alarm_settings.dart';
import 'package:notify/layout/default_layout.dart';
import 'package:notify/routinealarm/routine_alarm.dart';
import 'package:flutter/material.dart';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';

import 'package:notify/constraints.dart';
import 'package:notify/myalarm/my_alarm.dart';
import 'package:notify/sharealarm/share_alarm.dart';
import 'package:get/get.dart';

class AlarmSoundPage extends StatefulWidget {
  final AudioPlayer player;

  const AlarmSoundPage({
    Key? key,
    required AudioPlayer this.player,
  }) : super(key: key);

  @override
  _AlarmSoundPageState createState() => _AlarmSoundPageState();
}

class _AlarmSoundPageState extends State<AlarmSoundPage> {
  int currentIndex = 0;

  void changeCurrentIndex(int selectedIndex) {
    setState(() {
      currentIndex = selectedIndex;
    });
  }

  @override
  Widget build(BuildContext context) {
    double width = MediaQuery.of(context).size.width;
    double height = MediaQuery.of(context).size.height;

    return Scaffold(
      backgroundColor: kBackgroundColor,
      body: SafeArea(
        child: Padding(
          padding: const EdgeInsets.all(10.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            children: [
              SizedBox(
                height: height * 0.1,
              ),
              Text(
                '1월 11일 화요일',
                style: TextStyle(
                  color: ktextColor,
                ),
              ),
              SizedBox(
                height: height * 0.05,
              ),
              Text(
                '3:55',
                style: TextStyle(
                  color: ktextColor,
                  fontSize: 30,
                ),
              ),
              Spacer(),
              Row(
                children: [
                  Expanded(
                    child: MaterialButton(
                      height: 50,

                      clipBehavior: Clip.antiAlias, // Add This
                      elevation: 0,
                      textColor: ktextColor,
                      color: kRedColor,
                      onPressed: () {
                        // _dateTime 시간에 알람 울리도록 추가
                        widget.player.stop();
                        Get.off(DefaultLayout());
                      },
                      child: const Text(
                        '종료하기',
                        style: TextStyle(fontSize: 16),
                      ),
                    ),
                  ),
                ],
              ),
            ],
          ),
        ),
      ),
    );
  }
}

 

 

 

3. 특정 시간에 알람 설정 시, 앱이 실행되고 소리 또는 진동이 울리는 기능 구현

진동 모드, 무음 모드일 때 어떻게 처리하는지 찾아보기

 

 return SafeArea(
      child: Scaffold(
          body: ListView(
        padding: EdgeInsets.symmetric(horizontal: 15, vertical: 8),
        children: <Widget>[
          /* ******************************************************************** */
          /* notification test */
          TextDivisor(title: 'FCM Foreground\n알림 제목/텍스트'),

          Center(
            child: Column(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                SizedBox(
                  height: 20,
                ),
                Text(
                  'Foreground 알림 제목:- $notificationTitle',
                  style: Theme.of(context).textTheme.headline6,
                ),
                Text(
                  'Foreground 알림 텍스트:- $notificationBody',
                  style: Theme.of(context).textTheme.headline6,
                ),
                // MaterialButton(
                //   onPressed: _showNotificationWithNoTitle,
                //   child: Text("noti"),
                // ),
                // 알람 추가
                TextDivisor(title: '알람 추가하기'),
                hourMinute12HCustomStyle(),
                Container(
                  margin: EdgeInsets.symmetric(vertical: 100),
                  child: new Text(
                    _alarmTime.hour.toString().padLeft(2, '0') +
                        ':' +
                        _alarmTime.minute.toString().padLeft(2, '0') +
                        ':' +
                        _alarmTime.second.toString().padLeft(2, '0'),
                    style: TextStyle(fontSize: 24, fontWeight: FontWeight.bold),
                  ),
                ),
                Row(
                  children: [
                    Expanded(
                      child: MaterialButton(
                        height: 50,
                        shape: const RoundedRectangleBorder(
                          borderRadius: BorderRadius.all(Radius.circular(0)),
                          side: BorderSide(
                            color: Color(0xffdddddd),
                          ),
                        ),
                        clipBehavior: Clip.antiAlias, // Add This
                        elevation: 0,
                        textColor: Colors.white,
                        color: Colors.red,
                        onPressed: () {
                          // _dateTime 시간에 알람 울리도록 추가
                          Duration diff = _alarmTime.difference(DateTime.now());
                          int second = diff.inSeconds;
                          print("second : $second");
                          NotificationUtils.scheduleNotificationWithWakeUp(
                              27, (second));
                        },
                        child: const Text(
                          '추가하기',
                          style: TextStyle(fontSize: 16),
                        ),
                      ),
                    ),
                  ],
                ),
              ],
            ),
          ),
          /* notification test */

 

 

  static Future<void> scheduleNotificationWithWakeUp(
      int id, int seconds) async {
    Timer(
      Duration(seconds: seconds),
      // Ensure we have a unique alarm ID.
      () async {
        print('alarm excuted');
        AudioCache cache = new AudioCache();
        AudioPlayer player = new AudioPlayer();
        String alarmAudioPath = "sounds/missyoulove.mp3";
        player = await cache.loop(alarmAudioPath);
        Get.to(AlarmSoundPage(player: player));
      },
    );


    Get.to(const DefaultLayout());
  }

추후에 FCM 개념을 적용하여 푸시로 처리하는 게 좋을 지 로컬에서 AndroidAlarmManager를 사용하는 게 좋을 지 고민해봐야겠다.

 

https://youtu.be/AsHqRnKf9cI

 

728x90

학습목표


1. 기본 기획

모바일 기획

 

2. Figma로 대략적인 느낌 디자인하기

 

3. Bottom navigation, Stack navigation 등 기본 UI 틀 구현

 

회고


 

1. 기획

모바일 기획 정리

 

2. Figma로 대략적인 느낌 디자인하기

 

3. Bottom navigation, Stack navigation 등 기본 UI 틀 구현

https://www.youtube.com/watch?v=P2G-yYPXlXU&ab_channel=DynamicCoding

 

728x90

학습목표


Flutter 최신 개념 이해 및 정리 

 

1. Flutter Devtools  개념 이해 

 

2. null-safety 추가 이유  개념 이해 

 

3. GetX  개념 이해 

 

4. StreamBuilder vs FutureBuilder 개념 이해 

 

회고


1. Flutter Devtools  개념 이해 

  • Flutter 앱의 UI 레이아웃과 상태를 검사
  • Flutter 앱에서 UI 버벅거림 성능 문제를 진단
  • Flutter 또는 Dart 명령줄 앱의 소스 수준 디버깅
  • Flutter 또는 Dart 명령줄 앱에서 메모리 문제를 디버그
  • 실행 중인 Flutter 또는 Dart 명령줄 앱에 대한 일반 로그 및 진단 정보 확인

https://cheolheelee.tistory.com/377

 

Flutter Devtools 개념 이해

1. Flutter Devtools  개념 이해 1) Flutter devtools 설치 Flutter devtools 사용 사진 Flutter devtools의 기능 Flutter 앱의 UI 레이아웃과 상태를 검사 Flutter 앱에서 UI 버벅거림 성능 문제를 진단 Flutte..

cheolheelee.tistory.com

 

2. null-safety 추가 이유  개념 이해 

Flutter 2.0 업데이트 이후 dart 언어에 null safety가 적용되었다.

null으로 인한 런타임 에러를 방지하여 개발자의 생산성을 높일 수 있다.

유저가 실수로 체크하지 못한곳에서 발생하는 NullPointerException같은 에러를 조기에 방지하고
실제로 돌아가는 어셈블리상에서 null체크를 다시 안하기 때문에 성능적 이득도 있다.

 

자세히 말하면, null safety는 변수가 null을 허용하는지 구분하기 위한 개념인데 기본적으로 null을 허용하지 않는다.
dart 언어는 null safety를 지원하지 않았기 때문에
변수 값이 초기화 되지 않았거나 null 값을 전달하면 컴파일 에러는 발생하지 않고 런타임 과정에서 오류가 발생했다.
이러한 이유로 코드를 작성할 땐 오류가 발생할 것을 예상하지 못하기 때문에 코드를 수정하고 다시 빌드하기까지의 개발 시간이 추가된다.

 

이를 해결하기 위해 null safety를 적용하여
개발자가 런타임 과정이 아닌 코드를 편집하는 과정에서 IDE로 부터 빠른 피드백을 받도록 하였다.

 

https://cheolheelee.tistory.com/369

 

Flutter에서 Null Safety를 사용하는 이유

Flutter 2.0 업데이트, null safety 적용 Flutter 2.0 업데이트 이후 dart 언어에 null safety가 적용되었다. null으로 인한 런타임 에러를 방지하여 개발자의 생산성을 높일 수 있다. 유저가 실수로 체크하지..

cheolheelee.tistory.com

 

3. GetX  개념 이해 

 

GetX가 제공하는 기능

  • 고성능 상태 관리
  • 지능형 종속성 주입
  • 편리한 라우트 관리 기능 제공

 

GetX의 3가지의 기본 원칙

  • 성능
    • 성능과 리소스 소비의 최소화
    • Streams, ChangeNotifier를 사용하지 않는다.
  • 생산성
    • 쉽고 간결한 구문을 사용한다.
    • 사용하지 않는 리소스는 메모리에서 자동으로 제거해준다. 따라서 개발자가 메모리에서 컨트롤러를 제거하는 것을 신경쓰지 않아도 된다.
  • 조직화
    • 화면, 프레젠테이션 로직, 비즈니스 로직, 종속성 주입, 네비게이션을 완전히 분리할 수 있다.

 

 

https://cheolheelee.tistory.com/365

 

4. StreamBuilder vs FutureBuilder 개념 이해 

 

Futurebuilder

데이터를 한 번만 가져온다. 로또 유틸앱을 개발할 때 Future builder로 구현하였다. dhlottery.co.kr에 http request를 한 번 보내여 전 주의 당첨 정보를 표시했다.

 

 

 

StreamBuilder

변화가 발생할 때마다 연속적으로 계속 가져온다. snapshot에 변화가 생기면 widget를 다시 빌드한다. 실시간으로 데이터의 변화를 반영할 수 있다.

 

https://cheolheelee.tistory.com/366

 

Flutter :: StreamBuilder vs FutureBuilder

streambuilder / futurebuilder는 firebase를 연동하며 자주 만날 수 있는 친구들이다. firebase안에 data들이 있는데, 그것들이 변할 때, 정보를 계속적으로 읽는 역할을 한다. Futurebuilder 한 번만 가져온다...

cheolheelee.tistory.com

 

 

728x90

두 사람이 교도소 창문으로 밖을 내다보았다. 한 사람은 진흙탕을 보고 다른 한 사람은 별을 보았다.

 

초인에 관한 공식을 말하면서 니체는 "고난을 참고 견딜 뿐만 아니라, 그것을 사랑하는 자가 초인이다"라고 했다.

 

메타인지 학습

생각의 연장통

기억을 계속해서 꺼내려는 노력

자기한테 설명하기

백지노트 학습법

몰아치기 학습은 독이 되는 방법

배우는 것은 기억을 꺼내고 그것을 서로 연결시키는 것이다.

배운 것 다시보기 < 테스트 후 틀린 것 확인하기

작업공간을 확보하라.

self monitoring & self controlling 배양

 

주여 제게 허락해주소서

바꿀 수 없는 것을 받아들이는 평정과

바꿀 수 있는 것을 바꿀 수 있는 용기를

그리고 이 둘을 분별할 수 있는 지혜를!

 

어제보다 1분만 더 집중하자!

 

그토록 바란다는 자의 노력이 바라지도 않은 자의 노력보다 적었다는 사실이 얼마나 부끄러운 일인가?

 

주어진 과제에 몰두하는 동안 인간은 즐거운 행복감이나 깊은 내적인 평화 또는 행복한 상태에 빠져든다. 그것이 인간의 신경을 안정시켜준다.

 

언제나 바쁘게 움직여라. 걱정이 있을 때 절망의 늪에 빠지지 않으려면 일에 몰두해야 한다.

 

인간의 욕심은 끝이 없고 같은 실수를 반복한다.

 

싸움에 있어서는 한 사람이 천 사람을 이길 수 없다. 그러나 자기 자신을 이기는 자야말로 가장 위대한 승리자다.

 

마음이 혼란스러울 때는 명상하라.

 

오늘에 충실하게 생활하라.

 

잠자리에 들 때까지, 그 날 하루만 생활하라!

 

문제해결 과정

1. 이 문제를 해결하지 못할 경우, 일어날 수 있는 최악의 사태는 무엇인가?

2. 최악의 사태를 받아들이기로 각오한다.

3. 이미 받아들인 최악의 사태를 조금이라도 개선하기 위해 노력한다.

 

기억하라. 걱정이 얼마나 엄청난 대가를 치르게 하는지

 

걱정과 싸우는 법을 모르는 사업가는 일찍 죽는다.

 

항상 여유롭고 침착해야 한다.

 

습관이란 인간으로 하여금 그 어떤 일도 할 수 있게 만들어준다.

 

인간의 가장 행복한 시간은 일에 몰두하고 있을 때이다.

 

더 나은 당신이 되기 위해 노력하고 매일 당신의 기록을 깨뜨려라.

 

어떤 말을 만 번 이상 되풀이하면 반드시 미래에 그 일이 이루어진다.

 

노력한다고 항상 성공할 수 없겠지 하지만 성공한 사람은 모두 노력했다는 걸 명심해!

728x90

좋은 사람을 곁에 둬라 :: 인간관계/친구/학습태도

 

 

친밀한 관계의 기준 :: 학습태도


당신이 친밀한 관계를 원할 때는 그 사람의 학습 태도를 보고 선택하면 된다.

 

유익한 관계


당신에게 여러 가지를 생각하게 하는 관계는 실리가 많다. 그 밖의 인간관계는 모두 유해하다

 

레오나르도의 관계 교류


레오나르도 다빈치는 아무하고나 교류하지 않았으며 사람을 가려서 가까이 지냈다. 사람을 선택하는 기준은 그 사람의 학습 태도였다.

 

근묵자흑


좋은 사람을 곁에 두면 당신도 좋은 사람이 되고 반대로 나쁜 사람을 가까이 하면 나쁜 사람이 된다는 가르침을 주고 있다.

 

주변인의 중요하다


'만약 어떤 남자가 좋은 성격을 갖고 있다고 해도 다른 사람들이 그를 부당하게 취급한다면, 또는 그가 이들과 어울린다면, 그 자신도 잘못되고 만다.'

 

아무리 의지가 강한 사람이라도 주위에 휩쓸리기 쉬운 법이다.

 

가령 자신의 의지가 약해도 지탱해주는 사람이 있으면 훨씬 더 좋은 모습으로 향상될 수 있다. 당신을 신뢰하고 응원하며 바람직한 방향으로 이끌어주는 사람들이 곁에 있으면 목표 달성도 가까워질 것이다.

728x90

이노베이션이 아니라 리노베이션으로 창조하라

 

 

 

창조하는 힘


창조하는 힘이 있으면 깊이 생각해서 탁월한 부분을 골라내 조합할 수 있다.

 

 

제로부터 창조하는 것보다 이미 만들어진 뛰어난 것을 조합하는 것이 쉽다


자신만의 독창적인 방법을 고집해서 제로(0)부터 만들기보다는 뛰어난 것을 조합하면 된다.

 

역사를 되돌아봐라


선인의 발상을 배울것, 기존의 가치나 사고에 자신의 메시지를 불어넣을 것, 외견을 세련되고 새롭게 보이게 할 것

 

728x90

세상의 통념, 대다수가 믿고 있는 사실은 진리가 아니다

 

 

중세 유럽


기독교적 세계관이 지배한 중세 유럽에서는 화석도 성경의 말씀을 뒷받침하는 방향으로 설명됐다.

 

현대


학이 발달한 현대에도 대중이 굳게 믿고 있던 사실이 틀렸다고 증명되는 경우가 있다.

 

주체적, 합리적으로 의심하라


정보를 있는 그대로 받아들일 게 아니라 항상 상식을 의심하고 스스로 확인해보면 뜻밖의 사실이나 재미있는 현상이 보일 수 있다.

 

728x90

상대가 원하는 것을 먼저 이루어내라

 

 

레오나르도 다빈치 일화


레오나르도 다빈치는 자신의 능력을 인정해 줄 후원자를 찾기 위해 밀라노 공에게 자신을 소개하는 편지를 썼다. 때는 전란의 시대였고 레오나르도는 이 시기에 군사 관련 일이 필요하다는 사실을 알아차리고는 군사 기술 전문가가 아닌데도 당당하게 자신에 대한 홍보를 펼쳤다. 이동력이 뛰어난 대포 제조나 비밀 지하도 건설, 포격을 견딜 수 있고 공격과 방어에 모두 뛰어난 배에 관한 아이디어도 적었다. 그런 뒤에 자신을 추천하는 편지 마지막 부분에는 '조각과 그림은 그 누구보다도 잘 그릴 수 있다'라며 예술을 언급했다. 군사 기술자가 되는 일은 목적이 아니라 통과점이였고 궁극적인 목적은 위대한 예술작품을 창조하는 데 있었다. 상대의 입장에서 후원자가 원하는 것을 이루어줄 수 있다고 충분히 설명한 뒤 마지막으로 자신의 희망을 자연스럽게 덧붙여 전달한 것이다. 자신이 원하는 것을 이루려면 먼저 상대가 바라는 것을 이루어줘야 한다.

 

다키가와 그리스텔의 일화


프리랜서 아나운서인 다키가와 그리스텔은 동물 애호 활이 인생의 목표였다. 그 목표를 이루기 위해 우선 아나운서로서 성공한 후에 생명체들의 공존을 추구하는 단체를 설립했다. 돌아서 가는 길을 선택한 결과가 오히려 지름길이 될 때가 있다. 다양한 성공 체험을 쌓으면서 주위 사람들의 지지를 얻어 마침내 정말로 하고 싶은 일에 집중할 수 있기 때문이다.

728x90

성공의 자원은 열등감이다

 

 

열등감이란?


열등감이란 자신이 스스로에 대해서 부족하다고 느끼는 감정이다.

 

열등감의 특징


타인과 자신을 비교하여 내가 남보다 부족하다며 자신의 열등함을 인지했을 때 생기는 감정이다. 때문에 달리 보면 발전 의식과 인간의 객관적 사고 능력이 낳은 부작용이다. 열등감은 발전의 동기가 되기도 하지만 몰락의 도화선이 되기도 한다. 이것이 심하면 타인보다 자신의 모든 면이 극복할 수 없을 정도로 떨어진다고 생각해서 열등감 콤플렉스(Inferiority complex)가 될 수 있으며, 반대로 자신의 능력에 대해 자만감에 빠진 나머지 만용(蠻勇)을 부리면 우월감 콤플렉스(Superiority complex)가 될 수 있다. 열등감이라는 용어를 만든 심리학자 알프레드 아들러는 올바른 열등감과 보상을 통해 인격을 만들어나가는 것이 중요하다고 했다.

보통 내성적이거나 자존심이 낮은 사람들이 열등감을 많이 가진다고 생각하기 쉽지만 의외로 외향적이고 호전적이며 높은 자부심의 소유자가 높은 열등감을 가지는 경우도 많다고 한다.그리고 이러한 성격을 지녔다면 밝고 활발한 겉모습을 이용하여 열등감을 감추고 다니기도 용이하다. 열등감이 강하기 때문에 이를 해소하려는 기제의 일환으로 자신을 드높이고 타인을 깎아내리는 케이스도 있다.

열등감을 바탕으로 남과 자신을 비교하며 스스로를 비하하는 것을 자기혐오라 한다.

어떤 인간이든지 살면서 이것을 한번도 느끼지 않는다는 것은 불가능하다. 아무리 능력이 출중한 사람이라고 해도 자신보다 더 많은 부, 명예, 권력 등을 가진 사람이 있다는 인식을 하면 그에 대해 열등감을 느끼기 마련이고, 열등감을 해소하기 위한 노력을 하여 그 사람을 능가하려고 한다. 성공한 사람들 중에서는, 이런 식으로 젊은 시절에 자신보다 더 나은 사람들에 대한 열등감을 품고 살았던 이들이 많다. 사실 선천적인 것에 대한 열등감의 경우에는 노력만으로 극복하기가 정말 어렵다. 예를 들자면, 외모에 대한 열등감의 경우 자신이 아무리 노력하여도 타고난 얼굴형과 이목구비등이 원하는 모습과 다르다면 결국 성형수술을 하는 방법밖에 없다. 그러나 성형을 한다고 해도, 자신이 원하는 모습이 되는 것은 그야말로 '하늘의 별 따기'이다. 꼭 외모가 아니여도 재능의 차이나 집안의 차이는 자신의 노력으로는 극복할 수 없다.

적당한 열등감은 경쟁심리의 고취를 돕지만, 너무 많을 경우 우울증과 같은 병으로 발전을 하거나 자기혐오로 넘어가 이상 행동까지 보일 수 있다. 또는 공격성을 부추겨 대상을 비난하거나 직접적으로 공격하도록 만든다. 열등감이 지나치면 이와 같이 우울증이나 자기혐오를 유발할 수 있으니 자신의 열등감이 심하다고 생각되면 전문가의 상담을 받는 것이 좋다. 선천적인 것처럼 해결이 불가능한 문제로 열등감을 느낀다면 일부러 이를 보지 않는 것도 하나의 방법이다. 그런건 아무리 열등감을 느낀다 해도 달라지지 않는 것이기 때문.

"열등감이 폭발"하는 것을 일컫는 신조어로 열폭이라는 단어도 존재한다. 이 말은 간혹 "열라 폭발"로 잘못 이해되어 쓰이기도 한다. 뜻이 전혀 달라진다.

 

자격지심과 다른점


의외로 자격지심과 헷갈리는지 열등감과 자격지심을 동의어로 잘못 아는 경우가 상당히 많다. 예를 들어, 최근에는 국어 사용에 있어 엄격한 방송사 조차 '열등감 폭발'을 '자격지심 폭발'로 잘못 사용할 정도이다.

자격지심(自激之心)이 한자어이기 때문에 해외(일본, 중국) 등지의 용례와 한자어 풀이에서 열등감과의 차이가 나타난다. 주로 해외에서는 자격지심이 'Self Critical/Reproach'로 번역되며, 자기비판의 행위로서 사용되는 것이고, 열등감(劣等感)은 'Inferiority Feeling'이라 하여 자신의 능력이 뒤떨어져서 생각하게된 무능 및 만성적인 감정 또는 의식을 말한다. 즉, 완전히 서로 치환되거나 배치되는 용어가 아니다. 예를들어, "열등감을 자신 스스로 느꼈기에 자격지심을 가져서 열등감을 극복했다."와 같이 열등감에 자기비판을 했다는 내용의 문장을 만들 수도 있다.

자격지심의 사전적 의미는 자신이 해놓은 것에 대해 흡족해 하지 않는 마음이다. 열등감과 자격지심 모두 어떠한 것에 의해 자신을 낮춘다는 것에 공통점이 있다. 다만, 자격지심은 자신이 평가하여 자신이 해놓은 것이 부족함을 평가 및 비판하는데에 초점이 있는가 하면, 열등감은 느끼는 감정으로서 비교되는 자신의 위치에 초점이 맞춰져 있다. 그래서 용례를 보면, 자격지심과는 달리 열등감에는 '극복하다.'와 '사로잡히다.' 등으로 상태를 표현하는 어구로 쓰인다.

특히, 열등감이 자신의 위치와 관련되있기 때문에 비교대상의 유무로도 자격지심과 열등감의 단어 사용에 확연한 차이를 보이기도 한다. 예를 들어, 어떤 분야에서 1등인 사람도 자기 자신의 순위와 실력에 대해 자격지심을 가질 순 있지만, 자신보다 우위가 없음으로 순위와 실력으로 열등감은 가질 수 없다. 이는 즉, 1등인 경우에는 단순히 "비록 1등이지만, 내 실력은 아직 부족하다."의 표현을 자격지심기만으로 사용할 수 있는 반면에 2등은 "1등보다 내 실력이 부족하다."와 같이 1등과 비교해서 1등에게 열등감을 느낀다는 것으로 치환이 가능하다.

앞서 전술된 사례로서 방송사의 경우에는 강아지가 다른 강아지와 비교되는 상황에 강아지 자신이 낮춰지는 감정이 생기기 시작했다는 내용이므로 '자격지심 폭발'보다 열등감 폭발이 올바른 표현이다.


자격지심의 좋은 예



하지만 이러한 차이점들과 지적이 있음에도 불구하고, 국립국어원에서는 자격지심과 열등감의 차이를 명확히 밝히지는 못하고 있으며, 오히려 옛 소설가들의 용례들을 예시로 들여 동일시하고 있다. 여러 한국어 사전에서조차 자격지심을 번역할 때에 열등감에 맞춰져있다. 사람들이 함부로 쓰는 행위는 결국 이렇게 국립국어원에 의하여 많이 퍼지고 있는 실정이다.

일부에서는 오히려 사람들이 자신의 열등감을 숨기려고 열등감이란 단어 대신 자격지심을 사용하려한다는 분석도 있다. 이외에 해외의 다른 뜻과 한자어 풀이를 근거로 들어, 자격지심 단어 자체가 사자성어 같고 뭔가 있어 보이려고 사용한다는 지적도 있으며, 국립국어원에서 제시했던 예시들도 그 중의 하나란 말도 있다.

 

열등감 콤플렉스 ( Inferiority complex )


열등감에 차 있는 사람들의 구체적인 특징을 살펴보면 다음과 같다. 혹시 주변에서 다음과 같은 특징들을 보이는 사람이 있다면 그 사람은 열등감이 많을 가능성이 있다고 해석할 수 있다.


자신과 관련된 표현들이 자학적이다.



이는 특히 온라인 환경에서의 본인의 ID나 별명, 또는 아바타(캐릭터)의 이름 등을 보면 자주 나타난다. 자신의 닉네임 또는 자기 캐릭터의 이름이 자학적인 쪽으로 부정적이라면 열등감을 강하게 느끼고 있음을 추정할 수 있다. 그 까닭은 닉네임이나 아바타의 이름은 본인을 대변하는 일종의 가면이기 때문에 자신의 관심 분야나 내면, 무의식적 사고 등이 쉽게 반영되기 때문이다.

 


남의 과오를 찾았다면 이를 자신이 상대적 우위에 설 기회로 삼으며 이에 집착한다.



인간은 누구나 남들에게 인정받고 싶어하는 심리가 기본적으로 있다. 제아무리 부정적이고 자학적인 사람이라 할지라도 그 내면에는 타인에게 인정받고자 하는 마음이 깔려 있다. 그렇기 때문에 인정받을 수 있는 기회가 생겼다고 판단하면 여기에 지나치게 집착한다.

예를 들어, 열등감에 차 있는 '갑'이라는 사람이 '을'이라는 사람이 과오를 저지른 것을 목격했다고 가정하자. 그런데 이때 '을'이 저지른 잘못이 살인이나 강간과 같이 사회적으로 용서받을 수 없는 죄목이 아니라면 어느 정도 시간이 지나면 잊히기 마련이다. 그렇지만 '갑'의 마음속에서는 그렇지 않다. 2년이 지나든 5년이 지나든 10년이 지나든 간에 '갑'은 '을'을 보면 그의 과거 잘못을 들춰서 맹렬히 공격한다. 이때 공격 방식을 보면 어떻게든 '을'이 '갑'의 공격을 통해 망신을 당하거나 '갑'보다 못한 존재로 만들고자 하는 의도가 나타난다. 바로 이런 이유 때문에 이때 '갑'은 어떻게든 '을'의 밑천을 드러내 보이고자 매달린다. 당연하겠지만 제아무리 '을'이 논리적으로 나와도 '갑'은 어떻게든 돌파구를 찾아 지지 않으려고 하며, 강한 고집을 부린다. 이것은 이 상황이 '갑'의 입장에서는 자신이 '을'보다 우위에 서 있음을 증명할 수 있는 기회이기 때문이다. 기본적으로 내재돼 있는 타인에게서 인정받고자 하는 심리 때문에 이 기회를 놓치지 않으려고 지나치게 집착하는 것이다. 하지만, 그것은 승리가 아니라 열등감의 나락으로 더 빠지는 길일 뿐이다. 물론, 열등감을 겉으로 표출하는 사람이 택하는 방식 중 가장 눈에 띄는 방식일 뿐 이러한 것에 해당하지 않으면서 내면에 큰 열등감을 가지는 사람은 충분히 많다.

참고로 상대방이 자신보다 사회적 위치가 높다던가 혹은 자신은 예체능인데 상대는 영어나 수학도 잘하고 그 쪽에 자신 특유의 무기가 있는 경우에는 그게 더하다.


과거에 좋지 않은 기억이 있었다.



이는 첫째와 둘째의 원인이 되는 경우가 많다. 주로 어린 시절, 가정불화가 있었다거나 학대 또는 따돌림을 당했다거나 하는 모종의 이유로 내면에 깊이 열등감과 자학심이 자리잡는다. 성인이 되어 겪는 이러한 문제들은 그래도 혼자서 극복이 가능하지만 어린이들에게는 전혀 다르다. 한창 심리와 지능을 형성해 나가는 나이에는 주변의 모든 환경이 본인의 인격 형성에 영향을 미친다. 그렇기 때문에 어린 시절에 겪은 부정적인 기억은 성인이 되어서까지 무의식적으로 각인되어 고착화되는 경우가 많다.

사람들마다 차이를 보이긴 하지만 겉보기에는 밝고 순수하고 외향적인것 같아 보여도 내면은 어둡다던가, 혹은 쉽게 마음 상해한다던가의 경우도 있고, 심한 경우는 조금의 흠집도 못 견디고 남의 뒷욕을 하는 경우도 꽤 된다.

728x90

 

  • 온라인 광고 시장은 2019 년에 3,040억 달러로 평가되었으며 2020 년부터 2025 년까지 예측 기간 동안 21.6%CAGR로 2025 년까지 9,828억 달러에 이를 것으로 예상됩니다. 기업의 디지털 지출 증가와 함께 증가하는 기술 발전이 예상됩니다. 예측 기간 동안 온라인 광고 시장을 주도합니다.
  • 수년에 걸쳐 증가하는 상업적 사용 및 전 세계적으로 빠르게 증가하는 인터넷 사용자 수와 결합 된 인터넷 관련 기술 발전은 온라인 광고의 진화를 형성하고 다양한 형태의 디지털 광고를 생산할뿐만 아니라 새로운 광고 비즈니스 모델과 새로운 시장 수준 및 플레이어.
  • 또한 모바일 장치의 경우 클릭 투 다운로드, 클릭 투 콜, 이미지 텍스트 및 배너 광고 등 다양한 유형의 광고가 있습니다. 또한 소비자들은 편의성과 휴대 성으로 인해 노트북이나 데스크톱보다 스마트폰 장치를 선호하고 있습니다. 모바일 플랫폼이 수익성있게 성장할 것으로 예상되므로 전자에서도 유사한 작업을 수행 할 수 있습니다.
  • 또한 6 초 광고는 다양한 소셜 미디어 플랫폼에서 점점 인기를 얻고 있습니다. Advertising Research Foundation의 새로운 연구에 따르면 짧은 형식의 6 초 TV 광고는 긴 광고보다 초당 8 ~ 11 % 더 많은 관심을 끌고 있습니다.
  • COVID-19 대유행은 다양한 산업에 큰 영향을 미치고 있으며 디지털 광고도 예외는 아닙니다. 코로나 19 확산으로 사업주들은 마케팅 노력을 평가하고 온라인 광고를 게재하기에 가장 좋은시기인지 궁금해하고 있습니다. 예를 들어, IAB (Interactive Advertising Bureau)의 최근 보고서에 따르면 거의 24 %의 미디어 구매자, 기획자 , 브랜드는 2020 년 2 분기까지 광고 지출을 일시 중지했습니다. 거의 46 %가 같은 기간 동안 광고 지출을 조정할 것이라고 답했습니다. 대부분의 최종 사용자가 현재 디지털 장치와 전염병의 불확실성을 통해 온라인에서 운영하고 있기 때문에 많은 조직에서 디지털 플랫폼에 대한 광고 투자를 전환 할 계획입니다.
728x90

드론 :: 전망/2020~2025 시장규모예측/급성장시장예측

목차

  1. 2020~2025년 드론시장

  2.드론 산업 (전기배터리, 운송, 농업, 건설)

  3. 아시아 드론 시장

  4. COVID-19 대유행과 드론 산업 

  5. 드론 판매 성장

 

 

새해에는 드론 시장 규모가 커지고 새로운 도전 과제, 새로운 시장 참여자, 새로운 사용 사례, 상업용 드론 산업에 대한 새로운 규제 장애물이 다가옵니다.

 

DRONEEII.COM에 따르면 드론 시장은 2020년 22조로 시작해 2025년에는 43조로 예측하고 있습니다. 가장 성장이 기대되는 시장은 1위 ASIA, 2위 NORTH AMERICA, 3위 EUROPE 순입니다. 

 

1. 드론 시장은 2025 년까지 428 억 달러로 성장할 것입니다.

2020 년 225 억 달러를 창출 한 이후 연평균 성장률 13.8 %로 2025 년의 거의 두 배로 성장할 것입니다. 

 

그래픽에서 볼 수있는이 상당히 안정적인 연간 성장은 지속적인 높은 투자와 상업용 드론 시장의 통합을 반영합니다.

2019년에 본 것보다 덜 낙관적인 그림이지만 그럼에도 불구하고 상업용 드론 산업은 새로운 도전에도 불구하고 탄력적 인 상태를 유지하고 있음을 보여줍니다.

드론 산업은 폭발적이고 기하급수적인 성장에서 꾸준한 수익을 내고 발전할 것입니다.

 

2. 전기배터리는 여전히 가장 큰 산업이지만, 다음으로 운송산업은 빠르게 성장하고 있습니다.

전기배터리 부문은 2020년 상업용 드론 시장에서 가장 큰 산업이며 2025년에도 계속 될 것입니다. 그러나 운송 및 창고 산업은 계속해서 가장 빠르게 성장할 것입니다.

 

드론 농업 및 건설은 현재 드론 시장의 상위 산업입니다. 전기배터리 산업의 뒤를 있고 있습니다. 드론 운송 산업은 2025년에 다다르면 농업 및 건설 시장을 뛰어넘을 것입니다.

 

3. 아시아는 이제 세계에서 가장 큰 지역 드론 시장입니다

현재 미국과 중국의 드론 기업은 상업용 드론 시장을 장악하고 있습니다. 이들의 수익은 글로벌 드론 시장 규모의 2/3 이상을 차지하고 있으며 이는 가까운 미래에는 변하지 않을 것 같습니다. 그러나 드론 시장 지배력은 점점 완화될 것입니다.

2018년 12월 드론 합법화 이후 북미 드론 기업들은 중국, 일본, 인도의 성장으로 인한 수출 덕분에 아시아 드론 기업보다 약간 더 많은 수익을 창출했지만, 아시아 드론 기업은 2019년 말에 북미 드론 기업의 수익을 앞섰습니다. 아시아 지역은 계속해서 이러한 성장을 기반으로 2025년에 지역 시장을 선도 할 것입니다.

 

4. COVID-19 대유행의 영향은 드론 산업에 의해 느껴질 것입니다

COVID-19 대유행에서 상처를 입지 않은 산업은 거의 없습니다. 세계 보건 위기로 인해 주요 경제에서 거의 3개월 동안 각 국가의 격리가 크게 증가하고 공급망이 둔화되고 상품 수요가 감소함에 따라 전 세계적으로 여러 시장이 위축되었습니다.


그러나 상업용 드론도 대유행 기간 동안 이익을 얻었습니다. Zipline 및 Wing과 같은 다른 많은 자동화 솔루션 (매핑, 측량, 방송 등) 중 상업용 드론의 의료 응용 덕분에 이전에 예상했던 것보다 빠르게 솔루션을 제공하고 확장 할 수 있었습니다.

5. 드론 판매는 2020년부터 2025년까지 두 배로 늘어날 것입니다

2021년까지 상업용 드론 산업은 연간 1,000,000 대의 드론을 판매 할 것입니다. 2020년에서 2025년 사이의 성장을 보면이 기간 동안 판매량은 두 배 이상 증가 할 것입니다.

특히, 전체 드론 판매량은 증가 할 것이지만 이는 2020-2025 년에 개인 또는 취미 생활을하는 드론 판매량이 감소함에 따라 상업용 드론 판매 증가로 이어질 것입니다.

 

이항(EHANG) 드론 비행영상

 

728x90

news.naver.com/main/read.nhn?mode=LSD&mid=shm&sid1=101&oid=366&aid=0000651569

 

주식·부동산으로 가는 돈… 현금성 자금 6개월째 20%대 증가

11월 M1 1140조 육박… 1년 전보다 26.8% 늘어 대출받아 투자 전 수시입출금·요구불예금에 예치 곧바로 현금화가 가능한 단기자금이 지난해 11월까지 6개월 연속 20%대 증가율을 기록하고 있다. 대출

news.naver.com

]

728x90

바이두 :: 주가/주식/재무제표/소개/중국/Baidu/전기차/클라우드/자율주행

 

1. 주가

www.investing.com/equities/baidu.com-chart

 

Baidu Interactive Stock Chart (BIDU) - Investing.com

Access our live streaming chart for the Baidu Inc stock, free of charge.

www.investing.com

 

2. 재무제표

 

 

3. 소개

바이두는 세계에서 가장 큰 중국어 검색 엔진이자, 포털 사이트인데, 중국의 약 14억 인구의 영향이 엄청나다 보니 세계 TOP급의 사이트 순위를 매기면 반드시 상위에 랭크된다. 하지만 중국 본토에서의 독점으로 인해 검색결과의 퀄리티는 항상 문제제기가 되고 있다.

기본적으로 구글과 비슷한 구조이며, 사실상 중국에서 구글 노릇을 하고 있는 사이트다. 2000년대 중반에 구글이 진출하면서 위기에 처할 것이라는 관측도 있었지만 오히려 검열 문제 때문에 삐걱거렸고 생각보다 의욕적인 사업 확장을 펼치지 못하면서 바이두는 야후 차이나의 점유율을 뺏어오면서 1위 포털 사이트라는 타이틀을 고수할 수 있었으며 2010년을 기점으로 구글이 중국본토에서 철수하였고, 중국 정부 역시 구글을 차단해버렸다. 구글을 이용하던 중국인들은 바이두를 쓸 수밖에 없게 되었고 결과적으로 검색 점유율이 50%대에서 70%대로 급상승하였다.

이런 탓에 애플에서는 중국 애플폰에 기본 검색 Bing을 밀어내고 바이두를 설정해 놓을 정도다.

"간단하고 믿을 수 있는 사이트"라는 취지 아래 2000년 1월 베이징시의 중관춘에서 2명의 창업자가 만들었다.

약 14억 인구의 중국인이 쓰는 포털 사이트라 인지도가 세계적으로 어느정도 높아서, 네덜란드에는 바이두 유럽이라는 짝퉁 바이두도 등장했다. 이것은 결국 베이징의 본사와 상표권을 둘러싼 법적 분쟁이 붙어서 우크라이나에서 유럽 쪽 짝퉁이 사용 금지 조치를 먹었다.

중국 공산당의 기관지로 백과 사전을 가장한 중국 인민의 우민화 및 공산당 체제 선전을 담당하며 동북 공정 을 통한 역사 왜곡으로 시진핑 독재 정권 유지를 위해 백과 사전이란 형식을 빌린 공산당 선전물이다.


중국어를 할 줄 아는 사람이 중국 관련 정보를 찾을 때에는 굉장히 유용한 사이트. 특히 엄청나게 거대하면서도 대단히 폐쇄적인 중국 인터넷 특성상 구글에서는 검색되지 않지만 바이두로는 검색이 가능한 정보도 많기 때문에 구글링해도 얻을 수 없는 정보가 필요할 때 최후의 수단으로 번역기를 통해서 이용하기도 한다.

크로뮴 엔진을 사용한 자체 브라우저가 존재한다.사이트

접속하면 Adware.CnsMin라는 악성 코드에 감염되는 경우도 있었다. 단 이건 바이두 자체의 문제라기보다는 바이두에 연결된 서비스(바이두 MP3, 동영상 등)를 통한 감염이다.

중국에서의 영향력과 명성과는 달리 아직 한국에서의 인지도는 희미하지만 편리하고 무료로 제공되는 웹하드 기능과 각종 저작권을 무시한 자료 검색과 취득이 가능하여 서서히 지명도를 넓혀나가고 있다.

하지만 최근에는 급속도로 성장하는 IT 경쟁 기업 알리바바와 텐센트에 밀려 상당히 뒤쳐지는 모습을 보여주고 있다. 두 기업은 모두 모바일 환경에 최적화되는 사업기반을 갖추고 있는 반면 검색엔진을 주력으로 하는 바이두는 모바일에 강한 플랫폼 제품군 중에 이렇다 하고 내세울 게 없기 때문. 오죽하면 바이두는 알리바바와 텐센트의 경쟁에 밀려나서 죽어가고 있다는 소리가 중국에서까지 나오는 상황이다...

거기에다가 같은 중국 기업인 바이트댄스가 개발한 TikTok이 중국을 넘어서 전세계적으로 인기를 끌면서 비상장인 바이트댄스에게도 밀리는 굴욕을 맛보고 있다. 중국의 3대 IT기업을 상징하는 BAT의 B가 더이상 바이두가 아닌 바이트댄스(ByteDance)라는 말이 나올 정도.

 

4. 지원 서비스

百度新闻(바이두 뉴스)
각종 인터넷 뉴스를 모아서 보여주며 내용 및 제목을 검색할 수도 있다.


百度网页(바이두 웹페이지)
검색. 바이두에 접속하면 디폴트로 이곳이 선택되어 있다.


百度贴吧 (바이두 티에바)
특정 주제를 바탕으로 바이두에 가입한 유저들이 이것저것 얘기하는 포럼. 오덕 관련 정보도 풍부하며 해당 포럼에서 전용 이미지 갤러리를 돌릴 수도 있다.
오덕 관련 포럼일 경우 팬픽 등도 올라온다. 단 저작권 의식이 희미한 중국이다 보니 불법 공유 관련 얘기도 아무렇지 않게 나오기도 한다. 픽시브 등에서 퍼온 그림이 버젓이 올라가기도 한다. 그나마 게임 쪽은 저작권 인식이 높아진 편이라 많은 판들에서는 불법 공유 및 해킹을 좋지 않게 여기는 분위기가 형성되기도 한다. 자세한 내용은 해당 항목 참조.


百度知道(바이두 지식)
네이버 지식iN과 비슷한 기능. 말 그대로 유저가 질문을 올리고 이에 대답이 올라오는 곳이다.


百度(MP3)
가장 말도 많고 탈도 많은 기능 중 하나. 중국의 불법 자료 검색 기능이 매우(?) 뛰어남을 증명한 사례 중 하나로, 아예 MP3 파일을 다운받는 메뉴까지 지원했다. 다만 이 때문에 국제적으로 호되게 얻어맞은 후 슬금슬금 자제하고 있지만… 아직도 멀었다. 가끔 곡들이 발매 전에 유출되어 올라오기도 한다. 바이두 서버 자체에 업로드되는 것보다는 중국 내 타 사이트의 링크를 여기에 걸어 소개하는 방식을 택하고 있다. 하지만 최근 들어서 외국에서 접속 시에는 본 서비스 사용이 불가능하다. 아마 바이두에서 외국 IP를 막은 듯 하다. 2018년에 들어와 쳰쳰인웨로 개편했다. 기존의 mp3.baidu.com를 입력하면 music.taihe.com으로 리다이렉트 된다.


百度图片(바이두 이미지)
이미지 검색 기능으로, 말 많은 기능 중 하나. 저작권을 위반하는 화상 등이 버젓이 올라오는 일이 상당히 흔하다.


百度频道(바이두 채널)
동영상 서비스. 바이두 자체에 올라오는 게 아니라 Tudou, Youku 등 중국 내 유명 동영상 사이트들의 동영상 링크로 소개해준다. 구글 비디오 검색과 유사.


百度地图(바이두 지도)
온라인으로 중국 전역을 포함한 전세계의 지도를 보여주며, 국가 단위부터 거리 단위까지 줌인/줌아웃이 가능. 버스 노선 등도 검색할 수 있다. 3D모드로도 볼 수 있는데, 심시티 뺨치는 퀄리티를 자랑한다. 본격 인력 갈아넣기 이렇다 보니 보통 대만, 홍콩, 마카오를 포함해서 해외여행 갈 때 구글 지도를 사용하는 경우가 많은데, 중국 여행만은 예외로 바이두 지도를 이용한다. 구글 지도는 구글이 중국에서 철수한 이후로 업데이트가 부실해져서 바이두 지도를 쓰는 게 낫다. 홍콩인들도 바이두 앱을 다운받아 두었다가 중국 대륙으로 넘어가면 쓰곤 한다. 물론 바이두 지도도 홍콩과 마카오도 커버하고 있어서 이들 여행지를 갈 때도 사용할 수 있지만 이쪽은 구글 지도의 성능이 워낙 압도적이기 때문에 별 의미가 없다. 한국 지명도 중국식 한자로 정확히 번역을 해 놔서 중국 현지인들이 한국 관광에 유용하다고 한다. 동해를 日本海로, 독도를 竹岛로 표기한다는 문제가 있다고 알려졌으나 2019년 4월 6일 기준, 문제가 되는 내용이 지도상에서 아예 지워졌다. 한자로 검색해도 뜨지 않는다. 국제적인 논란을 최소화 하기 위해 병행표기를 택하는 다른 지도 사이트와는 다르게, 아예 논란의 대상을 없애버린 듯하다.


百度百科(바이두 백과)
중국 내에서 유명한 웹사이트들의 링크를 모아서 주제별로 보여주는 링크 사이트. 중국에서는 검색하기보다 이 사이트로 들어가서 링크 타는 경우가 많다. 예를 들어 인터넷 쇼핑몰을 찾는다면 여기로 들어가서 인터넷 쇼핑몰 항목의 여러 사이트 중 하나를 선택.


百度云(바이두윈)
클라우드 서비스. 바이두 안티바이러스 클라우드 기반 백신이다. 완전 무료에 빠른 검색 속도 다른 검증 기관에서 보통 이상의 성적을 받았다. 하지만 인터넷 연결이 끊기면 백신 작동이 안된다. 자체적인 클라우드 엔진&휴리스틱 엔진이 있으며 클라우드 아비라 엔진도 장착되어 있다. 기본적인 백신 기능 이외에도 해킹 방지나 시스템 관리용 툴이 들어 있다.다운로드

728x90

테슬라 :: 주가/관련주/모델3/모델Y/주식/모델X/전기차/시가총액

 

1. 주가

investing.com

가장 인기있는 투자 정보 사이트입니다.(한국의 네이버 증권) 

각종 뉴스와 주식, 채권, 원자재, 외환 등 정보를 실시간으로 확인할 수 있습니다.

 

www.investing.com/equities/tesla-motors-chart

 

Tesla Interactive Stock Chart (TSLA) - Investing.com

Access our live streaming chart for the Tesla Inc stock, free of charge.

www.investing.com

2. 관련주 ( 클릭 시 네이버 증권으로 이동하여 주가 확인 )

 

LG화학

 

삼성SDI

 

현대모비스

 

엠에스오토텍

 

KEC

 

에코프로비엠

 

아모그린텍

 

성창오토텍

 

3. 제품

www.tesla.com/ko_kr/model3

 

Model 3 | Tesla

Model 3 is designed for electric-powered performance, with dual motor AWD, quick acceleration, long range and fast charging.

www.tesla.com

 

모델3

 

테슬라 모델 3(Tesla Model 3)는 2016년 3월 31일 테슬라에서 공개한 중형 전기 세단입니다. 대한민국에서는 2019년 8월 13일에 공식 출시했습니다.

미국 프리미엄 자동차 시장에서 2018년 말 이후 판매량 1위, 미국 캘리포니아 주(세계 최대 자동차 시장인 미국에서 가장 자동차가 많은 주)에서 2020년 1분기 판매량 1위를 차지하고 있으며, 한국에서 2020년 3월 가장 많이 팔린 수입 자동차입니다.

 

모델Y

 

미국의 프리미엄 전기 자동차 브랜드인 테슬라의 중형 SUV 입니다.

2019년 3월 15일 공개되었고, 2020년 3월 13일 출시되었습니다.

2020년 가을부터 생산될 것으로 발표되었고 많은 사람들이 지연될 수도 있을 것으로 예측하였으나 2019년 3분기 투자자 회의에서는 예정보다 빨리 진행되어 여름부터 생산될 수도 있다고 발표하였습니다. 2019년 4분기 투자자 회의에서 2020년 봄부터 출시하며 항속거리가 공개시보다 10%이상 증가되어 출시함을 공개하였습니다. 테슬라 모델 3와 부품을 70~75%가량 공유하고 생산시설도 공유하게 되어 프로토타입 공개 후 1년도 지나지 않아 출시하게 되었습니다.

발표 당시 테슬라는 자동차의 전체 배선을 갈아엎어서 심하게는 수km까지 들어가는 배선을 수십~수백미터 수준으로 줄이는 프로젝트를 적용할 것으로 예상됐지만 리버스 엔지니어링 전문가 먼로가 모델 Y를 분해한 결과 모델3 수준인 것으로 밝혀졌습니다.

LG화학과 파나소닉의 배터리가 탑재될 예정이라고 하며, 생산지는 북 캘리포니아 프리몬트 공장과 중국 "기가 상하이", 독일 "기가 베를린"이 될 예정입니다.

 

모델X

 

테슬라의 준대형 SAC 입니다.
2012년 2월에 발표하였고 2015년 9월 30일에 정식 출시하였다. 5~7인승(기본 5인승, 옵션에 따라 6인승 및 7인승 선택 가능)에 팔콘 윙 도어를 탑재하여 좁은 공간에서도 편하게 내릴 수 있습니다. 또한 바이오 디펜스 모드 시스템을 갖춰 생화학 공격시 차량 안을 지킬 수 있다고 합니다. 시작가격은 83,000달러로 약 9천 4백만원입니다.

다른 테슬라 자동차와 마찬가지로 스마트폰, 테블릿 pc처럼 수시로 OTA업데이트를 제공받으며, 카메라가 8개 달려 있어 오토파일럿 모드시 모든 카메라를 사용하고 4개 채널 블랙박스 기능이 제공되고 있습니다. 주행시 계기판에 사각지대를 포함한 주변 차량을 보여주는 기능을 제공합니다.

4. 시가총액 ( market cap )

테슬라 - 약 8800억 달러 (약 880조원)

삼성전자 - 약 530조원

 

 

 

 

 

 

 

 

 

 

 

 

+ Recent posts