<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>dody.log</title>
        <link>https://velog.io/</link>
        <description>충전중..🤔</description>
        <lastBuildDate>Tue, 07 May 2024 08:22:35 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>dody.log</title>
            <url>https://velog.velcdn.com/images/dody_/profile/30348a4c-92e7-43d1-9c4c-427a26e37320/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. dody.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/dody_" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[[nextjs 에러노트🔥] If you use CSS to change the size of your image, also include the styles 'width: "auto"' or 'height: "auto"' to maintain the aspect ratio.. ]]></title>
            <link>https://velog.io/@dody_/nextjs-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-If-you-use-CSS-to-change-the-size-of-your-image-also-include-the-styles-width-auto-or-height-auto-to-maintain-the-aspect-ratio</link>
            <guid>https://velog.io/@dody_/nextjs-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-If-you-use-CSS-to-change-the-size-of-your-image-also-include-the-styles-width-auto-or-height-auto-to-maintain-the-aspect-ratio</guid>
            <pubDate>Tue, 07 May 2024 08:22:35 GMT</pubDate>
            <description><![CDATA[<p>nextjs <code>&lt;Image&gt;</code>를 사용하다보면, 여러 warning과 조우하게 되는데, 이번주는 아래의 warning이다. </p>
<blockquote>
<p>Image with src &quot;<a href="http://localhost:3000/logo-light.svg&quot;">http://localhost:3000/logo-light.svg&quot;</a> has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles &#39;width: &quot;auto&quot;&#39; or &#39;height: &quot;auto&quot;&#39; to maintain the aspect ratio.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/dody_/post/08585f83-53e5-4980-87de-aafe4fb495fe/image.png" alt=""></p>
<h1 id="문제상황">문제상황</h1>
<pre><code>&lt;a
    href=&quot;www.naver.com&quot;
    target=&quot;_blank&quot;
    className=&quot;w-[102px] h-[19.41px] ml-[24px]&quot;
&gt;
    &lt;Image
        src=&quot;/logo-light.svg&quot;
        alt=&quot;light Logo&quot;
        width={102}
        height={19.41}
    /&gt;
&lt;/a&gt;</code></pre><p>이런 저런 해결방법들이 있었는데, 위의 상황에서는 문제가 소숫점이었다
아래 깃헙 댓글을 참고!</p>
<p><a href="https://github.com/vercel/next.js/issues/40762#issuecomment-1473139712">https://github.com/vercel/next.js/issues/40762#issuecomment-1473139712</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[mysql] ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)]]></title>
            <link>https://velog.io/@dody_/mysql-ERROR-1045-28000-Access-denied-for-user-rootlocalhost-using-password-YES</link>
            <guid>https://velog.io/@dody_/mysql-ERROR-1045-28000-Access-denied-for-user-rootlocalhost-using-password-YES</guid>
            <pubDate>Sun, 11 Feb 2024 03:46:42 GMT</pubDate>
            <description><![CDATA[<p>잘 작동하던 mysql에 입장하려 할떄 이 오류를 마주한다면, 
mac의 system setting &gt; 맨 밑의 Mysql에 들어가 &#39;stop mysql server&#39; 을 누르고 &gt; 
&#39;start mysql server&#39;로 재 시작해주면 잘 작동한다?
<img src="https://velog.velcdn.com/images/dody_/post/e1b4b7b9-7677-4766-859d-8e3a725ec2b4/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN] react native 절대경로 설정하긔🤨 (babel-plugin-module-resolver)]]></title>
            <link>https://velog.io/@dody_/RN-react-native-%EC%A0%88%EB%8C%80%EA%B2%BD%EB%A1%9C-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%94-babel-plugin-module-resolver</link>
            <guid>https://velog.io/@dody_/RN-react-native-%EC%A0%88%EB%8C%80%EA%B2%BD%EB%A1%9C-%EC%84%A4%EC%A0%95%ED%95%98%EA%B8%94-babel-plugin-module-resolver</guid>
            <pubDate>Tue, 16 Jan 2024 07:00:07 GMT</pubDate>
            <description><![CDATA[<p>3줄 요약</p>
<ol>
<li>babel-plugin-module-resolver install </li>
<li>babel.config.js 수정 / tsconfig.json 수정</li>
<li>yarn start --reset-cache 로 꼭 시작해주기</li>
</ol>
<h1 id="1-babel-plugin-module-resolver-설치">1. babel-plugin-module-resolver 설치</h1>
<p><a href="https://www.npmjs.com/package/babel-plugin-module-resolver">babel-plugin-module-resolver npm 문서</a></p>
<pre><code>npm install --save-dev babel-plugin-module-resolver</code></pre><p>or </p>
<pre><code>yarn add --dev babel-plugin-module-resolver</code></pre><h1 id="2-babelconfigjs-수정">2. babel.config.js 수정</h1>
<p>rn 프로젝트라면 root에 있는 babel.config.js에 코드를 추가해줍니다. </p>
<h3 id="before">BEFORE</h3>
<pre><code>module.exports = {
  presets: [&#39;module:@react-native/babel-preset&#39;],
};
</code></pre><h3 id="after">AFTER</h3>
<pre><code>module.exports = {
  presets: [&#39;module:@react-native/babel-preset&#39;],
  plugins: [
    [
      &#39;module-resolver&#39;,
      {
        root: [&#39;./src&#39;],
        extensions: [
          &#39;.ios.ts&#39;,
          &#39;.android.ts&#39;,
          &#39;.ts&#39;,
          &#39;.ios.tsx&#39;,
          &#39;.android.tsx&#39;,
          &#39;.tsx&#39;,
          &#39;.jsx&#39;,
          &#39;.js&#39;,
          &#39;.json&#39;,
        ],
        alias: {
          &#39;~&#39;: &#39;./src&#39;,
          &#39;@components&#39;: &#39;./src/components&#39;,
          &#39;@screens&#39;: &#39;./src/screens&#39;,
          &#39;@assets&#39;: &#39;./src/assets&#39;,
          &#39;@query&#39;: &#39;./src/query&#39;,
        },
      },
    ],
  ],
};
</code></pre><h1 id="3-tsconfigjson-수정">3. tsconfig.json 수정</h1>
<p>tsconfig.json의 compilerOptions에 절대경로 세팅과 관련된 내용을 추가해줍니다.</p>
<pre><code>{
  ...
  &quot;compilerOptions&quot;: {
    &quot;baseUrl&quot;: &quot;./&quot;,
    &quot;paths&quot;: {
      &quot;~/*&quot;: [&quot;./*&quot;],
      &quot;*&quot;: [&quot;./*&quot;],
      &quot;@components/*&quot;: [&quot;components/*&quot;],
      &quot;@screens/*&quot;: [&quot;screens/*&quot;],
      &quot;@assets/*&quot;: [&quot;assets/*&quot;],
      &quot;@oages/*&quot;: [&quot;pages/*&quot;]
      ...
    }
  }
  ...
}
</code></pre><h1 id="4-yarn-start---reset-cache">4. yarn start --reset-cache</h1>
<p>프로젝트 설정이 바뀌는 것이기 때문에 cache를 리셋해주도록하자. 
그렇지않았다간, 이해되지않는 에러와 마주하게 될것이다. </p>
<pre><code>yarn start --reset-cache</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[nextjs] nextjs serverless 배포 sst를 소개합니다.]]></title>
            <link>https://velog.io/@dody_/nextjs-nextjs-serverless-%EB%B0%B0%ED%8F%AC-sst%EB%A5%BC-%EC%86%8C%EA%B0%9C%ED%95%A9%EB%8B%88%EB%8B%A4</link>
            <guid>https://velog.io/@dody_/nextjs-nextjs-serverless-%EB%B0%B0%ED%8F%AC-sst%EB%A5%BC-%EC%86%8C%EA%B0%9C%ED%95%A9%EB%8B%88%EB%8B%A4</guid>
            <pubDate>Sat, 20 May 2023 00:15:02 GMT</pubDate>
            <description><![CDATA[<p>회사 프로젝트에서 next를 사용하는데, next 프레임워크의 서버리스 배포를 위해 기존에는 @sls-next/serverless-component 라이브러리로 했었다.</p>
<p>그러나 라이브버리 관리가 일년전에 멈춰져있고, nextjs 최근 버전을 지원하지 않는듯했다. 그렇기 때문에 다른 서버리스 배포 로직을 제공하는 서비스가 필요했고, sst를 선택했다. </p>
<p><a href="https://docs.sst.dev/start/nextjs">https://docs.sst.dev/start/nextjs</a></p>
<p>나의 경우는 정말 간단하게 sst를 붙였는데, nodejs16 npm7 이상이 필요하고, aws자격증명이 로컬적으로 세팅이 되어있었기 때문이다. aws에 대해서는 멍청이 이기 때문에, 자격세팅 하라고 하면 조금 슬플수도..</p>
<h4 id="1-sst-초기화">1. sst 초기화</h4>
<pre><code>npx create-sst@latest</code></pre><p>기존 프로젝트에 sst를 초기화 해서 세팅해주고 sst.config.js가 만들어지면 배포 로직의 추가 설정을 하면 된다. </p>
<h4 id="2--로컬에서-개발환경-시작하기">2.  로컬에서 개발환경 시작하기</h4>
<p>package.json을 보면 <code>&quot;dev&quot;: &quot;sst bind next dev&quot;</code> 라고 script가 바뀌어있을 것이다. 이는 &#39;Lambda 함수 내에서 실행 중인 것처럼 작동할 수 있습니다.&#39; 라고 한다.
로컬에서 프로젝트를 실행하려면 sst를 로컬에서 실행해주고 nextjs 프로젝트를 평소처럼 키면 된다.</p>
<pre><code># Start SST locally
npx sst dev
# Start Next.js locally
yarn dev</code></pre><h4 id="3--배포하기">3.  배포하기</h4>
<p>다른 설정없이 일단 sst가 잘 작동되는지 살펴보자. 둘 중 하나의 명령어를 사용하면, 배포가 될 것이다. </p>
<pre><code>npx sst dev
npx sst dev --stage prod</code></pre><p>만약 안된다면, sst remove 명령어로 관련 리소스를 모두 제거 하자. 그리고 초기화도 다시 한번 더 해보고 배포를 해보면 잘 된다(나의 경우엔?)
<a href="https://docs.sst.dev/packages/sst#sst-remove">https://docs.sst.dev/packages/sst#sst-remove</a></p>
<pre><code>npx sst remove 
npx sst remove --stage prod

npx create-sst@latest</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[vscode🕹] vscode 터미널에서 명령어로 실행하기 (ex. code .) ]]></title>
            <link>https://velog.io/@dody_/vscode-vscode-%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0-ex.-code-</link>
            <guid>https://velog.io/@dody_/vscode-vscode-%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C-%EB%AA%85%EB%A0%B9%EC%96%B4%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0-ex.-code-</guid>
            <pubDate>Tue, 27 Dec 2022 02:40:45 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/dody_/post/d3b8a443-247d-40ad-abee-159859e85339/image.png" alt=""></p>
<p>반갑습니다! 도디입니다.
터미널에서 code 명령어를 이용해서 vscode를 실행하는 방법에 대해 알아볼겁니다 🤗</p>
<h1 id="시작">시작!!!</h1>
<p>본인이 열고 싶은 프로젝트로 루트를 이동해서 아래 명령어를 치면 되는데요. </p>
<pre><code>code .</code></pre><p>이곳에 온 여러분은 아래와 같은 메시지와 작동이 하지 않는 상황일 겁니다.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/d8481c71-2823-4c9d-aa13-4039adecd200/image.png" alt=""></p>
<h1 id="vscode-command-palette-열기">vscode command palette 열기</h1>
<p>vscode를 열고, 커맨드 팔렛트에서 쉽게 설정을 할 수 있는데,
<code>command + shift + p</code>  혹은 <code>comand + p</code> 에 <code>&gt;</code>를  직접 작성해서 커맨드 팔랫트를 열고</p>
<p><code>shell Command: Install &#39;code&#39; command in PATH</code>를 선택해서 인스톨해주면 끝입니다.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/0b803e81-2e40-4142-82d3-91bdff329daa/image.png" alt=""></p>
<p>쏘이지~</p>
<ul>
<li>EACCES: permission denied, unlink &#39;usr/local/bin/code&#39;
위 에러 메시지가 나타날 때, <a href="https://jemerald.tistory.com/97">https://jemerald.tistory.com/97</a> 이 블로그 글을 참고하길</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[2022 개발자로써의 회고]]></title>
            <link>https://velog.io/@dody_/2022-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C%EC%8D%A8%EC%9D%98-%ED%9A%8C%EA%B3%A0</link>
            <guid>https://velog.io/@dody_/2022-%EA%B0%9C%EB%B0%9C%EC%9E%90%EB%A1%9C%EC%8D%A8%EC%9D%98-%ED%9A%8C%EA%B3%A0</guid>
            <pubDate>Sun, 25 Dec 2022 12:28:38 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/dody_/post/cb345f85-6ef7-4222-af9f-385b68b62311/image.png" alt=""></p>
<p>2022 잘들 보내셨나요!!!!!!!!!!! 시간이 왜 이리 빨리 지나가는지, 저의 RN개발자로서, 직장인으로써, 개발자로써의 회고를 남겨보려합니다! 회고를 하려 하니, 연말에 휘몰아쳤던 일들 밖에 생각나지 않네요! 내년에는 6개월 주기로 쓰면 더 괜찮으려나?🙄🙄🙄</p>
<h1 id="5년차의-번아웃-그리고-워케이션">5년차의 번아웃 그리고 워케이션</h1>
<p>입사부터 5년이 넘어갔습니다. 성장한게 맞는지 의심이 들기 시작했습니다. 웹개발과 앱개발에 대해서 항상 갈림길에 있는 듯 했고, 잘 작동하는 앱이지만 좋은 코드인지 피드백이 필요했고, 혼자하는 클라이언트 개발은 지칠 수 밖에 없는 환경이었습니다.</p>
<p>별 생각이 없었습니다! 다들 오는 번아웃이라고 생각했고, 시간이 지나면 해결이 될거라 생각했는데
결국 터져버려서 PO분께 휴식이 절대적으로 필요하다고 의견을 드렸고, 무작정 쉬는게 필요한게 아니라 잠깐 돌아보는 시간이 필요하다. 좋은 개발자들에게 피드백을 얻고 싶고, 회사코드를 리팩토링 하고 싶다. 한달의 시간을 주셨으면 한다.</p>
<p>오히려 PO분은 그냥 일주일 이주일 푹 쉬고 오시는게 어떠냐 하셨는데, 전 저도 회사코드도 발전시켜오고 싶다. 라고 했습니다. 저에게 가장 큰 행복과 재미는 성취감 임을 알아차렸기 때문이죠. 이게 참 양날의 검인데, 일에 치여 지친 사람이 행복을 얻는 곳이 일이면 정말 모순이죠..
그렇게 한달의 워케이션을 다녀왔습니다.
다들 도디가 어디 제주도 좋은 숙소에 박혀서 개발이라도 할까? 생각했지만, 주변 개발자에게 찾아가서 조언을 많이 구하러 다니는 시간이었습니다. 좋은 구조도 도움받고 이런저런 영향을 많이 받았습니다. 정말 고마우신 분이죠...</p>
<p>더 조언을 주신 다는 분들이 계셨는데 다 못찾아뵌게 아쉬울 뿐입니다. 한달이 그리 긴 시간은 아니었습니다. 
사실 회사에서 배려해주셔서 주신 워케이션은, 워케이션이라기 보다 리팩토링에 몰입해서 회사 업무를 보는데 사용했습니다. 이건 제 선택이니까 절대 후회하지 않습니다. </p>
<p>지금도 그때의 리팩토링 코드로 더 행복한 코딩을 하고 있으니깐요.
저희 동료분께서 도디의 리팩토링이 도움이 된다는 말을 가끔 하시는데, 그럴때마다 진짜 감동받습니다. 다시 한번 헤드라잇 개발자 큐브에게 감사의 말을 드립니다...🥰</p>
<h1 id="react-native와-네이티브-갈림길">React Native와 네이티브 갈림길?</h1>
<p>저희 회사의 앱 개발은 꽤나 긴 시간동안 저 혼자 했고, 시니어의 RN개발자를 뽑고자 했지만 무리무리 였습니다. (현재는 좋은 RN동료분을 뽑았다는..)<br>그래서 android는 네이티브 개발로 전환을 했었습니다. 그리고 현재는 ios aos 모두 RN으로 코딩을 하고 있습니다. 
좋은 시행착오를 얻었고, 몇년간은 RN으로 정착하기로 동료분들끼리 약속을 했습니다. 회사와 동료들은 쉽지 않은 선택을 두번이나 했지만 RN이랑 더 친해지는 방향이 되었습니다. react native 이렇게 내 인생에 깊게 들어오게 될줄 몰랐는데 말입니다.</p>
<h1 id="개발자들과의-제주도-개발여행">개발자들과의 제주도 개발여행?</h1>
<p>위의 워케이션 기간이 오기 전, 여자개발자 셋이서 제주도 여행을 갔습니다ㅋㅋㅋ 지금 생각해도 너무 행복해서 웃음이 나네요ㅋㅋㅋ vue.js 개발자와 서버개발자 그리고 rn개발자 셋이서 갔습니다. 숙소는 지인분의 공간을 잠깐 빌려서 돈을 아낄수 있었던 여행입니다. 돈도 적게 안버는 셋이 돈 아끼겠다고 새벽 비행기를 그렇게 타고 다녀서ㅋㅋㅋㅋㅋㅋ 너무 힘들었어요</p>
<p>동생들은 반차를 써서 매일 아침마다 제주도 스타벅스로 출근도장 찍으면서 개발을 했습니다ㅋㅋㅋㅋㅋ 이 카페 저 카페 다니면서 개발하고 다녔습니다ㅋㅋㅋㅋ정말 행복하지 않을수 없습니다... 날씨도 좋고(춥고) 맛있는것도 쉬지않고 먹으니 최고였습니다. 코딩에 분리불안이 있는 저를 이해해주는 여행친구들은 이친구들이 전부이지 않을까 싶을 정도로 나름 개발을 많이 한 여행이었습니다ㅋㅋㅋㅋ</p>
<p>숙소에 벌레가 나올때마다 우리 동생들.. 너무 힘들어해서 저도 벌레 무서워하는데 괜히 제가 벌레 다 잡고 그랬습니다... 그래도 마지막날 왕 바퀴벌레 세마리는 너무 힘들었다는... </p>
<p>좋아하는 일을 하면서 이걸 이해해주는 업계동료들과 여행을 갈수 있는건 큰 행운이고 행복이었습니다.🌴
가서 귤 타투도 한건 안비밀! </p>
<h1 id="동료의-등장">동료의 등장?</h1>
<p>드디어 올해 헤드라잇 rn 개발자가 한명 더 추가 되었습니다. 무려 ios 개발자였던 큐브라는 친구인데요. 정말 어썸한 친구예요. 섬세하고 다정하고 강력한 개발능력을 지닌 친구입니다. 저는 개발 이외의 디자인과 기획쪽에 흥미가 있다면 이 친구는 데이터에 예민하게 반응하는 친구입니다.
친구라고 하는 이유는 입사하기 전에 진짜 친구였기 때문입니다 ㅋㅋㅋㅋㅋㅋ 예전에 개발 동아리 같이 하던 친구였는데 입사를 고민한다길래, 괜히 제가 입사에 방해가 될까봐 입사 절차를 덜덜 떨면서 지켜만 봣던.. 아주 같이 일하고 싶던 친구 였는데 같이 일하게 되었어요ㅋㅋㅋ 인연이 참 대단한거 같다는,,</p>
<p>완전 새로운 파트를 개발하는데도, 차분하게 업무를 마무리지을 줄 아는, 책임감도 있고 체력도 있고, 일단 지친 티를 잘 내지 않는 성숙한 사회생활을 하는 동료입니다. </p>
<p>너무 든든한 동료가 연말쯔음 입사를 해서, 벌써 합이 많이 맞는 동료입니다. 헤드라잇의 2023이 너무 기대되는 부분입니다. </p>
<h1 id="개발자도디-패스트캠퍼스-강의를-찍다">개발자도디 패스트캠퍼스 강의를 찍다?</h1>
<p>...말도 안돼..!</p>
<p>저에게 패스트캠퍼스에서 강의를 찍을 수 있는 기회가 왔습니다. react native animation에 대해 강의를 찍게 되었는데요.. 지금은 촬영은 마친 상태이고, 코드를 정리해야되는 상태입니다. 오픈은 아직 멀었(?)구요!</p>
<p>찍으면서 인강을 찍는 모든 분들을 존경존중하게 되더라구요... 아무나 찍는게 아닌..! 처음에 담당자 분과 미팅을 했고 저를 좋게 봐주신거 같았어요. 블로그에 하나하나 정리해서 올리는 점에 대해, 미팅에서 어필했던 점에 대해....</p>
<p>그래서 결국 찍게 되었습니다. 제 목소리가 워낙 졸린 편이라 다들 잘 들어주실지 모르겠습니다.
ㅎr,,,,사실 요즘 24시간이 떨립니다. 오픈하고 1년간은 떨릴거같아욬ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ</p>
<p>진짜 쉽지 않더라구요. 회사랑 병행한다는게 쉽지 않았고, 회사에서도 응원해줬다는게 회사의 대인배스러운 점이 아닌가
회사에 말하기도 쉽지 않은데, 큰 에너지가 드는 일이니 만큼, 회사에 말하고 하는게 좋다고 생각했고
일단 회사홍보도 조금 되지않을까 해서 시작하게 됐네요. 다들 잘 들어주셨음하고,
오픈하고 나서가 시작인거같기도 해요. 다들 질문 많이 주시는거같아서 그 점도 많이 걱정이네요. 
걱정만 가득한 연말입니다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ그래도 작년보다는 단단한 개발자로 성장하게 된거같아서 제 자신이 든든합니다. </p>
<p>다들 어떻게 저보다는 열심히 사시는 개발자 많을거라 생각해요!!! 그렇든 그렇지 않든 다들 너무 멋지고 쉬엄쉬엄 하시고
내년 목표 행복하게 세우시고 행복하게 이뤄가시길 바랍니다.
2023 복 많이 받으시고 허리랑 등펴시고 배에 힘주시고 목에 힘빼고 턱내리고 건강챙기시고요!!!!!!!! (올해 디스크로 두번은 아팠던...!) 우리 오래오래 개발일 해요 🤗🤗🤗</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/86569771-dbbb-4f2f-82ff-aff2e0789a83/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN-ios] prod, dev앱 나눠서 관리하기 (feat. ios Bundle Identifier, ios Scheme, ios Build Configuration) ]]></title>
            <link>https://velog.io/@dody_/RN-ios-%EB%89%B4%EC%8A%A4-%EC%96%B4%ED%94%8C-%ED%97%A4%EB%93%9C%EB%9D%BC%EC%9E%87-prod-dev%EC%95%B1-%EB%82%98%EB%88%A0%EC%84%9C-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-feat.-ios-Bundle-Identifier-ios-Scheme-ios-Build-Configuration</link>
            <guid>https://velog.io/@dody_/RN-ios-%EB%89%B4%EC%8A%A4-%EC%96%B4%ED%94%8C-%ED%97%A4%EB%93%9C%EB%9D%BC%EC%9E%87-prod-dev%EC%95%B1-%EB%82%98%EB%88%A0%EC%84%9C-%EA%B4%80%EB%A6%AC%ED%95%98%EA%B8%B0-feat.-ios-Bundle-Identifier-ios-Scheme-ios-Build-Configuration</guid>
            <pubDate>Thu, 27 Oct 2022 04:44:12 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/dody_/post/7737af27-2c58-450b-b24a-9b0e6a4bdd50/image.png" alt=""></p>
<p>오늘은 react native 뿐 아니라, ios 개발에서도 쓰임새 있는 하나의 코드를 prod, dev앱으로 나눠볼겁니다. 
두 앱으로 나누는 이유는 서버api를 테스트 하기 위함이 중점적인 이유이며,
뭐가 되었든 QA 테스트를 목적으로 나뉘어져있습니다. </p>
<ol>
<li>하나의 코드를 두 앱으로 나눠서 관리를 해야하며</li>
<li>앱을 테스트 하는데, 구분하기에 무리가 없게 app icon을 각자 설정해줄 예정입니다. </li>
</ol>
<p>헤드라잇 앱에서 직접 사용하고 있는 방법이며,
rn에서 좋은 코드인지는 모르겠으나 설정도 심플하고 해서 너무 만족스러운 작업이었습니다.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/892194df-ab8e-4f00-a886-5278f6a3f7d6/image.png" alt=""></p>
<p>이런식으로 Build Configuration을 가져갈 거구요.
모르시는 분들을 위해 말하자면, ios의 기본 Build Configuration은 debug, staging, relase가 있고 Build Configuration에 따라 되는 기능이 있어 각각의 특징에 대해 가볍게는 알고 있으셔야 합니다.
보통 achive를 해서 빌드앱을 만들잖아요? 그건 release 상태로 배포를 하는 겁니다.</p>
<p>그리고 개발환경에서 debug Build Configuration을 쓰는건 상당히 중요합니다. </p>
<blockquote>
</blockquote>
<p>이유는 저희 debug모드 써야하잖아요..? 디버거 같이 연결해서 써야하잖아요???</p>
<p>그러면 무조건 개발환경의 Build Configuration은 debug로 하셔야 합니다. 
그리고 dev배포앱은 staging, prod배포앱은 release로 설정해줄겁니다. 보통 그렇게 하그든요!
설정하는 법은 아래에서 안내 드리겠습니다. </p>
<p>앞으로 할 작업의 목차는 이러합니다.</p>
<ol>
<li>prod/dev 각각 bundle identifier 설정</li>
<li>dev scheme 생성</li>
<li>prod/dev 각각 개발/빌드 Build Configuration 설정</li>
<li>앱 아이콘 나누기</li>
<li>signing이 잘 들어가 있는지 확인</li>
</ol>
<h1 id="1-proddev-각각-bundle-identifier-설정">1. prod/dev 각각 bundle identifier 설정</h1>
<p>project.xcworkspace open &gt; project target 들어가서 &gt; Signing &amp; Capabilities 들어가면 이런 뷰가 보입니다. 
건들지 않는한, 우리에겐 Debug, Release, Staging Build Configuration이 있는데요.
중요한건 Bundle Identifier의 값을 다르게 설정해주는 겁니다.
예시로</p>
<blockquote>
</blockquote>
<p>Release :  com.dody.projectiOS
Debug and Staging: com.dody.projectiOS.dev</p>
<p>이런식으로 적어주는 겁니다. </p>
<p><img src="https://velog.velcdn.com/images/dody_/post/c9f0c617-c1fa-46c5-983a-2d11bf2a90a6/image.png" alt=""></p>
<p>이렇게 하면 클라이언트에서 지금이 어떤 환경인지 읽을 수 있습니다. 클라이언트에서 어떤 상태인지 파악하는 것.</p>
<pre><code>import DeviceInfo from &#39;react-native-device-info&#39;;
const bundleId = DeviceInfo.getBundleId();</code></pre><p>그것이 prod dev 서버 api를 테스트할 수 있다는 것의 아주 중요한 포인트 입니다.</p>
<h1 id="2-dev-scheme-생성">2. dev scheme 생성</h1>
<p>이번에는 dev 환경에 알맞은 scheme을 설정해보겠습니다. dev 환경에 맞는 scheme을 만들어놓으면, 매번 고칠 필요 없이 이곳만 옮겨 다니면 prod와 dev를 옮겨 다니는 것과 같습니다.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/ed22c5a9-4c26-4271-80fb-f86458f91512/image.png" alt=""></p>
<p>저희가 하는 작업이 개발의 편의성을 위해서 하는 작업인만큼, 꼭 있어야 하겠죠?
만들어봅시다.</p>
<p>product &gt; Scheme &gt; New Scheme...  안으로 들어가
<img src="https://velog.velcdn.com/images/dody_/post/4e9da03e-0891-47d4-93dd-4b8ce0b1efd1/image.png" alt=""></p>
<p>본인의 프로젝트를 Target으로 하고, 저는 prod 앱이 oheadline_client로 되어있기 때문에 dev앱은 oheadline_client_dev라고 했습니다. </p>
<p><img src="https://velog.velcdn.com/images/dody_/post/9ace748b-82b5-4d62-a33d-ace918cde831/image.png" alt=""></p>
<p>이제 상단에서 oheadline_client(prod앱)과 oheadline_client_dev(dev앱)을 쉽게 넘나들 수 있는 길이 생겨버린 것입니다!</p>
<Image src="https://velog.velcdn.com/images/dody_/post/362fe258-1159-40b6-ac87-c0791a0a1086/image.png" width="300px"/>



<h1 id="3-proddev-각각-개발빌드-build-configuration-설정">3. prod/dev 각각 개발/빌드 Build Configuration 설정</h1>
<p>이제 각 환경에 맞는 Build Configuration을 설정해줍시다.
예를들어 oheadline_client에서 배포는 release로 해야하고, 개발때는 debug로 해줘야겠죠!</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/d0560d59-5279-4c33-a310-34ff76ffb528/image.png" alt=""></p>
<p>Edit Scheme... 에 들어가서 수정해주면 되는데,</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/44a6536a-5b75-45c4-9765-312462e41871/image.png" alt=""></p>
<h3 id="dev앱">dev앱</h3>
<p>보이는 Build Configuration은 Debug로 해주고, Achive부분의 Build Configuration만 Staging으로 하면 됩니다. 그게 저희가 초반에 그렸던 마스터플랜의 내용이니깐요~!</p>
<h3 id="prod앱">prod앱</h3>
<p>dev앱과 마찬가지로 보이는 Build Configuration은 Debug로 해주고, Achive부분의 Build Configuration만 Release로 하면 됩니다.</p>
<h1 id="4-앱-아이콘-나누기">4. 앱 아이콘 나누기</h1>
<p><img src="https://velog.velcdn.com/images/dody_/post/71cf6b9c-04a0-4885-9fc0-10f6a905bc87/image.png" alt=""></p>
<p>앱아이콘 두는 곳에서 dev를 붙인 아이콘번들을 준비해주시고
Build Settings &gt; Asset Catalog Complier - Options &gt; Primary App Icon Set Name에 각각 맞게 넣어주시면 앱 아이콘들이 나눠져서 들어가게 됩니다~!
<img src="https://velog.velcdn.com/images/dody_/post/0aa0ae3d-d259-42b5-9846-c357bfbf2d0c/image.png" alt=""></p>
<h1 id="5-signing-오류-없나-체크하기">5. signing 오류 없나 체크하기</h1>
<p>마지막으로 읽고 있는 독자분께서 중요하게 체크하셔야 하는 부분,
번들 아이디가 바뀌었기 때문에, 그에 상응하는 profile을 준비해놓으셔야 하고
그쪽에서 오류가 없는지 살펴보시고 체크해주셔야 합니다.</p>
<p>그럼 여기까지.
오늘도 쏘이지!</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/d5e93f40-c362-41a9-a729-c061be57d4b7/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN-iOS] rn 아이콘 라이브러리 react-native-vector-icons 사용해보자~!]]></title>
            <link>https://velog.io/@dody_/RN-iOS-rn-%EC%95%84%EC%9D%B4%EC%BD%98-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-react-native-vector-icons-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90</link>
            <guid>https://velog.io/@dody_/RN-iOS-rn-%EC%95%84%EC%9D%B4%EC%BD%98-%EB%9D%BC%EC%9D%B4%EB%B8%8C%EB%9F%AC%EB%A6%AC-react-native-vector-icons-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EC%9E%90</guid>
            <pubDate>Fri, 21 Oct 2022 03:47:40 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/dody_/post/eae2ee9f-024c-432f-8e90-b32761220edb/image.png" alt=""></p>
<p>도하! 오늘은 아주 유우명한 아이콘 라이브러리 react-native-vector-icons  를 사용해볼겁니다.
install이 터미널 한줄로 되지 않아서 블로그 글을 써 봅니다!
하나씩 따라와보세요.</p>
<h4 id="아이콘-벡터-모음">아이콘 벡터 모음</h4>
<p><a href="https://oblador.github.io/react-native-vector-icons/">https://oblador.github.io/react-native-vector-icons/</a></p>
<h4 id="깃헙">깃헙</h4>
<p><a href="https://github.com/oblador/react-native-vector-icons">https://github.com/oblador/react-native-vector-icons</a></p>
<h2 id="라이브러리-설치">라이브러리 설치</h2>
<pre><code>npm install --save react-native-vector-icons</code></pre><h2 id="xcode에-폰트-추가하기">Xcode에 폰트 추가하기</h2>
<p>xcode에 폴더를 만들어서, 거기에 파일을 좀 추가해줘야합니다. 왜??? 싶지만 따라와주세요! 안하면 안되니께~!</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/b22854cf-a1dc-4958-ac49-35d69abc4344/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/dody_/post/71642363-33dd-4bb0-b1f9-6005b8916587/image.png" alt=""></p>
<p>프로젝트에 new group을 생성해야합니다. </p>
<p><img src="https://velog.velcdn.com/images/dody_/post/25ff4b30-b7b3-481f-ae4f-d34783658222/image.png" alt=""></p>
<p>대충 그룹 이름은 Fonts라고 하구요.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/a4cb2a1c-634d-4e3f-9a5a-3c40969f9434/image.png" alt=""></p>
<p>proejct &gt; node_modules &gt; react-native-vector-icons &gt; Fonts
안에 있는 .ttf 파일을, 위에 만들어놓은 폴더에 모두 넣어줍니다.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/0341bb87-00e3-4db3-9630-2194db51b1d4/image.png" alt=""></p>
<p>폰트가 잘 들어갔네요. 다음 단계로 갑시다!</p>
<h2 id="infoplist에-폰트-추가하기">info.plist에 폰트 추가하기</h2>
<p>벡터 이미지들은 폰트라고 할 수 있는데요.
info.plist에 아래 파일들을 추가합니다.</p>
<pre><code>&lt;key&gt;UIAppFonts&lt;/key&gt;
&lt;array&gt;
      &lt;string&gt;AntDesign.ttf&lt;/string&gt;
    &lt;string&gt;Entypo.ttf&lt;/string&gt;
    &lt;string&gt;EvilIcons.ttf&lt;/string&gt;
    &lt;string&gt;Feather.ttf&lt;/string&gt;
    &lt;string&gt;FontAwesome.ttf&lt;/string&gt;
    &lt;string&gt;FontAwesome5_Brands.ttf&lt;/string&gt;
    &lt;string&gt;FontAwesome5_Regular.ttf&lt;/string&gt;
    &lt;string&gt;FontAwesome5_Solid.ttf&lt;/string&gt;
    &lt;string&gt;Foundation.ttf&lt;/string&gt;
    &lt;string&gt;Ionicons.ttf&lt;/string&gt;
    &lt;string&gt;MaterialIcons.ttf&lt;/string&gt;
    &lt;string&gt;MaterialCommunityIcons.ttf&lt;/string&gt;
    &lt;string&gt;SimpleLineIcons.ttf&lt;/string&gt;
    &lt;string&gt;Octicons.ttf&lt;/string&gt;
    &lt;string&gt;Zocial.ttf&lt;/string&gt;
    &lt;string&gt;Fontisto.ttf&lt;/string&gt;
&lt;/array&gt;</code></pre><p>root 위치에 react-native.config.js 파일을 추가해서 아래 내용 넣어주기</p>
<pre><code>module.exports = {
  dependencies: {
    &#39;react-native-vector-icons&#39;: {
      platforms: {
        ios: null,
      },
    },
  },
};</code></pre><p>!! 
그 다음 꼭 node_modules과 pods친구들이 꼬일 가능성이 있기 때문에, 패키지 재설치 꼭 하시길 바랍니다.</p>
<h2 id="코드-사용-예시">코드 사용 예시</h2>
<pre><code>import React from &#39;react&#39;;
import Icon from &#39;react-native-vector-icons/AntDesign&#39;;

export default function Components() {
  return (
    &lt;Icon name=&quot;home&quot; size={30} color=&quot;#900&quot; /&gt;
  );
}
</code></pre><p>쏘이지
<img src="https://velog.velcdn.com/images/dody_/post/beb08172-f543-46b2-9874-37412f716afd/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN-iOS] RN cli로 앱을 빌드하면 디버깅 모드가 되지않는다. ]]></title>
            <link>https://velog.io/@dody_/RN-iOS-RN-cli%EB%A1%9C-%EC%95%B1%EC%9D%84-%EB%B9%8C%EB%93%9C%ED%95%98%EB%A9%B4-%EB%94%94%EB%B2%84%EA%B9%85-%EB%AA%A8%EB%93%9C%EA%B0%80-%EB%90%98%EC%A7%80%EC%95%8A%EB%8A%94%EB%8B%A4</link>
            <guid>https://velog.io/@dody_/RN-iOS-RN-cli%EB%A1%9C-%EC%95%B1%EC%9D%84-%EB%B9%8C%EB%93%9C%ED%95%98%EB%A9%B4-%EB%94%94%EB%B2%84%EA%B9%85-%EB%AA%A8%EB%93%9C%EA%B0%80-%EB%90%98%EC%A7%80%EC%95%8A%EB%8A%94%EB%8B%A4</guid>
            <pubDate>Thu, 20 Oct 2022 08:07:14 GMT</pubDate>
            <description><![CDATA[<p>도하!
오늘 공유할 상황은,
요즘 헤드라잇 prod, dev앱을 나누는 일을 하고나서 react native cli로 앱을 빌드하면 command + d가 먹지 않는 것이었다. 
원래 시뮬레이터에서</p>
<pre><code>command + d</code></pre><p>하면 아래와 같이 디버깅 모드가 열린다.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/56230df6-2318-489f-9169-5a909a4829b3/image.png" alt=""></p>
<p>근데 자꾸 안열리는 거임.
이유는 알겠답말입니다. ios scheme이 release 상태로 배포가 되면 디버그모드가 안열리는데 말입니다. cli로는 스킴을 바꾸는게 어려웠는데, 아래와 같은 설정을 하면 react native cli로 빌드한 앱도 디버깅 모드가 실행됩니다.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/b159e658-7860-4780-b3be-7df4be2770e5/image.png" alt=""></p>
<p>command-line에서 빌드할때 어떤 모드를 사용하겠냐는 건데, 저희는 지금 achive 할때 cli를 쓰지 않으니 이걸로 우선 해결!!!</p>
<p>다음에 언젠가 cli를 이용해 배포 자동화가 된다면, 이걸 쓰지 못하게 될까 고민이 되는 부분이 있지만,</p>
<p>그건 그때의 고민!</p>
<p>도바! 오늘도 쏘이지! </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[도디의 터미널 명령어 모음집 (터미널에서 폴더열기)]]></title>
            <link>https://velog.io/@dody_/%EB%8F%84%EB%94%94%EC%9D%98-%ED%84%B0%EB%AF%B8%EB%84%90-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C%EC%A7%91-%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C-%ED%8F%B4%EB%8D%94%EC%97%B4%EA%B8%B0</link>
            <guid>https://velog.io/@dody_/%EB%8F%84%EB%94%94%EC%9D%98-%ED%84%B0%EB%AF%B8%EB%84%90-%EB%AA%85%EB%A0%B9%EC%96%B4-%EB%AA%A8%EC%9D%8C%EC%A7%91-%ED%84%B0%EB%AF%B8%EB%84%90%EC%97%90%EC%84%9C-%ED%8F%B4%EB%8D%94%EC%97%B4%EA%B8%B0</guid>
            <pubDate>Thu, 20 Oct 2022 01:48:00 GMT</pubDate>
            <description><![CDATA[<p>도하! 
오늘은 나만의 터미널 명령어 모음집이다.
점점 추가 시킬 예정</p>
<h3 id="해당-위치-폴더-열기">해당 위치 폴더 열기</h3>
<pre><code>open .</code></pre><h3 id="node-8081-서버-다-죽여버리기">node 8081 서버 다 죽여버리기</h3>
<pre><code>kill -9 $(lsof -i TCP:8081 | grep LISTEN | awk &#39;{print $2}&#39;)</code></pre><h3 id="리액트네이티브-라이브러리-삭제-후-재설치하기">리액트네이티브 라이브러리 삭제 후 재설치하기</h3>
<p>추후 .bash_profile에 shell command로 등록해서 단축어로 만들 예정</p>
<pre><code>rm -rf node_modules &amp;&amp; rm yarn.lock &amp;&amp; yarn &amp;&amp; cd ios &amp;&amp; rm -rf Pods &amp;&amp; rm Podfile.lock &amp;&amp; pod install &amp;&amp; ..</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[[RN-iOS] Achive 성공, 실패하고 알람뜨게 못하나요? 당연히 됩니다. ]]></title>
            <link>https://velog.io/@dody_/RN-iOS-Achive-%EC%84%B1%EA%B3%B5-%EC%8B%A4%ED%8C%A8%ED%95%98%EA%B3%A0-%EC%95%8C%EB%9E%8C%EB%9C%A8%EA%B2%8C-%EB%AA%BB%ED%95%98%EB%82%98%EC%9A%94-%EB%8B%B9%EC%97%B0%ED%9E%88-%EB%90%A9%EB%8B%88%EB%8B%A4</link>
            <guid>https://velog.io/@dody_/RN-iOS-Achive-%EC%84%B1%EA%B3%B5-%EC%8B%A4%ED%8C%A8%ED%95%98%EA%B3%A0-%EC%95%8C%EB%9E%8C%EB%9C%A8%EA%B2%8C-%EB%AA%BB%ED%95%98%EB%82%98%EC%9A%94-%EB%8B%B9%EC%97%B0%ED%9E%88-%EB%90%A9%EB%8B%88%EB%8B%A4</guid>
            <pubDate>Tue, 18 Oct 2022 09:14:31 GMT</pubDate>
            <description><![CDATA[<p>도하!</p>
<p>오늘은 Achive 하고 나서 성공, 실패 알람을 소리로 들을 수 있는 기능을 켜보도록 할 텐데요. m1으로 빌드하는 저에게는 별로 필요없을지 모르지만, 해보자구요!</p>
<p>xcode &gt; command + , &gt; Behaviors 에서 성공과 실패에 따라 Play Sound를 지정해주면 됩니다. </p>
<p>살펴보면 더 많은 경우의 수에 알람을 설정해줄 수 있으니 확인해보시라구요. 
<img src="https://velog.velcdn.com/images/dody_/post/091f2f70-ca77-4661-a851-5bb4e2995d15/image.png" alt=""></p>
<p>그럼! 도빠~</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN 에러노트🔥] throw er; // Unhandled 'error' event???]]></title>
            <link>https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8</link>
            <guid>https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8</guid>
            <pubDate>Tue, 18 Oct 2022 09:07:59 GMT</pubDate>
            <description><![CDATA[<p>도하! 오늘은 인텔에서 m1으로 환경을 전환하고 RN 프로젝트를 키는 날인데 오류가 있어서
ㅇㅏ싸뵹 하고 블로그 글을 적게 됐다.</p>
<p>문제는 아래와 같다.분명 </p>
<pre><code>To reload the app press &quot;r&quot;
To open developer menu press &quot;d&quot;
</code></pre><p>여기까지는 잘 나오는데, 몇초 있다가 아래의 문제의 코드가 난다는 것이다. </p>
<p><img src="https://velog.velcdn.com/images/dody_/post/13cf2c4e-38c4-428f-9b33-3972ea7f14c7/image.png" alt=""></p>
<p>근데 정말 웃긴에 m1 관련된 오류에 대한 글이 정말 많고 다들 진절머리가 난듯하다 ㅋㅋㅋㅋㅋㅋㅋ
관련된 문서를 쉽게 찾았고, 일단 node 서버들을 모두 삭제 했다. 
삭제하는 <a href="https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-%EB%82%98%EB%8F%84-%EB%AA%A8%EB%A5%B4%EB%8A%94-%EC%BC%9C%EC%A0%B8%EC%9E%88%EB%8A%94-%EB%85%B8%EB%93%9C-%EC%84%9C%EB%B2%84-%EB%AA%A8%EB%91%90-%EC%A3%BD%EC%9D%B4%EA%B8%B0">블로그</a>은 링크를 참고하자.</p>
<p>그래도 안되길래 아래의 깃헙 문서를 보니 다들 쉽게 했다.
<a href="https://github.com/facebook/watchman/issues/923">https://github.com/facebook/watchman/issues/923</a></p>
<h1 id="1-이거-하고">1. 이거 하고</h1>
<p>Target &gt; Build Settings &gt; Architectures &gt; Excluded Architectures 부분에 아래 코드를 추가하고</p>
<pre><code>/usr/local/Homebrew/bin</code></pre><h1 id="2-이거-하기">2. 이거 하기</h1>
<p>이걸 터미널 명령어로 작성하면 된다더라.</p>
<pre><code>brew install watchman</code></pre><p>그러고 yarn start는 잘 작동했다는 후문이.... </p>
<p>쏘이지~! </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN 에러노트🔥] 나도 모르는 켜져있는 노드 8000 서버 모두 죽이기]]></title>
            <link>https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-%EB%82%98%EB%8F%84-%EB%AA%A8%EB%A5%B4%EB%8A%94-%EC%BC%9C%EC%A0%B8%EC%9E%88%EB%8A%94-%EB%85%B8%EB%93%9C-%EC%84%9C%EB%B2%84-%EB%AA%A8%EB%91%90-%EC%A3%BD%EC%9D%B4%EA%B8%B0</link>
            <guid>https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-%EB%82%98%EB%8F%84-%EB%AA%A8%EB%A5%B4%EB%8A%94-%EC%BC%9C%EC%A0%B8%EC%9E%88%EB%8A%94-%EB%85%B8%EB%93%9C-%EC%84%9C%EB%B2%84-%EB%AA%A8%EB%91%90-%EC%A3%BD%EC%9D%B4%EA%B8%B0</guid>
            <pubDate>Tue, 18 Oct 2022 09:03:25 GMT</pubDate>
            <description><![CDATA[<p>도하 </p>
<p>yarn start 할 때, 본인이 모르는 노드서버가 켜져있다고 하면 아래의 명령어를 터미널에 치도록,</p>
<pre><code>kill -9 $(lsof -i TCP:8000 | grep LISTEN | awk &#39;{print $2}&#39;)</code></pre><p>추후, port number 받아서 해당 포트를 가지는 process를 죽이게 변경해보자..</p>
<p>쏘이지</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN-iOS] 기존 RN 프로젝트를 m1으로 바꾼다고?? 새로 세팅도 해보고 조심해야할 점을 알아보자  (ruby 버전, pod install)]]></title>
            <link>https://velog.io/@dody_/RN-iOS-%EA%B8%B0%EC%A1%B4-RN%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-m1%EC%9C%BC%EB%A1%9C-%EB%B0%94%EA%BE%BC%EB%8B%A4%EA%B3%A0-%EC%83%88%EB%A1%9C-%EC%84%B8%ED%8C%85%EB%8F%84-%ED%95%B4%EB%B3%B4%EA%B3%A0-%EC%A1%B0%EC%8B%AC%ED%95%B4%EC%95%BC%ED%95%A0-%EC%A0%90%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-ruby-%EB%B2%84%EC%A0%84-pod-install</link>
            <guid>https://velog.io/@dody_/RN-iOS-%EA%B8%B0%EC%A1%B4-RN%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8%EB%A5%BC-m1%EC%9C%BC%EB%A1%9C-%EB%B0%94%EA%BE%BC%EB%8B%A4%EA%B3%A0-%EC%83%88%EB%A1%9C-%EC%84%B8%ED%8C%85%EB%8F%84-%ED%95%B4%EB%B3%B4%EA%B3%A0-%EC%A1%B0%EC%8B%AC%ED%95%B4%EC%95%BC%ED%95%A0-%EC%A0%90%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90-ruby-%EB%B2%84%EC%A0%84-pod-install</guid>
            <pubDate>Tue, 18 Oct 2022 06:53:39 GMT</pubDate>
            <description><![CDATA[<p>도하!
오늘도 돌아온 도디입니다. 오늘은 조금 타이밍 지난 블로그 글일수도 있는데,
React Native 프로젝트를 m1 환경에서 xcode로 돌리면 오류가 나는건 다들 아시죠. 잘 해결하기 위해서 중요하게 알아둬야할점을 가지고 왔습니다. 이 게시물도 저희 회사의 큐브의 도움을 받았습니다. 감사합니다. 큐브!!!</p>
<p>iOS 개발을 하면서 저희가 걱정해야되는 부분 중 하나는 바로 ruby 버전입니다. 루비는 맥북 자체의 루비 버전과 cocoapods의 루비 버전이 충돌이 있을수 있고, 그런 경우 m1에서 pod install이 잘 작동하지 않을 수 있기 때문에 잘 설치해야 합니다.
그 과정이 이 글에 담겨있습니다!!!! </p>
<p>제발 도움이 되길ㅠ</p>
<h1 id="brew-설치">brew 설치</h1>
<p>brew를 설치해 오셔야 합니다. </p>
<pre><code>/bin/bash -c &quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&quot;</code></pre><p>위의 코드로 brew를 설치해주시구요. 설치해주시고 터미널을 재시작을 해주시구요. (설치가 안된다면 댓글로 알려주세요)</p>
<h1 id="ruby-312-설치">ruby 3.1.2 설치</h1>
<p>여기서 제가 두서에 말씀드린 루비 버전의 중요함이 돋보이는데요,
아래 코드를 터미널에 넣어서 rbenv를 설치해주세요.</p>
<pre><code>brew install rbenv ruby-build</code></pre><pre><code>rbenv init</code></pre><pre><code>vi ~/.zshrc</code></pre><p>로 .zshrc에 들어가 제일 하단에 아래 코드를 넣어줍니다.
넣는 방법을 모르신다면 vim 명령어를 구글링해서 해보시길!</p>
<pre><code>eval &quot;$(rbenv init - zsh)&quot;</code></pre><p>설치하는 이유를 다시한번 설명한다면, 맥에는 이미 ruby가 설치가 되어 있는데요, 그리고 ios 라이브러리 매니저인 cocoapods는 ruby를 사용합니다. 일반적으로 cocoapods를 설치하면 맥에 내장 되어있는 system ruby를 사용해서 설치를 하게 되는데, 문제는 m1 chip은 기존의 intel chip과 다르게 작동한다는 점입니다.</p>
<p>m1에서 cocoapods으로 라이브러리를 관리하기가 까다로워 졌기 때문에, rbenv를 사용해 ruby 환경을 관리해서 cocoapods를 설치관리하게 되는겁니다.</p>
<p>만약 rbenv 전에 cocoapods을 먼저 설치했다면 지우고 다시해야 해요~~</p>
<p>우선 ruby 버전 3.1.2 버전을 설치할거구요. </p>
<pre><code>rbenv install 3.1.2</code></pre><p>루비의 버전을 확인해보려면 아래 명령어를 쳐줘야 합니다. (꼭 저렇게 생긴 명령어를 적어야 해요, rbenv -v라고 치면 rbenv 라이브러리의 버전을 아는 것 밖에 아니랍니다.)</p>
<pre><code>rbenv versions
</code></pre><p>아래같은 모습의 결과물이 나오는데요. 
<img src="https://velog.velcdn.com/images/dody_/post/0276bcc3-1e38-42f8-a893-74a4d596d35f/image.png" alt=""></p>
<p>왼쪽에  * 이 붙어있는건 지금 사용하고 있는 상태라는걸 나타냅니다. 잘 3.1.2 버전이 사용되고 있네요.</p>
<hr>
<h1 id="문제-헤쳐나가기">문제 헤쳐나가기</h1>
<p>(1)만약 내가 ruby 3.1.2 버전을 사용하지 않는다면
(2) system 쪽에 향해 있다면</p>
<p>각 상황들의 cocoapods를 삭제하고 3.1.2 버전에만 cocoapods를 설치해 주어야 합니다.</p>
<p>아래 코드를 한번에 실행시켜주면 현재 당신의 오류가 나는 환경의 cocoapods가 삭제가 됩니다.</p>
<pre><code>sudo gem uninstall cocoapods\n
sudo gem uninstall cocoapods-core\n
sudo gem uninstall cocoapods-downloader 
sudo gem uninstall cocoapods-deintegrate 
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
sudo gem uninstall cocoapods-stats\n
sudo gem uninstall cocoapods-trunk\n
sudo gem uninstall cocoapods-try</code></pre><p>rbenv global system 라는건, 아까 * 이 향했던 방향을 system 으로 향하게 한다는 뜻입니다. 여기서 또 혹시 설치되어있는 cocoapods를 삭제해줍시다. </p>
<pre><code>rbenv global system</code></pre><pre><code>sudo gem uninstall cocoapods\n
sudo gem uninstall cocoapods-core\n
sudo gem uninstall cocoapods-downloader 
sudo gem uninstall cocoapods-deintegrate 
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
sudo gem uninstall cocoapods-stats\n
sudo gem uninstall cocoapods-trunk\n
sudo gem uninstall cocoapods-try</code></pre><p>그러고 다시 ruby 환경을 3.1.2 버전으로 바꿔주고 혹시모르니 cocoapods를 다시 삭제해주고</p>
<pre><code>rbenv global 3.1.2</code></pre><pre><code>sudo gem uninstall cocoapods\n
sudo gem uninstall cocoapods-core\n
sudo gem uninstall cocoapods-downloader 
sudo gem uninstall cocoapods-deintegrate 
sudo gem uninstall cocoapods-plugins
sudo gem uninstall cocoapods-search
sudo gem uninstall cocoapods-stats\n
sudo gem uninstall cocoapods-trunk\n
sudo gem uninstall cocoapods-try</code></pre><p>아래 코드를 작성해주면 끝입니다.</p>
<pre><code>sudo gem install cocoapods</code></pre><p>프로젝트로 이동해서 pod install을 하면 잘 작동할겁니다.
제발 이해가 다들 되셨으면 좋겠어요.
저는 좋은 선생님을 만나 쉽게 작업했지만 분명 어렵게 접근 하는 사람도 있을 테니깐요.</p>
<p>부디 행복한 코딩 하시길<del>!
도바</del>🍊</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN-iOS] 시뮬레이터에서 command + D가 안먹는다? 살려주세요. ]]></title>
            <link>https://velog.io/@dody_/RN-iOS-%EC%8B%9C%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0%EC%97%90%EC%84%9C-command-D%EA%B0%80-%EC%95%88%EB%A8%B9%EB%8A%94%EB%8B%A4-%EC%82%B4%EB%A0%A4%EC%A3%BC%EC%84%B8%EC%9A%94</link>
            <guid>https://velog.io/@dody_/RN-iOS-%EC%8B%9C%EB%AE%AC%EB%A0%88%EC%9D%B4%ED%84%B0%EC%97%90%EC%84%9C-command-D%EA%B0%80-%EC%95%88%EB%A8%B9%EB%8A%94%EB%8B%A4-%EC%82%B4%EB%A0%A4%EC%A3%BC%EC%84%B8%EC%9A%94</guid>
            <pubDate>Sat, 15 Oct 2022 12:16:28 GMT</pubDate>
            <description><![CDATA[<p>도하 !
오늘은 시뮬레이터에서 꼭 필수적으로 사용하는 디버깅 모드인, command +D에 대해서 얘기를 해볼까 합니다. 아니 너무 속상하게도 이게 작동을 하지 않는겁니다. 우리는 디버깅모드로 콘솔을 꼭 확인해야 하는데 말입니다. </p>
<p><img src="https://velog.velcdn.com/images/dody_/post/5686b20d-966b-4519-a881-10d8b9927308/image.png" alt=""></p>
<p>위와 같은 디버그 메뉴창이 보여야 한다는 말입니다. 
근데 계속 command + D 를 눌러도 안될때는 Scheme을 확인해주어야 합니다. 해당 Target의 Edit Scheme을 들어가 보면 
<img src="https://velog.velcdn.com/images/dody_/post/06efd86a-e988-48c4-b316-415ad1b86d64/image.png" alt=""></p>
<p>Build Configuration이 Release라고 되어있을 수도 있습니다.
이 Release라고 되어있는 빌드조건이 우리의 문제인 디버그모드를 안보이게 합니다.</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/867d59d1-2ef5-4ba3-8b4b-100cb47f9d1d/image.png" alt=""></p>
<p>Debug 모드로 빌드조건을 바꾸고 앱을 빌드 하신다면, 문제는 해결됩니다. </p>
<p><img src="https://velog.velcdn.com/images/dody_/post/37fa921b-bfea-404a-96ae-a6bac390193a/image.png" alt=""></p>
<p>쏘이지</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN-iOS] 지원하는 버전을 어떻게 가져가야 할까?]]></title>
            <link>https://velog.io/@dody_/RN-iOS-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-%EB%B2%84%EC%A0%84%EC%9D%84-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B0%80%EC%A0%B8%EA%B0%80%EC%95%BC-%ED%95%A0%EA%B9%8C</link>
            <guid>https://velog.io/@dody_/RN-iOS-%EC%A7%80%EC%9B%90%ED%95%98%EB%8A%94-%EB%B2%84%EC%A0%84%EC%9D%84-%EC%96%B4%EB%96%BB%EA%B2%8C-%EA%B0%80%EC%A0%B8%EA%B0%80%EC%95%BC-%ED%95%A0%EA%B9%8C</guid>
            <pubDate>Sat, 15 Oct 2022 05:40:54 GMT</pubDate>
            <description><![CDATA[<p>도하! 오늘은 React Native를 하면서 ios에서 궁금한게 생기는 점이 있는데, 그거에 대해 짧게 짚고 넘어가려고 합니다~! 저희회사에 제가 이전부터 좋게 생각하는 개발자인 큐브가 입사를 하셨어요 ㅎㅎㅎ</p>
<p>큐브와 커뮤니케이션 하면서 ios에 대해 평소에 궁금했던걸 많이 물어보게 되네요. 이번에는 ios버전을 어디부터 지원을 해줘야하는가 입니다.</p>
<p>Targets &gt; project &gt; General &gt; Deployment Info의 숫자를 보면 알수 있죠?</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/e792bc68-571d-43d4-9cc6-2a7b5e518fa3/image.png" alt=""></p>
<p>앱 헤드라잇 ios의 지원버전은 iOS 13 입니다.
뭔가 의도하고 한건아니었습니다만, 일단 현재의 저희 앱에서는 나쁘지 않은 숫자라 들었습니다.</p>
<p>보통은 ios 14정도로 하는 곳도 많다고 하더라구요. 버전이 낮으면, 낮은버전의 os유저들도 따로 대응 해줘야 하기 때문에, 개발자의 리소스들은 중요하잖아요? 개발자 리소스를 아끼기 위해 버전을 높인다고 해요.</p>
<p>근데 그러면 낮은 os 버전의 유저는 버리게 되는 셈이 되어버리는거니깐요. 개발자 리소스 vs 앱 매출을 고려해서 버전을 산정하면 좋습니다. </p>
<p>아래의 이미지를 참고해서 버전을 산정하면 좋은데요, iphone의 경우, ios14 이전 버전의 유저가 4% 정도밖에 안되기 때문에 ios 14를 보통 값이 된다고 합니다. </p>
<p>os 사용현황 바로 살펴보기 : <a href="https://developer.apple.com/kr/support/app-store/">https://developer.apple.com/kr/support/app-store/</a></p>
<p><img src="blob:https://velog.io/a167bf82-6663-4c44-8e14-31b140fbfe3c" alt="업로드중.."></p>
<p>저희 헤드라잇은 ios유저가 젊은 층이 더 많기 때문에, 더 올려서 컨트롤 해도 되는 상황입니다. 그래서 추후, 대응 버전을 높이는걸 목표로 합니다.</p>
<p>다른 앱을 개발하시는 분들, 현재 본인들의 앱의 상황을 잘 분석해서 버리는 유저를 최소로 가져가길<del>~</del>!</p>
<p>도디바이~!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN 에러노트🔥] The `project_name [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in]]></title>
            <link>https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-The-projectname-Debug-target-overrides-the-ALWAYSEMBEDSWIFTSTANDARDLIBRARIES-build-setting-defined-in</link>
            <guid>https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-The-projectname-Debug-target-overrides-the-ALWAYSEMBEDSWIFTSTANDARDLIBRARIES-build-setting-defined-in</guid>
            <pubDate>Fri, 05 Aug 2022 07:53:21 GMT</pubDate>
            <description><![CDATA[<p>pod install을 했는데, 아래와 같은 warning이 나오더라.</p>
<pre><code>[!] The `project_name [Debug]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-project_name/Pods-project_name.debug.xcconfig&#39;. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `project_name [Release]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-project_name/Pods-project_name.release.xcconfig&#39;. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `project_name [Staging]` target overrides the `ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES` build setting defined in `Pods/Target Support Files/Pods-project_name/Pods-project_name.staging.xcconfig&#39;. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.</code></pre><p>디버깅 해보니 답이 조금 쉽게 나왔다. 
<a href="https://blog.asamaru.net/2017/04/11/target-overrides-the-always-embed-swift-standard-libraries-build-setting/">https://blog.asamaru.net/2017/04/11/target-overrides-the-always-embed-swift-standard-libraries-build-setting/</a></p>
<p><img src="https://velog.velcdn.com/images/dody_/post/d8fd832d-7ea6-4abf-9afb-75eb799b2543/image.png" alt=""></p>
<p>build setting &gt; Alays Embed Standard Libraries &gt; Yes - $(inherited) 으로 값을 수정하면 잘 pod install 된다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN 에러노트🔥] Undefined symbols for architecture x86_64:   "_swift_getTypeByMangledNameInContextInMetadataState", referenced from: ... ]]></title>
            <link>https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-Undefined-symbols-for-architecture-x8664-swiftgetTypeByMangledNameInContextInMetadataState-referenced-from-</link>
            <guid>https://velog.io/@dody_/RN-%EC%97%90%EB%9F%AC%EB%85%B8%ED%8A%B8-Undefined-symbols-for-architecture-x8664-swiftgetTypeByMangledNameInContextInMetadataState-referenced-from-</guid>
            <pubDate>Thu, 04 Aug 2022 04:33:58 GMT</pubDate>
            <description><![CDATA[<h1 id="상황">상황</h1>
<p>ios에 위젯을 추가하려다, ios widget extension을 추가하면서, 빌드를 하려다 보니 아래와 같은 Link 오류가 뜨더라!</p>
<p><img src="https://velog.velcdn.com/images/dody_/post/1e8f5a80-dcb6-4592-9dbd-782ae2f4843e/image.png" alt=""></p>
<pre><code>Undefined symbol: _swift_getTypeByMangledNameInContextInMetadataState
Undefined symbol: _swift_getOpaqueTypeConformance
</code></pre><p>스택오버플로우를 찾아보니 바로 답이 나왔다.
<a href="https://stackoverflow.com/questions/64584466/cannot-build-after-adding-ios-widget-to-existing-react-native-project-symbols">https://stackoverflow.com/questions/64584466/cannot-build-after-adding-ios-widget-to-existing-react-native-project-symbols</a></p>
<p>새로 추가한 Widget Extension Target의 Build Settings &gt; Search Path &gt; Library Search Paths 값을 수정하니까 잘 빌드가 되더라</p>
<pre><code>- from
&quot;$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)&quot;

- to
&quot;$(TOOLCHAIN_DIR)/usr/lib/swift-5.2/$(PLATFORM_NAME)&quot;</code></pre>]]></description>
        </item>
        <item>
            <title><![CDATA[안 친한 Nextjs..  
 TypeError: unsupported file type: undefined (file: undefined) 오류 기록]]></title>
            <link>https://velog.io/@dody_/%EC%95%88-%EC%B9%9C%ED%95%9C-Nextjs..-TypeError-unsupported-file-type-undefined-file-undefined-%EC%98%A4%EB%A5%98-%EA%B8%B0%EB%A1%9D</link>
            <guid>https://velog.io/@dody_/%EC%95%88-%EC%B9%9C%ED%95%9C-Nextjs..-TypeError-unsupported-file-type-undefined-file-undefined-%EC%98%A4%EB%A5%98-%EA%B8%B0%EB%A1%9D</guid>
            <pubDate>Tue, 14 Jun 2022 01:34:35 GMT</pubDate>
            <description><![CDATA[<p>도하
요즘 회사에서 nextjs로 웹을 만들고 있는데, 노트북에서 아이맥으로 옮기고 나니 새로운 오류가 발생해서 기록한다.</p>
<pre><code>error - ./public/img/main/image-ai.png
TypeError: unsupported file type: undefined (file: undefined)</code></pre><p>이런 error가 발생하고 있었고, 이미지를 인식을 못하고 있는거같아서, 구글링을 해봤더니 답은 쉽게 나왔다.</p>
<p><a href="https://stackoverflow.com/questions/68008498/nextjs-typeerror-unsupported-file-type-undefined-after-update-to-v-11">https://stackoverflow.com/questions/68008498/nextjs-typeerror-unsupported-file-type-undefined-after-update-to-v-11</a></p>
<pre><code>// next.config.js 

module.exports = {
  images: {
    disableStaticImages: true
  }
}</code></pre><p>next.config.js 파일에 이미지 세팅에 disableStaticImages: true 이거 한줄 추가해주는 것으로 잘 마무리 되었다. </p>
<p>쏘이지~</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[RN] ios 다크모드 스플래시 추가하기]]></title>
            <link>https://velog.io/@dody_/RN-ios-%EB%8B%A4%ED%81%AC%EB%AA%A8%EB%93%9C-%EC%8A%A4%ED%94%8C%EB%9E%98%EC%8B%9C-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@dody_/RN-ios-%EB%8B%A4%ED%81%AC%EB%AA%A8%EB%93%9C-%EC%8A%A4%ED%94%8C%EB%9E%98%EC%8B%9C-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0</guid>
            <pubDate>Sun, 08 May 2022 04:10:42 GMT</pubDate>
            <description><![CDATA[<p>블로그 글 정말 오랫만인듯! 
그 동안 몸담고 있는 회사의 앱인 오늘의헤드라인이 헤드라잇으로 이름을 바꾸고, 혼자 rn으로 aos, ios 두 파트를 담당하다가 믿음직스러운 android 개발자분을 모셔오게 되어서 aos는 native로, 나는 ios만 담당하게 되었다. 나야 앱개발도 재밌지만 웹개발에 흥미를 더 느끼는지라 올해 안에는 웹으로 아예 넘어가게 될수도? </p>
<p>그래서 이제는 rn이라 한들 ios 시선의 내용의 글을 작성하게 될 듯하다!</p>
<p>헤드라잇은 1.1.9 버전까지만해도 스플래시화면이 다크모드가 적용되지 않고 있었다. 스플래시도 다크모드 이미지를 적용해달라는 유저의 피드백이 있었고, 어렵지 않은 작업이라 빠르게 반영했다. 1.2.0 버전에서는 확인하실 수 있을 것!</p>
<h1 id="start">Start!</h1>
<p>나는 이전에 작성한 블로그 글의 스플래시 적용방법을 이용해서 할것이다.
<a href="https://velog.io/@dody_/RN-rn-%EC%8A%A4%ED%94%8C%EB%9E%98%EC%8B%9C-%EC%8A%A4%ED%81%AC%EB%A6%B0-1.react-native-make%EB%A1%9C-App-Splash-%EC%9D%B4%EB%AF%B8%EC%A7%80-%EC%B6%94%EC%B6%9C%ED%95%98%EA%B8%B0">[RN Library 📚] rn 스플래시 스크린 1. react-native-make로 App, Splash 이미지 추출하기
</a><a href="https://velog.io/@dody_/RN-Library-rn-%EC%8A%A4%ED%94%8C%EB%9E%98%EC%8B%9C-%EC%8A%A4%ED%81%AC%EB%A6%B0-2.-react-native-splash-screen">[RN Library 📚] rn 스플래시 스크린 2. react-native-splash-screen</a></p>
<p>무려 2년 전에 작성한 글이지만 요즘도 들어가서 참고하는 글이기 때문에 충분히 참고하셔도 됨!</p>
<h3 id="순서">순서</h3>
<ol start="0">
<li>위의 링크에서 스플래시 이미지 적용하는 방법을 적용하고 온다.</li>
<li>스플래시 이미지를 준비</li>
<li>프로젝트 루트에서 아래 코드를 실행시켜 스플래시에 맞는 이미지를 추출한다. (project root &gt; ios &gt; [project name] &gt; Images.xcassets 안에 스플래시 이미지가 추출되어 있을 것)<pre><code>npx react-native set-splash --path [path-to-image] --resize [contain|cover|center] --background [&quot;background-color&quot;]
</code></pre></li>
</ol>
<p>npx react-native set-splash --path ./src/img/splash_dark.png --resize center --background &quot;#333333&quot;</p>
<p>```
3. xcode에서 다크모드도 사용할 수있게 확장시키고, 스플래시 이미지 잘 적용시켜주면 끝</p>
<h3 id="xcode-손보기">xcode 손보기</h3>
<p>xcode에서 스플래시 이미지가 있는 폴더로 들어다. 
나의 경우는 [project name] &gt; images &gt; SplashImage에 스플래시 이미지가 있는데, 스플래시 이미지를 클릭하면 우측에 Image Set을 조정하면 스플래시에도 다크모드가 가능하다.</p>
<center><img src = "https://velog.velcdn.com/images/dody_/post/ac11a0a0-e51c-45bd-ab58-c0b84f36aaed/image.png" width = "300"></center>  


<p>Appearances를 &#39;Any, Dark&#39;로 설정하면, 스플래시이미지 영역에 다크모드의 영역이 추가 될 것이다. 그곳에 스플래시 이미지를 넣으면 된다.
<img src="https://velog.velcdn.com/images/dody_/post/d5648e60-199d-44b5-926d-6094f48918d7/image.png" alt=""></p>
<p>쏘이지!</p>
]]></description>
        </item>
    </channel>
</rss>