<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>devkonis (DevKonis)</title><link>http://blex.me/@devkonis</link><description>DevKonis입니다.
문의사항은 kokun9212@gmail.com 연락주세요!!</description><atom:link href="http://blex.me/rss/@devkonis" rel="self"/><language>ko</language><lastBuildDate>Fri, 25 Aug 2023 08:55:44 +0900</lastBuildDate><image><url>/resources/media/images/avatar/69/devkonis/atCF0.png</url><title>devkonis (DevKonis)</title><link>http://blex.me/@devkonis</link></image><item><title>[스타트업] 업계에서 통용되는 스타트업 관련 주요 용어</title><link>http://blex.me/@devkonis/%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EC%97%85%EA%B3%84%EC%97%90%EC%84%9C-%ED%86%B5%EC%9A%A9%EB%90%98%EB%8A%94-%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EA%B4%80%EB%A0%A8-%EC%A3%BC%EC%9A%94-%EC%9A%A9%EC%96%B4</link><description>&lt;h2 id="start-up-용어-정리"&gt;Start-Up 용어 정리&lt;/h2&gt;&lt;h4 id="스타트업"&gt;스타트업&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;실리콘밸리에서 시작된 용어로 설립한지 오래 되지 않은 신생 창업기업&lt;/li&gt;
&lt;li&gt;기술과 아이디어를 가지고 있지만 시드머니(초기자금)가 부족한 경우가 많다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="린-스타트업"&gt;린 스타트업&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;시장의 반응을 파악하기 위해 시제품을 만들어 성과를 측정하고 다음 제품 개선에 반영하는 전략&lt;/li&gt;
&lt;li&gt;'제작-측정-학습'의 과정을 반복하여 성공확률을 높인다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="mvpminimum-viable-product"&gt;MVP(Minimum Viable Product)&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;최소 기능 제품의 약자로 제품을 출시할 때 최소 실행가능한 상태를 만들어 소비자의 반응을 확인하기 위한 테스트&lt;/li&gt;
&lt;li&gt;최소한의 비용으로 리스크를 줄이면서 빠르게 가설을 확인 할 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="rfprequest-for-proposal"&gt;RFP(Request For Proposal)&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;제안 요청서의 약자로 프로젝트 담당할 최종 업체를 선정하기 전, 요구사항을 체계적으로 정리하여 후보 업체들에게 전달하는 문서&lt;/li&gt;
&lt;li&gt;프로젝트의 주제, 목적, 내용, 기대성과 등 진행할 업무 내용에 대한 자세한 사항으로 구성되어 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="kpikey-performance-indica"&gt;KPI(Key Performance Indicator)&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;핵심 성과 지표의 약자로 목표를 달성하기 위해 핵심적으로 관리할 요소들에 대한 성과 지표 / 미래지향적
&lt;ul&gt;
&lt;li&gt;ex: 순이익, 매출액, 웹사이트 접속자 수, 클릭율, 신제품 출시 횟수 등&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="마일스톤"&gt;마일스톤&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;궁극적인 목표 도달을 위한 단기적인 목표로, 비교적 소규모 과제를 뜻함&lt;/li&gt;
&lt;li&gt;자본이 부족한 초기 스타트업의 경우 상품이나 매출에 대한 결과가 없어도 마일스톤을 통해 투자 유치가 가능하기에 매우 중요한 요소&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="페르소나"&gt;페르소나&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;제품이나 서비스의 주요 고객을 대변하는 가상의 인물로 다양한 고객층을 특정하기 위해 실제 사용자 정보를 바탕으로 구체적으로 정의한것&lt;/li&gt;
&lt;li&gt;ex: 대한민국 30대 고객층이라는 범위에서 서울 송파구에 거주하는 34세 싱글 여성인 김주희씨로 특정화 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="bmbusiness-model"&gt;BM(Business Model)&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;사업이 어떤 방식으로 이루어지는지를 설명하는 도구로, 기업 업무, 제품 및 서비스의 전달 방법, 이윤을 창출하는 방법을 나타낸 모델&lt;/li&gt;
&lt;li&gt;일상 언어로 말하자면 돈을 버는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="피봇"&gt;피봇&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;제품, 서비스 혹은 사업 모델을 다른 방향으로 전환하는 것&lt;/li&gt;
&lt;li&gt;ex: 넷플릭스 / 비디오 우편배달서비스 -&amp;gt; 온라인 동영상 서비스(OTT)&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="유니콘"&gt;유니콘&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;기업가치가 10억달러(한화 1조원) 이상인 비상장 스타트업&lt;/li&gt;
&lt;li&gt;ex: 토스, 당근마켓, 무신사, 오늘의 집 등&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="해커톤해킹-hacking-마라톤-maratho"&gt;해커톤(해킹 Hacking + 마라톤 Marathon)&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;해킹과 마라톤의 합성어로 일정기간동안 기획자, 디자이너, 개발자 등이 집중적으로 아이디어를 도출하고, 제품, 서비스를 완성하는 행사&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="pitch"&gt;PITCH&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;기업의 비전, 제품, 서비스를 짧고 간결하게 설명하는 것
&lt;ul&gt;
&lt;li&gt;IR Pitch: 투자유치를 목표로 스타트업이 발표를 통해 투자자들을 설득하는 과정&lt;/li&gt;
&lt;li&gt;Elevator Pitch: 아주 짧은 시간동안 상대방의 관심을 끌어내고 설득하는 것을 목표로 하는 발표&lt;/li&gt;
&lt;li&gt;Pitching Deck: 투자자들에게 설명하기 위한 회사 비즈니스 모델에 대한 발표자료(PPT)&lt;/li&gt;
&lt;/ul&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="데모데이"&gt;데모데이&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;스타트업 기업이 투자자 혹은 참가자들에게 서비스나 제품, 아이디어 등을 프레젠테이션(PPT) 형태로 소개하는 행사&lt;/li&gt;
&lt;li&gt;데모데이를 통해 투자를 유치할 수 있기에 초기 스타트업에게 매우 중요한 행사이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h4 id="스타트업-관련-투자사"&gt;스타트업 관련 투자사&lt;/h4&gt;&lt;ul&gt;
&lt;li&gt;인큐베이터: 예비, 극초기 스타트업이 자립할 수 있도록 공간 등을 지원&lt;/li&gt;
&lt;li&gt;엑셀러레이터(AC): 초기 스타트업이 성장할 수 있도록 교육 및 인프라를 지원&lt;/li&gt;
&lt;li&gt;벤처캐피탈(VC): 초기부터 중후기 스타트업의 사업 확장을 위해 큰 규모의 투자금 지원&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Fri, 25 Aug 2023 08:55:44 +0900</pubDate><guid>http://blex.me/@devkonis/%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EC%97%85%EA%B3%84%EC%97%90%EC%84%9C-%ED%86%B5%EC%9A%A9%EB%90%98%EB%8A%94-%EC%8A%A4%ED%83%80%ED%8A%B8%EC%97%85-%EA%B4%80%EB%A0%A8-%EC%A3%BC%EC%9A%94-%EC%9A%A9%EC%96%B4</guid></item><item><title>[REACT] 애니메이션 활용시 비동기 데이터 문제점</title><link>http://blex.me/@devkonis/react-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%ED%99%9C%EC%9A%A9%EC%8B%9C-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AC%B8%EC%A0%9C%EC%A0%90</link><description>&lt;h2 id="문제"&gt;문제&lt;/h2&gt;&lt;hr&gt;
&lt;p&gt;disneyPlusApp을 clone코딩하다가 swiper의 pagination이 동작하지 않는 문제 발생&lt;/p&gt;
&lt;h4 id="예상되는-원인"&gt;예상되는 원인&lt;/h4&gt;&lt;hr&gt;
&lt;p&gt;영화 데이터를 불러올때 async를 사용하여 비동기로 처리하였는데, swiper는 동기방식으로 데이터가 들어오기전에 애니메이션이 활성화 되어 제대로 동작하지 않음&lt;/p&gt;
&lt;h4 id="why"&gt;why?&lt;/h4&gt;&lt;hr&gt;
&lt;ol&gt;
&lt;li&gt;애니메이션을 처리하는 과정에서 오류가 발생했을때 오히려 pagination 애니메이션이 정상적으로 작동함(?)&lt;/li&gt;
&lt;li&gt;중간에 실시간으로 변환할 경우 데이터가 이미 불러져 있는 경우 pagination이 잘 작동하였음&lt;/li&gt;
&lt;/ol&gt;
&lt;h4 id="해결방안"&gt;해결방안&lt;/h4&gt;&lt;hr&gt;
&lt;p&gt;비동기데이터가 로드된 이후에 애니메이션 처리를 할 수 있게 변경함&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-javascript"&gt;const Row = ({ title, id, fetchUrl }) =&amp;gt; {
  const [movies, setMovies] = useState([]);
  const [isSuccess, setIsSuccess] = useState(false); 
    // 데이터 로드됐는지 확인할 state
  const [modalOpen, setModalOpen] = useState(false);
  const [movieSelected, setMovieSelected] = useState({});

  const fetchMovieData = useCallback(async () =&amp;gt; {
    try {
        // try catch 구문으로 데이터 불러오면 isSuccess를 
        // true로 변경해줌. 아니면 에러 발생되게함
    const response = await axios.get(fetchUrl);
    setMovies(response.data.results);
    setIsSuccess(true);
    } catch (error) {
      console.log(&amp;quot;Failed to fetch movie data: &amp;quot;, error)
    }
  }, [fetchUrl]);

  useEffect(() =&amp;gt; {
    fetchMovieData();
  }, [fetchMovieData]);

  const handleClick = (movie) =&amp;gt; {
    setModalOpen(true);
    setMovieSelected(movie);
  };

  return (
    &amp;lt;Container&amp;gt;
      &amp;lt;h2&amp;gt;{title}&amp;lt;/h2&amp;gt;
      {isSuccess &amp;amp;&amp;amp; ( 
            // 이부분에 isSuccess가 true일 경우(데이터가 로드될 경우)에 
            // 애니메이션 실행되게 묶어줌 
      &amp;lt;Swiper
        modules={[Navigation, Pagination, Scrollbar, A11y]}
        loop={true}
        navigation
        pagination={{ clickable: true }}
        breakpoints={{
          1378: {
            slidesPerView: 6,
            slidesPerGroup: 6,
          },
          998: {
            slidesPerView: 5,
            slidesPerGroup: 5,
          },
          625: {
            slidesPerView: 4,
            slidesPerGroup: 4,
          },
          0: {
            slidesPerView: 3,
            slidesPerGroup: 3,
          },
        }}
      &amp;gt;
        &amp;lt;Content id={id}&amp;gt;
          {movies.map((movie) =&amp;gt; (
            &amp;lt;SwiperSlide key={movie.id}&amp;gt;
              &amp;lt;Wrap&amp;gt;
                &amp;lt;img
                  key={movie.id}
                  src={`https://image.tmdb.org/t/p/original${movie.backdrop_path}`}
                  alt={movie.name}
                  onClick={() =&amp;gt; handleClick(movie)}
                /&amp;gt;
              &amp;lt;/Wrap&amp;gt;
            &amp;lt;/SwiperSlide&amp;gt;
          ))}
        &amp;lt;/Content&amp;gt;
      &amp;lt;/Swiper&amp;gt;
      )}

      {modalOpen &amp;amp;&amp;amp; (
        &amp;lt;MovieModal {...movieSelected} setModalOpen={setModalOpen} /&amp;gt;
      )}
    &amp;lt;/Container&amp;gt;
  );
};
&lt;/code&gt;&lt;/pre&gt;
&lt;h2 id="결과"&gt;결과&lt;/h2&gt;&lt;hr&gt;
&lt;p&gt;work well! :D&lt;br/&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/DevKonis/React-Disney-Plus-Clone"&gt;Github Link&lt;/a&gt;&lt;br/&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://react-disneyplusapp.web.app"&gt;Live Link&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description><pubDate>Thu, 24 Aug 2023 11:41:36 +0900</pubDate><guid>http://blex.me/@devkonis/react-%EC%95%A0%EB%8B%88%EB%A9%94%EC%9D%B4%EC%85%98-%ED%99%9C%EC%9A%A9%EC%8B%9C-%EB%B9%84%EB%8F%99%EA%B8%B0-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EB%AC%B8%EC%A0%9C%EC%A0%90</guid></item><item><title>기술블로그 시작!!</title><link>http://blex.me/@devkonis/devkonis%EC%9D%98-%EA%B8%B0%EC%88%A0%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%8B%9C%EC%9E%91</link><description>&lt;h2 id="누구세요"&gt;누구세요?&lt;/h2&gt;&lt;hr&gt;
&lt;p&gt;안녕하세요. 저는 2023년 7월부터 개발을 시작한 초보 개발자입니다.
창업을 위한 개발을 하고 있습니다.
기록 및 회고를 위한 블로그를 작성할겁니다 잘 지켜봐주세요!&lt;/p&gt;
</description><pubDate>Thu, 24 Aug 2023 11:19:19 +0900</pubDate><guid>http://blex.me/@devkonis/devkonis%EC%9D%98-%EA%B8%B0%EC%88%A0%EB%B8%94%EB%A1%9C%EA%B7%B8-%EC%8B%9C%EC%9E%91</guid></item></channel></rss>