<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title></title>
    <description>프론트엔드의 개발자 남용현의 블로그 입니다.
</description>
    <link>https://sunnyfterrain.github.io</link>
    <atom:link href="https://sunnyfterrain.github.io/feed.xml" rel="self" type="application/rss+xml" />
	<lastBuildDate>Mon, 24 Apr 2023 00:00:00 +0900</lastBuildDate>
	
	<item>
		<title>TEL - 15 : o not access Object.prototype method 'hasOwnProperty' from target object</title>
        
        
            <description>&lt;!-- more --&gt;
&lt;h1 id=&quot;javascript&quot;&gt;Javascript&lt;/h1&gt;
&lt;hr /&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;SITUATION :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;객체에 해당 프로퍼티가 존재하는지 확인 하는 메소드를 작성 하려고 hasOwnProperty를 사용&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;o not access Object.prototype method 'hasOwnProperty' from target object.&lt;/code&gt;&lt;br /&gt;
라는 메세지가 출력 되고 실행 되지 않음&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;REASON :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;eslint의 no-prototype-builtins 라는 규칙에 의해 에러를 발생&lt;br /&gt;
Object.prototype의 builtin으로 제공 되는 메서드는 객체에서 직접 호출하지 않도록 하는 규칙이 있다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;SOLUTION :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;Object.prototype.hasOwnProperty.call(foo, ‘bar’) 처럼 사용해야 한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        
        <pubDate>Mon, 24 Apr 2023 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/studylog/tel-15.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/studylog/tel-15.html</guid>
      </item>
    
	<item>
		<title>TEL - 14 : Computed property '...' was assigned to but it has no setter.</title>
        
        
            <description>&lt;!-- more --&gt;
&lt;h1 id=&quot;vue&quot;&gt;Vue&lt;/h1&gt;
&lt;hr /&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;SITUATION :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;Vue.js 로 개발하던중 여느때와 같이 Computed 속성을 쓰는 도중&lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Computed property '...' was assigned to but it has no setter.&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;REASON :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;getter/setter를 가지고 있는 computed는 기본적으로 get을 리턴 하고 set을&lt;br /&gt;
명시해주지 않아도 되는데 v-model을 통해 바인딩이 되어있다면 setter가 필요 없더라도,
기본적인 함수는 선언해줘야 한다고 한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;SOLUTION :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;Computed 작성시 get(), set()으로 선언하고 set()을 비워두면 해결!&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        
        <pubDate>Mon, 05 Dec 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/studylog/tel-14.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/studylog/tel-14.html</guid>
      </item>
    
	<item>
		<title>TIL - 43 : Vue $set, $delete &amp; EventBus</title>
        
        
            <description>&lt;!-- more --&gt;

&lt;h2 id=&quot;vue-set-delete--eventbus&quot;&gt;Vue $set, $delete &amp;amp; EventBus&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;Vue에서 배열 자료를 수정하거나 삭제 할 일이 있을때 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$set&lt;/code&gt;과 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$delete&lt;/code&gt;로 편하게 했으나&lt;br /&gt;
아무때나 쓰면 안되는 사실을 발견
    &lt;ul&gt;
      &lt;li&gt;공식문서에 따르면 vue는 양방향 바인딩이 특징인 대신에 객체 데이터나 배열에&lt;br /&gt;
새로운 속성 및 데이터가 추가되거나 삭제되는 것을 감지하지 못하는 경우가 자주 생긴다고한다.&lt;/li&gt;
      &lt;li&gt;그래서 값이 갱신되었다! 라고 요청하는 메서드가 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$set&lt;/code&gt;과 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$delete&lt;/code&gt; 이다&lt;/li&gt;
      &lt;li&gt;즉시 delete에서 splice로 변경ㅠㅠ&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;컴포넌트끼리 props를 넘기지 못하는 상황에서 단순 하나의 데이터 이동을 위해&lt;br /&gt;
vuex를 써야하나 말아야 하나 고민을 하던 도중 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;EventBus&lt;/code&gt;라는 것을 알게 되었다.
    &lt;ul&gt;
      &lt;li&gt;규모가 작으면서 관련성이 없는 독립적인 컴포넌트 끼리 통신을 해야 할 경우에는&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;EventBus&lt;/code&gt;를 사용한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        
        <pubDate>Wed, 14 Sep 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/studylog/til-43.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/studylog/til-43.html</guid>
      </item>
    
	<item>
		<title>TIL - 42 : NPM 패키지</title>
        
        
            <description>&lt;!-- more --&gt;

&lt;h2 id=&quot;npm&quot;&gt;NPM&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;npm 버전관리 시 Major, Minor, patch 순번 의미&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;패키지 버전 표기
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1.0&lt;/code&gt; : 1.0 버전에서 어떤 패치 버전이든 상관없음&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1.0.x, 1.0.&lt;/code&gt; : 1.0 버전에서 어떤 패치 버전이어도 상관없음&lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;~1.0.4&lt;/code&gt; : 1.0.4 버전 이상으로 어떤 패치 버전이라도 상관없음&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1&lt;/code&gt; : 1버전 이상의 어떤 마이너 패치라도 상관 없음&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;1.x&lt;/code&gt; : 1버전 이상의 어떤 마이너 패치라도 상관 없음&lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;^1.0.4&lt;/code&gt; : 1.0.4 버전으로 어떤 마이너 버전이라도 상관업음&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;*&lt;/code&gt; : 어떤 버전이어도 상관 없음&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;x&lt;/code&gt; : 어떤 버전이아도 상관 없음&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm view 패키지명&lt;/code&gt; : 업데이트 할 버전이 있는지 확인&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm outdated&lt;/code&gt; : 모든 패키지 업데이트 확인
    &lt;ul&gt;
      &lt;li&gt;Current: 현재 패키지 버전&lt;/li&gt;
      &lt;li&gt;Wanted: 명시한 조건중 사용가능한 최신버전&lt;/li&gt;
      &lt;li&gt;Latest: 해당 패키지의 배포되는 최신 버전&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm update&lt;/code&gt; : 업데이트가 필요한 패키지 업데이트&lt;/li&gt;
  &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;npm update 패키지명&lt;/code&gt; : 해당 패키지의 업데이트&lt;/li&gt;
&lt;/ul&gt;
</description>
        
        <pubDate>Thu, 25 Aug 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/studylog/til-42.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/studylog/til-42.html</guid>
      </item>
    
	<item>
		<title>TEL - 13 : xcrun: error: invalid active developer path</title>
        
        
            <description>&lt;!-- more --&gt;
&lt;h1 id=&quot;xcode&quot;&gt;Xcode&lt;/h1&gt;
&lt;hr /&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;SITUATION :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;회사에서 새 맥북을 받고나서 기존의 맥북에서 마이그레이션을 진행했음&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;마이그레이션을 진행 한 새 맥북에서 모든 깃 명령어가 작동을 안하고 다음과 같은 에러가 뜸&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;

    &lt;p&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;Can't update: not a git repository.&lt;/code&gt;&lt;br /&gt;
&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xcrun: error: invalid active developer path&lt;/code&gt;&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;REASON :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;새 맥북으로 옮기면서 git에 관련된 권한 문제 혹은 맥 OS 버전에 따라 버그가 있다고 한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;SOLUTION :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;터미널에서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;xcode-select --install&lt;/code&gt; 을 하여 xcode를 새로 설치해 준다.&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;p&gt;다시 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;git --version&lt;/code&gt; 등 깃 명령어를 입력하면 다시 잘 된다.&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        
        <pubDate>Fri, 19 Aug 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/studylog/tel-13.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/studylog/tel-13.html</guid>
      </item>
    
	<item>
		<title>[회고] 현업 개발자라는 타이틀을 단지 일주일</title>
        
        
            <description>&lt;!-- more --&gt;

&lt;h2 id=&quot;현업-개발자-커리어의-시작&quot;&gt;현업 개발자 커리어의 시작&lt;/h2&gt;
&lt;hr /&gt;

&lt;p&gt;취업을 위해 이력서 제출 무한 루프에 빠진 것이 엊그제 같은데,&lt;br /&gt;
벌써 취업에 성공하고 입사한 지 1주일이 지났다.&lt;/p&gt;

&lt;p&gt;첫 출근의 설렘을 뒤로하고 온 보딩을 한 첫날부터 그동안 배웠던 것은&lt;br /&gt;
정말 우물 안 개구리 그 자체였다는 것을 한 번 더 느꼈다.&lt;/p&gt;

&lt;p&gt;기본적으로 쓰는 Tool 조차도 그동안 써보지 못한 게 많았고, 첫날에 주어진&lt;br /&gt;
개발 업무에 대한 코드 리뷰도 현업분들과의 생각 차이가 많이 났다.&lt;/p&gt;

&lt;p&gt;회의 및 미니 세미나 같은 것도 활발하게 이루어졌는데, 참석을 해보니 확실히 기업이&lt;br /&gt;
추구하는 방향과 사업성을 제대로 알아야 일을 할 수 있고 여기서 머무는 게 아니라&lt;br /&gt;
개인적으로 계속 발전을 해야 함을 알았다.&lt;/p&gt;

&lt;p&gt;정신없이 흘러간 일주일, 취업을 준비할 때는 그래도 자신 만만했었는데&lt;br /&gt;
진짜로 자신 만만하려면 엄청난 노력을 해야 할 것 같다.&lt;/p&gt;

&lt;p&gt;그래도 개발자라는 일을 할 수 있는 것은 그동안의 힘듦을 보상이라도 받은 듯&lt;br /&gt;
너무 행복하고 즐겁기만 하다.&lt;/p&gt;

&lt;p&gt;현실에 안주하지 않고 계속 발전하고 그만큼 성과를 내야 하는 것 이것이 앞으로의 숙제다.&lt;br /&gt;
이제부터가 진짜 현업 개발자로의 시작이니까 언제나 그랬던 것처럼 즐기자!!&lt;/p&gt;
</description>
        
        <pubDate>Sun, 14 Aug 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/life/life-business.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/life/life-business.html</guid>
      </item>
    
	<item>
		<title>TEL - 12 : Vue - TypeScript intellisense is disabled on template</title>
        
        
            <description>&lt;!-- more --&gt;
&lt;h1 id=&quot;typescript&quot;&gt;TypeScript&lt;/h1&gt;
&lt;hr /&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;SITUATION :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;VSCode 상에서 Vue 작업을 할때 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;template&lt;/code&gt; 태그에서 다음과 같은 에러 메시지가 출력
&lt;img src=&quot;/assets/img/tel/2022-08-03/vue.png&quot; alt=&quot;img&quot; /&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;REASON :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;템플릿의 TypeScript intellisense 를 활성화 시켜줘야한다고 한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;SOLUTION :&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;jsconfig.json&lt;/code&gt; 에서 다음과 같은 구문을 추가한다. &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&quot;jsx&quot;: &quot;preserve&quot;&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;div class=&quot;language-js highlighter-rouge&quot;&gt;&lt;div class=&quot;highlight&quot;&gt;&lt;pre class=&quot;highlight&quot;&gt;&lt;code&gt;&lt;span class=&quot;c1&quot;&gt;// file: &quot;jsconfig.json&quot;&lt;/span&gt;
  &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;compilerOptions&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;p&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;jsx&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;:&lt;/span&gt; &lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;s2&quot;&gt;preserve&lt;/span&gt;&lt;span class=&quot;dl&quot;&gt;&quot;&lt;/span&gt;&lt;span class=&quot;p&quot;&gt;,&lt;/span&gt;
  &lt;span class=&quot;p&quot;&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
</description>
        
        <pubDate>Wed, 03 Aug 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/studylog/tel-12.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/studylog/tel-12.html</guid>
      </item>
    
	<item>
		<title>[회고] 중간 구직 결과 그리고, 아쉬운 코딩 테스트 결과</title>
        
        
            <description>&lt;!-- more --&gt;

&lt;h2 id=&quot;중간-구직-결과&quot;&gt;중간 구직 결과&lt;/h2&gt;
&lt;hr /&gt;

&lt;p&gt;개발자로 커리어 전환을 하고 밥 먹는 시간 빼고 매일 공부를 하며 이력서를 넣기&lt;br /&gt;
시작한 지도 한 달여 정도가 되었다.&lt;/p&gt;

&lt;p&gt;이 글을 쓰는 현재 약 35군데의 이력서를 넣었고&lt;br /&gt;
2곳을 제외하고 모두 서류에서 탈락하였으며&lt;br /&gt;
그 2곳에서는 과제 전형을 하였다.&lt;/p&gt;

&lt;p&gt;과제는 나름 잘했다고 했지만 면접까지는 가지 못하고 떨어졌다&lt;/p&gt;

&lt;p&gt;가고 싶었던 곳이 많았지만 경력이 없는 신입이어서 당연한 결과라고 생각했고,&lt;br /&gt;
아직은 많이 부족해서 기회가 주어지지 않은 것이라고 생각했다.&lt;/p&gt;

&lt;p&gt;무엇이 부족했는지 복기도 하고 수십 번의 이력서 수정도 이루어졌다.&lt;/p&gt;

&lt;h2 id=&quot;정말-아쉬웠던-코딩테스트-결과&quot;&gt;정말 아쉬웠던 코딩테스트 결과&lt;/h2&gt;
&lt;hr /&gt;

&lt;p&gt;그런데 이번에 아쉬움이 쉽게 가시지 않는 상황이 이번에 일어났다.&lt;/p&gt;

&lt;p&gt;이런 회사에서 일하면 정말 열심히 할 것 같고 들어가면 좋겠다 했던 곳이 있었다.&lt;br /&gt;
마침 거기에 지인이 취업하였고, 그 지인의 덕분에 이력서를 낼 기회가 생겼다.&lt;/p&gt;

&lt;p&gt;그 이후 채용 프로세스가 진행되어 코딩 테스트의 기회가 주어졌다.&lt;br /&gt;
일정 커트라인을 넘기면 면접의 기회가 주어지는 그런 프로세스였다.&lt;/p&gt;

&lt;p&gt;너무 가고 싶었던 곳이었으니 이 좋은 기회를 놓치고 싶지 않았고 그래서였을까&lt;br /&gt;
많이 설레고 그만큼 긴장도 많이 되었다.&lt;/p&gt;

&lt;p&gt;지인분이 마음을 가라앉히고 천천히 시간을 두고 테스트를 보라 하였지만,&lt;br /&gt;
그렇지 않아서였을까 테스트 버튼을 누름과 동시에 손이 떨리고 땀이 났다.&lt;/p&gt;

&lt;p&gt;첫 문제를 보자마자 머릿속이 하얗게 되었다. 배열에서 숫자만 출력하는 자바스크립트&lt;br /&gt;
알고리즘, 평소 잘 알고 있고 자주 사용했던 문법을 쓰는 쉬운 문제였다.&lt;/p&gt;

&lt;p&gt;무엇을 실수했는지 한번 에러가 나오면서 답이 나오질 않았다. 시간제한에 촉박해서&lt;br /&gt;
당황하고 허둥대다 결국엔 잘 사용하지 않는 문법까지 써봤지만, 결과는 오답.&lt;/p&gt;

&lt;p&gt;모든 문제가 영어로 이루어져 있고 그 뒤로 멘탈이 무너져 간단한 수학 문제도 맞추지 못하고&lt;br /&gt;
연달아 실수하고 제대로 된 답을 쓰지 못했다.&lt;/p&gt;

&lt;p&gt;문제를 다 풀고 나서 결과가 나왔고 점수는? 역시 커트라인 이하였다. 2점이 모자란 점수여서&lt;br /&gt;
어떻게든 면접 기회를 주려 해도 너무 기본적인 문제에서 답을 틀리는 바람에 잘 안될 것 같았다.&lt;/p&gt;

&lt;p&gt;테스트를 다 마치고 복기를 하니 왜 갑자기 머리가 잘 돌아가는 것인지..&lt;/p&gt;

&lt;p&gt;첫 알고리즘 문제에서 잘 안됐던 이유는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;typeof !== 'number'&lt;/code&gt; 에서&lt;br /&gt;
number를 감싸고있는 따옴표를 빠뜨리는 실수로 오류 계속 난것이었다.&lt;/p&gt;

&lt;p&gt;간단한 확률 계산을 하는 수학 문제도 끝나고 나니 왜 공식이 생각나는 것인지..&lt;/p&gt;

&lt;p&gt;너무 긴장하고 실수를 하였어도 결국은 내 부족함이 이유라 나 자신에게 너무 아쉽고,&lt;br /&gt;
무엇보다 신경을 많이 써주고 부족한 나 때문에 입장이 난처해졌을 지인분께 너무 죄송하다.&lt;/p&gt;

&lt;p&gt;너무 큰, 다시는 오지 않올 기회였지만, 이제는 과거이고 소중한 경험이 되었기에&lt;br /&gt;
더 열심히 해야겠다는 생각이 들었다.&lt;/p&gt;

&lt;h2 id=&quot;앞으로의-구직은&quot;&gt;앞으로의 구직은?&lt;/h2&gt;
&lt;hr /&gt;

&lt;p&gt;물론 구직은 멈출 생각이 없다. 사실 프로젝트보다는 취업 쪽에 초점을 맞추어&lt;br /&gt;
공부를 하고 준비를 하였지만 같이 준비를 하는 게 더 좋았을까라는 생각을 하였다.&lt;/p&gt;

&lt;p&gt;앞으로 지금처럼 계속 이력서를 내고 관련 CS나 언어 지식을 익히면서 준비할 것이고,&lt;br /&gt;
추가로 간단한 토이 프로젝트라도 하면서 구직을 준비하려 한다.&lt;/p&gt;

&lt;p&gt;다 내 지식이 되고 노력하는 자에게 기회가 분명 올 것이라고 생각한다.&lt;/p&gt;

&lt;p&gt;모든 개발자 취준생 분들 파이팅!!&lt;/p&gt;
</description>
        
        <pubDate>Sat, 16 Jul 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/life/life-test.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/life/life-test.html</guid>
      </item>
    
	<item>
		<title>TIL - 42 : Vue Lifecycle</title>
        
        
            <description>&lt;!-- more --&gt;

&lt;h2 id=&quot;vue-lifecycle&quot;&gt;Vue Lifecycle&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;Vue의 라이프사이클은 인스턴스나 컴포넌트가 생성되고 소멸되기까지의 단계&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;Vue의 라이프사이클은 각 단계에서 실행되는 함수들이 있으며 라이프사이클 훅이라고 한다.&lt;/p&gt;

    &lt;ul&gt;
      &lt;li&gt;Creation : 컴포넌트가 실행될때 가장먼저 실행 DOM에 올라가기 전이므로 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this.$el&lt;/code&gt; 접근 불가
        &lt;ul&gt;
          &lt;li&gt;beforeCreate : 인스턴스가 초기화 된 직후에 발생&lt;/li&gt;
          &lt;li&gt;created : 인스턴스가 생성된 후에 발생. data, coumputed, methods, watch 접근가능&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Mounting : DOM의 삽입 단계. 컴포넌트에 액세스 할 수 있다. 서버 사이드 렌더링 중에는 실행 안됨
        &lt;ul&gt;
          &lt;li&gt;beforeMount : 초기 렌더링이 일어나기 전에 실행된다.&lt;/li&gt;
          &lt;li&gt;mounted : 인스턴스가 마운트 된후 실행. 가상 DOM의 내용이 실제 DOM 부착되고 난 이후에 실행&lt;br /&gt;
모든요소에 접근 가능하며 제일 많이 쓰임&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Updating : 컴포넌트에서 사용하는 반응형 속성들이 변경되거나 리렌더링될 때마다 호출
        &lt;ul&gt;
          &lt;li&gt;beforeUpdate : DOM이 붙기전에, 데이터가 변경될 때 호출된다. 기존 DOM에 접근 가능&lt;/li&gt;
          &lt;li&gt;updated : 컴포넌트 데이터가 변경되어 DOM이 리렌더링 된 후 실행된다.&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;Destruction : 해체 단계. 컴포넌트가 해체되고 DOM에서 제거 되면 실행된다.
        &lt;ul&gt;
          &lt;li&gt;beforeDestroy : Vue 인스턴스가 삭제되기 전에 호출된다. 인스턴스는 여전히 실행&lt;/li&gt;
          &lt;li&gt;destroyed : Vue 인스턴스가 제거된 후에 호출된다. 컴포넌트가 없어진것을 알려야 할때 유용&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;
</description>
        
        <pubDate>Mon, 11 Jul 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/studylog/til-41.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/studylog/til-41.html</guid>
      </item>
    
	<item>
		<title>TIL - 41 : Vue, Vuex</title>
        
        
            <description>&lt;!-- more --&gt;

&lt;h2 id=&quot;vue&quot;&gt;Vue&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;데이터들 저장
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;export default{ data() { return { data:data } } }&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;함수
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;export default{ methods: { countUp() { this.data++ } } }&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;p&gt;data의 접근은 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this.&lt;/code&gt; 키워드를 붙임&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;컴포넌트 사용 단계
    &lt;ul&gt;
      &lt;li&gt;컴포넌트.vue 를 만든다.&lt;/li&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;export default { name: 컴포넌트이름 }&lt;/code&gt; export 한다.&lt;/li&gt;
      &lt;li&gt;받는 곳에서 import를 한다.&lt;/li&gt;
      &lt;li&gt;받는곳에서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;export default { components: { 작명 : 컴포넌트이름} }&lt;/code&gt; 을 한다.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;Props 전달 방법
    &lt;ul&gt;
      &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;Component :props=&quot;props&quot; :another_props=&quot;another_props&quot;&amp;gt;&lt;/code&gt;&lt;br /&gt;
이렇게 컴포넌트에 v-bind 해서 전달 해 준다.&lt;/li&gt;
      &lt;li&gt;받는곳에서 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;export default { props: { props_name : data타입 } }&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;자식에서 부모로 자료 전달 방법
    &lt;ul&gt;
      &lt;li&gt;자식에서 클릭 이벤트를 주어야 할때 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;div @click=&quot;$emit('openModal', item.data)&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;
        &lt;ul&gt;
          &lt;li&gt;&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$emit()&lt;/code&gt; 이라는 것으로 보냄 첫번째 인자는 이벤트 이름 두번째는 전달 할 데이터(생략가능)&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
      &lt;li&gt;부모에는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;@openModal=&quot;OpenCloseModal=true; id=$event;&quot;&lt;/code&gt;
        &lt;ul&gt;
          &lt;li&gt;앞에 전달받은 이벤트 이름과 함께 클릭 했을때 실행 할 함수나 데이터를 설정&lt;/li&gt;
          &lt;li&gt;전달받은 데이터는 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;$event&lt;/code&gt;로 받음&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;emit은 함수로도 만들어서 쓸 수 있음&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;vuex&quot;&gt;Vuex&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p&gt;vuex 는 vue의 전역 상태 관리&lt;/p&gt;
  &lt;/li&gt;
  &lt;li&gt;데이터의 흐름
    &lt;ul&gt;
      &lt;li&gt;
        &lt;p&gt;Backend API &amp;lt;-&amp;gt; Actions -(Commit)-&amp;gt; Mutations -(Mutate)-&amp;gt; State&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;State: 공통으로 사용할 변수&lt;/li&gt;
      &lt;li&gt;Mutation: State를 변경하는 변수, Action에서 State를 수정하려면 필수&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;접근방법
    &lt;ul&gt;
      &lt;li&gt;State : &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this.$store.state.items&lt;/code&gt;&lt;/li&gt;
      &lt;li&gt;Mutation : &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;context.commit('MUTATION_NAME', data)&lt;/code&gt;&lt;/li&gt;
      &lt;li&gt;Dispatch : &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;this.$store.dispatch('MUTATION_NAME')&lt;/code&gt;&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;template에 표시
    &lt;ul&gt;
      &lt;li&gt;반복문 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;&amp;lt;div v-for=&quot;data in this.$store.state.data&quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;/code&gt;&lt;/li&gt;
      &lt;li&gt;mapState로 줄여서 할 수 있음&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;코드의 양이 많아지면 모듈화&lt;/li&gt;
&lt;/ul&gt;
</description>
        
        <pubDate>Sat, 09 Jul 2022 00:00:00 +0900</pubDate>
        <link>https://sunnyfterrain.github.io/studylog/til-40.html</link>
        <guid isPermaLink="true">https://sunnyfterrain.github.io/studylog/til-40.html</guid>
      </item>
    
  </channel>
</rss>