{"componentChunkName":"component---src-templates-blog-template-js","path":"/gatsby-wedding-deploy/","result":{"data":{"cur":{"id":"51909997-ea52-5015-9d8e-e1136e04920e","html":"<blockquote>\n<p>제가 만든 결혼 청첩장을 활용해서 그대로 쓰고 싶어 하거나 활용하여 나만의 청첩장을 만들고 싶은 분들이 계실 텐데요! 이런 분들에게 도움을 드리고자 이 글을 쓰게 되었습니다. 잘 안되는 부분이나 궁금한 점을 댓글로 남겨주시면 확인하고 빠르게 답변드리도록 하겠습니다!😁</p>\n</blockquote>\n<h2 id=\"1-모바일-청첩장-완성본-미리보기\" style=\"position:relative;\"><a href=\"#1-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%B2%AD%EC%B2%A9%EC%9E%A5-%EC%99%84%EC%84%B1%EB%B3%B8-%EB%AF%B8%EB%A6%AC%EB%B3%B4%EA%B8%B0\" aria-label=\"1 모바일 청첩장 완성본 미리보기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. 모바일 청첩장 완성본 미리보기</h2>\n<p><a href=\"https://wedding-templete.netlify.app/\">모바일 청첩장 미리보기</a></p>\n<h2 id=\"2-repository-생성하기\" style=\"position:relative;\"><a href=\"#2-repository-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0\" aria-label=\"2 repository 생성하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Repository 생성하기</h2>\n<p>모바일 결혼 청첩장을 netlify로 배포하려면 Github에 Repository를 생성해야 한다. (다른 방법도 있지만 제가 했던 방식으로 포스팅하겠습니다!)</p>\n<p><a href=\"https://github.com/S-jooyoung/WEDDING_INVITATION\">모바일 결혼 청첩장</a>을 클릭한다.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 56.666666666666664%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAABYlAAAWJQFJUiTwAAAB60lEQVR42nWSS27bMBRFvdB2De1CGreLCKB5s4EOggCedGgXHrRRGykW9eOfFB+p10fZ8QdFCVzwI/Lw3ieuqr35ONRuV1f1U/1Sb1jVb162YlP90Jt6b899vb/uL+OXndq87t0T26tttRs+rKy1X5Dab6bgV6OxZAbrTuMoNLop4gTpqJAwUJ9gxjAl1Maj84DGTlmQGU7L9Ypzuc4ToayXxkepbVTWRZ1lbJTKRKF0VLTeCR637Gd85q/R+RBDTHGCGKcAPjO4NneraZo+50nfDyCkQi4k3ehwnhEhJlTakOyiqmf4sP+Gj+V3HMcRjTH5KKaUjg6dW1+AXAHFpxiB4oUFRA4xpnlRAMAQABPFBR+xJ6B1Dk/tCujcAmzJoVL6+DVGZF2/uE0ZSE5jovqRbU2XcinRe5+d/R/I2g4ODTs6gYiHtkdJF7wBYYHOi+uRS0qkCT79C3QnoFIKlM4OZ6rfvMTJEfP4WoHKQWcw7/VTWPZTFW+Ad3kycu4Ohwa4EEBrMIwjGGvzRnosFx0rEmHgBoQOb2vuBPx0fodUP2hYi1mCapTr5/050k3LTgEsnn7ubeRhGN4T9IExdl+Wf4qsuq6LruuKpmmLQ10WRg+FMY5kzuq6smib56Jry0KK5l5r/ZVY7/4C0eI901amGdMAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_01.png\"\n        title=\"\"\n        src=\"/static/bc731fff66cafdd01c47cb3fb6389f13/37523/wedding_invitation_01.png\"\n        srcset=\"/static/bc731fff66cafdd01c47cb3fb6389f13/e9ff0/wedding_invitation_01.png 180w,\n/static/bc731fff66cafdd01c47cb3fb6389f13/f21e7/wedding_invitation_01.png 360w,\n/static/bc731fff66cafdd01c47cb3fb6389f13/37523/wedding_invitation_01.png 720w,\n/static/bc731fff66cafdd01c47cb3fb6389f13/302a4/wedding_invitation_01.png 1080w,\n/static/bc731fff66cafdd01c47cb3fb6389f13/07a9c/wedding_invitation_01.png 1440w,\n/static/bc731fff66cafdd01c47cb3fb6389f13/fc651/wedding_invitation_01.png 3016w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n<p>GitHub에 로그인한 뒤에 우측 상단에 있는 Use this template 버튼을 클릭하면 repository 생성 페이지로 이동하게 된다.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAAB0ElEQVR42pWSzWrbQBDHdeq5D9GEFtLH8Qv05JPAGAymh1Z5oZ4Mxj7U16QtIcdilMS0qWrry5L2Szu7mszKVuIUituBn/6LNPPfmUHe8mL1Pvwend8uVx9X4X0QXsfB8qIIwm9VsLriwS3RaQu9PyT8Qrlfi/Oby+TD509XLz2tNUcKANNQIOgGa2ERlMXGYIuFBhuHwWdB6Wjdd035VdUsFosTz1go6JsltPNVSkKWpy3rzQbieAObJIYoySFKC5CA4PL+wFiync1mJ48dGmMbp3nB8e5XiilplhfImEBVA2oqAaIGQDfJU5e7MwA0k8nk9NHQ2p0h4wLvozXm2wqlVGTIsSK4EMglx1Iy1OB2ccxwn1Jrg0XFXQJ1ZJ5h3GB0r+vU7o3+aoh7QwCNaRq3nQop286UUu0Fh6MeHbkzNFSYpRmyimGtNAohUbaGpi3u+Ocdilri722M6yLBpMyoS9VizP8a4s6w1Axvqh94R/zkER6LzpAubObz+anHGItpR5JzzvJ8S0/O6VfkUgCtT/OSCb4tBS9I3blTKWUHIwRFNZ1OX3nj8fj1YDB46/v+md/vnzntE+/26vtD0mGrhwyHT7j60Wj0ptfrvXgA6DRZuE5cogQAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_02.png\"\n        title=\"\"\n        src=\"/static/307470327f46487903b324f297d5f061/37523/wedding_invitation_02.png\"\n        srcset=\"/static/307470327f46487903b324f297d5f061/e9ff0/wedding_invitation_02.png 180w,\n/static/307470327f46487903b324f297d5f061/f21e7/wedding_invitation_02.png 360w,\n/static/307470327f46487903b324f297d5f061/37523/wedding_invitation_02.png 720w,\n/static/307470327f46487903b324f297d5f061/302a4/wedding_invitation_02.png 1080w,\n/static/307470327f46487903b324f297d5f061/07a9c/wedding_invitation_02.png 1440w,\n/static/307470327f46487903b324f297d5f061/4b39a/wedding_invitation_02.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n<p>위 페이지에 도달하면 Repository name에 원하는 이름을 적고 레파지토리를 생성한다.</p>\n<h2 id=\"3-repository-가져오기\" style=\"position:relative;\"><a href=\"#3-repository-%EA%B0%80%EC%A0%B8%EC%98%A4%EA%B8%B0\" aria-label=\"3 repository 가져오기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>3. Repository 가져오기</h2>\n<p>이제 실제로 수정하고 배포할 수 있도록 내 컴퓨터(local)에 Repsitory를 가져 와야 한다! 먼저 Repository에서 아래와 같이 초록색 Code 버튼을 클릭하면 링크가 나오게 되는데, 이 링크를 복사한다.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAACCklEQVR42o1SzW7TQBD2iTMPQSuQ2sfJC3DqKVIUKSjiAO4LcYoUJQdyLQWVIiqBTHBDqEJiu7G9nl17/4bZDSmBAGKkT/t5Zv3N3wbR2expHC1O42j+fHGThLOrdTg9Z2H85jdcAJ0QLi5VOL8Ud/7peRFOXxen16/SZy9fXNwPZCMByaRU1hiL1uC+kc8qOjViwhhC03i3tRaNtqilRsmYnUwmB4ExuuCcmzRby7woFQNQymiljfFn3dQKOCgQXEnKenbzVkXLzwopTpoe1hpKZeRoNDoItKb7jcJVllsGAnktsaw4Fox7XhEvS4ZC1KgU/WcRge7d5vldlc6UUnYwGBwGRIDKwSTNqOVNvxVwZFXlORcC13mB2e2afICNlCQuPP4qSO3hKkltXdc+CF7QjxZLmtlylfhTa72Jc0pSMHQz39ovgpYCi29Lu80qSJj/4DQ2bBqJisQktdzQt+tgXcA/BMmxShLrqqhpg06MEd8119oGhuINZnmFtTT7gtQGrVVh9Glq372/wg8fI5x9mWMcX7tLVIXcEfsJV9xmfH+YoVtGQhXS8/HDpufhxdxmjYK9Z7ldxC6nwux4PD4MoKoSmon4usqrNAfICgEl41ALAbQkEA7Ed0GJd78rArk4Gw6HD4J+v/+w03lyfNLuHz0+6Xq0292jbvf/0el0jnu93qNWq3XvO3ynVxbXBh74AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_03.png\"\n        title=\"\"\n        src=\"/static/7b26d6598f3ba31ff0f58c062ebe679e/37523/wedding_invitation_03.png\"\n        srcset=\"/static/7b26d6598f3ba31ff0f58c062ebe679e/e9ff0/wedding_invitation_03.png 180w,\n/static/7b26d6598f3ba31ff0f58c062ebe679e/f21e7/wedding_invitation_03.png 360w,\n/static/7b26d6598f3ba31ff0f58c062ebe679e/37523/wedding_invitation_03.png 720w,\n/static/7b26d6598f3ba31ff0f58c062ebe679e/302a4/wedding_invitation_03.png 1080w,\n/static/7b26d6598f3ba31ff0f58c062ebe679e/07a9c/wedding_invitation_03.png 1440w,\n/static/7b26d6598f3ba31ff0f58c062ebe679e/4b39a/wedding_invitation_03.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n<p>그리고 터미널에서 아래 명령어를 수행하여 다운로드한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token builtin class-name\">cd</span> <span class=\"token punctuation\">[</span>Repository를 저장할 폴더<span class=\"token punctuation\">]</span>\n<span class=\"token function\">git</span> clone <span class=\"token punctuation\">[</span>복사한 주소<span class=\"token punctuation\">]</span></code></pre></div>\n<h2 id=\"4-패키지-설치하기\" style=\"position:relative;\"><a href=\"#4-%ED%8C%A8%ED%82%A4%EC%A7%80-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0\" aria-label=\"4 패키지 설치하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>4. 패키지 설치하기</h2>\n<p>이제 모바일 청첩장을 동작시킬 수 있도록 패키지들을 다운로드해야 하는데, 다음 명령어를 실행하면 받을 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token builtin class-name\">cd</span> <span class=\"token punctuation\">[</span>Repository 주소<span class=\"token punctuation\">]</span>\n<span class=\"token function\">npm</span> <span class=\"token function\">install</span></code></pre></div>\n<h2 id=\"5-커스터마이징하기\" style=\"position:relative;\"><a href=\"#5-%EC%BB%A4%EC%8A%A4%ED%84%B0%EB%A7%88%EC%9D%B4%EC%A7%95%ED%95%98%EA%B8%B0\" aria-label=\"5 커스터마이징하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>5. 커스터마이징하기</h2>\n<p>기본적인 준비가 끝났다. 코드의 내용을 사용자에게 맞게 바꿔주어야 한다.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token builtin class-name\">cd</span> <span class=\"token punctuation\">[</span>Repository를 저장할 폴더<span class=\"token punctuation\">]</span>\ncode <span class=\"token builtin class-name\">.</span></code></pre></div>\n<p>폴더에 들어온 다음 아래 config.js 내용을 알맞게 바꿔준다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">WEDDING_INVITATION_URL</span> <span class=\"token operator\">=</span> <span class=\"token string\">'http://localhost:8000/'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">KAKAOTALK_API_TOKEN</span> <span class=\"token operator\">=</span> <span class=\"token string\">'JavaScript 키 입력'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">KAKAOTALK_SHARE_IMAGE</span> <span class=\"token operator\">=</span>\n  <span class=\"token string\">'https://cdn.pixabay.com/photo/2014/11/13/17/04/heart-529607_960_720.jpg'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">WEDDING_DATE</span> <span class=\"token operator\">=</span> <span class=\"token string\">'1970년 01월 01일, 목요일 오전 12시 00분'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">WEDDING_LOCATION</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○○웨딩, ○층 ○○홀'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">GROOM_NAME</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○○'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">GROOM_ACCOUNT_NUMBER</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○은행 ***-***-******'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">GROOM_FATHER_NAME</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○○'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">GROOM_FATHER_ACCOUNT_NUMBER</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○은행 ***-***-******'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">GROOM_MOTHER_NAME</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○○'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">GROOM_MOTHER_ACCOUNT_NUMBER</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○은행 ***-***-******'</span><span class=\"token punctuation\">;</span>\n\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">BRIDE_NAME</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○○'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">BRIDE_ACCOUNT_NUMBER</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○은행 ***-***-******'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">BRIDE_FATHER_NAME</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○○'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">BRIDE_FATHER_ACCOUNT_NUMBER</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○은행 ***-***-******'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">BRIDE_MOTHER_NAME</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○○'</span><span class=\"token punctuation\">;</span>\n<span class=\"token keyword\">export</span> <span class=\"token keyword\">const</span> <span class=\"token constant\">BRIDE_MOTHER_ACCOUNT_NUMBER</span> <span class=\"token operator\">=</span> <span class=\"token string\">'○○은행 ***-***-******'</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>마지막 수정이다. 결혼식 장소를 바꾸기 위하여 ./src/components/location.jsx를 수정하여 원하는 위치의 카카오 지도를 사용한다.</p>\n<ol>\n<li>\n<p>원하는 장소를 입력 후 HTML 태그 복사를 클릭한다.\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAAC/0lEQVR42j1RTW8bVRT1ijU/gkYQuX+HVVZBRO7GUlQ2FRJliqqKBVuQUlGRShQWVdWNWRCaJipQJBI5aWs7jj0ez5ffvPke289jz5t5h2sjmNHRvffpvXvvOadW9s3PRY/dy9rGl3mHaeCmlgWBls9WGtdnmt0Wmvs213hnpSV9uUFGiHq5ZrbXEJpxPrtnnaV3X7403q89bhfi+zPgmxdSffsn8ENbgU0rzPIC6UxiSnmWSThc4HKY4a2e4XwwRccuIenOYrbEUqwwj2J18vrkRu3Tn5Ps69Oy0k5QPHgFud+q5C8XXD79/Z18ctqVP5525PHFQP59ZcqjS0O+eGPI396Y8vmZJfsjXUahI+OYlQPTKL579OhG7bOnqXhwAnx1XKr7xyW+OCrxqstwdNbF8z86+PW8j8F4gogHyPMcSimsPzekLQc6As9CEk0wcU11cHC4VTMDIbwkRzJfqmleYr6UiGMP08RDSjEKLDCPIUqmSKcCq1VB7UqIhYDrjBFwF6HvIgiYah21tmpxHIuikKiqUsmyQlGQdtQsiRmylMPzxuD0SMwFFkJArnJMsgrv7DmuDQuuPUS2uc/V4eFPWzVj7IkgXSBeVCrJFRIhwUOPJtLkkFEkujHHbJbCnHAyaYprb4G/ejbG5pBYcGLkY2Q66uCQKA+dWDjRAqEoVbIE4rwCpyacW+C+gyCk3LeJtouLawfn3RHiwMFA7yPwTXBmUGQYjEzVekYbBn4kiPZam43cqzXl1N9s6BPWTdcNPaLNuAdGtWXrMAlZ5pMhbKOh7zuq1XpGGqaxEMslZImNfYp+xkzSkdODkOhw2tKF51sIyc1kU69lIKPItDQNabgFx+pTQzLFmXiB47p5nCTzJElEFEfC0K9Fr9cWxqgrPGYK2x4Jyx5u4DiGmEzGFMd0rgvbGc0N/WrRv7qcPXz88IPa3Tt3Ptzf37/ZbDTqDUKz0aS4W9/Z+bi+u7tTv91s1ptNOv8//pf/iwbVe3t7N2/d+uSj7e3t9/4Bf8YrBOdFJ9oAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_04.png\"\n        title=\"\"\n        src=\"/static/ff476726f9591951a779f570c080ddf9/37523/wedding_invitation_04.png\"\n        srcset=\"/static/ff476726f9591951a779f570c080ddf9/e9ff0/wedding_invitation_04.png 180w,\n/static/ff476726f9591951a779f570c080ddf9/f21e7/wedding_invitation_04.png 360w,\n/static/ff476726f9591951a779f570c080ddf9/37523/wedding_invitation_04.png 720w,\n/static/ff476726f9591951a779f570c080ddf9/302a4/wedding_invitation_04.png 1080w,\n/static/ff476726f9591951a779f570c080ddf9/07a9c/wedding_invitation_04.png 1440w,\n/static/ff476726f9591951a779f570c080ddf9/4b39a/wedding_invitation_04.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n</li>\n<li>\n<p>소스 생성하기 버튼을 클릭한다.\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAADSElEQVR42lWRXUxbZRzGe+W1d73pFXGkkm4JoYkQNXqB3ixLuFmYiRiZizKoPfSc057TT84pbbGRsCK7WEwkXnpjNGZBvcCNMtbRgQJmdAJtRz9pu0IKvK09p5zHl3Ve7OKX9/t5n+f/12m5YzdJN/21RE1qJJsyaifyWVOVAciNKuRaGvLJfptG9lVq++1ziv94DxN/3Tt6XffdT5vkzo8b+Pr7B9rcD+v49uc1LD1cw6PVx4hGV7F0P47o0ioWF2O4u7CChV9X8MvCQ9z9fRWx5TiW78UQi8YRW4xq8/PzF3Rdl621d6/xZ29/5FLeusqrlz8Pqr/9saIu3l9WNzY31cTTbfXpP9vq1pO/1UfrG+rjjS31QXxdHbaK6qefDasMM0oZa90Y+ULp7++/oHvnmot8eF3GB8Oy9v7HHnwizOH45BT1fxU0lBZamoYzml9tteheE6pGF2cqvpqewciYBU6Bh1O0w86z2sDAQKfO5nATu+iB0+3VHKIbM5FvkC8eYDeTx5+JXSTSz7CWSGF5K4lcPoeDYga5XBKzsxFYrRYIDh4OB0fhtaGhoU6dIAjE6/NBkiTN5fYgEplFuZzH0VEBpWIahUIS6XwFu1Q4n0vjeSWPUqmAQPgWRkYt4LnxFw5Fwd52yNh44nC6IXokjadOp2ciKB1kUCpncVDOULdZxLeT2EntoJBPoZBNonr4HHIwjNGxm3A5HediYGxcW9DKCoQTzgUn2oK35ujDZ1R0HxXqJl9M0nmKus6gXMkhldpGJpNEKBSEbZxGttvO48I6btMGBwc7dQ67g9DY8Pl8msfjfVGbw2oR1UoBx7UKKocV5EpFlKtlWoYysvSznb09hMNT7bjUYbuGXFtQcIrE7fVCkv2azzeB27fn0GjUoagtQFOwllFwJ6ZgPdsEWk00mwrq9Tqmp8NgOQYul0jFWHCstd0UjucrLMs2RFE8PW+Q0+kkgUk/kSQ3HSUSCAaJ1x8g/sAkCYYmydRUkIRCAWK3c8TGMoTlmVOGsdS/tNw8uXL1yhu69/r6jL29vRfNZrPpfwwGg0mv15v0Br3JaOwwXTIaTMYOg8lA6XiJ2XzJ1NdH71N6enoudnd3v9nV1fXaf5DOjLpbhwXpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_05.png\"\n        title=\"\"\n        src=\"/static/d43132df6ad6aaffc5625425974d3c9e/37523/wedding_invitation_05.png\"\n        srcset=\"/static/d43132df6ad6aaffc5625425974d3c9e/e9ff0/wedding_invitation_05.png 180w,\n/static/d43132df6ad6aaffc5625425974d3c9e/f21e7/wedding_invitation_05.png 360w,\n/static/d43132df6ad6aaffc5625425974d3c9e/37523/wedding_invitation_05.png 720w,\n/static/d43132df6ad6aaffc5625425974d3c9e/302a4/wedding_invitation_05.png 1080w,\n/static/d43132df6ad6aaffc5625425974d3c9e/07a9c/wedding_invitation_05.png 1440w,\n/static/d43132df6ad6aaffc5625425974d3c9e/4b39a/wedding_invitation_05.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n</li>\n<li>\n<p>timestamp, key, 원하는 넓이와 높이를 기억한다.\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAADAElEQVR42kVRz08TWxjtyrV/hBAkSkLogup7cYO+xYsJiRpwQeJPsKUz0zs/70xbOrfqyrByodE81J0bn0oLKPCCtJXm+R55z5UbjVF0g0ot5Yp0ZI53pv6Y5OS7350v555zvoj/Zj3NX27l68/q7uaLLYZGg8HbZgDYVg2s8QqMr4BtvhW9wObKT9TFv/rLEPn158j9t1DbGfnj7lN+9c7/uHSz4l++vYxr9/7F3KMqFkuPMT9fwtzDMuZny5iZeYQ/7y9garqCwvQSig//RrX8BOWFKqqlJ6j+VfInJibaIp2/y/VfB/Xt/YN2c99x6vUeVb0r1295k8WiNzs375UfV7xSZdFbLJe8O4UpjxjUO5OQvCMnEt7p4bOeIsc9RRn9cubcSLOvr68t8sugww+dYjh40vX7TjL8diKNSvUffG5+QbPZRPD5vh9WzjnGx8eRd8dgORkkUylQU4NNDRi66vf397dHiJnmBs2AOlk/nXVhUBuVpSXUah/x+vUKPqytYb2xgcYGx+rqe5zPM6iqjGw2C00lMA0NphlA94eGhtojlmXx7NgY3FzOz7kMosfy8jK2hai1Wh2BuO8K1xsNXLzAoOkaiJmBpBBBqoQKqWW0FCpE56adhpXJ+XbGhUkd3LwxgdnZBygWCygITBYmw35qqgDHNmBRCokYkFMyaIsMCtFahLJqcc0ShOmcTwWhI2wrShKJxDAkKYH46LA4j4RIJuOQ5QQ0jYAIu4YhLOupwK4gJ/7AwEB7xDRMHtgUmfiu62JM2HccK3w17VBQ24JhBaos2DaFqqUgK4ogay0jUNjKUGsRWjblaRGwyM/P5/NgjH1DHhfPMyQMhv5zDKOGKxbiIniUMVeQWyJvPaymqYos5dZSNF1/p6rqJqV0QyBQy1U1xSUpzgmRuK5rPEUIVzXCNS0lejVEcCaqImaVDRHRJykZbxw+dnhX5EAs1tHb27s3Go3uCRCLxcLa1dGxJ9rVJfroD3yfac19uxPo6enZ293dvbuzs3PHV0FHVAOdSw68AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_06.png\"\n        title=\"\"\n        src=\"/static/809ee7aafefe24fa9a8b3f0c704bf64b/37523/wedding_invitation_06.png\"\n        srcset=\"/static/809ee7aafefe24fa9a8b3f0c704bf64b/e9ff0/wedding_invitation_06.png 180w,\n/static/809ee7aafefe24fa9a8b3f0c704bf64b/f21e7/wedding_invitation_06.png 360w,\n/static/809ee7aafefe24fa9a8b3f0c704bf64b/37523/wedding_invitation_06.png 720w,\n/static/809ee7aafefe24fa9a8b3f0c704bf64b/302a4/wedding_invitation_06.png 1080w,\n/static/809ee7aafefe24fa9a8b3f0c704bf64b/07a9c/wedding_invitation_06.png 1440w,\n/static/809ee7aafefe24fa9a8b3f0c704bf64b/4b39a/wedding_invitation_06.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n</li>\n</ol>\n<p>4.<code class=\"language-text\">./src/components/location.jsx</code>에 위의 timestamp, key 값들로 바꾼다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token comment\">// &lt;!-- 3. 실행 스크립트 --></span>\n<span class=\"token keyword\">const</span> <span class=\"token function-variable function\">executeScript</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token keyword\">const</span> scriptTag <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">createElement</span><span class=\"token punctuation\">(</span><span class=\"token string\">'script'</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token keyword\">const</span> inlineScript <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">createTextNode</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">new daum.roughmap.Lander({\n    \"timestamp\" : \"1652464367301\",\n    \"key\" : \"2a8fe\",\n    \"mapWidth\" : \"640\",\n    \"mapHeight\" : \"360\"\n  }).render();</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  scriptTag<span class=\"token punctuation\">.</span><span class=\"token function\">appendChild</span><span class=\"token punctuation\">(</span>inlineScript<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  document<span class=\"token punctuation\">.</span>body<span class=\"token punctuation\">.</span><span class=\"token function\">appendChild</span><span class=\"token punctuation\">(</span>scriptTag<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n<span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span></code></pre></div>\n<h2 id=\"6-netlify-배포하기\" style=\"position:relative;\"><a href=\"#6-netlify-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0\" aria-label=\"6 netlify 배포하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>6. netlify 배포하기</h2>\n<p>드디어 배포 준비는 다 끝났다. 이제 다음 명령을 실행하면 깃허브에 푸쉬할 수 있다.</p>\n<div class=\"gatsby-highlight\" data-language=\"bash\"><pre class=\"language-bash\"><code class=\"language-bash\"><span class=\"token function\">git</span> <span class=\"token function\">add</span> <span class=\"token builtin class-name\">.</span>\n<span class=\"token function\">git</span> commit <span class=\"token parameter variable\">-m</span> <span class=\"token string\">\"원하시는 커밋메시지를 작성하세요\"</span>\n<span class=\"token function\">git</span> push</code></pre></div>\n<ol>\n<li>\n<p>정상적으로 완료되었다면 <a href=\"https://www.netlify.com/\">netlify</a> 에 접속한다.</p>\n</li>\n<li>\n<p>Import an existing project에서 Github를 클릭한다.\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAABpElEQVR42p2S30rjUBDGc+X1PoSF3b5WoX2HvZCNPpCUelFUViy7oLbVxRWkQohaa1ulafOnJzlzzsnnnLTqwiJaB35nOJmZLzOTON7JzffzX4Ot7p7/4+/hwPV6j67vD9z+zdDt9yau145dv/s2Xjt0/U64eX0SbBxsn31xSFECNilUrlWOVSzPcxiN3CgDFcemsbtbcpRRM44ZhhhlsabtQWSPxUWTkiQL/5y3xNZpAyObzea6Q7To0L4JRcTgun+H27sB+z5umfv7IYbDEcbjBwRB8F+jWHRhGo1G6UXwOWAtJokoS0E8EvcHY0zx3HouLEb9sKBNnk1nBcFkwokaxu6KxbQdjP3KgkmSIAhDPIYxxDxCOg8hkgiaUmTcuST6uCDvH0ftLvzzPxAXp+hcPqB1EeDYn2K/F2A0E5xpkL8nyKMUAZISzf2fuDr6jflxC62zEXY6Exx6EXYuI4xjtfxlVvgoK9piMl5wIcj7mmZZptM0lQxZ5kJQukQIe39FLHP+QXK9EpxYr9fXnVqtVqpUKt+q1erXz2LrrU65XF57AjFeUhITIX//AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_07.png\"\n        title=\"\"\n        src=\"/static/13329a088bdb2dc1460e2914277186ba/37523/wedding_invitation_07.png\"\n        srcset=\"/static/13329a088bdb2dc1460e2914277186ba/e9ff0/wedding_invitation_07.png 180w,\n/static/13329a088bdb2dc1460e2914277186ba/f21e7/wedding_invitation_07.png 360w,\n/static/13329a088bdb2dc1460e2914277186ba/37523/wedding_invitation_07.png 720w,\n/static/13329a088bdb2dc1460e2914277186ba/302a4/wedding_invitation_07.png 1080w,\n/static/13329a088bdb2dc1460e2914277186ba/07a9c/wedding_invitation_07.png 1440w,\n/static/13329a088bdb2dc1460e2914277186ba/4b39a/wedding_invitation_07.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n</li>\n<li>\n<p>모바일 청첩장이 있는 저장소를 찾아 클릭한다.\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAABq0lEQVR42p2Sz2obMRDG95RzHyKG1q9lsN+hh9BtHigYX0wuhVxK0pY25FByMGliTNl/2tVqs1ppJE1nFG9o6cWJ4IeknZ1vPo2UbK62739c7E5vP1cfNpcyvf2ZpffbLN0Rvzcq3V6bdHdj0u3Nfr7W6d039czmi0zvvsqPv67Eyaez728SC7ZDGnZwIQCiA49lKVBUAquixrposakU0aIoFSqpcRwhIHqHwVMOKOVX5+eTBDw0FPOsSQBTqpZQcc5kDYWSIB470MMAxhoY/9vDec6jN+v1+jix9smh9z5wReZRa+z6HsG5uLYA0ZGjPdA6+IB/jbih7361Wk2eBccACWNRlJhlWSTPcxz0gLonYWMjsC9wkCDbbNsWJUFHxIHoyS2vO2OwB4sDFQ0vcViVBQpRI8ViC8Zgw8Lkjv35EA4T5D7lJR2Zjnr/8EDHzqnjPsLuOW7I6Yt62CqFUkoUNT2bpomXwmLsiuMsGg51OPaRMfQYBnAR+Pdm/3NIRZ4Eu66rtdaOGm8I+woM5QPNerlcHieLxWIym83ezefzt6+F81lnOp0e/QHXlFaroVApwgAAAABJRU5ErkJggg=='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_08.png\"\n        title=\"\"\n        src=\"/static/d69b38962b0217912f81c579ace59af3/37523/wedding_invitation_08.png\"\n        srcset=\"/static/d69b38962b0217912f81c579ace59af3/e9ff0/wedding_invitation_08.png 180w,\n/static/d69b38962b0217912f81c579ace59af3/f21e7/wedding_invitation_08.png 360w,\n/static/d69b38962b0217912f81c579ace59af3/37523/wedding_invitation_08.png 720w,\n/static/d69b38962b0217912f81c579ace59af3/302a4/wedding_invitation_08.png 1080w,\n/static/d69b38962b0217912f81c579ace59af3/07a9c/wedding_invitation_08.png 1440w,\n/static/d69b38962b0217912f81c579ace59af3/4b39a/wedding_invitation_08.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n</li>\n<li>\n<p>Build command를 CI= npm run build로 바꾸고 Deploy site를 클릭한다.\n<span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAABoElEQVR42pWRz07CQBDGe/LsQ0CCvJQHErhw8qYHY/UNfBAN4UK4mHgxgkYvhngghSCiUEqXtrvb/dNxtlhBExAm+bW7M7vfzn5rdVuDk+fb4UXnbnrWvSf2a2dkO92B3UeczsR22oHtPK6n2ya280DOey3v9Ob6ad8SUoSAIbhKtARQKgHGOEipIdEJZJEky/EyB6AVLsO1Mgh0vdnMW1JLH2vaaCLSQAiRURRJE0ovkEpiTa8AGWaf0qDjRqORs4RYdKi1TptQWHr7GENvOAJ/HuBcYbcyJY7jFDNebdR8MKfr9Xr+RzArGFXX82EyncEU/55PYDoj4CFkHoJPAggiur2gCYKb3G9B15uhuAcT14OIcqAsBsZjWLH0/w7RQ6CUpqnsMXDd36tuJ4heYjduKpp6ZzxEOOepnzsLmo4iFBNovhHIMB2aw3YXRPoo+Ikv/MvY9ZEuwUMXgmEYzvA6ijIWc8ZEyKi4Gr+Ll7kvFOeC4pxhfgMxItFzVqvVclalUsmXSqWDcrlcyLisHhWOq9XC4UpuE2a/0SkWi3tf6XBX8FIUicIAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_09.png\"\n        title=\"\"\n        src=\"/static/77993f92208f6401ba062adf50e4e888/37523/wedding_invitation_09.png\"\n        srcset=\"/static/77993f92208f6401ba062adf50e4e888/e9ff0/wedding_invitation_09.png 180w,\n/static/77993f92208f6401ba062adf50e4e888/f21e7/wedding_invitation_09.png 360w,\n/static/77993f92208f6401ba062adf50e4e888/37523/wedding_invitation_09.png 720w,\n/static/77993f92208f6401ba062adf50e4e888/302a4/wedding_invitation_09.png 1080w,\n/static/77993f92208f6401ba062adf50e4e888/07a9c/wedding_invitation_09.png 1440w,\n/static/77993f92208f6401ba062adf50e4e888/4b39a/wedding_invitation_09.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n</li>\n</ol>\n<blockquote>\n<p>🙋‍♂️ 제 모바일 청첩장 템플릿을 사용하시는 분들을 <code class=\"language-text\">node 버전이 14 이상</code>이어야 합니다.\nnode -v를 통해 node 버전을 확인하신 후 낮은 버전이라면 업그레이드를 진행해주세요!</p>\n</blockquote>\n<blockquote>\n<p>💡 혹시 그 외에 다른 에러가 발생하신다면 아래에 댓글로 에러 내용을 알려주세요!</p>\n</blockquote>\n<h2 id=\"7-배포된-페이지-확인하기\" style=\"position:relative;\"><a href=\"#7-%EB%B0%B0%ED%8F%AC%EB%90%9C-%ED%8E%98%EC%9D%B4%EC%A7%80-%ED%99%95%EC%9D%B8%ED%95%98%EA%B8%B0\" aria-label=\"7 배포된 페이지 확인하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>7. 배포된 페이지 확인하기</h2>\n<p>이제 실제로 잘 배포가 되었는지 확인해보자 여태까지 문제가 없었다면 파란색 URL에 접근했을 때 청첩장이 잘 보이는 것을 확인할 수 있을 것이다.</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 58.333333333333336%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAMCAYAAABiDJ37AAAACXBIWXMAABYlAAAWJQFJUiTwAAACBElEQVR42pVRzY4SQRDm5NmHWIzwGHpRT17MZg8bDpPAhSfwYBx9HrNBDiDJxph42nVjNNkoQZYluAPy091D9zAz/VdWN0KCYqLd+aZrqqu++qq60D8bPv38/ublxenw+ad347B7OQ77vVE4GtyEw+4i7J3zsH/Bw8Ff0D+Pw8GH+MX1GXn29uTj7YJSUoAFWPHc5isNRuPPPy5rLcaDNcqA4tw0O51iQRvNDBjzfTKRwyhS8zhWqZQK45XE3Wq3VOPklaJs4X17IBEaOfJ2u32ACpVw1QihlsVLYCyGBSGAfoSGzpsOtJqvgaFvo+p3oe6D8abZbBZ9y84zIcQSzmGBpOP5HESWgcTkTbqz9yE3xpfQG0I0RGYNXM3ndsQoMBzKEkMY+ijaRElgqJZq5e8cnO0QY1wkuBUSuzZmTSil9C1rKS2Su0o7/SjUGEH2x4MoJEGObcta611CnBfOMIbpbAZptiYwWsME2/8yjYBQigTW53MczQz9btYYuzvDDWGGF5QyoJgoROKH7x6FLznExPmEU+FViSTxBShjPm+vQuOHu97/uXYJo9GU/YiI+dYdyu7llep9vVY8FhIryzRNPZIkkajcQ3C+9f1Cjv9qtVqljUbjoPDw/uGdB/eelA8fBaXjx0HJnUdH1bvV6n7U63V/ViqVLYIgKNVqtWK5XL71EyMPTv7aSwg/AAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"wedding_invitation_10.png\"\n        title=\"\"\n        src=\"/static/b957aa7675ba02a3c9e894966e16676c/37523/wedding_invitation_10.png\"\n        srcset=\"/static/b957aa7675ba02a3c9e894966e16676c/e9ff0/wedding_invitation_10.png 180w,\n/static/b957aa7675ba02a3c9e894966e16676c/f21e7/wedding_invitation_10.png 360w,\n/static/b957aa7675ba02a3c9e894966e16676c/37523/wedding_invitation_10.png 720w,\n/static/b957aa7675ba02a3c9e894966e16676c/302a4/wedding_invitation_10.png 1080w,\n/static/b957aa7675ba02a3c9e894966e16676c/07a9c/wedding_invitation_10.png 1440w,\n/static/b957aa7675ba02a3c9e894966e16676c/4b39a/wedding_invitation_10.png 3104w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span></p>\n<h2 id=\"8-수정하고-배포하기\" style=\"position:relative;\"><a href=\"#8-%EC%88%98%EC%A0%95%ED%95%98%EA%B3%A0-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0\" aria-label=\"8 수정하고 배포하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>8. 수정하고 배포하기</h2>\n<p>변동사항을 commit 한 후 깃허브에 푸시하면 변동사항이 모바일 청첩장에 배포된다.</p>\n<br/>\n<blockquote>\n<p>🤔 저의 개발환경에서만 테스트하였기 때문에 혹여나 따라 하시다 안되는 부분이 생길 수 있을 거 같습니다. 망설이지 마시고 댓글 남겨주시면 적극적으로 반영할수 있게 노력하겠습니다 :)</p>\n</blockquote>\n<br/>\n<p><strong>위 과정을 따라하시면서 궁금하신 점이 있다면 아래 <code class=\"language-text\">댓글</code>로 남겨주세요!👇</strong></p>","excerpt":"제가 만든 결혼 청첩장을 활용해서 그대로 쓰고 싶어 하거나 활용하여 나만의 청첩장을 만들고 싶은 분들이 계실 텐데요! 이런 분들에게 도움을 드…","frontmatter":{"date":"2022.05.29","title":"Gatsby 테마로 모바일 결혼 청첩장 만들기","categories":"개발","author":"조이","emoji":"👰🏻‍♀️","thumbnail":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAABQ0lEQVR42p3SSUtCURjGcb9d6zZ9gRZZoRE0OEcmiGJIknNYSEULG6BsUTQS5KLCFi2i2pQl5kBezOsV9d+96S6ya4tn9R5+h/OcV1Mzh/kzpnYkFWc13YYKUDWFSGptJEdslA0B6pbI/8FaB7z1LeMcHOVe76JlW0I0h3oELZ3ImCQD5YNT+vsGuB5ywEyMak+gAk0H29hUgEogQeblGafOwIPeTcsYRjSqBZV+5J7EhQ1E9yrSuI/CUYpcRcA7O8+T1kkzvINoj1H7Bf0JTvqpxvepBbcQwttksm8USkUu9g55H/NS3zxB9KzLrwi0X6Omw6pjBcGf4DWbJVPIkyuXSN2kOR6203Sv8WmNfFei+lME+eaPuRj58ysKl2mKu2c8euLc6VwItihCr2uj7J+kdNSJNLFIwxCkYY3Ks1DXBf8CXBBkRgZFDVoAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/4ec27d7301f6863c2d8d80e9d35576a4/18b2e/thumbnail.png","srcSet":"/static/4ec27d7301f6863c2d8d80e9d35576a4/a4d46/thumbnail.png 175w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/d8f52/thumbnail.png 350w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/18b2e/thumbnail.png 700w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/4ec27d7301f6863c2d8d80e9d35576a4/19d98/thumbnail.avif 175w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/46c45/thumbnail.avif 350w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/12925/thumbnail.avif 700w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/4ec27d7301f6863c2d8d80e9d35576a4/eac4f/thumbnail.webp 175w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/a4795/thumbnail.webp 350w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/377b6/thumbnail.webp 700w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":350}}}},"fields":{"slug":"/gatsby-wedding-deploy/"}},"next":{"id":"152f95d1-b710-508f-98db-eb735a2d9027","html":"<blockquote>\n<p>올가을 우리 형이 결혼식을 하게 되는데, 조금 특별한 선물을 해주고 싶다는 생각에 모바일 청첩장을 만들어주자고 생각하였다. 기존 모바일 청첩장은 결혼식이 끝나면 사이트도 없어지기에 내가 직접 만들어서 평생 간직할 수 있는 사이트를 선물하면 조금 더 특별할 거로 생각했다.</p>\n</blockquote>\n<h2 id=\"-모바일-청첩장-요구사항\" style=\"position:relative;\"><a href=\"#-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%B2%AD%EC%B2%A9%EC%9E%A5-%EC%9A%94%EA%B5%AC%EC%82%AC%ED%95%AD\" aria-label=\" 모바일 청첩장 요구사항 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>📝 모바일 청첩장 요구사항</h2>\n<ul>\n<li>\n<p>처음 보이는 화면에는 동영상을 넣어 시각적으로 더 좋은 느낌을 연출하자.</p>\n</li>\n<li>\n<p>대중적인 모바일 청첩장을 본 결과 배경은 종이 질감을 사용하여 편안한 느낌을 연출하였다. 따라 하자 😁</p>\n</li>\n<li>\n<p>계좌번호 복사 기능, 카카오톡 지도를 사용하여 위치정보 제공하자</p>\n</li>\n<li>\n<p>요즘 대부분 카카오톡을 이용하여 모바일 청첩장을 공유하므로 카카오톡 링크 기능 및 일반 링크 복사기능을 만들자</p>\n</li>\n</ul>\n<h2 id=\"-모바일-청첩장-사용-기술\" style=\"position:relative;\"><a href=\"#-%EB%AA%A8%EB%B0%94%EC%9D%BC-%EC%B2%AD%EC%B2%A9%EC%9E%A5-%EC%82%AC%EC%9A%A9-%EA%B8%B0%EC%88%A0\" aria-label=\" 모바일 청첩장 사용 기술 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🛠 모바일 청첩장 사용 기술</h2>\n<p>우선 기술 블로그를 만들 때 사용했던 거와 같이 정적 사이트 생성기인 <code class=\"language-text\">Gatsby</code>를 사용하였고 React, Ant Design, Styled-Components를 사용하여 만들었다. 갤러리 부분은 <code class=\"language-text\">react-image-gallery</code>라이브러리를 사용하였으며, 계좌번호 및 링크 복사 기능은 <code class=\"language-text\">react-copy-to-clipboard</code>라이브러리를 사용하였다. 배포는 <code class=\"language-text\">netlify</code>를 채택하였다. 기본적인 디자인을 제외하고는 거의 모든 기능들을 라이브러리를 이용하였기에 어려운 점은 없었으나 배포까지 진행하면서 어려웠던 점 몇 가지를 적어보고자 한다.</p>\n<h2 id=\"️-고민했던-부분\" style=\"position:relative;\"><a href=\"#%EF%B8%8F-%EA%B3%A0%EB%AF%BC%ED%96%88%EB%8D%98-%EB%B6%80%EB%B6%84\" aria-label=\"️ 고민했던 부분 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>❗️ 고민했던 부분</h2>\n<h3 id=\"-kakao-map-사용하기\" style=\"position:relative;\"><a href=\"#-kakao-map-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0\" aria-label=\" kakao map 사용하기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🗾 Kakao Map 사용하기</h3>\n<p>결혼식 장소 정보를 제공하기 위하여 KakaoMap을 사용하였다 이미지파일이 아니라 움직일 수 있는 지도가 필요하였기에\n<span class=\"gatsby-resp-image-wrapper\" style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \">\n      <span class=\"gatsby-resp-image-background-image\" style=\"padding-bottom: 78.88888888888889%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAQCAYAAAAWGF8bAAAACXBIWXMAABYlAAAWJQFJUiTwAAADlklEQVR42o2U23LbZBDH/Rzc8By8ADMM973pE3SG0pPtOM1wSOjwBLkBBmgZmoPjJG2aOI495Th0mAZC0ibxMZYs2ZJsWZJlO4ktu/mxVgND79DM6vuk3e+v//53V5G33/+IK/EvebyZIZ3eYv3xBhubm2xubbGV3v7X0tubZLY3SK4/4dvFVR4srXN/aY0Hi2t8l3zEF/cXee/qdSI3bsdYeZzB8bpUFA1VN1F0g/97XVxchGun0+FmNEHkrXen+PybHU77PVzPx3VdhkFAEAzDd/85Gt77/T5O28byAzqnI0YSNx6/wvM85uZmibxzJcFXySy8GnN2fo7r9yRwgOOf0nR92Q/x5bl3NiQYjen2T2m3HdzegLNBQLfrMxicydoVwDkin8zEeZrbwWx3KFR1nudV0s+LPN0r8exI4ZcXFXJ7ZR7+eMjSz4csiBUVlZ5n4nsWxVKBWu0Y12kI4D0iicQ0uWyOju9TNzS6vkXfb1FTCpKaRscx0dQSVstiv6RSUOu4bUtAagLYkr0h+wr1hsbsrDCMx+Nks1lc26DVVLDbugQ2MU2F3f3f0PQyLUvDNHT0ej00w9QxGorEywc9W3w12k6Lz2Y/JXInGiOzs8P5mS+BKg0xx7Fo21JtrYwnLHcrNqndtvgbHBy9lDQPhZmJJUAN/YR+10U321z98N6kbaKkM1LlnoPdEibNiamSokbLrosZ/Hmsknm2L+wNipUiqpIX1jUsU6OuVaQbuhLX5oM7d4lMeie9k0MXzTS1IOU3pYomzZakJcB1s4ohhzW9RKH4gppI0OlI25g11GqBphDQJH3LNLg7HROGsWlhmBWGrtCvYIlerhTCEeFbdoOqnhdgRd41sYWtdZnFRJZy4YCjoz9kII6p6zrXrt8QDWNx0VAA+x7KST5MoXUJagugIfvGhIVRFTAjZD+RwrRey3KiFTk6OEBXFW7eFsCoFCWb3eas3wzTaItOjgB5rhWy8L0GQ/F1HAVfzJn45b0twJVqnnz5kN/3XqLUdKLRW5M+TEgfZsOxCoYDRqNAhmYs60imbcSBEZAtjfhVGfFDOcA7nfiD0B/IiA4G55OBDkdvKiEaTk9LY+dybwz65Bpfbr/+C66l4eOf4JZ8t97956fw5s/Bl8GYmooSmZmZYX5+ntRKkhWxhaXvZV1mdfX188Zakq1Hsq4v82R9iVRqmeXkYhizcnkmlVphYeGhAMb4G+nlWlMutuQvAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"></span>\n  <img class=\"gatsby-resp-image-image\" alt=\"wedding-image-01.png\" title=\"\" src=\"/static/8d85cc205a577ae767bf56b56596952c/37523/wedding-image-01.png\" srcset=\"/static/8d85cc205a577ae767bf56b56596952c/e9ff0/wedding-image-01.png 180w,\n/static/8d85cc205a577ae767bf56b56596952c/f21e7/wedding-image-01.png 360w,\n/static/8d85cc205a577ae767bf56b56596952c/37523/wedding-image-01.png 720w,\n/static/8d85cc205a577ae767bf56b56596952c/302a4/wedding-image-01.png 1080w,\n/static/8d85cc205a577ae767bf56b56596952c/07a9c/wedding-image-01.png 1440w,\n/static/8d85cc205a577ae767bf56b56596952c/49ee2/wedding-image-01.png 1618w\" sizes=\"(max-width: 720px) 100vw, 720px\" style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\" loading=\"lazy\" decoding=\"async\">\n    </span></p>\n<p>위의 화면에서 <code class=\"language-text\">소스 생성하기</code> 버튼을 클릭하면 아래와 같은 코드를 제공한다. 이 코드를 삽입하면 위의 지도가 나타나게 된다.</p>\n<div class=\"gatsby-highlight\" data-language=\"html\"><pre class=\"language-html\"><code class=\"language-html\"><span class=\"token comment\">&lt;!-- * 카카오맵 - 지도퍼가기 --></span>\n<span class=\"token comment\">&lt;!-- 1. 지도 노드 --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>div</span>\n  <span class=\"token attr-name\">id</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>daumRoughmapContainer1653547385965<span class=\"token punctuation\">\"</span></span>\n  <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>root_daum_roughmap root_daum_roughmap_landing<span class=\"token punctuation\">\"</span></span>\n<span class=\"token punctuation\">></span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>div</span><span class=\"token punctuation\">></span></span>\n\n<span class=\"token comment\">&lt;!--\n\t2. 설치 스크립트\n\t* 지도 퍼가기 서비스를 2개 이상 넣을 경우, 설치 스크립트는 하나만 삽입합니다.\n--></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span>\n  <span class=\"token attr-name\">charset</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>UTF-8<span class=\"token punctuation\">\"</span></span>\n  <span class=\"token attr-name\">class</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>daum_roughmap_loader_script<span class=\"token punctuation\">\"</span></span>\n  <span class=\"token attr-name\">src</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>https://ssl.daumcdn.net/dmaps/map_js_init/roughmapLoader.js<span class=\"token punctuation\">\"</span></span>\n<span class=\"token punctuation\">></span></span><span class=\"token script\"></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span>\n\n<span class=\"token comment\">&lt;!-- 3. 실행 스크립트 --></span>\n<span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;</span>script</span> <span class=\"token attr-name\">charset</span><span class=\"token attr-value\"><span class=\"token punctuation attr-equals\">=</span><span class=\"token punctuation\">\"</span>UTF-8<span class=\"token punctuation\">\"</span></span><span class=\"token punctuation\">></span></span><span class=\"token script\"><span class=\"token language-javascript\">\n  <span class=\"token keyword\">new</span> <span class=\"token class-name\">daum<span class=\"token punctuation\">.</span>roughmap<span class=\"token punctuation\">.</span>Lander</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">{</span>\n    <span class=\"token literal-property property\">timestamp</span><span class=\"token operator\">:</span> <span class=\"token string\">'1653547385965'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">key</span><span class=\"token operator\">:</span> <span class=\"token string\">'2adxz'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">mapWidth</span><span class=\"token operator\">:</span> <span class=\"token string\">'640'</span><span class=\"token punctuation\">,</span>\n    <span class=\"token literal-property property\">mapHeight</span><span class=\"token operator\">:</span> <span class=\"token string\">'360'</span><span class=\"token punctuation\">,</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">.</span><span class=\"token function\">render</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n</span></span><span class=\"token tag\"><span class=\"token tag\"><span class=\"token punctuation\">&lt;/</span>script</span><span class=\"token punctuation\">></span></span></code></pre></div>\n<p>여기서부터 문제가 시작되는데 나의 프로젝트는 <code class=\"language-text\">Gatsby/React</code>이기 때문에 이거를 바로 집어넣을 수가 없다는 것이었다. 방법을 찾기 위해 열심히 검색하던 중 <a href=\"https://betterprogramming.pub/loading-third-party-scripts-dynamically-in-reactjs-458c41a7013d\">타사 스크립트 로드</a> 의 글을 읽고 결국 리액트에서 동적으로 카카오 스크립트를 로드해야 한다는 걸 알게 되었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"javascript\"><pre class=\"language-javascript\"><code class=\"language-javascript\"><span class=\"token keyword\">const</span> <span class=\"token function-variable function\">Location</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n  <span class=\"token comment\">// 카카오 맵 불러오기</span>\n\n  <span class=\"token comment\">// &lt;!-- 3. 실행 스크립트 --></span>\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">executeScript</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token keyword\">const</span> scriptTag <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">createElement</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"script\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    <span class=\"token keyword\">const</span> inlineScript <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">createTextNode</span><span class=\"token punctuation\">(</span><span class=\"token template-string\"><span class=\"token template-punctuation string\">`</span><span class=\"token string\">new daum.roughmap.Lander({\n    \"timestamp\" : \"1652464367301\",\n    \"key\" : \"2a8fe\",\n    \"mapWidth\" : \"640\",\n    \"mapHeight\" : \"360\"\n  }).render();</span><span class=\"token template-punctuation string\">`</span></span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    scriptTag<span class=\"token punctuation\">.</span><span class=\"token function\">appendChild</span><span class=\"token punctuation\">(</span>inlineScript<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n    document<span class=\"token punctuation\">.</span>body<span class=\"token punctuation\">.</span><span class=\"token function\">appendChild</span><span class=\"token punctuation\">(</span>scriptTag<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token comment\">// &lt;!-- 2. 설치 스크립트 * 지도 퍼가기 서비스를 2개 이상 넣을 경우, 설치 스크립트는 하나만 삽입합니다. --></span>\n  <span class=\"token comment\">// document.write 문제가 발생해서 해당 파일을 직접 가져온다음 수정했음</span>\n  <span class=\"token keyword\">const</span> <span class=\"token function-variable function\">InstallScript</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token punctuation\">(</span><span class=\"token keyword\">function</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n      <span class=\"token keyword\">let</span> c <span class=\"token operator\">=</span> window<span class=\"token punctuation\">.</span>location<span class=\"token punctuation\">.</span>protocol <span class=\"token operator\">===</span> <span class=\"token string\">\"https:\"</span> <span class=\"token operator\">?</span> <span class=\"token string\">\"https:\"</span> <span class=\"token operator\">:</span> <span class=\"token string\">\"http:\"</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">let</span> a <span class=\"token operator\">=</span> <span class=\"token string\">\"16137cec\"</span><span class=\"token punctuation\">;</span>\n\n      <span class=\"token keyword\">if</span> <span class=\"token punctuation\">(</span>window<span class=\"token punctuation\">.</span>daum <span class=\"token operator\">&amp;&amp;</span> window<span class=\"token punctuation\">.</span>daum<span class=\"token punctuation\">.</span>roughmap <span class=\"token operator\">&amp;&amp;</span> window<span class=\"token punctuation\">.</span>daum<span class=\"token punctuation\">.</span>roughmap<span class=\"token punctuation\">.</span>cdn<span class=\"token punctuation\">)</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token keyword\">return</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span>\n      window<span class=\"token punctuation\">.</span>daum <span class=\"token operator\">=</span> window<span class=\"token punctuation\">.</span>daum <span class=\"token operator\">||</span> <span class=\"token punctuation\">{</span><span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n      window<span class=\"token punctuation\">.</span>daum<span class=\"token punctuation\">.</span>roughmap <span class=\"token operator\">=</span> <span class=\"token punctuation\">{</span>\n        <span class=\"token literal-property property\">cdn</span><span class=\"token operator\">:</span> a<span class=\"token punctuation\">,</span>\n        <span class=\"token constant\">URL_KEY_DATA_LOAD_PRE</span><span class=\"token operator\">:</span> c <span class=\"token operator\">+</span> <span class=\"token string\">\"//t1.daumcdn.net/roughmap/\"</span><span class=\"token punctuation\">,</span>\n        <span class=\"token literal-property property\">url_protocal</span><span class=\"token operator\">:</span> c<span class=\"token punctuation\">,</span>\n      <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n      <span class=\"token keyword\">let</span> b <span class=\"token operator\">=</span>\n        c <span class=\"token operator\">+</span>\n        <span class=\"token string\">\"//t1.daumcdn.net/kakaomapweb/place/jscss/roughmap/\"</span> <span class=\"token operator\">+</span>\n        a <span class=\"token operator\">+</span>\n        <span class=\"token string\">\"/roughmapLander.js\"</span><span class=\"token punctuation\">;</span>\n\n      <span class=\"token comment\">// document.write -> doumnet.body.append로 수정</span>\n      <span class=\"token keyword\">const</span> scriptTag <span class=\"token operator\">=</span> document<span class=\"token punctuation\">.</span><span class=\"token function\">createElement</span><span class=\"token punctuation\">(</span><span class=\"token string\">\"script\"</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      scriptTag<span class=\"token punctuation\">.</span>src <span class=\"token operator\">=</span> b<span class=\"token punctuation\">;</span>\n      document<span class=\"token punctuation\">.</span>body<span class=\"token punctuation\">.</span><span class=\"token function\">append</span><span class=\"token punctuation\">(</span>scriptTag<span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      scriptTag<span class=\"token punctuation\">.</span><span class=\"token function-variable function\">onload</span> <span class=\"token operator\">=</span> <span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n        <span class=\"token function\">executeScript</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n      <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n    <span class=\"token punctuation\">}</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token function\">useEffect</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span> <span class=\"token operator\">=></span> <span class=\"token punctuation\">{</span>\n    <span class=\"token function\">InstallScript</span><span class=\"token punctuation\">(</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n  <span class=\"token punctuation\">}</span><span class=\"token punctuation\">,</span> <span class=\"token punctuation\">[</span>InstallScript<span class=\"token punctuation\">]</span><span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span>\n\n  <span class=\"token keyword\">return</span> <span class=\"token punctuation\">(</span>\n      <span class=\"token operator\">&lt;</span>div\n        id<span class=\"token operator\">=</span><span class=\"token string\">\"daumRoughmapContainer1652464367301\"</span>\n        className<span class=\"token operator\">=</span><span class=\"token string\">\"root_daum_roughmap root_daum_roughmap_landing\"</span>\n      <span class=\"token operator\">></span><span class=\"token operator\">&lt;</span><span class=\"token operator\">/</span>div<span class=\"token operator\">></span>\n  <span class=\"token punctuation\">)</span><span class=\"token punctuation\">;</span></code></pre></div>\n<p>위와 같이 수정하니 정상적으로 동작하였다. react에서 외부 라이브러리를 이런 식으로 사용했던 경험이 특별했다.</p>\n<h3 id=\"-배포할-때의-몇-가지-에러\" style=\"position:relative;\"><a href=\"#-%EB%B0%B0%ED%8F%AC%ED%95%A0-%EB%95%8C%EC%9D%98-%EB%AA%87-%EA%B0%80%EC%A7%80-%EC%97%90%EB%9F%AC\" aria-label=\" 배포할 때의 몇 가지 에러 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🖥 배포할 때의 몇 가지 에러</h3>\n<ol>\n<li>“build.command” failed 에러 해결하기</li>\n</ol>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">6:48:44 PM: failed Building production JavaScript and CSS bundles - 42.123s\n6:48:44 PM: error Generating JavaScript bundles failed\n6:48:44 PM: Can&#39;t resolve &#39;../components/Greeting&#39; in &#39;/opt/build/repo/src/pages&#39;\n6:48:44 PM: If you&#39;re trying to use a package make sure that &#39;../components/Greeting&#39; is installed. If you&#39;re trying to use a local file make sure that the path is correct.\n6:48:44 PM: ​\n6:48:44 PM: ────────────────────────────────────────────────────────────────\n6:48:44 PM:   &quot;build.command&quot; failed\n6:48:44 PM: ────────────────────────────────────────────────────────────────\n6:48:44 PM: ​\n6:48:44 PM:   Error message\n6:48:44 PM:   Command failed with exit code 1: CI= npm run build (https://ntl.fyi/exit-code-1)\n6:48:44 PM: ​\n6:48:44 PM:   Error location\n6:48:44 PM:   In Build command from Netlify app:\n6:48:44 PM:   CI= npm run build\n6:48:44 PM: ​\n6:48:44 PM:   Resolved config\n6:48:44 PM:   build:\n6:48:44 PM:     command: CI= npm run build\n6:48:44 PM:     commandOrigin: ui\n6:48:44 PM:     publish: /opt/build/repo/public\n6:48:44 PM:     publishOrigin: ui\n6:48:44 PM:   plugins:\n6:48:44 PM:     - inputs: {}\n6:48:44 PM:       origin: ui\n6:48:44 PM:       package: &#39;@netlify/plugin-gatsby&#39;</code></pre></div>\n<p>이 문제는 처음 나왔을 때 뭐지? 싶었는데 정말 어이없는 실수였다 에러 내용을 읽어본 결과 Greeting 경로가 이상하다고 하는 내용이었고 혹시나 하고 코드를 하나하나 본 결과 index.js에서 Greeting 컴포넌트를 불러오는 과정에서 경로를 잘못 적어준 것이었다. 분명 로컬에서 테스트할 때는 정상적으로 동작했기에 단순 실수를 찾는데도 조금의 시간을 들였던 거 같다. 아직도 왜 로컬에서는 정상적으로 동작했는지는 모르겠지만 에러 내용을 믿고 다음부터는 실수를 더욱 빠르게 잡도록 노력해야겠다.</p>\n<p>2.파일 크기 초과 에러</p>\n<p>이것 또한 단순한 문제인데 간과해서 생긴 문제였다. 정적인 사이트에서 지원하는 용량보다 더 큰 파일을 넣었기 때문에 생긴 에러인데 확인해보니 동영상파일 크기 하나가 너무 컷기 때문에 리사이즈하여 빠르게 해결할 수 있었다.</p>\n<div class=\"gatsby-highlight\" data-language=\"cmd\"><pre class=\"language-cmd\"><code class=\"language-cmd\">6:56:09 PM: The function zip ../../../tmp/zisi-628dfc8c696ab60008c7d3be/__ssr.zip size is 105 MB, which is larger than the maximum supported size of 52.4 MB.\n6:56:09 PM: There are a few reasons this could happen, such as accidentally bundling a large dependency or adding lots of files to &quot;included_files&quot;.\n6:56:09 PM: Contains 43 files\n6:56:09 PM:\n6:56:09 PM:\n6:56:09 PM: These are the largest files in the zip:</code></pre></div>\n<h2 id=\"-후기\" style=\"position:relative;\"><a href=\"#-%ED%9B%84%EA%B8%B0\" aria-label=\" 후기 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🧑🏻‍💻 후기</h2>\n<h3 id=\"-의미-있는-토이프로젝트\" style=\"position:relative;\"><a href=\"#-%EC%9D%98%EB%AF%B8-%EC%9E%88%EB%8A%94-%ED%86%A0%EC%9D%B4%ED%94%84%EB%A1%9C%EC%A0%9D%ED%8A%B8\" aria-label=\" 의미 있는 토이프로젝트 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>👏 의미 있는 토이프로젝트</h3>\n<p>이번 프로젝트는 의미가 있어서 좋았다. 간단한 정적인 사이트지만 누군가를 위해서 열심히 만들었고 또 디자인 가안을 형에게 보여주었을 때 좋아하는 모습을 보면서 다시 한번 개발자로 직업을 정한 것에 뿌듯함을 느꼈다. 아마 나 뿐만이 아니라 모든 개발자분이 사람들에게 행복을 주는 프로젝트를 하고 싶을 것인데 이번 프로젝트는 그 니즈를 완벽히 충족한 프로젝트였다고 생각한다. 다음에도 이런 의미 있는 프로젝트를 진행할 기회가 있다면 주저 없이 시작할 것 같다.</p>\n<h3 id=\"-개발회고\" style=\"position:relative;\"><a href=\"#-%EA%B0%9C%EB%B0%9C%ED%9A%8C%EA%B3%A0\" aria-label=\" 개발회고 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🤔 개발회고</h3>\n<p>사실 입사하기 전 빠르게 만들려고 하다 보니 100% 만족스럽지는 않았다. 디자인도 만들면서 더 욕심이 났지만 절충했던 부분도 있고 외부 라이브리를 사용하여 빠르게 만들었지만 직접 기능들을 만들었으면 더 의미 있는 프로젝트였겠다라는 생각도 하였다.</p>\n<p>하지만, 이번 프로젝트로 인하여 큰 프로젝트가 아니어도 사용자에게 좋은 가치를 줄 수 있다라는 자신감을 얻을 수 있엇고, 다음에 내 주변 사람들이 결혼식을 할 때 지금보다 조금 더 당당히 “내가 만들어 줄게!!” 라고 할 수 있을 거 같다.✌️</p>\n<br/>\n<p><strong>궁금하신 점이 있다면 아래 <code class=\"language-text\">댓글</code>로 남겨주세요!👇</strong></p>","frontmatter":{"date":"2022.05.26","title":"모바일 청첩장 만들기 회고","categories":"에세이","author":"조이","emoji":"👰🏻‍♀️","thumbnail":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAABQ0lEQVR42p3SSUtCURjGcb9d6zZ9gRZZoRE0OEcmiGJIknNYSEULG6BsUTQS5KLCFi2i2pQl5kBezOsV9d+96S6ya4tn9R5+h/OcV1Mzh/kzpnYkFWc13YYKUDWFSGptJEdslA0B6pbI/8FaB7z1LeMcHOVe76JlW0I0h3oELZ3ImCQD5YNT+vsGuB5ywEyMak+gAk0H29hUgEogQeblGafOwIPeTcsYRjSqBZV+5J7EhQ1E9yrSuI/CUYpcRcA7O8+T1kkzvINoj1H7Bf0JTvqpxvepBbcQwttksm8USkUu9g55H/NS3zxB9KzLrwi0X6Omw6pjBcGf4DWbJVPIkyuXSN2kOR6203Sv8WmNfFei+lME+eaPuRj58ysKl2mKu2c8euLc6VwItihCr2uj7J+kdNSJNLFIwxCkYY3Ks1DXBf8CXBBkRgZFDVoAAAAASUVORK5CYII="},"images":{"fallback":{"src":"/static/4ec27d7301f6863c2d8d80e9d35576a4/18b2e/thumbnail.png","srcSet":"/static/4ec27d7301f6863c2d8d80e9d35576a4/a4d46/thumbnail.png 175w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/d8f52/thumbnail.png 350w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/18b2e/thumbnail.png 700w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/4ec27d7301f6863c2d8d80e9d35576a4/19d98/thumbnail.avif 175w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/46c45/thumbnail.avif 350w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/12925/thumbnail.avif 700w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/4ec27d7301f6863c2d8d80e9d35576a4/eac4f/thumbnail.webp 175w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/a4795/thumbnail.webp 350w,\n/static/4ec27d7301f6863c2d8d80e9d35576a4/377b6/thumbnail.webp 700w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":350}}}},"fields":{"slug":"/weddingInvitation-project/"}},"prev":{"id":"5c7de039-160b-5a96-8f86-c8e45204fdeb","html":"<blockquote>\n<p>사실 1일 1커밋을 시작할 당시 1년을 채울 시점에 회고를 해보자고 생각하였지만, 6월 2일인 오늘부터 입사하게 되어 혹시 모를..(못 채울까 봐…?😂 ) 부랴부랴 회고를 해보기로 한다.</p>\n</blockquote>\n<h2 id=\"-왜-1일-1커밋을-시작햇어\" style=\"position:relative;\"><a href=\"#-%EC%99%9C-1%EC%9D%BC-1%EC%BB%A4%EB%B0%8B%EC%9D%84-%EC%8B%9C%EC%9E%91%ED%96%87%EC%96%B4\" aria-label=\" 왜 1일 1커밋을 시작햇어 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>🤔 왜 1일 1커밋을 시작햇어?</h2>\n<p>사실 나에게 족쇄? 채찍? 을 주고 싶었다. 내가 공부했던 것들을 기록하는 것도 좋겠다고 생각했지만 작은 행동들이 하나하나 모여 큰 결과를 만들 수 있다고 생각하기에 1일 1커밋은 그런 나에게 적합하다고 생각하였고 나 스스로가 동기부여가 될 수 있다고 생각하였다.</p>\n<h2 id=\"-주로-어떤-것들을-커밋해-나갔어\" style=\"position:relative;\"><a href=\"#-%EC%A3%BC%EB%A1%9C-%EC%96%B4%EB%96%A4-%EA%B2%83%EB%93%A4%EC%9D%84-%EC%BB%A4%EB%B0%8B%ED%95%B4-%EB%82%98%EA%B0%94%EC%96%B4\" aria-label=\" 주로 어떤 것들을 커밋해 나갔어 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>😲 주로 어떤 것들을 커밋해 나갔어?</h2>\n<p>사실 처음 1일 1커밋을 시작할 때는 부트캠프를 하고 있었기에 어렵지 않았다. 1달마다 프로젝트를 만드는 과정이었기 때문에 오히려 기능단위로 커밋을 끊어서 해야 하는데 한 커밋에 너무 많은 기능을 담아서 푸쉬하는 오류도 범했던 거 같다. 2022년 2월 부트캠프를 수료하고부터는 주로 아래의 것들로 커밋을 채웠다.</p>\n<ul>\n<li>개인 프로젝트</li>\n<li>알고리즘</li>\n<li>TIL(조금..😉 )</li>\n</ul>\n<p>개인 프로젝트를 진행하면서 전보다 커밋할 때 커밋단위와 커밋메시지를 신경 쓰면서 진행하였었고 코딩테스트가 한 번에 몰려있엇던 적이 있었는데 2-3주전부터는 알고리즘 한 것들을 커밋해 나갔었다. 지금까지 계속 기록하면서 공부하고 있지만 아직도 퀄리티가 좋다고 생각하지 않는다.😢 그래도 계속 진행해나가면서 더 성장하기 위해서 노력할 것이다.</p>\n<h2 id=\"-1일-1커밋을-하면서-장단점은\" style=\"position:relative;\"><a href=\"#-1%EC%9D%BC-1%EC%BB%A4%EB%B0%8B%EC%9D%84-%ED%95%98%EB%A9%B4%EC%84%9C-%EC%9E%A5%EB%8B%A8%EC%A0%90%EC%9D%80\" aria-label=\" 1일 1커밋을 하면서 장단점은 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>💡 1일 1커밋을 하면서 장단점은?</h2>\n<h3 id=\"-장점\" style=\"position:relative;\"><a href=\"#-%EC%9E%A5%EC%A0%90\" aria-label=\" 장점 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>👍🏻 장점</h3>\n<ul>\n<li>개발자에게 중요한 덕목 중 하나가 꾸준히 공부할 줄 아는 사람이라는 것인데 Github를 통해서 어필할 수 있다!</li>\n<li>어느 정도 하다 보면 이미 했던 게 아까워서라도 1일 1커밋을 하기 위해 공부하게 되는데 이에 따라서 매일 코딩하는 습관이 생긴다.(개인적으로 이게 제일 좋은점 인거 같다👏 )</li>\n</ul>\n<h3 id=\"-단점\" style=\"position:relative;\"><a href=\"#-%EB%8B%A8%EC%A0%90\" aria-label=\" 단점 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>👎🏻 단점</h3>\n<ul>\n<li>위에 내용과 겹칠 수도 있는데 매일! 무조건! 해야 한다는 것 때문에 번아웃이 올 수 있다.(꾸준히 나는 잘하고 있다고 마인드 컨트롤이 필요한 거 같다.)</li>\n<li>커밋을 하기위한 공부를 하게된다. (이 내용에 설명을 조금 보태보자면 커밋을 할수 있는 공부 말고도 영어 공부, 개발 서적 읽기 등 커밋으로 남기기 애매한 부분들에 대해서 조금 소홀하게 되는 거 같다. 지금 생각해보면 이것 또한 TIL로 블로그에 포스팅해보면 어떨까 싶다.)</li>\n</ul>\n<h2 id=\"-앞으로의-계획은-뭐야\" style=\"position:relative;\"><a href=\"#-%EC%95%9E%EC%9C%BC%EB%A1%9C%EC%9D%98-%EA%B3%84%ED%9A%8D%EC%9D%80-%EB%AD%90%EC%95%BC\" aria-label=\" 앞으로의 계획은 뭐야 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>😺 앞으로의 계획은 뭐야?</h2>\n<p>8개월간의 회고를 적고 있지만 계속해서 1일 1커밋을 하며 공부해나갈 생각이다. 다만 걱정되는 부분이 지금 다니는 회사가 소방서, 경찰서 같은 공공기관의 관제시스템을 만드는 곳이라 출장이 꽤 있을 것으로 예상되어서 출장이 있을 때 어떻게 해야 할지 생각해보아야 할 것 같다. 최대한 할 수 있는데까지 1일 1커밋을 유지할 생각이지만 애초에 꾸준히 공부하는 것에 목표를 두고 시작했던 것만큼 어쩔 수 없는 상황에서는 포기..(는 없다 😝 ) 앞으로는 회사에서 자주 사용하고있는 전자정부 프레임워크와 내가 공부하기 희망했던 SSR, 아직 공부하지 못한 Typescipt를 공부하면서 개인 프로젝트 위주로 진행할 예정이다. 아직까지는 1일 1커밋 만큼 내가 이만큼 성장하기 위해서 노력하고 있다는 걸 보여줄 좋은 지표가 없다고 생각되기에 앞으로도 계속 진행할 것이다! 1일 1커밋 1년 후의 회고를 기약하면서 글을 마치도록 하겠다. 긴 글 읽어주셔서 감사합니당 🥰</p>\n<p><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 720px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 56.111111111111114%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAALCAYAAAB/Ca1DAAAACXBIWXMAAAsTAAALEwEAmpwYAAADIElEQVR42g3O21fSBwDA8d9bp46bLiFAUlGGXLyCIkk/UEQ0DVC8JHMerKPmZbLEUUstUbRahng5nRQrXaFuy7YTlbXVWefUtvawl13OXnb2sqc97k/4zrfv0+d8BXuHkfCFXpJbS6zcnOSb5wnuJU5zudPIxS4LE/4qgi0WlNkKFNm5yJRKdEVqrKIBd3MdTZ5aPL6TjHxgJz7qQ7B7C5m5Psluapubk5/weGGKa5966GsoY7hFpL++hEi7EZ9NT6ZCiSxLga5Qhb26GG9rA62t9fjaTjLQeoyFj70I3k4r96/28+OVaf56/YyXCxEifiv/7SX4ZyfKnaCHs7UaxOI8DssVSGVH0OqyqXGU4Nk/7NhHXS47/gYDt0ZbENyihuFmCxe8DuZHu4kPt5AItfPr7es8mQuzcf40sc7jBMQy3pHKkMikaNRyrKZ86mur8PlcNLnr6HKXsTbsRNDLDlKkSMOqSqc8Jw2nRc1O/BxvYxO8jIZ5MTfCozEf5gIVB9IzkMtlKPUqsrxWVCesGMzFqA1amqt1jHs0CA6DhA+dJrptBgZOVDDis3BnvJE3s0OkQgGehk/xxaiXRtGE3qBHIs3kgORdDpm1pJsKyMyRc/C9wzRZ1Yw3FyBYdFl011XQ32zjbEc95/vaSMYGeBoN8NN8HxNtIle7qvl7O8Ifr1IkVxeZHBvEbi1Fp8vBaNJTWFyAex+80WNBaHQeIxbq4cxUiNmpME+2Nvn3+yR/bozxJtbHSsDBrK+S1Pw5fni0w8+Pd3ib2iH15TrlVTqKynIwlObhqsol7jcjOF0i0XCQmY0Euw+2+P3Vc17fi7F8cZDk0hXuTo+xcSnI1uoyDz9f5+vNxH4v8Wx2gc98AYbMdnorHJyy6Lk1UIOQJc+gzlnDV7sP+O7bPX55kWIvuca16GUWF2Mkbq8zH7vB/WSStbVV5qIRlpfjLB73kxR72a7p5654hi6zBa/TiCCTpKHJPUJJUQHToSF+25xh5aN2LgUHCfW00SQWUl2uxl6hxVZpoLL0fSwmLaI+H5smD2P+UUrylGiypRxVZPA/F/jJUwegGTEAAAAASUVORK5CYII='); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"onecommit-02.png\"\n        title=\"\"\n        src=\"/static/7abe633c282fd93ffdf541dfbb0c6e90/37523/onecommit-02.png\"\n        srcset=\"/static/7abe633c282fd93ffdf541dfbb0c6e90/e9ff0/onecommit-02.png 180w,\n/static/7abe633c282fd93ffdf541dfbb0c6e90/f21e7/onecommit-02.png 360w,\n/static/7abe633c282fd93ffdf541dfbb0c6e90/37523/onecommit-02.png 720w,\n/static/7abe633c282fd93ffdf541dfbb0c6e90/302a4/onecommit-02.png 1080w,\n/static/7abe633c282fd93ffdf541dfbb0c6e90/e72de/onecommit-02.png 1198w\"\n        sizes=\"(max-width: 720px) 100vw, 720px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n        decoding=\"async\"\n      />\n    </span>\n<br/></p>\n<p><strong>궁금하신 점이 있다면 아래 <code class=\"language-text\">댓글</code>로 남겨주세요!👇</strong></p>","frontmatter":{"date":"2022.06.02","title":"8개월간의 1일 1커밋 회고","categories":"에세이","author":"조이","emoji":"🧑🏻‍💻","thumbnail":{"childImageSharp":{"gatsbyImageData":{"layout":"constrained","placeholder":{"fallback":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAYAAAC0VX7mAAAACXBIWXMAAAsTAAALEwEAmpwYAAABRUlEQVR42mMQkjT8TyoWlNDDKcdAnCEGcFpYyvi/jKIbkDYiz0ARoAGi0qZgtoAEyGAjIN8c6Ep94g0E2Q5yCZ+Y2n9Do/L/Ph6b//OI6/43UbH7ryALNFzK7L+UghPU60b4DQQZxiuiC2bziGj+V9Xw+29ikvqfR0z9v6Q00LVgy0z+i8lY/heEBwUOA0WAGrgEtf7bOYf937f/yP/ohPz/fIJ6/3V1wv8rq8f+FwEaIgD2qgFSuOIxUFTG5D8zt8r/jNzq//////t/9PjJ/109c/8vXLDnf2nxnv+Ssv5AV+n8F5Y0Ij6WBYEBLyFvDnbdixcv///79+c/CHT2TPvPwK78X0zWBG8kYglDw//8YvrgcMwEurSwpPl/RXXnfyf3qP/cwtpAXxiTZiBy5LBwq/5n5lL5z8Sp/J9bSBtn2kM2EABKzCvjwAxNvwAAAABJRU5ErkJggg=="},"images":{"fallback":{"src":"/static/76955c3aea456466aa55bc35616c004b/18b2e/thumbnail.png","srcSet":"/static/76955c3aea456466aa55bc35616c004b/a4d46/thumbnail.png 175w,\n/static/76955c3aea456466aa55bc35616c004b/d8f52/thumbnail.png 350w,\n/static/76955c3aea456466aa55bc35616c004b/18b2e/thumbnail.png 700w","sizes":"(min-width: 700px) 700px, 100vw"},"sources":[{"srcSet":"/static/76955c3aea456466aa55bc35616c004b/19d98/thumbnail.avif 175w,\n/static/76955c3aea456466aa55bc35616c004b/46c45/thumbnail.avif 350w,\n/static/76955c3aea456466aa55bc35616c004b/12925/thumbnail.avif 700w","type":"image/avif","sizes":"(min-width: 700px) 700px, 100vw"},{"srcSet":"/static/76955c3aea456466aa55bc35616c004b/eac4f/thumbnail.webp 175w,\n/static/76955c3aea456466aa55bc35616c004b/a4795/thumbnail.webp 350w,\n/static/76955c3aea456466aa55bc35616c004b/377b6/thumbnail.webp 700w","type":"image/webp","sizes":"(min-width: 700px) 700px, 100vw"}]},"width":700,"height":350}}}},"fields":{"slug":"/onecommit-retrospect/"}},"site":{"siteMetadata":{"siteUrl":"https://joy.pe.kr","comments":{"giscus":{"repo":"S-jooyoung/joyTech-comments","repoId":"R_kgDOJBiFqg","category":"Announcements","categoryId":"DIC_kwDOJBiFqs4CuiOB","mapping":"pathname"}},"author":{"bio":{"thumbnail":"myPicture.jpg","thumbnailSmall":"myPicture_small.jpg"}}}}},"pageContext":{"slug":"/gatsby-wedding-deploy/","nextSlug":"/weddingInvitation-project/","prevSlug":"/onecommit-retrospect/"}},"staticQueryHashes":["2009502679","2938748437","3525900674","666946821"],"slicesMap":{}}