<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>kim_truee.log</title>
        <link>https://velog.io/</link>
        <description>1day 1push..plz</description>
        <lastBuildDate>Sun, 24 Sep 2023 11:08:13 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>kim_truee.log</title>
            <url>https://images.velog.io/images/kim_truee/profile/72bf1d3d-d770-4f6c-8802-cf490af7a5c6/social.jpeg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. kim_truee.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/kim_truee" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[#5 graphql-upload와 싸웠다]]></title>
            <link>https://velog.io/@kim_truee/5-graphql-upload%EC%99%80-%EC%8B%B8%EC%9B%A0%EB%8B%A4</link>
            <guid>https://velog.io/@kim_truee/5-graphql-upload%EC%99%80-%EC%8B%B8%EC%9B%A0%EB%8B%A4</guid>
            <pubDate>Sun, 24 Sep 2023 11:08:13 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kim_truee/post/7e7b727f-127a-41cb-aab1-d307d00d12d9/image.png" alt=""></p>
<p>벨로그 정말 오랜망갑이지만 그래도 그동안 열심히 잔디를 심어놨습니다 </p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/fc52db8d-97b4-43f1-9ae5-bcfec2c7657a/image.png" alt=""></p>
<p>작고 소듕한 나의 깃 푸쉬</p>
<p>아무튼, 오늘 파일 업로드를 해야하는데 이슈가 몇가지 발생했슴.</p>
<p>기존에 사용했던 것처럼 파일 업로드를 사용하려고 했는데 </p>
<h2 id="1-graphql-upload-import가-되지-않는-이슈-발생">1. graphql-upload import가 되지 않는 이슈 발생.</h2>
<h3 id="해결-방안">해결 방안</h3>
<ul>
<li>yarn add @types/graphql-upload --dev 을 추가함. (해결)</li>
</ul>
<h2 id="2-graphqlupload-fileupload가-추가되지-않는-이슈">2. GraphQLUpload, FileUpload가 추가되지 않는 이슈</h2>
<h3 id="해결-방안-1">해결 방안</h3>
<ul>
<li><code>import graphqlUploadExpress from &quot;graphql-upload/graphqlUploadExpress.mjs&quot;</code> </li>
<li><code>import type { FileUpload } from &quot;graphql-upload/processRequest.mjs&quot;;</code>
=&gt; 이렇게 해주니 일단 추가가 되었다. 
however, 실행을 시키니 작동이 안된다 에러에러에러⚠️
이렇게 추가하라고 했던 stackoverflow 글에서 tsconfig와 package.json에 <img src="https://velog.velcdn.com/images/kim_truee/post/51b2b1b5-6397-43ed-843c-ce1245455036/image.png" alt="">
<a href="https://stackoverflow.com/questions/71726644/typegraphql-graphql-upload-import-cannot-be-found">참고했던 게시물</a>
이렇게 하라고 해서 했지만,,,! module을 변경하면 다른 node package들을 읽지 못함.
이건 아니라고 생각되어 과감하게 삭제.</li>
</ul>
<p>다시 초기 상태로 돌아가서 graphql-upload의 버전을 낮추라는 위의 답변중 하나를 보고 package.json에서 버전을 낮춘 뒤 실행하니 잘 되는 것을 볼 수 있었다.
(기존 node_modules를 지우고 다시 yarn install 하는거 당연히 아시겠죠,,,?)
<img src="https://velog.velcdn.com/images/kim_truee/post/60c361b8-e01c-4172-9f2d-e5f637ccba3b/image.png" alt=""></p>
<br />

<h2 id="3-postman-file-directory를-찾지-못함">3. Postman File Directory를 찾지 못함</h2>
<h3 id="해결방안">해결방안</h3>
<p>값이 잘 들어오는 것을 확인하기 위해 postman으로 실습을 해봤는데 
처음에 발생했던 에러가 기억이 안난다... (땀뻘뻘)
두번째 발생한 에러는 보낼 파일의 경로를 찾지 못하는 것이였다.</p>
<ul>
<li>postman setting general
<img src="https://velog.velcdn.com/images/kim_truee/post/194e1900-051d-4bfd-8f5a-91d201ee7224/image.png" alt="">
그래도 자꾸 ⚠️표시가 떠서 그냥 postman/files에 파일을 넣어줬다 -_-</li>
</ul>
<h2 id="4-send가-안됨">4. send가 안됨</h2>
<p>나는 upload를 보냈는데 자꾸 Float냐고 포스트맨이 물어봤다.
뭐지.. 왜 Float를 찾는거지
확인하니... </p>
<h3 id="해결방안-1">해결방안</h3>
<ul>
<li><p>Mutation선언을 하지 않았다.
너무나 바보같은 실수...</p>
</li>
<li><p>다른 에러 발생. API 이름 실수... 언제까지 바보같은 실수를 반복할텐가 ㅜㅜ</p>
</li>
<li><p>This operation has been blocked as a potential Cross-Site Request Forgery (CSRF) ... 에러 발생
<img src="https://velog.velcdn.com/images/kim_truee/post/4d67f268-a9d0-4f9d-a778-a32455e6a67e/image.png" alt="">
이건 인터넷 검색으로 찾았다. Headers에 추가해주면 된다.
<img src="https://velog.velcdn.com/images/kim_truee/post/a6cbe6d9-0124-471e-8b12-23fc24ec625a/image.png" alt=""></p>
</li>
</ul>
<p>짜잔 완성</p>
<br />
<br />
<br />

<p>내일은 아무래도 못할 것 같아서 주말인 오늘 고통받는 중이다.
그래도 할당량을 채우는 나자신 제법 괜찮아 보여
<img src="https://velog.velcdn.com/images/kim_truee/post/445b4a8f-e206-4836-af72-6efe9cdba549/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#4 9월의 시작은 돈까스]]></title>
            <link>https://velog.io/@kim_truee/4-9%EC%9B%94%EC%9D%98-%EC%8B%9C%EC%9E%91</link>
            <guid>https://velog.io/@kim_truee/4-9%EC%9B%94%EC%9D%98-%EC%8B%9C%EC%9E%91</guid>
            <pubDate>Fri, 01 Sep 2023 13:41:42 GMT</pubDate>
            <description><![CDATA[<p>벌써 9월이다. 8월이 이렇게 허무하게 지나가다니!!!!
<img src="https://velog.velcdn.com/images/kim_truee/post/1f004699-b6fb-4d4d-a120-4d0e39fb1d9a/image.png" alt=""></p>
<p>돈까스 비정기회 모임 후 오늘도 저녁에 컴퓨터를 킨다.
일단 컴퓨터를 키고 의자에 앉는 것이 나에게 가장 중요하다.</p>
<h1 id="📖-오늘-한-일">📖 오늘 한 일</h1>
<p>오늘은 동기와 비동기, SMS와 EMAIL 보내기를 했다.
동기와 비동기는 아주 중요하니까 별표⭐️</p>
<br />

<p>coolSMS는 여전히 결제가 불편하다.
나는 예전에도 그랬고 오늘도 맥북으로 결제하려다 번번히 실패하고
<img src="https://velog.velcdn.com/images/kim_truee/post/b98ff3f9-b1b8-43c4-9a4d-90c1ff2d8567/image.png" alt=""></p>
<p>결국은 window로 결제를 했다.
보안 프로그램을 깔아도 결제가 안됐을때 맥북으로 못했던게 생각이 났다...💦</p>
<p>어쩔 수 없지,,, 다 내가 멍청해서 일어난 일이다.</p>
<br />

<p>오랜만에 env파일도 작성하고 
다 까먹었다 생각했는데 그래도 조금은 기억하고 있었구나 나 짜식
(오이오이 믿고 있었다구!!)</p>
<p>중간에 변수명이 꼬여서 포스트맨에서 api 실행이 안돼서 
살짝 당황했지만 다시 극복
여전히 변수 짓는 것은 어려운 것 같다.</p>
<h1 id="💪-주말-목표">💪 주말 목표</h1>
<p>주말에는 하루의 학습과 그동안 보지 않았던 개발 동향과 정보들을 찾아보는 것을
목표로 한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[#3 P를 벗어나려면 일단 시작해라]]></title>
            <link>https://velog.io/@kim_truee/3</link>
            <guid>https://velog.io/@kim_truee/3</guid>
            <pubDate>Thu, 31 Aug 2023 13:20:36 GMT</pubDate>
            <description><![CDATA[<p>큼큼,, 어제는 밤샘 이슈로 불참
<span style="color:grey; font-size:9pt">배기배기배기배기진스~</span> 
<img src="https://velog.velcdn.com/images/kim_truee/post/d4ac28a4-e06b-43c5-bd41-056fc2d7c172/image.png" alt=""></p>
<p>한 번만 봐주길</p>
<br />
<br />

<p>낮에 관절이 흐물흐물해서 (핑계지만)
미뤄뒀다가 오늘 아무것도 하지 않을 것 같아서 
저녁에 조금이라도 하자라는 마음으로 컴퓨터를 켰는데
오랜시간 고통받았다. </p>
<p>금방 끝날 줄 알았는데 이렇게 오래 걸릴 줄이야 😩!!</p>
<p>오늘은 apollo server를 했는데
우선 npm에 나오지 않아서 1차 멈칫,,,!
graphql-ws이 나오던데 이걸 공부해야할까..?🤔 찾아봐야겠다.</p>
<p>우선 홈페이지로 들어가서 독스를 봤는데
작년과 달라서 2차 멈칫,,,!
진짜 이 세계는 조금만 지나면 바로 달라지는 구나를 실감한다</p>
<p>그래도 뭐 어떡해 해야지,,,</p>
<p>독스 참고해서 최대한 따라했는데
그래도 다행인 부분은 그렇게 많이 달라진 부분이 없었고
작년 기억이 아주 조금은 남아 있어서💭
적응 하는데 도움이 아주 쥐콩만큼 됐다.</p>
<p>오랜만에 보는 오류에 얼타기도 하고, 순조로웠던 1,2일차와 비교해서 본격적이게 되니 조금 겁먹기 시작했다.</p>
<p>그치만 지지말자!! 지치지마!!!</p>
<br />

<p>당분간은 주말 상관없이 계속 진도를 나아가야할것같다.</p>
<p>나자신,,, 너 할 수 있지,,,?
<img src="https://velog.velcdn.com/images/kim_truee/post/7e116b65-aa6c-419c-bc29-bf4f862c5c1f/image.png" alt=""></p>
<br />
내일도 약속이슈로 컴퓨터를 킬지 안킬지 모르겠지만 <br />
저녁먹고 꼭 키자.. 아자아자
]]></description>
        </item>
        <item>
            <title><![CDATA[#2 어질어질 두통]]></title>
            <link>https://velog.io/@kim_truee/2-%EC%96%B4%EC%A7%88%EC%96%B4%EC%A7%88-%EB%91%90%ED%86%B5</link>
            <guid>https://velog.io/@kim_truee/2-%EC%96%B4%EC%A7%88%EC%96%B4%EC%A7%88-%EB%91%90%ED%86%B5</guid>
            <pubDate>Tue, 29 Aug 2023 09:10:07 GMT</pubDate>
            <description><![CDATA[<p>3,4일의 복습을 끝냈다.</p>
<p>얕은 복사와, 깊은 복사에 대해 다시 정리하게 된.
그동안은 느낌적으로 사용해 왔는데 이제는 알고 사용하자
제발 까먹지 말자</p>
<br />
<br />

<p>http통신을 들어갔다.</p>
<p>오랜만에 post man을 켰는데 
더이상 크롬 확장프로그램은 지원하지 않아 다운로드 해서 프로그램을 사용해야 했다.
<img src="https://velog.velcdn.com/images/kim_truee/post/6ba617af-bfe0-4b54-ae8f-901b22506857/image.png" alt="">
그동안 시간이 많이 지난 것을 느껴버렸다.</p>
<p>포스트맨을 통해 REST-API를 해보고
Swagger도 다시 작성했다
swagger 작성할때 띄어쓰기때문에 고생했던 기억이 있는데 
한 번에 성공해서 신기했다😳</p>
<br />
<br />

<p>오늘 마음이 콩밭에 가 있어서 집중이 제대로 잘 되지 않았다
아자 아자 아자</p>
<p><a href="https://velog.io/@kim_truee/Javascript-Primitive-type-vs-Reference-type-%EC%9B%90%EC%8B%9C%EC%9E%90%EB%A3%8C%ED%98%95-vs-%EC%B0%B8%EC%A1%B0%EC%9E%90%EB%A3%8C%ED%98%95">참고하자: 원시자료형vs참조자료형</a></p>
<p><a href="https://velog.io/@kim_truee/Rest-api-vs-Graphql-api">참고하자: rest-api와 graphql-api </a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[다시 시작]]></title>
            <link>https://velog.io/@kim_truee/%EB%8B%A4%EC%8B%9C-%EC%8B%9C%EC%9E%91</link>
            <guid>https://velog.io/@kim_truee/%EB%8B%A4%EC%8B%9C-%EC%8B%9C%EC%9E%91</guid>
            <pubDate>Mon, 28 Aug 2023 09:25:34 GMT</pubDate>
            <description><![CDATA[<p><strong>오래,,오래망갑,,,입니다</strong></p>
<h2 id="인사">인사</h2>
<p>너무나 오랜만이라 새롭습니다. 
<br />
<img src="https://velog.velcdn.com/images/kim_truee/post/025bcb0d-ce4b-4266-a387-efa2fec8a400/image.png" alt=""></p>
<p>1년동안 칩거를 하다 다시 등장</p>
<br />
<br />


<p>다시 하려니 너무 힘듭니다...
<img src="https://velog.velcdn.com/images/kim_truee/post/7fc11da4-2539-41d2-be12-d5a85ac74d74/image.png" alt=""></p>
<p>열심히 해서 바로 취업했어야지 과거의 나...!!! 
<span style="color:gray">너때문에 현재의 내가 고생한다</span>
<br />
<br /></p>
<h2 id="역대급-병크-생성-중">역대급 병크 생성 중...</h2>
<ul>
<li>visual studio 찾지 못함</li>
<li>깃도 연결 못해서 쩔쩔매는 중</li>
<li>폴더 만드는 것도 못함</li>
</ul>
<p>그나마 다행인건 과거의 내가 써놓은게 조금 있어서 그걸 보며
얼레벌레 시작했습니다.🥲</p>
<br />
<br />


<h2 id="앞으로">앞으로</h2>
<p>우선,, </p>
<p>까먹었던 자바 스크립트 다시 복습하고, 취업준비를 드디어 해보려고 합니다.
1년동안 칩거하는 동안 변한게 많아 해야할게 많겠지만 
<span style="font-size: 9pt"> 챗지피티라던가,,,</span>
잘 할 수 있을지 없을지 모르겠지만 어쩌겠습니까 해야지...
다 저의 과오입니다.🤭</p>
<p>아자아자,, 해보자</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[220919] - 오랜만에 컴백]]></title>
            <link>https://velog.io/@kim_truee/220919-%EC%98%A4%EB%9E%9C%EB%A7%8C%EC%97%90-%EC%BB%B4%EB%B0%B1</link>
            <guid>https://velog.io/@kim_truee/220919-%EC%98%A4%EB%9E%9C%EB%A7%8C%EC%97%90-%EC%BB%B4%EB%B0%B1</guid>
            <pubDate>Mon, 19 Sep 2022 09:37:45 GMT</pubDate>
            <description><![CDATA[<p>220910-220917 코롱냐에 걸려 버렸다.
<img src="https://velog.velcdn.com/images/kim_truee/post/d5702afa-d389-4f5b-8ef7-f45cf53328b9/image.png" alt=""></p>
<p>나는 안걸릴거라 생각했는데 걸려버렸다.
그래서 재택으로 api 오류를 고쳤다.</p>
<p>과거의 나 왜 완벽하게 하지 못해서 아픈와중에 컴퓨터를 키게 만들었니😡</p>
<hr>
<p>오랜만에 기강을 잡으러 나왔다.
진도가 많이 느린 것 같기도 하면서 조금 초조해 진다.
발표가 바로 금요일이기때문이다!!!!!!</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/01169a58-838b-4cae-8bc7-ee856b83f110/image.png" alt=""></p>
<p>만들지 않은 API들이 있어서 아침에 호로로로로록 만들었다.
프론트와 다시 연결하고 수정을 할 것 같긴하지만 말이다.</p>
<br>
<br>
<br>

<p>오늘 오후에는 CI/CD를 설정하려고 했다.
수업시간에서는 쿠버네티스와 함께 CI/CD를 설정했었는데
쿠버네티스를 사용하지 않고 그냥 computer engine과 깃을 연결해서 사용하려 했더니 </p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/f94476ac-d361-463a-955f-8f8242662306/image.png" alt=""></p>
<p>.env파일을 찾는다... 
그치만 git에는 env파일을 올릴 수 없는걸!!!! </p>
<p>실패의 쓴 맛을 보고,,, 젠킨스로 눈을 돌렸다.</p>
<br>
<br>
<br>

<p>젠킨스 또한,, 나에게 패배를 안겨준,,,, 
젠킨스와 깃을 연동하는 과정에서 자꾸 연동하지 못해서 해결하지 못하고 GG선언
왜 나에게 이런 시련을 안겨주는 것인가</p>
<p>CI/CD 과연 어떻게 될까
내일 다시 생각해보자... </p>
<p>데브옵스팀 따로 있는 곳으로 가고 싶다 🥲</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[220907] - #8]]></title>
            <link>https://velog.io/@kim_truee/220907-8</link>
            <guid>https://velog.io/@kim_truee/220907-8</guid>
            <pubDate>Thu, 08 Sep 2022 05:53:21 GMT</pubDate>
            <description><![CDATA[<p>2주차 점검</p>
<ul>
<li>채팅에 어려움이 있다..</li>
</ul>
<p>가계부를 좀더 .. 
코드에 좀더 신경을 쓰는 걸로 
문서화를 정확하게 하자 </p>
<p>검색을 좀더 구체적으로 가는 것도 좋을 것 같다.</p>
<p>유통기한 - 날짜가 됐을때 백엔드에서 어떻게 푸쉬를 할 것인가 ?? </p>
<p>테스트 코드를 작성하는게 좋을 것 같다.
트랜젝션을 걸 수 있는 것을 찾아보기</p>
<p>쿠버네티스 </p>
<hr>
<p>1:1 채팅 기본 셋팅을 다 한것 같은 느낌이다.
석연치 않은 부분도 있지만 일단 잘 되니까 패스 😭
수고했다 나놈 증말.. </p>
<p>나중에 프론트와 연결했을 때 조금 무섭다 하하하
미래의 나에게 맡긴다</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/9895822a-89da-4014-994b-0ceca64a06f4/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[220906] - #7]]></title>
            <link>https://velog.io/@kim_truee/220906-7</link>
            <guid>https://velog.io/@kim_truee/220906-7</guid>
            <pubDate>Wed, 07 Sep 2022 02:29:58 GMT</pubDate>
            <description><![CDATA[<p>어제 폭풍을 뚫고 집에 가면서 내일은 얼마나 험난한 날이 될까 걱정했는데</p>
<p>아침에 일어나니 무슨 일 ..? 
너무나 화창하고 맑았다. </p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/6021c504-cb56-4796-9951-0d6f7a7435e7/image.png" alt=""></p>
<p>&lt;단톡방에 반석님이 올려주신 사진&gt;</p>
<p>아침에 와서 어제 해결하지 못한 쿠키에 refreshToken을 담는 작업을 했다.
네트워크를 보니 
<img src="https://velog.velcdn.com/images/kim_truee/post/44f209f0-9682-42e5-aa13-5786d9598cae/image.png" alt="">
옆에 ⚠️ 표시가 있어서 혹시나 하고 https로 도메인을 만들어 줬다</p>
<p>SSL을 발급하는데 인증이 진짜 너무너무 오래걸렸다... 🥲  30분 기다림</p>
<p>그리고 다시 로그인을 했더니
<img src="https://velog.velcdn.com/images/kim_truee/post/82e7e1cf-7a95-4a40-86fb-3f84f24c167a/image.png" alt="">
아주 잘 들어온다.
코드에 문제가 있었던 것이 아니라 http에서 안들어 왔던 것! ㅜㅜ </p>
<p>문제를 해결해서 너무 다행이다</p>
<p>채팅을 구현하고 있다.
CORS에러와 </p>
<pre><code>WebSocket connection to &#39;ws://localhost:3095/socket.io/?EIO=3&amp;transport=websocket&#39; failed: Invalid frame header</code></pre><p>에러가 떴다. </p>
<p>CORS 설정을 해준 것 같은데 왜 뜨는 걸까 ㅜㅜ </p>
<pre><code class="language-js">this.socket = io(&#39;http://localhost:3000/chat&#39;, { transports: [&#39;websocket&#39;] });</code></pre>
<p>뒤에 transports: [&#39;websocket&#39;]
을 넣어주니 CORS에러가 사라졌다.</p>
<p>WebSocket connection ... 에러는 
프론트의 웹소켓 버전과 백엔드의 웹소켓 버전이 맞지 않아서 생기는 에러</p>
<p>프론트에의 웹소켓 버전을 4.X로 해줬더니 연결이 잘 됐다.</p>
<p>우선 1차적인 에러를 잡고 채팅을 열 수 있어서 마음이 가볍다.</p>
<p>이제 1:1 채팅을 할 수 있게 구현을 해주면 될 것 같다!</p>
<p>조금 구조적으로 다시 생각해봐야 할 것 같다 ㅜ
어렵다 어려워!!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[220905] - #6]]></title>
            <link>https://velog.io/@kim_truee/220905-6</link>
            <guid>https://velog.io/@kim_truee/220905-6</guid>
            <pubDate>Mon, 05 Sep 2022 14:27:11 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/kim_truee/post/e1629890-2214-4207-a662-0ef7e35b836a/image.png" alt=""></p>
<p>쓰레기요일이 왔다.(대충 월요일이란 뜻)</p>
<p>주말동안 아주 멋지게 아무것도 안했다!!! 
그래서 일찍왔는데 승현이가 있었다.</p>
<p>나: &quot;승현아 무슨 일로 일찍왔니?&quot;
승현: &quot;어 언니 나 밤샜어 ^^&quot; </p>
<p>.... 아침부터 죄책감이 든다.
당당하게 금요일에 드림쇼를 가려면 이번주 아주 화이팅해야 할 것 같다.</p>
<p>일단 코드를 정리하고 푸쉬하자!!!  </p>
<p>희철님이 지각을 세번했다
<img src="https://velog.velcdn.com/images/kim_truee/post/2c827956-406a-4e9a-8d1f-9676839afbf9/image.png" alt="">
그리고 얻어먹은 글레이즈드 라떼 꿀맛💚</p>
<p>우중님도 지각을 했으면 좋겠다고 했더니 절대 안하신다고 했다.</p>
<h1 id="🧐2주차-회의">🧐2주차 회의</h1>
<ul>
<li>가계부 어떻게 고도화 할 것인가 </li>
<li>이번주 할 일. 채팅을 끝내고 뭐를 하나 할라했는데 기억이 안난다. 생각나면 하는걸루</li>
</ul>
<h1 id="오늘의-고난">오늘의 고난</h1>
<p>프론트와 연결을 했더니 조금씩 삐걱거린다.
refreshToken이 cookie에 발급이 안돼서 역경을 ... 헤쳐나가고 있다...
마지막 희망 DNS 완성해서 다시 해보자</p>
<p>로드밸런스 승인이 안난다... ㅎㅎㅎㅎ 
어쩌라는 거지
드럽고 치사해서 퇴근하련다 퉤퉤퉤 ㅠㅠㅠ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[220902] - #5]]></title>
            <link>https://velog.io/@kim_truee/220902-5</link>
            <guid>https://velog.io/@kim_truee/220902-5</guid>
            <pubDate>Mon, 05 Sep 2022 00:35:21 GMT</pubDate>
            <description><![CDATA[<p>오늘 아침 어제 하지 못한.. 것을 하는데 </p>
<p>같은 로직을 여러번 사용해야 돼서 하나의 서비스로 빼려고 했더니 어쨌든 또 트랜젝션을 사용해야한다.</p>
<p>Transaction안에 Transaction을 실행시켰더니 </p>
<pre><code class="language-js">Error: Lock wait timeout exceeded; try restarting transaction</code></pre>
<p>에러가 났다. </p>
<p>하나의 트랜젝션이 실행되고 그 다음의 트랜젝션은 실행은하지만
그 앞의 트랜젝션이 끝나지 않으면 다음 실행한 트랜젝션은 앞의 것이
끝나기까지 대기중이다. </p>
<br>

<hr>
<br>

<p>1차 점검 </p>
<p>기획에 대해서 무척 마음에 들어 하셨는데 
이제 앞으로 UI가 어떻게 나올지에 따라 우리의 성공여부가 달라질 것 같다.</p>
<p>결제 시스템을 다 구현했는데 기획특성상 결제가 들어가지 않는게 나을 것 같다는 피드백을 받았다. 맞는 말이긴 한데 너무 아깝다😭 따로 빼서 백업해놔야겠다...</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/9429444a-3238-4f51-8308-aaece2a55730/image.png" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[220901] - #4 ]]></title>
            <link>https://velog.io/@kim_truee/0901-4</link>
            <guid>https://velog.io/@kim_truee/0901-4</guid>
            <pubDate>Thu, 01 Sep 2022 11:39:10 GMT</pubDate>
            <description><![CDATA[<p>오늘은 당일에 쓰는 회고록
귀하다 귀해🥹</p>
<p>생각이 잘 난다!!! </p>
<p><code>오늘의 한 일</code></p>
<ul>
<li>페이지 별 기능 정리
: MBTI 파워 P들의 모임 대충 대충 하다가  한 번 정리가 필요한 것 같아서 아침에 회의 소집.</li>
<li>Point충전 기능
: 정말...진정 오늘 이것만 한것일까 .. ? 왜지 ??;; 
결제는 됐는데 데이터가 테이블에 들어가지 않았다.
따옴표로 감싸주지 않아서... 들어가지 않았다. 이것은 금방 해결! </li>
</ul>
<p>트랜잭션을 사용해 오류시 rollback이 되고, 결제가 취소되게 로직을 작성했다.
맞는 거...겠지... ?
<img src="https://velog.velcdn.com/images/kim_truee/post/3c935f40-3f1f-47c7-9cdf-3ba839f95891/image.png" alt=""></p>
<p>물건사고 포인트 결제까지 하는 기능 만들고 집에 갈 것 !! 
<img src="https://velog.velcdn.com/images/kim_truee/post/320b157f-caad-486d-89a2-f0524d8bb09c/image.png" alt=""></p>
<p>되면...한다...</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[220830-220831] - #2,3]]></title>
            <link>https://velog.io/@kim_truee/220830-220831-23</link>
            <guid>https://velog.io/@kim_truee/220830-220831-23</guid>
            <pubDate>Thu, 01 Sep 2022 02:16:30 GMT</pubDate>
            <description><![CDATA[<h1 id="day2">day2</h1>
<p>이 날은 뭐했더라 ... 로 시작하는 2일차 회고록
진짜 생각이 안난다!!! 😭</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/eddd9653-fed2-434c-a9ca-14e60d4c4659/image.png" alt=""></p>
<p>pull request를 보고 생각이 났다.
이 날은 Entity를 만들어서 연결시켜줬다.</p>
<p>그러나 DBeaver에서 봤는데 OneToOne관계의 테이블들이 연결이 다 안됐다!!!</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/7daebede-b4eb-4630-b029-151aaed87537/image.png" alt=""></p>
<p>코드를 봐도 모르겠다.. 왤까 굉장히 시간을 허비했다.</p>
<p>결국 최후의 수단을 써버렸다.</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/390e1469-9eb5-43a8-b7d6-f070b12d689a/image.png" alt=""></p>
<p>나와라 코드지갑!!! 
예전에 작성한 코드를 보기로 했다. </p>
<pre><code class="language-js">  @JoinColumn()
  @OneToOne(() =&gt; UsersImage)
  @Field(() =&gt; UsersImage)
  usersimage: UsersImage;</code></pre>
<p>그랬다... 1:1에서는 JoinColum을 써줬어야했다... 하하하 </p>
<p>눈물을 머금고 다시 joincolumn 데코레이션을 달아줬다.
맨날하는 실수 </p>
<p>그러다 엔티티를 다시 만들어줬어야했다. 
API를 만들고 보니 ManyToOne인 것들이 많았다
ERD는 진짜 어렵다!!!</p>
<p>테이블을 고치고 로그인 기능을 만들고 퇴근했다 🏃‍♂️</p>
<h1 id="day3">day3</h1>
<p>지각했다 하하 10시 30분 출근시간으로 정했는데 
아침에 집안일을 하다보니 시간이 가는 줄 몰랐다.
가까운데 살아서 좋아했는데 사람이 갈수록 꼬질꼬질해지는 것 같다.</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/c743c3b3-937e-48f3-b567-08a3326b84fd/image.png" alt=""></p>
<p>지각하면 간식 쏘기로해서 사온 던킨 도넛. 
내 맘대로 카카오 허니딥을 사왔다. </p>
<p><strong>고생했던 것</strong>
findAll을 하는데 계속 콘솔에 0 프로퍼티 어쩌고 나왔다.
쿼리가 잘못됐다는건데 아무리 봐도 모르겠다. 이걸로 또 30분 허비한 것 같다.
<img src="https://velog.velcdn.com/images/kim_truee/post/fed607fd-d0d7-43ec-9a84-bdc84960f985/image.png" alt="">
이렇게 썼어야 했다... </p>
<p>main-project때도 저것때문에 고생했는데 고새 또 까먹었다.
까마귀 고기를 먹었나...🦆</p>
<br>

<p>3일차.
냉장고에 넣을 음식 CRUD를 만들었다.
어제 다 하고 갑자기 떠올랐다.</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/bcb5be95-367d-46df-8984-0e7839c9f92a/image.png" alt=""></p>
<p>냉장고와 냉동고 테이블을 나눴는데.. 
만약 냉장고에 있는 음식을 바로 냉동고로 옮기고 싶다면... ?!</p>
<p>머리가 아프다.. 
내일 다시 와서 얘기해보기로 했다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[220829] - #1]]></title>
            <link>https://velog.io/@kim_truee/220829-1-%ED%8C%80%ED%94%8C-%ED%9A%8C%EA%B3%A0%EB%A1%9D</link>
            <guid>https://velog.io/@kim_truee/220829-1-%ED%8C%80%ED%94%8C-%ED%9A%8C%EA%B3%A0%EB%A1%9D</guid>
            <pubDate>Tue, 30 Aug 2022 01:39:19 GMT</pubDate>
            <description><![CDATA[<p>하루 늦은 회고록을 작성해보려 한다.</p>
<blockquote>
<p><strong>어제 한 일을 기억 하십니까 ? 
ㄴ 아니요...ㅎ🥹</strong></p>
</blockquote>
<p>일이 있는 그 즉시 메모를 해야하나 이 기억력 너무 나쁘다 
<img src="https://velog.velcdn.com/images/kim_truee/post/44fdad23-8996-474c-a8cf-6aa7f33790f4/image.png" alt=""></p>
<p>기억이 나는 대로 적어보자!!!
.
.
.
<br></p>
<h2 id="1-주제를-선정했다">1. 주제를 선정했다.</h2>
<ul>
<li>영화관 통합 사이트</li>
<li>놀이공원 통합 사이트</li>
<li>면접 양복 대여 사이트</li>
<li>별자리, 우주 커뮤니티</li>
<li>냉장고 유통기한 관리</li>
</ul>
<p>등 다양한 의견이 나왔다. 
그 중에 다른 팀들과 주제가 겹치지 않고 잘 볼 수 없었던 냉장고 유통기한 관리를 해주는 사이트를 만들기로 결정했다.</p>
<h2 id="2-erd-설계">2. ERD 설계</h2>
<h3 id="api-명세서-작성해보기">API 명세서 작성해보기</h3>
<p>처음 API명세서를 만들었다. 
<img src="https://velog.velcdn.com/images/kim_truee/post/0941981b-6835-44eb-8ba8-7a8ecb940ea3/image.png" alt="">
<img src="https://velog.velcdn.com/images/kim_truee/post/f778917b-b328-4301-81e8-e835d65da46f/image.png" alt=""></p>
<p>기능과 필요한 테이블, 컬럼을 한 번 정리해봤다.
필요한 기능이 더 있어서 추후 수정을 할 것 같다.</p>
<p>그 후 ERD Cloud에서 Entity 연결을 해봤다.
<img src="https://velog.velcdn.com/images/kim_truee/post/c42090d9-adbc-430b-8729-5931e44b1a24/image.png" alt=""></p>
<p>작은 서비스라고 생각했는데 .. ㅎㅎ
테이블이 많이 나와서 놀랐다 더 추가하지 않았으면 좋겠다 
냉장고와 냉동고 테이블이 겹치는 컬럼이 많아서 합치면 좋겠지만 
뭐가 좋을지 아직 잘 모르겠다. 갈길이 멀은 것 같다.😭</p>
<h2 id="3-프로젝트를-생성하고-entity생성">3. 프로젝트를 생성하고 Entity생성</h2>
<p>Nest로 보일러 플레이트 구조를 만든 뒤 초기셋팅( Docker를 사용할 거기 때문에 셋팅해줌, 폴더도 일단 생성했다.) 주현님과 반 나눠서 생성했다.</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/af95091f-69f7-41d9-9f10-0b7d9a23fb63/image.png" alt=""></p>
<p>아무리 생각해도 이름짓는건 너무 어려운 것 같다 
어질어질어질 두통쓰,,,@.@</p>
<h2 id="프로젝트를-하는-동안-꼭-지키고-싶은-것">프로젝트를 하는 동안 꼭 지키고 싶은 것.</h2>
<ul>
<li>1일 1 커밋 푸쉬</li>
<li>git branch 잘 확인하기</li>
<li>배포 해보자고...</li>
<li>회고록 꼬옥 작성하기 .. 화이팅...!</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Server performance Tuning]]></title>
            <link>https://velog.io/@kim_truee/Server-performance-Tuning</link>
            <guid>https://velog.io/@kim_truee/Server-performance-Tuning</guid>
            <pubDate>Fri, 26 Aug 2022 01:28:43 GMT</pubDate>
            <description><![CDATA[<h1 id="server-performance-tuning">Server performance Tuning?</h1>
<blockquote>
<p>API 요청이 많은 상황에서도 잘 동작할지 테스트 하는 것을 말한다. 
서버가 많은 부하를 받을 대 서버가 다운되는 경우를 방지하기 위해, 가상의 클라이언트들을 만들어 요청을 보내도록 테스트한다.</p>
</blockquote>
<h2 id="jmeter">jmeter</h2>
<p>가상의 클라이언트와 요청을 보내줄 수 있도록 테스트를 도와주는 도구</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/18c93875-81ae-4f32-8dea-c9ff33661c46/image.png" alt=""></p>
<p>jmeter를 사용해 요청을 날려본다. </p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/161c0c9e-14fc-4854-a06f-d184d706e0b5/image.png" alt="">
요청에 실패했다면 빨간색으로 </p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/62c19275-b785-4690-9d7f-70779ea1d796/image.png" alt="">
성공했다면 초록색으로 결과를 트리에서 볼 수 있다.</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/9498953e-bdfc-41af-a1d7-82ee2390bcb9/image.png" alt="">
요청값을 늘려서 테스트 해보자!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Crontab]]></title>
            <link>https://velog.io/@kim_truee/Crontab</link>
            <guid>https://velog.io/@kim_truee/Crontab</guid>
            <pubDate>Thu, 25 Aug 2022 02:09:48 GMT</pubDate>
            <description><![CDATA[<h1 id="crontab은">Crontab은?</h1>
<blockquote>
<p>한 명령어로 linux에서 특정 작업을 주기적으로 실행하기 위해 사용한다.</p>
</blockquote>
<p>crontab은 일종의 작업 스케쥴러로 &quot;매일 1시간 마다 이 작업을 실행하라&quot; 
또는 &quot;이 작업은 10초마다 실행하라&quot;와 같은 설정을 할 수 있다.</p>
<h2 id="crontab-작업">crontab 작업</h2>
<h3 id="crontab-표현">crontab 표현</h3>
<pre><code class="language-js">   *         *       *       *        * 
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)</code></pre>
<h3 id="초단위를-설정-하고싶다면">초단위를 설정 하고싶다면?</h3>
<pre><code class="language-js">// 10초마다 실행하라는 의미
*/10 * * * * *</code></pre>
<h3 id="매분마다-실행">매분마다 실행</h3>
<pre><code class="language-js">// 매 분마다 index.js를 실행하라
* * * * * /class/index.js</code></pre>
<h3 id="특정-시간-실행">특정 시간 실행</h3>
<pre><code class="language-js">// 매주 일요일 오전 5시 30분에 index.js를 실행하라
30 5 * * 7 /class/index.js</code></pre>
<h3 id="범위-실행">범위 실행</h3>
<pre><code class="language-js">// 매일 1시 0분부터 30분까지 매분 index.js를 실행하라
* * * * * /class/index.js</code></pre>
<h2 id="크론탭-로깅">크론탭 로깅</h2>
<p>크론탭 해당 처리 내역에 대해 로그로 남기고 싶을 때</p>
<pre><code class="language-js">// 매 분마다 파일 갱신
* * * * * /class/index.js &gt; /home/test/index.js.log 2&gt;&amp;1</code></pre>
<p>리눅스에서 1은 표준출력, 2는 표준에러출력을 의미하고 &gt; 를 통해 출력을 내보낼 수 있다. 
<code>&gt;&gt;</code> 를 하면 append하게된다.
<code>2&gt;&amp;1</code> 의 의미는 &quot;2(표준에러출력)을 1(표준출력)으로 내보낸다&quot; 라는 의미를 갖는다.</p>
<hr>
<p>참조 :
<a href="https://hbase.tistory.com/304">[Linux] crontab 명령어 사용법 - cron 작업 생성 및 관리</a>
<a href="https://danmilife.tistory.com/4">리눅스 크론탭(Linux Crontab) 시간설정 표현식 정리 - 단미라이프</a>
<a href="https://do-study.tistory.com/11">리눅스 스케줄러 (crontab) 사용하기 - deveely</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Payment/iamport]]></title>
            <link>https://velog.io/@kim_truee/Paymentiamport</link>
            <guid>https://velog.io/@kim_truee/Paymentiamport</guid>
            <pubDate>Thu, 25 Aug 2022 01:45:02 GMT</pubDate>
            <description><![CDATA[<h1 id="payment">Payment</h1>
<h2 id="결제-프로세스">결제 프로세스</h2>
<img alt="온라인 결제 프로세스" src="https://yozm.wishket.com/media/news/1154/image008.png">

<p>사용자 측면에서 보자면 결제는 간단하고 금방 끝나는 일이다.
그렇지만 개발자 측면에서 보자면 위의 그림처럼 결제 시스템은 결코 간단하지 않다는 것을 알 수 있다. </p>
<p>결제는는 카드결제, 계좌이체, 무통장 입금 등 종류가 다양하고 이에 따른 각각의 API 로직이 필요하다. </p>
<p>이러한 번거로움을 해결하기 위해 나온 것이 원하는 PG사와 결제시스템을 연결시켜주는
<code>iamport</code>가 나온것이다.</p>
<h1 id="iamport">iamport</h1>
<blockquote>
<p>원하는 PG사와의 결제 시스템을 연결시켜주는 결제 API. 결제 솔루션.
복잡한 결제환경을 직접 아임포트가 대신 처리해주기 때문에 구현할 필요가 없다.</p>
</blockquote>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/a8d74254-705e-4397-b1ec-272269ccaca9/image.png" alt=""></p>
<hr>
<p>참조 : 
<a href="https://yozm.wishket.com/magazine/detail/1154/">https://yozm.wishket.com/magazine/detail/1154/</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Hashing]]></title>
            <link>https://velog.io/@kim_truee/Hashing</link>
            <guid>https://velog.io/@kim_truee/Hashing</guid>
            <pubDate>Wed, 24 Aug 2022 05:46:02 GMT</pubDate>
            <description><![CDATA[<h1 id="hashing이란">hashing이란?</h1>
<blockquote>
<p>원본 문자열을 알아볼 수  없는 난해한 문자열로 정의(표현)하는 과정.</p>
</blockquote>
<img src="//img1.daumcdn.net/thumb/R1280x0.fpng/?fname=http://t1.daumcdn.net/brunch/service/user/JqQ/image/j8JjVY40SDOhbixF1lQTsypQWYU.png">

<p> IT시스템은 암호화를 통해 인가된 송신자와 수신자만 원본 메시지를 조회할 수 있는 장치를 만든다. 그렇지만 인가되지 않은 제삼자가 암호화된 메시지를 변조했는지는 복호화 과정에서 알 수 없다. 누군가가 메시지를 변조했는지 확인하기 위해 해싱을 사용한다.</p>
<h2 id="hashing의-특징">hashing의 특징</h2>
<ul>
<li>동일한 문자열은 동일한 해시 알고리즘을 사용하면 반드시 동일한 해시값을 생성한다.</li>
<li>서로 다른 문자열은 동일한 해시 알고리즘을 사용하면 반드시 서로 다른 해시값을 생성한다.</li>
<li>문자열을 수정하면, 해시값도 변경된다.</li>
<li>해싱이 완료되면 해시값을 통해 원래의 문자열을 알아낼 수 없다. 변조 여부만 확인한다.</li>
</ul>
<h2 id="실제-hashing이-사용되는-곳">실제 hashing이 사용되는 곳</h2>
<ul>
<li>DB에 비밀번호를 넣을 때 해시 값으로 변경하여 저장한다.</li>
<li>메세지 인증 및 인증서 서명, 키 생성에도 사용된다.</li>
</ul>
<h2 id="salt">salt</h2>
<p>실제 hashing 알고리즘이 해킹당한 경우가 있다. 그래서 해시를 보안성 강화를 위해 <code>salt</code>를 통해 보안을 견고하게 만든다.
salt는 해시 함수를 돌리기 전에 원문에 임의의 문자열을 덧붙이는 것을 말한다.
임의의 문자열을 붙이는 의미의 소금친다라고 생각하면 된다.</p>
<p><img src="https://velog.velcdn.com/images/kim_truee/post/66d89999-0a67-44ce-9b3f-b06e60727ee8/image.png" alt=""></p>
<hr>
<p>참조 :
<a href="https://brunch.co.kr/@sangjinkang/32">암호화와 해싱의 차이점을 알아보자</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Schema-first vs Code-first]]></title>
            <link>https://velog.io/@kim_truee/Schema-first-vs-Code-first</link>
            <guid>https://velog.io/@kim_truee/Schema-first-vs-Code-first</guid>
            <pubDate>Wed, 24 Aug 2022 05:35:22 GMT</pubDate>
            <description><![CDATA[<h1 id="schema-first">Schema-first?</h1>
<p>스키마 설계의 우선 순위 프로세스
Schema-first는 코드가 스키마에 저장된 정의를 따르도록 접근하는 방식.</p>
<ul>
<li><p>장점 : 
종속성 반전 원리 (DIP)를 따름으로써 더 추상적이고 덜 의존적이다.
프론트엔드 및 백엔드를 동시에 허용하여 개발 시간을 단축한다.</p>
</li>
<li><p>단점 :
스키마 정의는 리졸버와 지속적으로 동기화되어야 한다.
SDL 정의는 쉽게 재사용할 수 없으므로 코드 중복이 발생할 수 있다.
분산 스키마를 단일 스키마로 결합하는데 어려움</p>
</li>
</ul>
<pre><code class="language-js">type User {
  _id: ID!
  username: String
  name: String
  tagline: String
}</code></pre>
<h1 id="code-first">Code-first</h1>
<p>GraphQL 스키마가 프로그래밍 방식으로 생성되는 스키마보다 코드를 우선시하는 접근 방식.</p>
<ul>
<li><p>장점 :
스키마 정의와 리졸버를 모두 저장한 상태로 유지하므로 단일 정보 소스로 작동할 수 있다.
방대한 도구를 사용하지 않고도 Schema-first에서 직면하는 어려움을 쉽게 극복할 수 있다.
스키마의 복잡성이나 크기가 증가할 것으로 예상되는 경우 관리가 더 용이하다.</p>
</li>
<li><p>단점 : 
resolve와 definitions가 같이 있다면 가독성이 떨어질 수 있다.
이전 버전과 호환되지 않는 변경 사항은 schema-first 접근 방식에 비해 더 쉽게 들어갈 수 있다
<img src="https://velog.velcdn.com/images/kim_truee/post/c5278ae3-9710-431c-b76e-80a1f294f6e0/image.png" alt=""></p>
</li>
</ul>
<pre><code class="language-js">@Entity()
@ObjectType()
export class Board {
  @PrimaryGeneratedColumn(&#39;increment&#39;)
  @Field(() =&gt; Int)
  number: number;

  @Column()
  @Field(() =&gt; String)
  writer: string;

  @Column()
  @Field(() =&gt; String)
  title: string;

  @Column()
  @Field(() =&gt; String)
  contents: string;
}</code></pre>
<hr>
<p>참조 :
<a href="https://lo-victoria.com/graphql-for-beginners-schema-first-vs-code-first">GraphQL for Beginners: Schema-first vs Code-first</a>
<a href="https://blog.graphqleditor.com/graphql-schemafirst-codefirst">GraphQL - schema-first vs code-first</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[JEST]]></title>
            <link>https://velog.io/@kim_truee/JEST</link>
            <guid>https://velog.io/@kim_truee/JEST</guid>
            <pubDate>Wed, 24 Aug 2022 04:48:23 GMT</pubDate>
            <description><![CDATA[<h1 id="jest란">JEST란?</h1>
<blockquote>
<p>테스트 코드를 도와주는 라이브러리.</p>
</blockquote>
<h2 id="기본문법">기본문법</h2>
<h3 id="describe">describe:</h3>
<p>테스트 그룹을 묶어주는 역할.  그 안의 콜백함수 내에 테스트에 쓰일 변수, 객체 들을 선언하여 일회용으로 사용할 수 있다.</p>
<h3 id="it">it</h3>
<p>test. 한 테스트이 단위</p>
<h3 id="excpecta--btobe3">excpect(a + b).toBe(3)</h3>
<p>a + b의 기대값이 3과 같다면 true를 의미한다.</p>
<pre><code class="language-js">describe(&#39;나의 테스트 그룹&#39;, () =&gt; {
  it(&#39;더하기 테스트&#39;, () =&gt; {
    const a = 1;
    const b = 3;

    expect(a + b).toBe(4);
  });
  it(&#39;곱하기 테스트&#39;, () =&gt; {
    const a = 1;
    const b = 3;

    expect(a * b).toBe(3);
  });
});</code></pre>
<hr>
<p>참조 : 
<a href="https://inpa.tistory.com/entry/JEST-%F0%9F%93%9A-jest-%EB%AC%B8%EB%B2%95-%EC%A0%95%EB%A6%AC">[JEST] jest 기본 문법 정리</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Cloud Build]]></title>
            <link>https://velog.io/@kim_truee/Cloud-Build</link>
            <guid>https://velog.io/@kim_truee/Cloud-Build</guid>
            <pubDate>Wed, 24 Aug 2022 03:14:02 GMT</pubDate>
            <description><![CDATA[<h1 id="cloud-build">Cloud Build</h1>
<blockquote>
<p>Google Cloud Platform 인프라에서 자신의 빌드를 실행할 수 있게 해주는 서비스. 
<code>Cloud Storage</code>, <code>Cloud Source Repositories</code>, <code>GitHub</code> 또는 <code>Bitbucket</code>에서 소스 코드를 가져오고, 자신의 사양에 맞게 빌드를 실행하고,
Docker 컨테이너 또는 자바 아카이브와 같은 아티팩트를 생성할 수 있다.</p>
</blockquote>
<h2 id="장점">장점</h2>
<ul>
<li>자바, Go, Node.js 등의 모든 프로그래밍 언어를 사용하여 신속하게 소프트웨어 빌드가 가능하다.</li>
<li>머신 유형 15개 중에서 선택하고 풀당 수백 개의 동시 빌드를 실행할 수 있다.</li>
<li>VM, 서버리스, Kubernetes 또는 Firebase 등 다양한 환경에서 배포 가능하다.</li>
<li>비공개 네트워크 내에서 클라우드에서 호스팅되는 완전 관리형 CI/CD 워크플로에 액세스 할 수 있다.</li>
<li>데이터 보존으로 지리적 리전 또는 특정 위치 내에 데이터 저장할 수 있다.</li>
</ul>
<h2 id="특징">특징</h2>
<ul>
<li>빠른 빌드 속도</li>
<li>배포 자동화</li>
<li>멀티 클라우드 지원</li>
<li>빠른 배포 커밋</li>
<li>개인정보 보호 기능</li>
</ul>
<p>자세한 내용은 <a href="https://cloud.google.com/build?utm_source=google&amp;utm_medium=cpc&amp;utm_campaign=japac-AU-all-en-dr-skws-all-pkws-trial-e-dr-1009882&amp;utm_content=text-ad-none-none-DEV_c-CRE_601682046937-ADGP_Hybrid%20%7C%20SKWS%20-%20EXA%20%7C%20Txt%20~%20Containers%20~%20Cloud%20Build_cloud%20build-KWID_43700071492747352-aud-970366092687%3Akwd-327015858660&amp;userloc_1009871-network_g&amp;utm_term=KW_cloud%20build&amp;gclid=Cj0KCQjw9ZGYBhCEARIsAEUXITXE4il8KpwnK4Mm9VS5W2zJ8Y1bpnWoQWR8ek9Tzz1hzcoPzrHHsiwaAiESEALw_wcB&amp;gclsrc=aw.ds">Cloud Build Docs</a>를 읽어보기.</p>
<hr>
<p>참조 : 
<a href="https://cloud.google.com/build/docs">Cloud Build 문서</a></p>
]]></description>
        </item>
    </channel>
</rss>