<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>페레로</title>
    <link>https://bba-jin.tistory.com/</link>
    <description>웹 개발 꿈나무</description>
    <language>ko</language>
    <pubDate>Thu, 27 Aug 2026 04:08:11 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>rocher71</managingEditor>
    <image>
      <title>페레로</title>
      <url>https://tistory1.daumcdn.net/tistory/4877755/attach/1c1bfecf56e742e0a17f67efbba4a515</url>
      <link>https://bba-jin.tistory.com</link>
    </image>
    <item>
      <title>[AWS] CloudFront로 React 정적배포하기 - 7. Route53 A/CNAME 레코드 추가</title>
      <link>https://bba-jin.tistory.com/84</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를&lt;span&gt;&amp;nbsp;&lt;/span&gt;배포하는 과정을 기록해보려고 한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;글은 2025년 11월 기준 aws 콘솔이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WWZYk/dJMcad1oKGA/xiWBVSIrzJvkkl4bDctrdK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WWZYk/dJMcad1oKGA/xiWBVSIrzJvkkl4bDctrdK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WWZYk/dJMcad1oKGA/xiWBVSIrzJvkkl4bDctrdK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWWZYk%2FdJMcad1oKGA%2FxiWBVSIrzJvkkl4bDctrdK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;300&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이전 글 확인하기&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/78&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/79&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 2. Route 53 설정하기&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/80&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 3. AWS Certificate Manager ACM인증서 발급&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/81&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 4. S3 버킷 생성 및 설정&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/82&quot;&gt;[AWS] CloudFront React 정적배포하기 - 5. Cloudfront 배포&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/83&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 6. ACM 인증서 검증 및 Cloudfront 연결&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 거의 다 왔다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이거만 하면 사이트에 접속 가능!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Route 53 콘솔에서 생성한 도메인에 들어간 뒤, 'Create record' 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1698&quot; data-origin-height=&quot;661&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6BBq3/dJMcafLF9aM/Tk9kOkF1YMBsidtiaiDcX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6BBq3/dJMcafLF9aM/Tk9kOkF1YMBsidtiaiDcX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6BBq3/dJMcafLF9aM/Tk9kOkF1YMBsidtiaiDcX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6BBq3%2FdJMcafLF9aM%2FTk9kOkF1YMBsidtiaiDcX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1698&quot; height=&quot;661&quot; data-origin-width=&quot;1698&quot; data-origin-height=&quot;661&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 화면을 보고 아래 값들을 입력해주고 'Create records' 버튼을 클릭해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1: Record name 은 비워두기!!!!! 루트 도메인 자체를 의미함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2: Record type은 A&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3: Alias 설정 켜기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4: Alias to CloudFront distribution&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5: 4번을 선택하면 자동으로 만들어둔 cloudfront 도메인이 뜬다. 선택만 해주면된다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;829&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3GkmB/dJMb995LvLV/sRPxL9Q85OWuGfk6PocRuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3GkmB/dJMb995LvLV/sRPxL9Q85OWuGfk6PocRuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3GkmB/dJMb995LvLV/sRPxL9Q85OWuGfk6PocRuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3GkmB%2FdJMb995LvLV%2FsRPxL9Q85OWuGfk6PocRuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;829&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;829&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Create record를 한번 더 해준다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1: 'www' 를 입력한다&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2: Record type은 CNAME&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3: Alias 설정 끄기!&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;4: Value에는 www 뒤에오는 도메인(2번 과정에서 생성한부분) 입력.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;861&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvGLAN/dJMcain6lhX/m0KG2ZEh7ipjFvZ3EgpfTk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvGLAN/dJMcain6lhX/m0KG2ZEh7ipjFvZ3EgpfTk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvGLAN/dJMcain6lhX/m0KG2ZEh7ipjFvZ3EgpfTk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvGLAN%2FdJMcain6lhX%2Fm0KG2ZEh7ipjFvZ3EgpfTk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;861&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;861&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 하면 &lt;a href=&quot;http://www.memeduck.site&quot;&gt;www.memeduck.site&amp;nbsp;&lt;/a&gt; , memeduck.site, 둘 다 아래와같이 cloudfront 도메인 들어갔을 때 떴던 access denied 화면이 뜬다! 연결이 된것이다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1577&quot; data-origin-height=&quot;449&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyK7J5/dJMcafLF9iz/6QBhAHuVfhgLcc7rUXEfTK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyK7J5/dJMcafLF9iz/6QBhAHuVfhgLcc7rUXEfTK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyK7J5/dJMcafLF9iz/6QBhAHuVfhgLcc7rUXEfTK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdyK7J5%2FdJMcafLF9iz%2F6QBhAHuVfhgLcc7rUXEfTK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1577&quot; height=&quot;449&quot; data-origin-width=&quot;1577&quot; data-origin-height=&quot;449&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1554&quot; data-origin-height=&quot;450&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cje1NU/dJMcaksGyqb/1ooGa8mMXg0fUlqmMXzXzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cje1NU/dJMcaksGyqb/1ooGa8mMXg0fUlqmMXzXzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cje1NU/dJMcaksGyqb/1ooGa8mMXg0fUlqmMXzXzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcje1NU%2FdJMcaksGyqb%2F1ooGa8mMXg0fUlqmMXzXzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1554&quot; height=&quot;450&quot; data-origin-width=&quot;1554&quot; data-origin-height=&quot;450&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 설정하며 사용한 개념들에 대해서 알아보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GPT로 정리해봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1️⃣ 도메인과 DNS의 기본 개념&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터넷에서 도메인은 &lt;b&gt;사람이 보기 쉬운 주소&lt;/b&gt;이고,&lt;br /&gt;DNS는 그 도메인을 실제 서버(IP)로 연결시켜주는 &lt;b&gt;전화번호부 같은 시스템&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어:&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;memeduck.site &amp;rarr; 52.78.xxx.xxx (CloudFront 서버 IP)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 &amp;ldquo;memeduck.site &amp;rarr; 어디로 연결할지&amp;rdquo;를 기록하는 게 바로 DNS 레코드(record)야.&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2️⃣ A 레코드 (Address Record)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;역할:&lt;/b&gt;&lt;br /&gt;도메인 이름을 IPv4 주소(숫자로 된 서버 주소)로 연결하는 기본 레코드야.&lt;/li&gt;
&lt;li&gt;예시:&lt;/li&gt;
&lt;li&gt;memeduck.site &amp;rarr; 192.0.2.235&lt;/li&gt;
&lt;li&gt;하지만 AWS CloudFront나 S3 같은 경우엔 IP가 고정되어 있지 않음&lt;br /&gt;그래서 직접 IP를 쓰지 않고 &amp;ldquo;Alias&amp;rdquo; 기능을 사용해 CloudFront 배포를 연결 해줌&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;정리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항목 설명&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;대상&lt;/td&gt;
&lt;td&gt;실제 IP나 AWS 리소스(CloudFront, S3 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;용도&lt;/td&gt;
&lt;td&gt;루트 도메인(예: memeduck.site) 연결&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;주의&lt;/td&gt;
&lt;td&gt;CloudFront는 고정 IP가 없으므로 &amp;ldquo;Alias&amp;rdquo; 필수!&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3️⃣ CNAME 레코드 (Canonical Name Record)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;역할:&lt;/b&gt;&lt;br /&gt;&lt;b&gt;다른 도메인에 대한 별명(Alias)&lt;/b&gt; 을 만드는 것&lt;br /&gt;즉, &amp;ldquo;이 주소로 가면 다른 주소랑 똑같이 취급해줘~&amp;rdquo; 하는 개념.&lt;/li&gt;
&lt;li&gt;예시:이제 사용자가 www.memeduck.site로 접속해도&lt;br /&gt;실제로는 memeduck.site로 리다이렉트되도록 해줌&lt;/li&gt;
&lt;li&gt;www.memeduck.site &amp;rarr; memeduck.site&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;정리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항목 설명&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;대상&lt;/td&gt;
&lt;td&gt;다른 도메인 이름&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;용도&lt;/td&gt;
&lt;td&gt;서브도메인 연결용 (www, api, cdn 등)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IP는 없음&lt;/td&gt;
&lt;td&gt;CloudFront나 다른 주소를 참조&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4️⃣ 루트 도메인 (Root Domain)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;의미:&lt;/b&gt;&lt;br /&gt;www 같은 접두어(subdomain)가 없는 도메인.&lt;br /&gt;즉, &lt;b&gt;가장 기본적인 도메인 주소&lt;/b&gt;야.&lt;/li&gt;
&lt;li&gt;예시:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;루트 도메인: memeduck.site&lt;/li&gt;
&lt;li&gt;서브 도메인: www.memeduck.site, api.memeduck.site, cdn.memeduck.site&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;일반적으로 사용자는 www보다 루트 도메인(memeduck.site)으로 접근하니까&lt;br /&gt;CloudFront 배포도 여기에 연결해주는 게 기본이야.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;5️⃣ Alias (AWS 전용 기능)&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;정의:&lt;/b&gt;&lt;br /&gt;AWS Route53에서 제공하는 &lt;b&gt;특수한 A 레코드 확장 기능&lt;/b&gt;.&lt;br /&gt;IP를 직접 입력하지 않아도, &lt;b&gt;CloudFront / S3 / ELB 같은 AWS 리소스&lt;/b&gt;로 직접 연결 가능.&lt;/li&gt;
&lt;li&gt;예시:&lt;/li&gt;
&lt;li&gt;memeduck.site (A 레코드 + Alias ON) &amp;rarr; d2grajanenhj0.cloudfront.net (CloudFront 배포)&lt;/li&gt;
&lt;li&gt;장점:
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CloudFront IP가 바뀌어도 자동 반영됨 (안정적)&lt;/li&gt;
&lt;li&gt;HTTPS 연결 시에도 작동&lt;/li&gt;
&lt;li&gt;추가비용 없음&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;정리&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;항목 설명&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;기능&lt;/td&gt;
&lt;td&gt;A레코드의 확장판 (AWS 리소스로 직접 연결)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;대상&lt;/td&gt;
&lt;td&gt;CloudFront, S3, ELB 등&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;장점&lt;/td&gt;
&lt;td&gt;IP 관리 불필요, SSL 지원, 자동 업데이트&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;정리표&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개념 역할 예시 비고&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;A 레코드&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;도메인을 IP 주소로 연결&lt;/td&gt;
&lt;td&gt;memeduck.site &amp;rarr; 52.x.x.x&lt;/td&gt;
&lt;td&gt;기본 주소 연결&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;CNAME 레코드&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;다른 도메인으로 별칭 지정&lt;/td&gt;
&lt;td&gt;&lt;a href=&quot;http://www.memeduck.site/&quot;&gt;www.memeduck.site&lt;/a&gt; &amp;rarr; memeduck.site&lt;/td&gt;
&lt;td&gt;서브도메인용&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;루트 도메인&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;최상위 도메인&lt;/td&gt;
&lt;td&gt;memeduck.site&lt;/td&gt;
&lt;td&gt;가장 기본 주소&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;Alias&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;CloudFront 등 AWS 리소스에 직접 연결&lt;/td&gt;
&lt;td&gt;memeduck.site &amp;rarr; CloudFront 배포&lt;/td&gt;
&lt;td&gt;AWS 전용 확장 기능&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;  &lt;b&gt;비유하자면:&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;A 레코드&lt;/b&gt; = &amp;ldquo;이 집 주소는 123번지야!&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;CNAME&lt;/b&gt; = &amp;ldquo;이 별칭(www)은 123번지 집을 가리켜!&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;루트 도메인&lt;/b&gt; = &amp;ldquo;동네 중심 주소 (기본 집 이름)&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Alias&lt;/b&gt; = &amp;ldquo;IP 대신 CloudFront 같은 AWS 건물로 바로 연결해주는 자동 네비게이션!&amp;rdquo;&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기에 세부 설정만 하면 s3에 올렸던 프론트 코드까지 뜨게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. AWS S3 콘솔로 들어와서 생성해둔 버켓의 'Permissions' 탭에 'Edit' 버튼을 클릭해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;823&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wPzpX/dJMcafSrNfG/tCm8BOiVskGutJjK6D22a1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wPzpX/dJMcafSrNfG/tCm8BOiVskGutJjK6D22a1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wPzpX/dJMcafSrNfG/tCm8BOiVskGutJjK6D22a1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwPzpX%2FdJMcafSrNfG%2FtCm8BOiVskGutJjK6D22a1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;823&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;823&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 최상위에 있는 'Block all public access' 버튼을 클릭해서 설정을 해제해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;단, 퍼블릭 전체 공개는 보안상 안 좋으니까,&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;614&quot; data-start=&quot;524&quot; data-ke-size=&quot;size16&quot;&gt;곧바로 CloudFront OAC(Origin Access Control)로 접근 제한을 걸어줄것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2005&quot; data-origin-height=&quot;915&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/6pOWE/dJMcagKAr7c/oK3SRKK0RretBYFGCgiMy1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/6pOWE/dJMcagKAr7c/oK3SRKK0RretBYFGCgiMy1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/6pOWE/dJMcagKAr7c/oK3SRKK0RretBYFGCgiMy1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F6pOWE%2FdJMcagKAr7c%2FoK3SRKK0RretBYFGCgiMy1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2005&quot; height=&quot;915&quot; data-origin-width=&quot;2005&quot; data-origin-height=&quot;915&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 다시 S3 콘솔의 bucket을 선택하고, Permissions 탭 하단에 있는 Bucket policy 'Edit' 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;909&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Rsf6v/dJMcae64Fff/Lbefw7yhKut9AkKftB7uzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Rsf6v/dJMcae64Fff/Lbefw7yhKut9AkKftB7uzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Rsf6v/dJMcae64Fff/Lbefw7yhKut9AkKftB7uzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRsf6v%2FdJMcae64Fff%2FLbefw7yhKut9AkKftB7uzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;909&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;909&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. Policy 부분에 아래의 json을 그대로 붙여넣고 하단의 Save changes 버튼을 클릭한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 버켓이름과 cloudfront 배포 id 부분은 수정해야한다.&lt;/p&gt;
&lt;pre id=&quot;code_1762416221035&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;{
  &quot;Version&quot;: &quot;2012-10-17&quot;,
  &quot;Statement&quot;: [
    {
      &quot;Sid&quot;: &quot;AllowCloudFrontServicePrincipalReadOnly&quot;,
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Principal&quot;: {
        &quot;Service&quot;: &quot;cloudfront.amazonaws.com&quot;
      },
      &quot;Action&quot;: &quot;s3:GetObject&quot;,
      &quot;Resource&quot;: &quot;arn:aws:s3:::S3버켓명/*&quot;,
      &quot;Condition&quot;: {
        &quot;StringEquals&quot;: {
          &quot;AWS:SourceArn&quot;: &quot;arn:aws:cloudfront::계정ID:distribution/CLOUDFRONT배포ID&quot;
        }
      }
    }
  ]
}&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1798&quot; data-origin-height=&quot;808&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bBiWx7/dJMcagjwaCk/C3elM6BADV5bU3KX0j7Tq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bBiWx7/dJMcagjwaCk/C3elM6BADV5bU3KX0j7Tq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bBiWx7/dJMcagjwaCk/C3elM6BADV5bU3KX0j7Tq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBiWx7%2FdJMcagjwaCk%2FC3elM6BADV5bU3KX0j7Tq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1798&quot; height=&quot;808&quot; data-origin-width=&quot;1798&quot; data-origin-height=&quot;808&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계정 ID, Cloudfront 배포 ID는 아래 사진처럼 cloudfront 콘솔에서 확인할수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2005&quot; data-origin-height=&quot;783&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Bgrqj/dJMcaj8nQNZ/kLU8zHZuYxutEbPFWAJkfk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Bgrqj/dJMcaj8nQNZ/kLU8zHZuYxutEbPFWAJkfk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Bgrqj/dJMcaj8nQNZ/kLU8zHZuYxutEbPFWAJkfk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBgrqj%2FdJMcaj8nQNZ%2FkLU8zHZuYxutEbPFWAJkfk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2005&quot; height=&quot;783&quot; data-origin-width=&quot;2005&quot; data-origin-height=&quot;783&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. S3 콘솔에서 Properties 탭 최하단에 있는 Static website hosting 우측의 'edit' 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yMm32/dJMcagqhJVk/5o7MDyzyxqNmUImFeKG0C1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yMm32/dJMcagqhJVk/5o7MDyzyxqNmUImFeKG0C1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yMm32/dJMcagqhJVk/5o7MDyzyxqNmUImFeKG0C1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyMm32%2FdJMcagqhJVk%2F5o7MDyzyxqNmUImFeKG0C1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;655&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;363&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BHcno/dJMcaiuRYmW/u83wmLTqVtUMmnEP13S9Yk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BHcno/dJMcaiuRYmW/u83wmLTqVtUMmnEP13S9Yk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BHcno/dJMcaiuRYmW/u83wmLTqVtUMmnEP13S9Yk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBHcno%2FdJMcaiuRYmW%2Fu83wmLTqVtUMmnEP13S9Yk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;363&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;363&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. Enable, Host a static website를 클릭하고 index.html 을 입력해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하단에 redirection 설정이 있는데 그부분은 비워둬도 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;843&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8Mwtw/dJMcaaQ8F94/odxaKfCxOYbkMOFzxGBuyk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8Mwtw/dJMcaaQ8F94/odxaKfCxOYbkMOFzxGBuyk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8Mwtw/dJMcaaQ8F94/odxaKfCxOYbkMOFzxGBuyk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8Mwtw%2FdJMcaaQ8F94%2FodxaKfCxOYbkMOFzxGBuyk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;843&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;843&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;10. Cloudfront 콘솔의 Error pages탭에 'Create custom error response' 버튼을 클릭한다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;407&quot; data-start=&quot;226&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;352&quot; data-start=&quot;226&quot;&gt;/login, /mypage, /signup과 같은 경로에서 새로고침 시&lt;br /&gt;CloudFront가 S3에 해당 경로(artist/3)를 직접 찾으려 하다가 &amp;ldquo;AccessDenied&amp;rdquo; 발생하는 문제 해결.&lt;/li&gt;
&lt;li data-end=&quot;407&quot; data-start=&quot;353&quot;&gt;CloudFront가 403 또는 404 발생 시 index.html로 돌려보내도록 설정.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 두가지를 위해서 설정하는 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;479&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkjVZo/dJMcahbES0r/tgYvzCsFGdW8T9265nkWxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkjVZo/dJMcahbES0r/tgYvzCsFGdW8T9265nkWxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkjVZo/dJMcahbES0r/tgYvzCsFGdW8T9265nkWxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbkjVZo%2FdJMcahbES0r%2FtgYvzCsFGdW8T9265nkWxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;479&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;479&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;11. 403 에러에 대해서 다음 값들을 입력한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1: 403 Forbidden&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2: 0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3: Yes&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4: /index.html&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5: 200 OK&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;907&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kGKKZ/dJMcake9nPP/JRhufx9LdW5mQsbMB7bcy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kGKKZ/dJMcake9nPP/JRhufx9LdW5mQsbMB7bcy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kGKKZ/dJMcake9nPP/JRhufx9LdW5mQsbMB7bcy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkGKKZ%2FdJMcake9nPP%2FJRhufx9LdW5mQsbMB7bcy0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;907&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;907&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;404 도 똑같이 만들어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;12. 혹시, Cloudfront 콘솔에서 아래 사진처럼 Default root object가 설정되어있지 않다면, edit를 눌러서 'index.html' 로 수정해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;937&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bPZAyy/dJMcacnSRX0/y8eEk7ufAKPL9kYa5vVH00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bPZAyy/dJMcacnSRX0/y8eEk7ufAKPL9kYa5vVH00/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bPZAyy/dJMcacnSRX0/y8eEk7ufAKPL9kYa5vVH00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbPZAyy%2FdJMcacnSRX0%2Fy8eEk7ufAKPL9kYa5vVH00%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;937&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;937&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기까지 해주면 원래 크롬에서 접속이 가능해야하는데 나는 계속 Access Denied가 떴다ㅠ 확인해보니 S3에 파일을 잘못올려서 그랬는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 사진처럼 버켓의 루트에 index.html이 있도록 올려줘야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음에 업로드 할 때 upload folder로 dist폴더 자체를 넣어버려서 안됐던거였다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2707&quot; data-origin-height=&quot;821&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AlvuO/dJMcabic5F4/GyHN3Xz0EsiUMyePKvvIAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AlvuO/dJMcabic5F4/GyHN3Xz0EsiUMyePKvvIAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AlvuO/dJMcabic5F4/GyHN3Xz0EsiUMyePKvvIAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAlvuO%2FdJMcabic5F4%2FGyHN3Xz0EsiUMyePKvvIAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2707&quot; height=&quot;821&quot; data-origin-width=&quot;2707&quot; data-origin-height=&quot;821&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;925&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JO3B8/dJMcagqhKgo/onYPzGRglHo7FknkywnuPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JO3B8/dJMcagqhKgo/onYPzGRglHo7FknkywnuPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JO3B8/dJMcagqhKgo/onYPzGRglHo7FknkywnuPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJO3B8%2FdJMcagqhKgo%2FonYPzGRglHo7FknkywnuPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2879&quot; height=&quot;925&quot; data-origin-width=&quot;2879&quot; data-origin-height=&quot;925&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;짠 크롬에서 접속하면 &lt;a href=&quot;http://www.duckon.site&quot;&gt;www.duckon.site&amp;nbsp;&lt;/a&gt; duckon.site 다 잘 뜬다!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 api 연결을 하려면 몇가지 더 설정을 해야하는데... 그건 다음 글로 써보겠다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Infra</category>
      <category>AWS</category>
      <category>awscloudfront</category>
      <category>CloudFront</category>
      <category>dns</category>
      <category>duckon</category>
      <category>React</category>
      <category>React배포</category>
      <category>Route53</category>
      <category>s3</category>
      <category>가비아</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/84</guid>
      <comments>https://bba-jin.tistory.com/84#entry84comment</comments>
      <pubDate>Thu, 6 Nov 2025 17:41:49 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] CloudFront로 React 정적배포하기 - 6. ACM 인증서 검증 및 Cloudfront 연결</title>
      <link>https://bba-jin.tistory.com/83</link>
      <description>&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를&lt;span&gt;&amp;nbsp;&lt;/span&gt;배포하는 과정을 기록해보려고 한다.&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;글은 2025년 11월 기준 aws 콘솔이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq8QLk/dJMcaklUX33/Yabf5SVXJo52MsWQhMPkC1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq8QLk/dJMcaklUX33/Yabf5SVXJo52MsWQhMPkC1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq8QLk/dJMcaklUX33/Yabf5SVXJo52MsWQhMPkC1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq8QLk%2FdJMcaklUX33%2FYabf5SVXJo52MsWQhMPkC1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;300&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이전 글 확인하기&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/78&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/79&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 2. Route 53 설정하기&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/80&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 3. AWS Certificate Manager ACM인증서 발급&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/81&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 4. S3 버킷 생성 및 설정&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/82&quot;&gt;[AWS] CloudFront React 정적배포하기 - 5. Cloudfront 배포&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. Route53 콘솔에서 'Create record' 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;620&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEaLMH/dJMcaklUX49/2gHyr1dvm2EPhDIDhr3bqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEaLMH/dJMcaklUX49/2gHyr1dvm2EPhDIDhr3bqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEaLMH/dJMcaklUX49/2gHyr1dvm2EPhDIDhr3bqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEaLMH%2FdJMcaklUX49%2F2gHyr1dvm2EPhDIDhr3bqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;738&quot; height=&quot;254&quot; data-origin-width=&quot;1800&quot; data-origin-height=&quot;620&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. AWS Certificate Manager 콘솔에서 CNAME name, CNAME value 두 쌍이 있을 것이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 쌍을 두번 route 53에 입력해줄 것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1730&quot; data-origin-height=&quot;674&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pD8j9/dJMcacIbGgd/mZRK4of1joarRt04A8TxB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pD8j9/dJMcacIbGgd/mZRK4of1joarRt04A8TxB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pD8j9/dJMcacIbGgd/mZRK4of1joarRt04A8TxB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpD8j9%2FdJMcacIbGgd%2FmZRK4of1joarRt04A8TxB0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;775&quot; height=&quot;302&quot; data-origin-width=&quot;1730&quot; data-origin-height=&quot;674&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 아래와 같아 Route53 create record 창에서 값을 넣어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1: ACM의 첫번째 CNAME name 값. 이때 그대로 복사해오면 뒤에 도메인이 붙어있을 수 있다. 중복되지 않게 제거해주도록 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2: CNAME 선택&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3: Alias 사용 끄기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4: CNAME value&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;857&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFL0SU/dJMcadUDcnQ/T0y6krT4lfl46FMEC3N5mk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFL0SU/dJMcadUDcnQ/T0y6krT4lfl46FMEC3N5mk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFL0SU/dJMcadUDcnQ/T0y6krT4lfl46FMEC3N5mk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFL0SU%2FdJMcadUDcnQ%2FT0y6krT4lfl46FMEC3N5mk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;760&quot; height=&quot;326&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;857&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;똑같이 ACM의 두번째 CNAME name, value 값을 새로운 route53 레코드를 추가해서 넣어주면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두번째 레코드에서는 CNAME name 부분에 www까지만 오도록 설정해주었다. (뒤에 .memeduck.site 는 자동으로 붙으니까!)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;827&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nGgbN/dJMcaawPS31/ADDjVWuJ5VwSunWropljf1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nGgbN/dJMcaawPS31/ADDjVWuJ5VwSunWropljf1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nGgbN/dJMcaawPS31/ADDjVWuJ5VwSunWropljf1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnGgbN%2FdJMcaawPS31%2FADDjVWuJ5VwSunWropljf1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;756&quot; height=&quot;313&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;827&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 설정을 해주고 조금 기다리면 AWS Certificate Manager 에서 Pending이었던 status가&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1814&quot; data-origin-height=&quot;665&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXfrOI/dJMcagX7HRv/NOn19wl0p1CdoKcD0bzc81/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXfrOI/dJMcagX7HRv/NOn19wl0p1CdoKcD0bzc81/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXfrOI/dJMcagX7HRv/NOn19wl0p1CdoKcD0bzc81/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXfrOI%2FdJMcagX7HRv%2FNOn19wl0p1CdoKcD0bzc81%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;743&quot; height=&quot;272&quot; data-origin-width=&quot;1814&quot; data-origin-height=&quot;665&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래처럼 바뀐다. 다 바뀌는데 시간이 좀 걸려서 기다려야한다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;747&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ejuaFC/dJMcaaDBqyU/c4pg2n6oHYUsyJqbmBq6kk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ejuaFC/dJMcaaDBqyU/c4pg2n6oHYUsyJqbmBq6kk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ejuaFC/dJMcaaDBqyU/c4pg2n6oHYUsyJqbmBq6kk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FejuaFC%2FdJMcaaDBqyU%2Fc4pg2n6oHYUsyJqbmBq6kk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;790&quot; height=&quot;295&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;747&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 &lt;a href=&quot;http://memeduck.site는&quot;&gt;memeduck.site&lt;/a&gt; 는 바로 됐는데, &lt;a href=&quot;http://www.memeduck.site는&quot;&gt;www.memeduck.site &lt;/a&gt;&amp;nbsp;는 success 될때 까지 15분정도 걸린것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 아래단계를 미리 진행했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. CloudFront 콘솔에서 사이트를 위해 만든 distribution을 클릭하고, 중앙에 있는 Add domain 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1825&quot; data-origin-height=&quot;728&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdaGVL/dJMcaaDBqxB/w0KgcXi3BrX82aTKmfs4L1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdaGVL/dJMcaaDBqxB/w0KgcXi3BrX82aTKmfs4L1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdaGVL/dJMcaaDBqxB/w0KgcXi3BrX82aTKmfs4L1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdaGVL%2FdJMcaaDBqxB%2Fw0KgcXi3BrX82aTKmfs4L1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;760&quot; height=&quot;303&quot; data-origin-width=&quot;1825&quot; data-origin-height=&quot;728&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Domains to serve 부분에 www가 붙은 도메인과 붙지 않은 루트 도메인 두개를 넣어준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;585&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bYWe9L/dJMcah3Nz49/jh4TjunFUDWVoDBv1B1XFk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bYWe9L/dJMcah3Nz49/jh4TjunFUDWVoDBv1B1XFk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bYWe9L/dJMcah3Nz49/jh4TjunFUDWVoDBv1B1XFk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbYWe9L%2FdJMcah3Nz49%2Fjh4TjunFUDWVoDBv1B1XFk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;730&quot; height=&quot;214&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;585&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 위 3번 단계의 status가 다 success가 됐다면, 이렇게 자동으로 생성한 acm 이 뜬다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상적으로 뜬다면 우측 하단의 next 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;699&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Aj84T/dJMcagqhIWn/CEeJrk5thhYutfSNEoyGuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Aj84T/dJMcagqhIWn/CEeJrk5thhYutfSNEoyGuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Aj84T/dJMcagqhIWn/CEeJrk5thhYutfSNEoyGuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAj84T%2FdJMcagqhIWn%2FCEeJrk5thhYutfSNEoyGuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;777&quot; height=&quot;272&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;699&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 다음 페이지에선 설정할건 없고 확인하는 창이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우하단의 Add domains 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1770&quot; data-origin-height=&quot;560&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/m7BJZ/dJMcacalHiO/ASOmohuxCgIPkkGkWjeRq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/m7BJZ/dJMcacalHiO/ASOmohuxCgIPkkGkWjeRq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/m7BJZ/dJMcacalHiO/ASOmohuxCgIPkkGkWjeRq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fm7BJZ%2FdJMcacalHiO%2FASOmohuxCgIPkkGkWjeRq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;781&quot; height=&quot;247&quot; data-origin-width=&quot;1770&quot; data-origin-height=&quot;560&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 단계는 마지막으로!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Route53에서 A alias 레코드를 설정할 것이다. 다음단계까지만 하면 배포 끝!&lt;/p&gt;</description>
      <category>Infra</category>
      <category>acm</category>
      <category>AWS</category>
      <category>awscertificatemanager</category>
      <category>aws정적배포</category>
      <category>CloudFront</category>
      <category>memeduck</category>
      <category>React</category>
      <category>react정적배포</category>
      <category>Route53</category>
      <category>s3</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/83</guid>
      <comments>https://bba-jin.tistory.com/83#entry83comment</comments>
      <pubDate>Thu, 6 Nov 2025 16:06:36 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] CloudFront React 정적배포하기 - 5. Cloudfront 배포</title>
      <link>https://bba-jin.tistory.com/82</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글은 2025년 11월 기준 aws 콘솔이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cf0AUY/dJMcaaQ8CmY/sMcXgsZEZCcMfJaE5EZbhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cf0AUY/dJMcaaQ8CmY/sMcXgsZEZCcMfJaE5EZbhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cf0AUY/dJMcaaQ8CmY/sMcXgsZEZCcMfJaE5EZbhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcf0AUY%2FdJMcaaQ8CmY%2FsMcXgsZEZCcMfJaE5EZbhK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;300&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;300&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 글 확인하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/78&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/79&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 2. Route 53 설정하기&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/80&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 3. AWS Certificate Manager ACM인증서 발급&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;background-color: #ffffff; color: #1e1f21; text-align: start;&quot; href=&quot;https://bba-jin.tistory.com/81&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 4. S3 버킷 생성 및 설정&lt;/a&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. AWS console에서 cloudfront 에 접속한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cloudfront는 region이 global로 뜨는게 맞다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우측에 Create distribution 버튼을 클릭해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1719&quot; data-origin-height=&quot;380&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ex499/dJMcagw3fWg/UdmqKYTTh5DTcYIoeT4bQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ex499/dJMcagw3fWg/UdmqKYTTh5DTcYIoeT4bQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ex499/dJMcagw3fWg/UdmqKYTTh5DTcYIoeT4bQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEx499%2FdJMcagw3fWg%2FUdmqKYTTh5DTcYIoeT4bQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1719&quot; height=&quot;380&quot; data-origin-width=&quot;1719&quot; data-origin-height=&quot;380&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 아래의 정보들을 입력하고 하단의 Next 버튼을 클릭해준다. 회색은 선택값!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1: cloudfront distribution 이름&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2: 부가 설명 (선택)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3: React는 Single website or app 기본 설정 그대로 두면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4: 이 칸은 비워둬야한다! 우리는 route 53 Hosted zone이 있기때문에, 비워둬야함!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5: 태그는 선택사항.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1214&quot; data-origin-height=&quot;1083&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mHEtH/dJMcahCJbbn/j9EsaHYvvD6MK8oU8DtIPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mHEtH/dJMcahCJbbn/j9EsaHYvvD6MK8oU8DtIPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mHEtH/dJMcahCJbbn/j9EsaHYvvD6MK8oU8DtIPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmHEtH%2FdJMcahCJbbn%2Fj9EsaHYvvD6MK8oU8DtIPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1214&quot; height=&quot;1083&quot; data-origin-width=&quot;1214&quot; data-origin-height=&quot;1083&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. Origin 설정해주는 화면. Amazon S3 &amp;gt; Browse S3 버튼을 클릭해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1380&quot; data-origin-height=&quot;743&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DQNgj/dJMcakzr7i8/Yz3aG5bWgAZ9eKaBNsKzbK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DQNgj/dJMcakzr7i8/Yz3aG5bWgAZ9eKaBNsKzbK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DQNgj/dJMcakzr7i8/Yz3aG5bWgAZ9eKaBNsKzbK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDQNgj%2FdJMcakzr7i8%2FYz3aG5bWgAZ9eKaBNsKzbK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1380&quot; height=&quot;743&quot; data-origin-width=&quot;1380&quot; data-origin-height=&quot;743&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 아래와같이 이전에 생성했던 S3 버켓이 보인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 버킷을 클릭하고 우하단의 Choose 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1301&quot; data-origin-height=&quot;679&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bA0Kls/dJMcag4TcNU/J1NCWzUuVmJKla2444DQak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bA0Kls/dJMcag4TcNU/J1NCWzUuVmJKla2444DQak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bA0Kls/dJMcag4TcNU/J1NCWzUuVmJKla2444DQak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbA0Kls%2FdJMcag4TcNU%2FJ1NCWzUuVmJKla2444DQak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1301&quot; height=&quot;679&quot; data-origin-width=&quot;1301&quot; data-origin-height=&quot;679&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 이제 다른 설정들은 그대로 두면 되는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 'Allow private S3 bucket access to CloudFront' 부분은 꼭 체크가 돼있는걸 확인하자.&lt;/p&gt;
&lt;p data-end=&quot;586&quot; data-start=&quot;474&quot; data-ke-size=&quot;size16&quot;&gt;이걸 체크하면 CloudFront가 자동으로 &lt;b&gt;OAC(Origin Access Control)&lt;/b&gt; 을 생성해서&lt;br /&gt;S3 버킷을 &amp;ldquo;CloudFront만 읽을 수 있게&amp;rdquo; 만들어주고, 내부적으로&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;675&quot; data-start=&quot;609&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;626&quot; data-start=&quot;609&quot;&gt;새 OAC가 자동 생성됨&lt;/li&gt;
&lt;li data-end=&quot;675&quot; data-start=&quot;627&quot;&gt;S3 버킷 정책에 필요한 JSON을 자동 제안 (다음 단계에서 복사/붙여넣기 가능)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 설정이 된다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;984&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bEnu1J/dJMcaklUWz7/RUNdVlktty6f5HiqoWd3z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bEnu1J/dJMcaklUWz7/RUNdVlktty6f5HiqoWd3z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bEnu1J/dJMcaklUWz7/RUNdVlktty6f5HiqoWd3z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEnu1J%2FdJMcaklUWz7%2FRUNdVlktty6f5HiqoWd3z1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1058&quot; height=&quot;984&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;984&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. security 설정이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Enable security protections를 선택하면 월에 약 $14 정도가 부과된다고 한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 27.3256%;&quot;&gt;&lt;b&gt;Enable security protections&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.2791%;&quot;&gt;SQL injection, XSS, 봇, IP 차단 등 일반적인 웹 공격 방어. AWS가 관리하는 룰셋을 자동 적용.&lt;/td&gt;
&lt;td style=&quot;width: 21.2791%;&quot;&gt;유료 (대략 &lt;b&gt;$14/1000만 요청당/월&lt;/b&gt;)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 27.3256%;&quot;&gt;&lt;b&gt;Do not enable security protections&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 51.2791%;&quot;&gt;단순 정적 사이트일 경우 방화벽 생략. CloudFront만 사용.&lt;/td&gt;
&lt;td style=&quot;width: 21.2791%;&quot;&gt;무료&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;544&quot; data-start=&quot;482&quot;&gt;MemeDuck 프론트는 &lt;b&gt;정적 사이트(SPA)&lt;/b&gt; 로, 서버 API나 로그인 요청을 직접 받지 않음.&lt;/li&gt;
&lt;li data-end=&quot;596&quot; data-start=&quot;545&quot;&gt;공격 표면이 거의 없기 때문에, CloudFront + HTTPS만으로 충분히 안전.&lt;/li&gt;
&lt;li data-end=&quot;657&quot; data-start=&quot;597&quot;&gt;WAF는 나중에 백엔드 API (예: ALB, API Gateway) 앞단에서 쓰는 게 효과적&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 위와같은 이유로 Do not enable security protections 를 선택했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure data-ke-type=&quot;image&quot; data-ke-style=&quot;alignCenter&quot; data-ke-mobilestyle=&quot;widthOrigin&quot;&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2392&quot; data-origin-height=&quot;636&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCaoJ9/dJMb99YZRyi/noxU4Fy1KWxyaq1ZTPN7iK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCaoJ9/dJMb99YZRyi/noxU4Fy1KWxyaq1ZTPN7iK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCaoJ9/dJMb99YZRyi/noxU4Fy1KWxyaq1ZTPN7iK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCaoJ9%2FdJMb99YZRyi%2FnoxU4Fy1KWxyaq1ZTPN7iK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2392&quot; height=&quot;636&quot; data-origin-width=&quot;2392&quot; data-origin-height=&quot;636&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. Distribution 생성하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 입력한 설정들을 확인해주는 화면이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모두 맞게 되어있으면 Create distribution 버튼 클릭!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1727&quot; data-origin-height=&quot;883&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byua29/dJMcacVINnh/S9THRpcoc659JSuaqanqtK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byua29/dJMcacVINnh/S9THRpcoc659JSuaqanqtK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byua29/dJMcacVINnh/S9THRpcoc659JSuaqanqtK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbyua29%2FdJMcacVINnh%2FS9THRpcoc659JSuaqanqtK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1727&quot; height=&quot;883&quot; data-origin-width=&quot;1727&quot; data-origin-height=&quot;883&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 생성 후 조금 기다리면, logging 탭에서 Distribution status가 enabled로 바뀐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;General에 있는 d123abcde.cloudfront.net 같은 도메인이 생기고, 여길 들어가보면&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1618&quot; data-origin-height=&quot;650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/wnHaz/dJMcaj1B86b/ZZZygtJPacndUPqfttkIRk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/wnHaz/dJMcaj1B86b/ZZZygtJPacndUPqfttkIRk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/wnHaz/dJMcaj1B86b/ZZZygtJPacndUPqfttkIRk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwnHaz%2FdJMcaj1B86b%2FZZZygtJPacndUPqfttkIRk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1618&quot; height=&quot;650&quot; data-origin-width=&quot;1618&quot; data-origin-height=&quot;650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런식으로 Access Denied가 뜬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아직 설정을 다 안해줬으니까 이렇게 뜨는게 맞다. 그럼 마저 설정하러 가보자!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1752&quot; data-origin-height=&quot;483&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/35UBv/dJMcaacw1Z5/kREaP2uwpqsEKsLioNLBBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/35UBv/dJMcaacw1Z5/kREaP2uwpqsEKsLioNLBBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/35UBv/dJMcaacw1Z5/kREaP2uwpqsEKsLioNLBBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F35UBv%2FdJMcaacw1Z5%2FkREaP2uwpqsEKsLioNLBBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1752&quot; height=&quot;483&quot; data-origin-width=&quot;1752&quot; data-origin-height=&quot;483&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 단계로 넘어가기 전에, dns 전파가 완료됐는지 확인해야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로컬 cli 아무데에나 아래 코드를 쳐서 가비아에 등록한 route53 네임서버가 뜨는지 확인해보자.&lt;/p&gt;
&lt;pre id=&quot;code_1762408776490&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nslookup -type=ns memeduck.site 8.8.8.8

nslookup -type=ns memeduck.site&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;1125&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/btw8dI/dJMb995LuLg/8BDCzOqIT4GLqpdKyS71J1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/btw8dI/dJMb995LuLg/8BDCzOqIT4GLqpdKyS71J1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/btw8dI/dJMb995LuLg/8BDCzOqIT4GLqpdKyS71J1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbtw8dI%2FdJMb995LuLg%2F8BDCzOqIT4GLqpdKyS71J1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1436&quot; height=&quot;1125&quot; data-origin-width=&quot;1436&quot; data-origin-height=&quot;1125&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 단계에서 acm 인증서를 검증하고, cloudfront와 연결할것이다.&lt;/p&gt;</description>
      <category>Infra</category>
      <category>acm</category>
      <category>AWS</category>
      <category>awscm</category>
      <category>aws정적배포</category>
      <category>CloudFront</category>
      <category>duckon</category>
      <category>memeduck</category>
      <category>React</category>
      <category>Route53</category>
      <category>s3</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/82</guid>
      <comments>https://bba-jin.tistory.com/82#entry82comment</comments>
      <pubDate>Thu, 6 Nov 2025 15:21:42 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] CloudFront로 React 정적배포하기 - 4. S3 버킷 생성 및 설정</title>
      <link>https://bba-jin.tistory.com/81</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;글은 2025년 11월 기준 aws 콘솔이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sOX5X/dJMcafx8Yhb/BAuYZBVQkukwJbxhfpvcAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sOX5X/dJMcafx8Yhb/BAuYZBVQkukwJbxhfpvcAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sOX5X/dJMcafx8Yhb/BAuYZBVQkukwJbxhfpvcAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsOX5X%2FdJMcafx8Yhb%2FBAuYZBVQkukwJbxhfpvcAk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;420&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 글 확인하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/78&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bba-jin.tistory.com/78&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762402215728&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&quot; data-og-description=&quot;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 1. 가비아에서 도메인 구매하기1. 가비아에서 구매할 도메인을 검색해본다. 마음에 드는 도&quot; data-og-host=&quot;bba-jin.tistory.com&quot; data-og-source-url=&quot;https://bba-jin.tistory.com/78&quot; data-og-url=&quot;https://bba-jin.tistory.com/78&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bTo3W6/hyZM5fWcRr/HwnnXIJ81JXcWYBSWv52H0/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/bzJWNy/hyZNcMT42W/Uh83TlENJSL2tlbShDiNjk/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/cy0OFC/hyZMt2gGfY/2aG0x0wIp3vwXAvTEkc6lk/img.png?width=750&amp;amp;height=442&amp;amp;face=0_0_750_442&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/78&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bba-jin.tistory.com/78&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bTo3W6/hyZM5fWcRr/HwnnXIJ81JXcWYBSWv52H0/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/bzJWNy/hyZNcMT42W/Uh83TlENJSL2tlbShDiNjk/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/cy0OFC/hyZMt2gGfY/2aG0x0wIp3vwXAvTEkc6lk/img.png?width=750&amp;amp;height=442&amp;amp;face=0_0_750_442');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 1. 가비아에서 도메인 구매하기1. 가비아에서 구매할 도메인을 검색해본다. 마음에 드는 도&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bba-jin.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/79&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bba-jin.tistory.com/79&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762402229418&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[AWS] CloudFront로 React 정적배포하기 - 2. Route 53 설정하기&quot; data-og-description=&quot;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 이전 글인 가비아 도메인 구매하는 방법은 아래 글에 자세히 적어두었다. https://bba-jin.tistory&quot; data-og-host=&quot;bba-jin.tistory.com&quot; data-og-source-url=&quot;https://bba-jin.tistory.com/79&quot; data-og-url=&quot;https://bba-jin.tistory.com/79&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cfDGs5/hyZMZ7SMOR/bouxqLjrGrhb7EOlH4bK5K/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/CZIE2/hyZM0yXvBG/b9AOkGulawCHFlCjVp4tL1/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/cktNEk/hyZNdrvAnK/mPq4S2vNubSMEkAKNUNy7K/img.png?width=1449&amp;amp;height=785&amp;amp;face=0_0_1449_785&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/79&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bba-jin.tistory.com/79&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cfDGs5/hyZMZ7SMOR/bouxqLjrGrhb7EOlH4bK5K/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/CZIE2/hyZM0yXvBG/b9AOkGulawCHFlCjVp4tL1/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/cktNEk/hyZNdrvAnK/mPq4S2vNubSMEkAKNUNy7K/img.png?width=1449&amp;amp;height=785&amp;amp;face=0_0_1449_785');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 2. Route 53 설정하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 이전 글인 가비아 도메인 구매하는 방법은 아래 글에 자세히 적어두었다. https://bba-jin.tistory&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bba-jin.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/80&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bba-jin.tistory.com/80&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762402236203&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[AWS] CloudFront로 React 정적배포하기 - 3. AWS Certificate Manager ACM인증서 발급&quot; data-og-description=&quot;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 이전 글 확인하기 https://bba-jin.tistory.com/78 [AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메&quot; data-og-host=&quot;bba-jin.tistory.com&quot; data-og-source-url=&quot;https://bba-jin.tistory.com/80&quot; data-og-url=&quot;https://bba-jin.tistory.com/80&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hkpXu/hyZMId2MqT/dxpxbx4QzYU8a7DN1MJKkk/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/b4Lznj/hyZNaIjjGv/mXUl6FJfnJMk7bsde9rET0/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/w9Xof/hyZM60dFWB/esF2lhnCKIZaQaNbnQFKbK/img.png?width=1131&amp;amp;height=1082&amp;amp;face=0_0_1131_1082&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/80&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bba-jin.tistory.com/80&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hkpXu/hyZMId2MqT/dxpxbx4QzYU8a7DN1MJKkk/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/b4Lznj/hyZNaIjjGv/mXUl6FJfnJMk7bsde9rET0/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/w9Xof/hyZM60dFWB/esF2lhnCKIZaQaNbnQFKbK/img.png?width=1131&amp;amp;height=1082&amp;amp;face=0_0_1131_1082');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 3. AWS Certificate Manager ACM인증서 발급&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 이전 글 확인하기 https://bba-jin.tistory.com/78 [AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bba-jin.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. AWS Console 에서 S3 서비스로 이동한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때, ACM 인증서 만들 때 바꿨던 Region을 꼭 Seoul로 바꿔주자!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-start=&quot;650&quot; data-end=&quot;718&quot;&gt;CloudFront는 전역 서비스지만&lt;br /&gt;버킷은 실제 파일 저장 위치가 한국 리전인 게 더 효율적임.&lt;/li&gt;
&lt;li data-start=&quot;721&quot; data-end=&quot;757&quot;&gt;다른 리전에 만들어도 동작은 하지만 지연과 관리가 번거로워짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'General purpose buckets', 'Directory buckets'가 있는데 전자를 선택해준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Directory buckets는 새로나온 S3 Express One Zone인데 CloudFront연결이 안되고 아직은 실험적이라고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉,&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Directory bucket은 CloudFront에서 인식도 안 됨&lt;/b&gt;,&lt;br /&gt;정적 파일 배포 목적이면 무조건&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;General purpose bucket&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;써야 함!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1650&quot; data-origin-height=&quot;792&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Hfx3X/dJMcahJuBKR/SZbeAKhq80JQmaecZwSEPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Hfx3X/dJMcahJuBKR/SZbeAKhq80JQmaecZwSEPK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Hfx3X/dJMcahJuBKR/SZbeAKhq80JQmaecZwSEPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FHfx3X%2FdJMcahJuBKR%2FSZbeAKhq80JQmaecZwSEPK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1650&quot; height=&quot;792&quot; data-origin-width=&quot;1650&quot; data-origin-height=&quot;792&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Bucket name에 원하는 이름 입력하기.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기 말고 아래 부분은 모두 기본 셋팅으로 두면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 Bucket Versioning 부분만 Enable로 바꿔줬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2467&quot; data-origin-height=&quot;900&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kMFjG/dJMcaboYt7S/kTPhEgqGkcXScpVUkLiiK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kMFjG/dJMcaboYt7S/kTPhEgqGkcXScpVUkLiiK0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kMFjG/dJMcaboYt7S/kTPhEgqGkcXScpVUkLiiK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkMFjG%2FdJMcaboYt7S%2FkTPhEgqGkcXScpVUkLiiK0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2467&quot; height=&quot;900&quot; data-origin-width=&quot;2467&quot; data-origin-height=&quot;900&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 아래와같이 버켓이 생성된걸 확인할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 버킷을 클릭해서 들어가자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CICD 설정을 하기 전에, 우선 사이트 배포를 확인하기 위해 현재 있는 프론트엔드 파일을 업로드할것이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1609&quot; data-origin-height=&quot;842&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CIbVU/dJMcaezeGw8/ZX1vAwM0DfTfnXlLqXiav0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CIbVU/dJMcaezeGw8/ZX1vAwM0DfTfnXlLqXiav0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CIbVU/dJMcaezeGw8/ZX1vAwM0DfTfnXlLqXiav0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCIbVU%2FdJMcaezeGw8%2FZX1vAwM0DfTfnXlLqXiav0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1609&quot; height=&quot;842&quot; data-origin-width=&quot;1609&quot; data-origin-height=&quot;842&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 업로드 버튼 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;473&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oJaWl/dJMcajUQxIz/GqpfhDNu8FGxlsHEQ2ImIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oJaWl/dJMcajUQxIz/GqpfhDNu8FGxlsHEQ2ImIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oJaWl/dJMcajUQxIz/GqpfhDNu8FGxlsHEQ2ImIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoJaWl%2FdJMcajUQxIz%2FGqpfhDNu8FGxlsHEQ2ImIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1488&quot; height=&quot;473&quot; data-origin-width=&quot;1488&quot; data-origin-height=&quot;473&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 프론트엔드 프로젝트에서 npm run build 를 통해 dist 폴더를 만들어준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1830&quot; data-origin-height=&quot;573&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bV7nQj/dJMcaihkIrY/FK5LSO6Lkg5z4vKrOmhqd0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bV7nQj/dJMcaihkIrY/FK5LSO6Lkg5z4vKrOmhqd0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bV7nQj/dJMcaihkIrY/FK5LSO6Lkg5z4vKrOmhqd0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbV7nQj%2FdJMcaihkIrY%2FFK5LSO6Lkg5z4vKrOmhqd0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1830&quot; height=&quot;573&quot; data-origin-width=&quot;1830&quot; data-origin-height=&quot;573&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 디렉토리에서 npm run build를 하면 아래와 같이 dist 폴더가 생성된 것을 확인할 수있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;903&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nsitQ/dJMcaacw0VA/PCGWTSvyEhRrllnPMmOhm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nsitQ/dJMcaacw0VA/PCGWTSvyEhRrllnPMmOhm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nsitQ/dJMcaacw0VA/PCGWTSvyEhRrllnPMmOhm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnsitQ%2FdJMcaacw0VA%2FPCGWTSvyEhRrllnPMmOhm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;672&quot; height=&quot;644&quot; data-origin-width=&quot;942&quot; data-origin-height=&quot;903&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 버킷 콘솔에서 Add folder 버튼을 눌러 위에서 만들어진 dist를 선택하고 하단의 upload 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1738&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFro8z/dJMcab3z5sT/aBroCYkm4VnoAdu4z8UIK1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFro8z/dJMcab3z5sT/aBroCYkm4VnoAdu4z8UIK1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFro8z/dJMcab3z5sT/aBroCYkm4VnoAdu4z8UIK1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFro8z%2FdJMcab3z5sT%2FaBroCYkm4VnoAdu4z8UIK1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1738&quot; height=&quot;604&quot; data-origin-width=&quot;1738&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. S3 버킷에 dist 폴더 파일들이 잘 올라간 것을 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;789&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/XIqm3/dJMcabP2TW7/KPzDnksznBItJYKF0QX5Q1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/XIqm3/dJMcabP2TW7/KPzDnksznBItJYKF0QX5Q1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/XIqm3/dJMcabP2TW7/KPzDnksznBItJYKF0QX5Q1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXIqm3%2FdJMcabP2TW7%2FKPzDnksznBItJYKF0QX5Q1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2000&quot; height=&quot;789&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;789&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Infra</category>
      <category>AWS</category>
      <category>awsconsole</category>
      <category>CloudFront</category>
      <category>duckon</category>
      <category>memeduck</category>
      <category>React</category>
      <category>Route53</category>
      <category>s3</category>
      <category>SAA</category>
      <category>가비아</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/81</guid>
      <comments>https://bba-jin.tistory.com/81#entry81comment</comments>
      <pubDate>Thu, 6 Nov 2025 13:14:51 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] CloudFront로 React 정적배포하기 - 3. AWS Certificate Manager ACM인증서 발급</title>
      <link>https://bba-jin.tistory.com/80</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;글은 2025년 11월 기준 aws 콘솔이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mI9v5/dJMcaiIo2M5/KdqpKbzz0qkKqr6tfqSDPk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mI9v5/dJMcaiIo2M5/KdqpKbzz0qkKqr6tfqSDPk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mI9v5/dJMcaiIo2M5/KdqpKbzz0qkKqr6tfqSDPk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmI9v5%2FdJMcaiIo2M5%2FKdqpKbzz0qkKqr6tfqSDPk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;420&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 글 확인하기&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/78&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bba-jin.tistory.com/78&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762402069629&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&quot; data-og-description=&quot;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 1. 가비아에서 도메인 구매하기1. 가비아에서 구매할 도메인을 검색해본다. 마음에 드는 도&quot; data-og-host=&quot;bba-jin.tistory.com&quot; data-og-source-url=&quot;https://bba-jin.tistory.com/78&quot; data-og-url=&quot;https://bba-jin.tistory.com/78&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bTo3W6/hyZM5fWcRr/HwnnXIJ81JXcWYBSWv52H0/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/bzJWNy/hyZNcMT42W/Uh83TlENJSL2tlbShDiNjk/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/cy0OFC/hyZMt2gGfY/2aG0x0wIp3vwXAvTEkc6lk/img.png?width=750&amp;amp;height=442&amp;amp;face=0_0_750_442&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/78&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bba-jin.tistory.com/78&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bTo3W6/hyZM5fWcRr/HwnnXIJ81JXcWYBSWv52H0/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/bzJWNy/hyZNcMT42W/Uh83TlENJSL2tlbShDiNjk/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/cy0OFC/hyZMt2gGfY/2aG0x0wIp3vwXAvTEkc6lk/img.png?width=750&amp;amp;height=442&amp;amp;face=0_0_750_442');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 1. 가비아에서 도메인 구매하기1. 가비아에서 구매할 도메인을 검색해본다. 마음에 드는 도&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bba-jin.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/79&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bba-jin.tistory.com/79&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762402085258&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[AWS] CloudFront로 React 정적배포하기 - 2. Route 53 설정하기&quot; data-og-description=&quot;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 이전 글인 가비아 도메인 구매하는 방법은 아래 글에 자세히 적어두었다. https://bba-jin.tistory&quot; data-og-host=&quot;bba-jin.tistory.com&quot; data-og-source-url=&quot;https://bba-jin.tistory.com/79&quot; data-og-url=&quot;https://bba-jin.tistory.com/79&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cfDGs5/hyZMZ7SMOR/bouxqLjrGrhb7EOlH4bK5K/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/CZIE2/hyZM0yXvBG/b9AOkGulawCHFlCjVp4tL1/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/cktNEk/hyZNdrvAnK/mPq4S2vNubSMEkAKNUNy7K/img.png?width=1449&amp;amp;height=785&amp;amp;face=0_0_1449_785&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/79&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bba-jin.tistory.com/79&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cfDGs5/hyZMZ7SMOR/bouxqLjrGrhb7EOlH4bK5K/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/CZIE2/hyZM0yXvBG/b9AOkGulawCHFlCjVp4tL1/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/cktNEk/hyZNdrvAnK/mPq4S2vNubSMEkAKNUNy7K/img.png?width=1449&amp;amp;height=785&amp;amp;face=0_0_1449_785');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 2. Route 53 설정하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 이전 글인 가비아 도메인 구매하는 방법은 아래 글에 자세히 적어두었다. https://bba-jin.tistory&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bba-jin.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. AWS Console에서 'Certificate Manager'를 검색해 들어간다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;CloudFront용 인증서는 무!조!건! Region이 United States - N.Virginia 여야만 한다!!!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지역을 설정하고 우측에 있는 'Request'버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1870&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfuOy2/dJMcagDOJn4/4KlhsMYxiRskpRkVbnCyo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfuOy2/dJMcagDOJn4/4KlhsMYxiRskpRkVbnCyo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfuOy2/dJMcagDOJn4/4KlhsMYxiRskpRkVbnCyo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfuOy2%2FdJMcagDOJn4%2F4KlhsMYxiRskpRkVbnCyo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;811&quot; height=&quot;183&quot; data-origin-width=&quot;1870&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 다음 페이지에는 기본적으로 선택 되어있는 'Request a public certificate'를 그대로 두고 Next 버튼을 누른다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;531&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bvyarD/dJMcaeFZ30F/mS6zyIFAiGY0kJdAPYgzQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bvyarD/dJMcaeFZ30F/mS6zyIFAiGY0kJdAPYgzQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bvyarD/dJMcaeFZ30F/mS6zyIFAiGY0kJdAPYgzQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbvyarD%2FdJMcaeFZ30F%2FmS6zyIFAiGY0kJdAPYgzQk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;807&quot; height=&quot;214&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;531&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 아래 정보들을 입력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1: 도메인 주소 (저는 루트 도메인인&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;http://memeduck.site&quot;&gt;memeduck.site&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;와&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;http://www.memeduck.site&quot;&gt;www.memeduck.site&amp;nbsp;&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;를 모두 입력해주었습니다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2, 3, 4 : 기본 설정 그대로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 Request 버튼 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1131&quot; data-origin-height=&quot;1082&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/SheqH/dJMb99Sd7HB/tmUTr93GqobCDfZNHGRKk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/SheqH/dJMb99Sd7HB/tmUTr93GqobCDfZNHGRKk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/SheqH/dJMb99Sd7HB/tmUTr93GqobCDfZNHGRKk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSheqH%2FdJMb99Sd7HB%2FtmUTr93GqobCDfZNHGRKk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;792&quot; height=&quot;758&quot; data-origin-width=&quot;1131&quot; data-origin-height=&quot;1082&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 아래와같이 인증서가 발급된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1824&quot; data-origin-height=&quot;755&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vPjcr/dJMcah3Nld9/qpaY7zhq56tGfWYPhATE70/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vPjcr/dJMcah3Nld9/qpaY7zhq56tGfWYPhATE70/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vPjcr/dJMcah3Nld9/qpaY7zhq56tGfWYPhATE70/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvPjcr%2FdJMcah3Nld9%2FqpaY7zhq56tGfWYPhATE70%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;761&quot; height=&quot;315&quot; data-origin-width=&quot;1824&quot; data-origin-height=&quot;755&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Infra</category>
      <category>acm</category>
      <category>acm인증서</category>
      <category>AWS</category>
      <category>awscertificatemanager</category>
      <category>awsconsole</category>
      <category>CloudFront</category>
      <category>duckon</category>
      <category>React</category>
      <category>Route53</category>
      <category>s3</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/80</guid>
      <comments>https://bba-jin.tistory.com/80#entry80comment</comments>
      <pubDate>Thu, 6 Nov 2025 13:09:06 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] CloudFront로 React 정적배포하기 - 2. Route 53 설정하기</title>
      <link>https://bba-jin.tistory.com/79</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;글은 2025년 11월 기준 aws 콘솔이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;420&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lsGYN/dJMcab3z5ym/kHkrj2ZDr4aWUu9ijOq0Jk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lsGYN/dJMcab3z5ym/kHkrj2ZDr4aWUu9ijOq0Jk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lsGYN/dJMcab3z5ym/kHkrj2ZDr4aWUu9ijOq0Jk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlsGYN%2FdJMcab3z5ym%2FkHkrj2ZDr4aWUu9ijOq0Jk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;800&quot; height=&quot;420&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;420&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이전 글인 가비아 도메인 구매하는 방법은 아래 글에 자세히 적어두었다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/78&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://bba-jin.tistory.com/78&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1762401855538&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&quot; data-og-description=&quot;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 1. 가비아에서 도메인 구매하기1. 가비아에서 구매할 도메인을 검색해본다. 마음에 드는 도&quot; data-og-host=&quot;bba-jin.tistory.com&quot; data-og-source-url=&quot;https://bba-jin.tistory.com/78&quot; data-og-url=&quot;https://bba-jin.tistory.com/78&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bTo3W6/hyZM5fWcRr/HwnnXIJ81JXcWYBSWv52H0/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/bzJWNy/hyZNcMT42W/Uh83TlENJSL2tlbShDiNjk/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/cy0OFC/hyZMt2gGfY/2aG0x0wIp3vwXAvTEkc6lk/img.png?width=750&amp;amp;height=442&amp;amp;face=0_0_750_442&quot;&gt;&lt;a href=&quot;https://bba-jin.tistory.com/78&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://bba-jin.tistory.com/78&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bTo3W6/hyZM5fWcRr/HwnnXIJ81JXcWYBSWv52H0/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/bzJWNy/hyZNcMT42W/Uh83TlENJSL2tlbShDiNjk/img.png?width=800&amp;amp;height=471&amp;amp;face=0_0_800_471,https://scrap.kakaocdn.net/dn/cy0OFC/hyZMt2gGfY/2aG0x0wIp3vwXAvTEkc6lk/img.png?width=750&amp;amp;height=442&amp;amp;face=0_0_750_442');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.글은 2025년 11월 기준 aws 콘솔이다. 1. 가비아에서 도메인 구매하기1. 가비아에서 구매할 도메인을 검색해본다. 마음에 드는 도&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;bba-jin.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. AWS Console의 Route53으로 접속한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때! Region은 Global로 뜨는게 맞다. (특정 지역을 선택하는게 아님!)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2495&quot; data-origin-height=&quot;1433&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bf87w4/dJMcahvXkVo/rw7jqKHgSWz85OaYDyTjDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bf87w4/dJMcahvXkVo/rw7jqKHgSWz85OaYDyTjDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bf87w4/dJMcahvXkVo/rw7jqKHgSWz85OaYDyTjDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbf87w4%2FdJMcahvXkVo%2Frw7jqKHgSWz85OaYDyTjDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;780&quot; height=&quot;448&quot; data-origin-width=&quot;2495&quot; data-origin-height=&quot;1433&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. Hosted Zone 생성하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좌측 메뉴의 'Hosted zones' &amp;gt; 'Create hosted zone' 버튼을 클릭한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1632&quot; data-origin-height=&quot;888&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dVLm1m/dJMcajHi9vF/pQ0y7b4wDpkndDNGOPfxSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dVLm1m/dJMcajHi9vF/pQ0y7b4wDpkndDNGOPfxSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dVLm1m/dJMcajHi9vF/pQ0y7b4wDpkndDNGOPfxSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdVLm1m%2FdJMcajHi9vF%2FpQ0y7b4wDpkndDNGOPfxSk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;774&quot; height=&quot;421&quot; data-origin-width=&quot;1632&quot; data-origin-height=&quot;888&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 아래 정보들을 입 후 하단에 'Create hosted zone' 버튼을 클릭한다. 빨간색은 필수!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Domain name(필수!) : 가비아에서 산 도메인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Description : 부가 설명&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Type : Public hosted zone 버튼 클릭 (필수!)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Tags : 태그 설정(인데 안해도 전혀 문제되지 않는다)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1449&quot; data-origin-height=&quot;785&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LHyBV/dJMcad7977p/0kw9kTKGGdVtUVgDrAdCb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LHyBV/dJMcad7977p/0kw9kTKGGdVtUVgDrAdCb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LHyBV/dJMcad7977p/0kw9kTKGGdVtUVgDrAdCb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLHyBV%2FdJMcad7977p%2F0kw9kTKGGdVtUVgDrAdCb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;779&quot; height=&quot;422&quot; data-origin-width=&quot;1449&quot; data-origin-height=&quot;785&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 여기서 설정한게 하루가 지나도 적용이 안되길래 골머리를 썩었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 사진을 확인해보니 내가 'memeduck.site'가 아니라 'memduck.site'로 입력을 해둔걸 발견했다ㅠㅜ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹시 이 글을 보고 설정하고 계신분들은 domain name에 오타가 나지 않도록 조심하시길!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 생성 후 '.org', '.com', '.co.uk', '.net'으로 끝나는 4개의 NS레코드가 나온다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 네개를 복사해서 가비아에 넣으면 된다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/UDq69/dJMcab3zThN/ndMdSJzK0cEMkkzUnhafq1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/UDq69/dJMcab3zThN/ndMdSJzK0cEMkkzUnhafq1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/UDq69/dJMcab3zThN/ndMdSJzK0cEMkkzUnhafq1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUDq69%2FdJMcab3zThN%2FndMdSJzK0cEMkkzUnhafq1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;822&quot; height=&quot;282&quot; data-origin-width=&quot;1630&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 'My 가비아'&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://my.gabia.com/dashboard#/&quot;&gt;https://my.gabia.com/dashboard#/&lt;/a&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;링크 접속 후 '서비스 관리', '서비스 관리' 탭을 클릭한다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1389&quot; data-origin-height=&quot;428&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXObgI/dJMcaihkvKU/Fx3VXTdUI7iPZAWdqGZLS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXObgI/dJMcaihkvKU/Fx3VXTdUI7iPZAWdqGZLS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXObgI/dJMcaihkvKU/Fx3VXTdUI7iPZAWdqGZLS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXObgI%2FdJMcaihkvKU%2FFx3VXTdUI7iPZAWdqGZLS0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;805&quot; height=&quot;248&quot; data-origin-width=&quot;1389&quot; data-origin-height=&quot;428&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 구매한 도메인 우측에 '관리' 버튼 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1455&quot; data-origin-height=&quot;709&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/p4X0D/dJMcacOW1BN/FebTSwJVZf3Z2F9nBXhGHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/p4X0D/dJMcacOW1BN/FebTSwJVZf3Z2F9nBXhGHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/p4X0D/dJMcacOW1BN/FebTSwJVZf3Z2F9nBXhGHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp4X0D%2FdJMcacOW1BN%2FFebTSwJVZf3Z2F9nBXhGHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;741&quot; height=&quot;361&quot; data-origin-width=&quot;1455&quot; data-origin-height=&quot;709&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 네임서버 우측에 있는 '설정' 버튼 클릭&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1115&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/K6wzy/dJMcacBpQBi/5nSYbbD3L7ht28AWblahuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/K6wzy/dJMcacBpQBi/5nSYbbD3L7ht28AWblahuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/K6wzy/dJMcacBpQBi/5nSYbbD3L7ht28AWblahuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FK6wzy%2FdJMcacBpQBi%2F5nSYbbD3L7ht28AWblahuK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;742&quot; height=&quot;414&quot; data-origin-width=&quot;2000&quot; data-origin-height=&quot;1115&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. 1-4차 입력칸에 4에서 생성된 네임서버들을 입력한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순서는 무관!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1910&quot; data-origin-height=&quot;726&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/kBXnL/dJMcake88gv/yuK4jvJNat5KIEPsf1LgL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/kBXnL/dJMcake88gv/yuK4jvJNat5KIEPsf1LgL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/kBXnL/dJMcake88gv/yuK4jvJNat5KIEPsf1LgL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FkBXnL%2FdJMcake88gv%2FyuK4jvJNat5KIEPsf1LgL1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;810&quot; height=&quot;308&quot; data-origin-width=&quot;1910&quot; data-origin-height=&quot;726&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;9. 소유자 인증을 하고 확인버튼을 누르면 아래와 같이 변경된 걸 확인할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1739&quot; data-origin-height=&quot;358&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H0om0/dJMcafSrxQy/xpWFjrFtY4BkWBAvHdL4JK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H0om0/dJMcafSrxQy/xpWFjrFtY4BkWBAvHdL4JK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H0om0/dJMcafSrxQy/xpWFjrFtY4BkWBAvHdL4JK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH0om0%2FdJMcafSrxQy%2FxpWFjrFtY4BkWBAvHdL4JK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;787&quot; height=&quot;162&quot; data-origin-width=&quot;1739&quot; data-origin-height=&quot;358&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설정을 잘 하면 아래 코드를 그냥 아무 로컬 cli에 입력했을 때 처음엔 아래 사진 처럼 나오던게, 2~30분정도 지나면 두번째 사진처럼 route 53에 뜨는 ns 레코드가 나온다.&lt;/p&gt;
&lt;pre id=&quot;code_1762407050090&quot; style=&quot;background-color: #f8f8f8; color: #383a42;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;bash&quot;&gt;&lt;code&gt; nslookup -type=ns 사이트도메인 8.8.8.8&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1173&quot; data-origin-height=&quot;158&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/F1Hky/dJMcaeMLQWk/ES6AiljETKqp4lSoZwiPH1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/F1Hky/dJMcaeMLQWk/ES6AiljETKqp4lSoZwiPH1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/F1Hky/dJMcaeMLQWk/ES6AiljETKqp4lSoZwiPH1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FF1Hky%2FdJMcaeMLQWk%2FES6AiljETKqp4lSoZwiPH1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1173&quot; height=&quot;158&quot; data-origin-width=&quot;1173&quot; data-origin-height=&quot;158&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;30분정도 후, 네임서버 등록이 완료됐을 때 :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1088&quot; data-origin-height=&quot;521&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b42r7A/dJMcacg7gOT/C0SKwBAUNAot20PT7E57A0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b42r7A/dJMcacg7gOT/C0SKwBAUNAot20PT7E57A0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b42r7A/dJMcacg7gOT/C0SKwBAUNAot20PT7E57A0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb42r7A%2FdJMcacg7gOT%2FC0SKwBAUNAot20PT7E57A0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1088&quot; height=&quot;521&quot; data-origin-width=&quot;1088&quot; data-origin-height=&quot;521&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등록 후 전파되는데 시간이 걸리기 때문에, 다음단계를 진행하고 추후에 이 부분을 확인하는걸 추천한다.&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;✅ 1&lt;/td&gt;
&lt;td&gt;Route53 Hosted Zone memeduck.site 새로 생성&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;✅ 2&lt;/td&gt;
&lt;td&gt;가비아 네임서버 4개 AWS로 교체 완료&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;  3&lt;/td&gt;
&lt;td&gt;전파 대기 (최대 24시간, 보통 1~3시간)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;  4&lt;/td&gt;
&lt;td&gt;ACM 자동 검증 후 &amp;ldquo;Issued&amp;rdquo;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;  5&lt;/td&gt;
&lt;td&gt;CloudFront 배포 + Route53 레코드 연결&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</description>
      <category>Infra</category>
      <category>AWS</category>
      <category>CloudFront</category>
      <category>duckon</category>
      <category>memeduck</category>
      <category>React</category>
      <category>react정적배포</category>
      <category>Route53</category>
      <category>가비아</category>
      <category>덕온</category>
      <category>밈덕</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/79</guid>
      <comments>https://bba-jin.tistory.com/79#entry79comment</comments>
      <pubDate>Thu, 6 Nov 2025 13:06:02 +0900</pubDate>
    </item>
    <item>
      <title>[AWS] CloudFront로 React 정적배포하기 - 1. 가비아 도메인 구매하기</title>
      <link>https://bba-jin.tistory.com/78</link>
      <description>&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;AWS CloudFront로 React 프로젝트를 배포하는 과정을 기록해보려고 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;글은 2025년 11월 기준 aws 콘솔이다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size26&quot;&gt;1. 가비아에서 도메인 구매하기&lt;/h2&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;1. 가비아에서 구매할 도메인을 검색해본다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;마음에 드는 도메일을 선택하고 우측에 '신청하기' 버튼을 누른다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;나는 1년에 2,750원짜리 이벤트 도메인으로 골랐다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2117&quot; data-origin-height=&quot;1248&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GGjIY/dJMcaajiuzK/a1ip6Eu8jtbHaIkbYrhPZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GGjIY/dJMcaajiuzK/a1ip6Eu8jtbHaIkbYrhPZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GGjIY/dJMcaajiuzK/a1ip6Eu8jtbHaIkbYrhPZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGGjIY%2FdJMcaajiuzK%2Fa1ip6Eu8jtbHaIkbYrhPZk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;714&quot; height=&quot;421&quot; data-origin-width=&quot;2117&quot; data-origin-height=&quot;1248&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;2. 네임서버 설정 &amp;gt; '가비아 네임서버 사용'&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;사실 여기서 타사 네임서버 사용을 선택해야 route 53을 사용할 수 있는데,&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;몇번을 해봐도 타사 네임서버 사용하면 뭔가 내부적으로 오류가 나서 다음 단계로 진입이 안됐다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;그냥 가비아 네임서버 사용 버튼을 선택하면 된다. 어차피 나중에 바꿀 수 있음!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1586&quot; data-origin-height=&quot;379&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dbW4yC/dJMcah3NjJ3/xK84igSayjKecc499F03m0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dbW4yC/dJMcah3NjJ3/xK84igSayjKecc499F03m0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dbW4yC/dJMcah3NjJ3/xK84igSayjKecc499F03m0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdbW4yC%2FdJMcah3NjJ3%2FxK84igSayjKecc499F03m0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;685&quot; height=&quot;164&quot; data-origin-width=&quot;1586&quot; data-origin-height=&quot;379&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;3. 도메인 구매&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;결제하면 카톡이 오고, DNS 관리로 들어가면 구매한 도메인이 뜬다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2008&quot; data-origin-height=&quot;667&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cyy0ZI/dJMcaj1BWFk/kiyIAiCtNqgDzZ5GK2Eruk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cyy0ZI/dJMcaj1BWFk/kiyIAiCtNqgDzZ5GK2Eruk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cyy0ZI/dJMcaj1BWFk/kiyIAiCtNqgDzZ5GK2Eruk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcyy0ZI%2FdJMcaj1BWFk%2FkiyIAiCtNqgDzZ5GK2Eruk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;215&quot; data-origin-width=&quot;2008&quot; data-origin-height=&quot;667&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;4. 도메인 들어가서 확인해보기&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;아무것도 안뜨는게 맞다!!&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;당연히 아무런 설정도 안해줬으니까!!!&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;이제 설정 하러 가보자&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2083&quot; data-origin-height=&quot;1106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LZtmJ/dJMcafZc65b/8xfMSykq2aGwvtcVOR3Xr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LZtmJ/dJMcafZc65b/8xfMSykq2aGwvtcVOR3Xr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LZtmJ/dJMcafZc65b/8xfMSykq2aGwvtcVOR3Xr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLZtmJ%2FdJMcafZc65b%2F8xfMSykq2aGwvtcVOR3Xr1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;732&quot; height=&quot;389&quot; data-origin-width=&quot;2083&quot; data-origin-height=&quot;1106&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Infra</category>
      <category>AWS</category>
      <category>CloudFront</category>
      <category>duckon</category>
      <category>memeduck</category>
      <category>Route53</category>
      <category>s3</category>
      <category>SAA</category>
      <category>가비아</category>
      <category>도메인구매</category>
      <category>밈덕</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/78</guid>
      <comments>https://bba-jin.tistory.com/78#entry78comment</comments>
      <pubDate>Thu, 6 Nov 2025 13:02:57 +0900</pubDate>
    </item>
    <item>
      <title>2024년 개발 회고</title>
      <link>https://bba-jin.tistory.com/77</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;조오금 뒷북이지만, 2024년 회고를 해보려고 한다.&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;1. 2024.02.23 라인 본사 방문&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_8059.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eNcOPu/btsLC2yNccM/vAkxo6kWSI9uF3oyljvXvk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eNcOPu/btsLC2yNccM/vAkxo6kWSI9uF3oyljvXvk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eNcOPu/btsLC2yNccM/vAkxo6kWSI9uF3oyljvXvk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeNcOPu%2FbtsLC2yNccM%2FvAkxo6kWSI9uF3oyljvXvk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;687&quot; height=&quot;916&quot; data-filename=&quot;IMG_8059.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_8058.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/olPx7/btsLDMaRKII/4KHwE2EHLhaDeD2f5SnjMk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/olPx7/btsLDMaRKII/4KHwE2EHLhaDeD2f5SnjMk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/olPx7/btsLDMaRKII/4KHwE2EHLhaDeD2f5SnjMk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FolPx7%2FbtsLDMaRKII%2F4KHwE2EHLhaDeD2f5SnjMk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;725&quot; height=&quot;967&quot; data-filename=&quot;IMG_8058.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;친한 동아리 선배가 라인에서 백엔드 개발자로 일하고 계신데, 좋은 기회로 초대해주셨다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오피스 뷰가 정말 좋았고.... 무엇보다 선배 취직하신지 1년이 넘었는데 회사에 세번째인가? 와본다고 하셨던게 기억에 남는다ㅋㅋㅋㄱ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재택이 정말 잘 되어있다고 말씀해주셨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 2024.05~ KB IT's Your Life 합격&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_4038.PNG&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/do5bm7/btsLCGQeZFq/9iCxDD7IqdB2fe35Or6cP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/do5bm7/btsLCGQeZFq/9iCxDD7IqdB2fe35Or6cP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/do5bm7/btsLCGQeZFq/9iCxDD7IqdB2fe35Or6cP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdo5bm7%2FbtsLCGQeZFq%2F9iCxDD7IqdB2fe35Or6cP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;655&quot; height=&quot;1420&quot; data-filename=&quot;IMG_4038.PNG&quot; data-origin-width=&quot;1179&quot; data-origin-height=&quot;2556&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_4080.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b0DKRr/btsLELoMYq7/bDxP0Bv4QLaGMWMww0uYD0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b0DKRr/btsLELoMYq7/bDxP0Bv4QLaGMWMww0uYD0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b0DKRr/btsLELoMYq7/bDxP0Bv4QLaGMWMww0uYD0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb0DKRr%2FbtsLELoMYq7%2FbDxP0Bv4QLaGMWMww0uYD0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;656&quot; height=&quot;875&quot; data-filename=&quot;IMG_4080.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미국 인턴 후 귀국해서 한 학기는 휴학을 할 예정이었는데, 혼자서 공부를 열심히 하는 타입은 아닌지라.... 부트캠프를 선택했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;합격자 OT날 다과도 예쁘게 준비되어있었고, 명찰과 웰컴키트도 받았다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_4081.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgS6Br/btsLEbuxstk/ehxekl9fHQXGJ9oiDAtw9k/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgS6Br/btsLEbuxstk/ehxekl9fHQXGJ9oiDAtw9k/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgS6Br/btsLEbuxstk/ehxekl9fHQXGJ9oiDAtw9k/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgS6Br%2FbtsLEbuxstk%2Fehxekl9fHQXGJ9oiDAtw9k%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;569&quot; height=&quot;759&quot; data-filename=&quot;IMG_4081.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_4097.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vXWD8/btsLFbgg4Jk/FKofMXfDdeAsLMKKqBu8U0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vXWD8/btsLFbgg4Jk/FKofMXfDdeAsLMKKqBu8U0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vXWD8/btsLFbgg4Jk/FKofMXfDdeAsLMKKqBu8U0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvXWD8%2FbtsLFbgg4Jk%2FFKofMXfDdeAsLMKKqBu8U0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;568&quot; height=&quot;757&quot; data-filename=&quot;IMG_4097.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그치만 한 달정도 다녀보다가 퇴소했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 거리가 너무 멀었다.... 인천에서, 그것도 인하대후문에서 교육 장소인 건대까지 통학이... 2시간 20분 정도 잡았어야했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;거기에 전공자 반이었고 백엔드 교육이 주를 이룬다고 홍보하는 걸 봐서 입과했는데,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계속 HTML CSS JS 수업만 반복되었고... 3개월 뒤에 백엔드 수업이 시작되는 과정이었는데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 위해 눈 감고도 할 수 있는 프론트 부분을 3개월간 4-5시간을 통학하며 들을 자신이 없었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 퇴소를 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 2024.08-2024.11 Mono 개발 참여&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;965&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ds3FpY/btsLEswgE08/HHDCA7hR2hZA255TEt6XX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ds3FpY/btsLEswgE08/HHDCA7hR2hZA255TEt6XX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ds3FpY/btsLEswgE08/HHDCA7hR2hZA255TEt6XX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fds3FpY%2FbtsLEswgE08%2FHHDCA7hR2hZA255TEt6XX0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;801&quot; height=&quot;668&quot; data-origin-width=&quot;1158&quot; data-origin-height=&quot;965&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정말 댕쩌는... 데스크탑 메일 어플리케이션이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프론트엔드 개발자로 참여했고, 다른 개발자분들에 비해 실력이 부족했지만 열심히 하려고 노력했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 주로 에디터 부분을 맡았는데, 모노 개발을 하면서 깃헙 리포에 별2.8만개나 되는 tiptap 에디터에 contribute할 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://github.com/ueberdosis/tiptap&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://github.com/ueberdosis/tiptap&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1736022673153&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;object&quot; data-og-title=&quot;GitHub - ueberdosis/tiptap: The headless rich text editor framework for web artisans.&quot; data-og-description=&quot;The headless rich text editor framework for web artisans. - ueberdosis/tiptap&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/ueberdosis/tiptap&quot; data-og-url=&quot;https://github.com/ueberdosis/tiptap&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/1MkVx/hyXWnCC7KP/2XItohfuhcvx7WX4Dgoez0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/cUVEax/hyXWsKIup2/lKLERgfixkNLc7z7p2GK50/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/ueberdosis/tiptap&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/ueberdosis/tiptap&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/1MkVx/hyXWnCC7KP/2XItohfuhcvx7WX4Dgoez0/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600,https://scrap.kakaocdn.net/dn/cUVEax/hyXWsKIup2/lKLERgfixkNLc7z7p2GK50/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;GitHub - ueberdosis/tiptap: The headless rich text editor framework for web artisans.&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The headless rich text editor framework for web artisans. - ueberdosis/tiptap&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;github.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;706&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CUUV8/btsLEsptH5y/Zhb5Y1nbr3jjQdeonyQpuk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CUUV8/btsLEsptH5y/Zhb5Y1nbr3jjQdeonyQpuk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CUUV8/btsLEsptH5y/Zhb5Y1nbr3jjQdeonyQpuk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCUUV8%2FbtsLEsptH5y%2FZhb5Y1nbr3jjQdeonyQpuk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;777&quot; height=&quot;603&quot; data-origin-width=&quot;910&quot; data-origin-height=&quot;706&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;당연히 내 레포에 바로 고정해둠...허허&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그치만 모노 역시 병원 이슈로 그만두게 되었다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재미도 있었고 끝까지 같이 하고 싶었는데.. 건강이...흑흑&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데탑 메일 관리 어플 관심있으시면 요기 들어가보셔요  &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://monomail.co/&quot;&gt;https://monomail.co/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1736022566371&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Mono Mail - Join waitlist&quot; data-og-description=&quot;Next-generation email app. Minimal and focused. Work seamlessly.&quot; data-og-host=&quot;monomail.co&quot; data-og-source-url=&quot;https://monomail.co/&quot; data-og-url=&quot;https://monomail.co&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/sHw9k/hyXWwsO9XY/wNdUeRb1tZZTDdfknkduZ1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/brMfKi/hyXWq0qsjo/my4e4hFPJLfBQkPRzd1kHK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bVIIvz/hyXWyD8OKB/MKM2gLFQ3M3zdKR3KHhY00/img.png?width=3024&amp;amp;height=2024&amp;amp;face=0_0_3024_2024&quot;&gt;&lt;a href=&quot;https://monomail.co/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://monomail.co/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/sHw9k/hyXWwsO9XY/wNdUeRb1tZZTDdfknkduZ1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/brMfKi/hyXWq0qsjo/my4e4hFPJLfBQkPRzd1kHK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/bVIIvz/hyXWyD8OKB/MKM2gLFQ3M3zdKR3KHhY00/img.png?width=3024&amp;amp;height=2024&amp;amp;face=0_0_3024_2024');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Mono Mail - Join waitlist&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Next-generation email app. Minimal and focused. Work seamlessly.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;monomail.co&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 2024.10 삼성전자 서류합격&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-01-05-04-56-38.png&quot; data-origin-width=&quot;2568&quot; data-origin-height=&quot;986&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmTjdG/btsLC10VKvF/53aOxACzcSv2HWRYTI3q61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmTjdG/btsLC10VKvF/53aOxACzcSv2HWRYTI3q61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmTjdG/btsLC10VKvF/53aOxACzcSv2HWRYTI3q61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmTjdG%2FbtsLC10VKvF%2F53aOxACzcSv2HWRYTI3q61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;766&quot; height=&quot;294&quot; data-filename=&quot;KakaoTalk_Photo_2025-01-05-04-56-38.png&quot; data-origin-width=&quot;2568&quot; data-origin-height=&quot;986&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;겨우 서류합격이긴 했고 당연히 코테에서 광탈을 했지만..!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 제대로 취준 준비도 안 된 상태에서, 전자 DS부문에서 서합 했다는 것 자체가 너무 기뻤다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코테는 진짜 난이도 극악이었다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 기출 이것저것 풀어보고 갔는데 너무 어려웠음...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;게다가 당연히 안될 줄 알고 넣어본거라서, 제대로 사전조사를 안하고 보러 갔다가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2번 문제를 풀었다 ㅋㅋ ide에선 잘 돌아가는데 도대체 왜 시간 초과가 나는거지!!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라는 생각을 하며 채점서버 문제겠거니 했는데^^ 부끄러우니까 이하 생략하겠습니다...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 이번 상반기 다시 도전해본다....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 수많은 서탈&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;373&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/3v642/btsLC5hFIBe/7KUZdinZGaohyCCkuyyYGK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/3v642/btsLC5hFIBe/7KUZdinZGaohyCCkuyyYGK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/3v642/btsLC5hFIBe/7KUZdinZGaohyCCkuyyYGK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3v642%2FbtsLC5hFIBe%2F7KUZdinZGaohyCCkuyyYGK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;707&quot; height=&quot;313&quot; data-origin-width=&quot;843&quot; data-origin-height=&quot;373&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코테 준비가 정말 안됐음에도 일단 눈 감고 서류부터 넣어봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결과는 광~~탈~!!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1, 2학년땐 컴공은 서류에선 거의 붙여주고 코테에서 많이 컷한다고 들었었는데... 그거 맞는건가요ㅠㅜ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물론 내가 자소서도 거의 제대로 안쓴게 많았지만, 위 사진보다 훨씬 많이 서탈을 했다. (기분 나빠서 초반엔 서탈한거 행을 삭제해버림ㅋㅋ)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-01-05-04-57-10-2.png&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;439&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cxdk8t/btsLDu2Bwup/XXNrntvvfNk2wZjZk1KGy0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cxdk8t/btsLDu2Bwup/XXNrntvvfNk2wZjZk1KGy0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cxdk8t/btsLDu2Bwup/XXNrntvvfNk2wZjZk1KGy0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcxdk8t%2FbtsLDu2Bwup%2FXXNrntvvfNk2wZjZk1KGy0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;724&quot; height=&quot;390&quot; data-filename=&quot;KakaoTalk_Photo_2025-01-05-04-57-10-2.png&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;439&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 신한카드, 삼전, 카카오모빌리티, 하나은행 정도는 서류 합격이었다. 몇개 더 있었던것 같은데&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 쯤 부터 병원을 다니기 시작해서... 제대로 기록도 안하고 넘어간게 많았다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아무튼 하반기 공채 10월쯤 부턴 거의 지원도 안했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 내년에 싸피 하길 기도함ㅋㅋ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 2024.12.17 캡스톤 종합설계 우수상 수상&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_8044.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/do1BkP/btsLDHUUR5h/RjJz7BdxOMZAfUk1zL34SK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/do1BkP/btsLDHUUR5h/RjJz7BdxOMZAfUk1zL34SK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/do1BkP/btsLDHUUR5h/RjJz7BdxOMZAfUk1zL34SK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdo1BkP%2FbtsLDHUUR5h%2FRjJz7BdxOMZAfUk1zL34SK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;683&quot; height=&quot;911&quot; data-filename=&quot;IMG_8044.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 학기동안 개발한 프로젝트로 우수상을 받았다..!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 개발은 일주일? 만에 몰아서 했는데 ㅋㅋㄱ 다른 팀원들이 잘 해줘서 받을 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종설 발표에 버츠비가 부스를 운영해서(?? 왜 왔는지 아직도 모름) 립밤이랑 귀여운 벌 인형도 받았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_8002.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgSFm1/btsLEIS9Dbr/HlmljZwLfdGem2eEphOU0K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgSFm1/btsLEIS9Dbr/HlmljZwLfdGem2eEphOU0K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgSFm1/btsLEIS9Dbr/HlmljZwLfdGem2eEphOU0K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgSFm1%2FbtsLEIS9Dbr%2FHlmljZwLfdGem2eEphOU0K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;741&quot; height=&quot;988&quot; data-filename=&quot;IMG_8002.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_8003.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TNkES/btsLDIGjuQ4/ix6hkLkHf3fKpvry59qSMk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TNkES/btsLDIGjuQ4/ix6hkLkHf3fKpvry59qSMk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TNkES/btsLDIGjuQ4/ix6hkLkHf3fKpvry59qSMk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTNkES%2FbtsLDIGjuQ4%2Fix6hkLkHf3fKpvry59qSMk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;737&quot; height=&quot;983&quot; data-filename=&quot;IMG_8003.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 기억에 남는 것은 요 판넬 만들기...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;왜냐면 월요일 자정까지 제출이었는데 이걸 일요일 저녁 7시쯤에 다같이 회의를 위해 모인 날 깨달았음....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ㅋㅋㅋㅋㄱ 그래서 갑자기 학교에서 밤 새서 UI갈아 엎은 뒤 만든 판넬..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;IMG_8078.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pTB6h/btsLDnWHgKV/cfp0ABMiKXJzQARUx21mbK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pTB6h/btsLDnWHgKV/cfp0ABMiKXJzQARUx21mbK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pTB6h/btsLDnWHgKV/cfp0ABMiKXJzQARUx21mbK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpTB6h%2FbtsLDnWHgKV%2Fcfp0ABMiKXJzQARUx21mbK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;772&quot; height=&quot;1029&quot; data-filename=&quot;IMG_8078.jpg&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;4032&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;20학번 가장 친한 동생네 팀이랑 우연히 같은 테이블에 배정됐는데, 우리 두 팀이 나란히 대상, 우수상을 받았다 ㅎㅅㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동생네 팀은 진짜 피피티도 짱이고 발표 보면서 모두가 &quot;대상은 쟤네다!!!&quot; 했는데 우리팀은 거의 유일하게 발표에서 시연 영상도 없었고..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;열심히는 했지만 다들 기대 안하고 있었다가 '장려상 정도는 받을 수도...?' 라는 생각 후에 받은 우수상이라서 너무 기뻤다 ㅎㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;edited_KakaoTalk_Photo_2025-01-05-04-56-32.jpeg&quot; data-origin-width=&quot;2250&quot; data-origin-height=&quot;3000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PSIFs/btsLCZ9QpXA/l2gKnGU4mAHiks08lkCEQ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PSIFs/btsLCZ9QpXA/l2gKnGU4mAHiks08lkCEQ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PSIFs/btsLCZ9QpXA/l2gKnGU4mAHiks08lkCEQ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPSIFs%2FbtsLCZ9QpXA%2Fl2gKnGU4mAHiks08lkCEQ1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;720&quot; height=&quot;960&quot; data-filename=&quot;edited_KakaoTalk_Photo_2025-01-05-04-56-32.jpeg&quot; data-origin-width=&quot;2250&quot; data-origin-height=&quot;3000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. 2024.12.23 싸피 서울캠퍼스 전공자반 최종 합격!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;KakaoTalk_Photo_2025-01-05-04-57-10-1.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;862&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmtPiX/btsLE4Iqzkb/PknGYkuz8IJjV8qDln384K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmtPiX/btsLE4Iqzkb/PknGYkuz8IJjV8qDln384K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmtPiX/btsLE4Iqzkb/PknGYkuz8IJjV8qDln384K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmtPiX%2FbtsLE4Iqzkb%2FPknGYkuz8IJjV8qDln384K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;651&quot; height=&quot;750&quot; data-filename=&quot;KakaoTalk_Photo_2025-01-05-04-57-10-1.png&quot; data-origin-width=&quot;748&quot; data-origin-height=&quot;862&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 공채 광탈 후 희망은 싸피뿐이었고....&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;PT면접이 처음이기도 했기에 살면서 처음으로 면접스터디까지 하며 준비를 했었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결국 PT면접은 그럭저럭 본 것 같은데, 아무튼 최종 합격 할 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;감사합니다 싸피ㅠ&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아마 올 해는 싸피 하면서 열심히 코테 준비하고, 본격적으로 취준하는 시간이 될 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. 개발 외적인 부분&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;올해 막 열심히 개발을 한 건 아니라 그 외 부분이 더 많은데...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선 10키로 감량에 성공했고, 대만 부산 여수 전남 제주도 강릉 홍콩 여행을 다녀왔다 ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;취준을 위해 조금 남아있던 금발 머리도 다 검정색으로 덮었고, 취직 사진도 찍어봤다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7월? 쯤부터 병원에 다니기 시작했는데, 경과는 좋은 것 같다..!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;총정리 해보면 연초에는 그냥 다시 한국 생활 적응을 했고, 하반기부터 공채에 넣다가, 연말에 종설 우수상, 싸피 합격이 가장 기억에 남는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래도 마지막에 상을 받으니 보람찬 한 해였다는 생각이 드는 것 같다 ㅎ&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로 싸피 다니면서... 열심히 살아야지!!&amp;nbsp;&lt;/p&gt;</description>
      <category>Log/회고, 후기 등</category>
      <category>kbit'syourlife</category>
      <category>line오피스</category>
      <category>SSAFY</category>
      <category>삼성전자</category>
      <category>삼성전자서류합격</category>
      <category>싸피</category>
      <category>취준생</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/77</guid>
      <comments>https://bba-jin.tistory.com/77#entry77comment</comments>
      <pubDate>Sun, 5 Jan 2025 05:42:07 +0900</pubDate>
    </item>
    <item>
      <title>[React/Typescript] Button onClick, useRef로 파일 업로드 하기 (input type='file', label 사용x)</title>
      <link>https://bba-jin.tistory.com/76</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;logo-React.png&quot; data-origin-width=&quot;2300&quot; data-origin-height=&quot;2000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEBe3k/btsIfvb2F6e/WQrwp7Iu8U6dyooQglRPs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEBe3k/btsIfvb2F6e/WQrwp7Iu8U6dyooQglRPs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEBe3k/btsIfvb2F6e/WQrwp7Iu8U6dyooQglRPs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEBe3k%2FbtsIfvb2F6e%2FWQrwp7Iu8U6dyooQglRPs1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;466&quot; height=&quot;405&quot; data-filename=&quot;logo-React.png&quot; data-origin-width=&quot;2300&quot; data-origin-height=&quot;2000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;React로 파일 업로드 하는 법을 검색해보면&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;input 태그와 label태그를 활용해서 하는 코드가 많이 나온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 이미 코드에 커스텀해둔 버튼이 있어서,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 태그를 label로 감싸거나 해당 태그 안쪽에 label을 넣든 뭘해도 작동하지 않았다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 onChange로 input태그 ref에 접근하여 파일 업로드 하는 방식으로 구현을 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 react로만 개발하면 useRef에 타입지정을 다로 하지 않아도 잘 실행이 되나,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 프로젝트에서 typescript를 쓰고있기 때문에 타입을 지정해주지 않으면 타입 에러가 났고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 코드로 해결했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;코드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1719493982093&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { useRef } from &quot;react&quot;;

//구현해둔 Button ui를 누르면 input type=file이 클릭돼서(.click())/파일선택창 열림

const Card = () =&amp;gt; {
  const selectedFiles = useRef&amp;lt;HTMLInputElement&amp;gt;(null); 
  // TS에선 HTMLInputElement라고 타입 지정을 해주지 않으면 에러남

  return (
  &amp;lt;&amp;gt;
  	{/* 버튼 ui */}
    &amp;lt;Button
          variant={'ghost'}
          sizeVariant={'sm'}
          typeVariant={'icon'}
          tooltip={`Add Attachment`}
          onClick={() =&amp;gt; selectFile.current?.click()} //input에 접근하기 위한 useRef
        &amp;gt;
      &amp;lt;Paperclip className=&quot;w-4 h-4&quot; /&amp;gt;
    &amp;lt;/Button&amp;gt;
    {/* 파일 업로드 input 태그 */}
    &amp;lt;input 
        ref={selectedFiles}  //ref 연결
        type={'file'} 
        className=&quot;hidden&quot; // display:none
        multiple={true}  //파일 여러개 선택 가능하도록
     /&amp;gt;
   &amp;lt;/&amp;gt;
  );
};

export default Card;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;화면 :&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k33Yx/btsIdUYDwMZ/RatKNvYRKxJqh0z1PLEKP0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k33Yx/btsIdUYDwMZ/RatKNvYRKxJqh0z1PLEKP0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k33Yx/btsIdUYDwMZ/RatKNvYRKxJqh0z1PLEKP0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk33Yx%2FbtsIdUYDwMZ%2FRatKNvYRKxJqh0z1PLEKP0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;264&quot; height=&quot;208&quot; data-origin-width=&quot;264&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;1238&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgxZS8/btsIeDvcbYI/SPhHaITZjRIk8PrxL29BJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgxZS8/btsIeDvcbYI/SPhHaITZjRIk8PrxL29BJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgxZS8/btsIeDvcbYI/SPhHaITZjRIk8PrxL29BJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgxZS8%2FbtsIeDvcbYI%2FSPhHaITZjRIk8PrxL29BJk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;432&quot; height=&quot;629&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;1238&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Frontend</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/76</guid>
      <comments>https://bba-jin.tistory.com/76#entry76comment</comments>
      <pubDate>Thu, 27 Jun 2024 22:15:54 +0900</pubDate>
    </item>
    <item>
      <title>김영한 스프링 입문 6. 스프링 DB 접근 기술 - 스프링 통합 테스트</title>
      <link>https://bba-jin.tistory.com/75</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;728&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cc2Jtu/btsHs2t8q9m/r3GtqFKN1PRzkGdKCMVMsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cc2Jtu/btsHs2t8q9m/r3GtqFKN1PRzkGdKCMVMsk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cc2Jtu/btsHs2t8q9m/r3GtqFKN1PRzkGdKCMVMsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcc2Jtu%2FbtsHs2t8q9m%2Fr3GtqFKN1PRzkGdKCMVMsk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;549&quot; height=&quot;361&quot; data-origin-width=&quot;1106&quot; data-origin-height=&quot;728&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;인프런 김영한 스프링 입문&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;섹션 6. 스프링 DB 접근 기술&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;- 스프링 통합 테스트&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Test도 실제 DB까지 연결하여 동작하는 통합 테스트를 할 예정.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 했던 테스트들은 스프링과 관련이 없고, 순수 자바 코드만을 가지고 했었음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재는 순수 자바 코드만으로는 테스트를 할 수 없음 -&amp;gt; DB 커넥션 정보도 스프링 부트가 가지고 있기 때문에.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 테스트를 Spring 과 엮어서 해볼 것임.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 'MemberServiceTest'는 Java JVM안에서 끝남.&amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;1. 'MemberServiceTest' 파일을 복사하여 같은 위치에 'MemberServiceIntegrationTest'라는 파일명으로 붙여넣기.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;294&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nSi5j/btsHslA5EoP/F4LDA9M7Zvq8dbKkLhT4kK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nSi5j/btsHslA5EoP/F4LDA9M7Zvq8dbKkLhT4kK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nSi5j/btsHslA5EoP/F4LDA9M7Zvq8dbKkLhT4kK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnSi5j%2FbtsHslA5EoP%2FF4LDA9M7Zvq8dbKkLhT4kK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;441&quot; height=&quot;199&quot; data-origin-width=&quot;652&quot; data-origin-height=&quot;294&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;2. MemoryMemberRepository를 memberRepository로 수정하고, memberService와 memberRepository 앞에 @Autowired annotation추가&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1715871022883&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;@Autowired MemberService memberService;
@Autowired MemberRepository memberRepository;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에는 직접 MemoryMemberRepository, MemberService 객체를 생성해서 넣었음, 이제는 Spring Container에게 해당 객체들을 받아옴.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;+ 기존 코드들은 생성자 injection이 좋으나, test 코드는 간단하게 field injection으로 받아도 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 구현체는 'SpringConfig' 한 곳에서 올라온다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;3. 기존 코드의 '@BeforeEach', '@AfterEach' 및 사용하지 않는 코드 모두 삭제&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; @AfterEach가 필요 없는 이유는 맨 위에 추가한 @Transactional 때문, 추후 설명 예정 &lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 코드 상태 :&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1715871497641&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;package hello.hellospring.service;

import hello.hellospring.domain.Member;
import hello.hellospring.repository.MemberRepository;
import hello.hellospring.repository.MemoryMemberRepository;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.transaction.annotation.Transactional;

import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.jupiter.api.Assertions.assertThrows;

@SpringBootTest
@Transactional
class MemberServiceIntegrationTest {

    @Autowired MemberService memberService;
    @Autowired MemberRepository memberRepository;


    @Test
    void 회원가입() {
        //given
        Member member = new Member();
        member.setName(&quot;spring&quot;);

        //when
        Long saveId = memberService.join(member);

        //then
        Member findMember = memberService.findOne(saveId).get();
        assertThat(member.getName()).isEqualTo(findMember.getName());
    }

    @Test
    public void 중복_회원_예외(){
        //given
        Member member1 = new Member();
        member1.setName(&quot;mem&quot;);

        Member member2 = new Member();
        member2.setName(&quot;mem&quot;);

        //when
        memberService.join(member1);
        IllegalStateException e = assertThrows(IllegalStateException.class, () -&amp;gt; memberService.join(member2));

        assertThat(e.getMessage()).isEqualTo(&quot;이미 존재하는 회원입니다&quot;);
    }

}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;4. 여기서 '회원가입'에 대한 테스트를 실행 &amp;gt; 다음과 같은 에러 발생.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2680&quot; data-origin-height=&quot;660&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o9YvN/btsHr98AB3Q/cpEmQkspUT8UOHEHl7o6C1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o9YvN/btsHr98AB3Q/cpEmQkspUT8UOHEHl7o6C1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o9YvN/btsHr98AB3Q/cpEmQkspUT8UOHEHl7o6C1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo9YvN%2FbtsHr98AB3Q%2FcpEmQkspUT8UOHEHl7o6C1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;779&quot; height=&quot;192&quot; data-origin-width=&quot;2680&quot; data-origin-height=&quot;660&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'java.lang.IllegalStateException:&amp;nbsp;이미&amp;nbsp;존재하는&amp;nbsp;회원입니다'.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 왜냐하면 DB에 'spring'이라는 이름의 회원 존재, test 파일에서 'spring'이라는 이름으로 회원가입 했기 때문.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; DB의 데이터를 완전 지워줘야함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;5. h2 웹콘솔에 아래 코드 입력 -&amp;gt; 모든 행 지우기&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1715871661736&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;delete from member&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 조회해보면 아래 사진과 같이 모든 데이터가 삭제되어있어야 함.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;526&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/by7jn0/btsHq1Kq7BJ/7MCdjxq86xO0zS55BdTQk0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/by7jn0/btsHq1Kq7BJ/7MCdjxq86xO0zS55BdTQk0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/by7jn0/btsHq1Kq7BJ/7MCdjxq86xO0zS55BdTQk0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fby7jn0%2FbtsHq1Kq7BJ%2F7MCdjxq86xO0zS55BdTQk0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;626&quot; height=&quot;350&quot; data-origin-width=&quot;940&quot; data-origin-height=&quot;526&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 DB에 값이 추가되기 때문에 이 상태로 test 돌려야함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(보통은 test용 DB가 별개로 존재함.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;6. 다시 회원가입 메소드 test 실행&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2430&quot; data-origin-height=&quot;1124&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6IuKR/btsHrRAwM2X/MJlrXtxWJgZlwXBkkEnwh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6IuKR/btsHrRAwM2X/MJlrXtxWJgZlwXBkkEnwh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6IuKR/btsHrRAwM2X/MJlrXtxWJgZlwXBkkEnwh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6IuKR%2FbtsHrRAwM2X%2FMJlrXtxWJgZlwXBkkEnwh1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;687&quot; height=&quot;318&quot; data-origin-width=&quot;2430&quot; data-origin-height=&quot;1124&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까와는 다르게 위 사진과 같이 test인데 spring이 뜸.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;7. @Transactional annotation을 주석처리하고 다시 회원가입() test를 돌려보자.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;934&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lwLfL/btsHPXHtiUp/kLG7z7fbKO0vhGtKZ1dOD0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lwLfL/btsHPXHtiUp/kLG7z7fbKO0vhGtKZ1dOD0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lwLfL/btsHPXHtiUp/kLG7z7fbKO0vhGtKZ1dOD0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlwLfL%2FbtsHPXHtiUp%2FkLG7z7fbKO0vhGtKZ1dOD0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;752&quot; height=&quot;565&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;934&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 실행할 땐 잘 돌아가고, DB에도 'spring'이 잘 올라와 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIFJld/btsHPEg2F3z/o87EKZvZNCUznKFEKFKRnK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIFJld/btsHPEg2F3z/o87EKZvZNCUznKFEKFKRnK/img.png&quot; data-origin-width=&quot;2032&quot; data-origin-height=&quot;898&quot; data-is-animation=&quot;false&quot; style=&quot;width: 70.103%; margin-right: 10px;&quot; data-widthpercent=&quot;70.93&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIFJld/btsHPEg2F3z/o87EKZvZNCUznKFEKFKRnK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIFJld%2FbtsHPEg2F3z%2Fo87EKZvZNCUznKFEKFKRnK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2032&quot; height=&quot;898&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ed3H9I/btsHQUC5n4G/s4SLKKKWcPKrreg7eGEgkk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ed3H9I/btsHQUC5n4G/s4SLKKKWcPKrreg7eGEgkk/img.png&quot; data-origin-width=&quot;614&quot; data-origin-height=&quot;662&quot; data-is-animation=&quot;false&quot; style=&quot;width: 28.7342%;&quot; data-widthpercent=&quot;29.07&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ed3H9I/btsHQUC5n4G/s4SLKKKWcPKrreg7eGEgkk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fed3H9I%2FbtsHQUC5n4G%2Fs4SLKKKWcPKrreg7eGEgkk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;614&quot; height=&quot;662&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;8. 그러나 다시 한번 또 돌리면 에러가 뜬다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2630&quot; data-origin-height=&quot;824&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xk3fM/btsHPPJxCco/yzwAdOvdKvqyvNOdqhQ8Y0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xk3fM/btsHPPJxCco/yzwAdOvdKvqyvNOdqhQ8Y0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xk3fM/btsHPPJxCco/yzwAdOvdKvqyvNOdqhQ8Y0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxk3fM%2FbtsHPPJxCco%2FyzwAdOvdKvqyvNOdqhQ8Y0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;767&quot; height=&quot;240&quot; data-origin-width=&quot;2630&quot; data-origin-height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Test는 반복해서 실행할 수 있어야한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때 Spring이 좋은(기가막힌) 기능을 제공한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DB는 기본적으로 'Transaction'이라는 개념이 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 디비에 데이터를 insert query 한 다음에 commit이라는 것을 해줘야 디비에 반영이 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 auto commit 이라는게 존재해서, 보통 auto commit이냐 아니냐의 차이이고, 기본적으로는 transaction이라는 개념이 있어서 다 insert 쿼리를 한 뒤에 commit을 하기 전까지는 DB에 반영이 되지 않음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;auto commit은 커밋이 자동으로 되는 것.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런데 테스트가 끝난 뒤 롤백을 하면 디비에서 데이터가 모두 없어짐, 반영이 안됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 검증을 할 수 있는 방법이 바로 '@Transactional'이라는 annotation.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이걸 test case에 달면, 테스트를 실행할 때 transaction을 먼저 실행한 뒤, db에 insert query로 데이터를 넣은 다음에&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트가 끝나면 롤백을 해줌.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 디비에 넣었던 데이터가 깔끔하게 반영이 안되고 다 지워짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;9. 우선 지금 디비에 있는 데이터를 지워준다&lt;/b&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1717675395402&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;delete from member;&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;636&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRaOn5/btsHPIqd4bZ/RzMgUPKRiTqU2IqCiq1A30/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRaOn5/btsHPIqd4bZ/RzMgUPKRiTqU2IqCiq1A30/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRaOn5/btsHPIqd4bZ/RzMgUPKRiTqU2IqCiq1A30/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRaOn5%2FbtsHPIqd4bZ%2FRzMgUPKRiTqU2IqCiq1A30%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;563&quot; height=&quot;492&quot; data-origin-width=&quot;728&quot; data-origin-height=&quot;636&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;10. 7에서 주석처리한 @Transactional 어노테이션을 다시 주석처리하지 않고 회원가입 테스트를 실행한다.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2378&quot; data-origin-height=&quot;1188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IB50C/btsHQIv4b9D/hlfxfiGD2fO3nG3QAmyqHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IB50C/btsHQIv4b9D/hlfxfiGD2fO3nG3QAmyqHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IB50C/btsHQIv4b9D/hlfxfiGD2fO3nG3QAmyqHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIB50C%2FbtsHQIv4b9D%2FhlfxfiGD2fO3nG3QAmyqHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;2378&quot; height=&quot;1188&quot; data-origin-width=&quot;2378&quot; data-origin-height=&quot;1188&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 몇번을 실행해도 테스트가 실행된 뒤에 디비를 봐도 깔끔!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트를 시작하기 전에 transaction을 걸고,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;db에 쿼리를 다 날린다. (그래서 findOne, join 등등 다 됨)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그 후 테스트가 끝날 때 롤백 해버림(반영을 아예 하지 않음)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; DB의 실제 데이터에 반영이 되어있지 않음&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 다음 테스트를 반복해서 실행할 수 있다!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기존처럼 지우는 코드를 넣지 않아도 됨.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;b&gt;11. 18번 라인 왼쪽을 클릭해 전체 test파일 실행&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1636&quot; data-origin-height=&quot;652&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qfzUV/btsHRlUCtYu/q03PvfGHSHe6wczG7wdSd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qfzUV/btsHRlUCtYu/q03PvfGHSHe6wczG7wdSd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qfzUV/btsHRlUCtYu/q03PvfGHSHe6wczG7wdSd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqfzUV%2FbtsHRlUCtYu%2Fq03PvfGHSHe6wczG7wdSd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1636&quot; height=&quot;652&quot; data-origin-width=&quot;1636&quot; data-origin-height=&quot;652&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1480&quot; data-origin-height=&quot;668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mRjpR/btsHPoMeNan/2Y2Wo56uVmi8tbOgDbV7k1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mRjpR/btsHPoMeNan/2Y2Wo56uVmi8tbOgDbV7k1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mRjpR/btsHPoMeNan/2Y2Wo56uVmi8tbOgDbV7k1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmRjpR%2FbtsHPoMeNan%2F2Y2Wo56uVmi8tbOgDbV7k1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1480&quot; height=&quot;668&quot; data-origin-width=&quot;1480&quot; data-origin-height=&quot;668&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중복 회원 예외 및 회원가입 모두 정상적으로 실행!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정리&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- @&lt;b&gt;SpringBootTest&lt;/b&gt; : 스프링 컨테이너와 테스트를 함께 실행함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- @&lt;b&gt;Transactional&lt;/b&gt; : 테스트 케이스에 이 애노테이션이 있으면, 테스트 시작 전에 트랜잭션을 시작하고, 테스트 완료 후에 항상 롤백한다. 이렇게 하면 DB에 데이터가 남지 않으므로 다음 테스트에 영향을 주지 않는다. (테스트케이스에 붙었을 때만 이런식으로 작동한다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;단위 테스트&lt;/b&gt; : 순수하게 자바 코드로 하면서 최소한의 단위로 하는 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;통합 테스트&lt;/b&gt; : 디비, 스프링컨테이너까지 연동한 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;이때 순수한 단위 테스트가 훨씬 좋은 테스트일 확률이 높음.&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러므로 순수한 단위, 단위로 쪼개서 테스트를 잘 할 수 있도록 하고, 스프링 컨테이너 없이 테스트할 수 있도록 훈련해야함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;꼭 그런건 아니지만, 그럴 확률이 높다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어쩔수 없이 컨테이너까지 올려야하는 상황이라면, 테스트 설계가 잘못 됐을 확률이 높음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통합 테스트도 필요하긴 하나, 단위 테스트를 잘 만드는 것이 좋음!!!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 시간에는 스프링의 JDBC 템플릿으로 바꿔서 돌려볼 것임!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Backend</category>
      <category>백엔드</category>
      <category>백엔드공부</category>
      <category>스프링김영한</category>
      <category>스프링김영한강의정리</category>
      <category>인프런스프링김영한</category>
      <author>rocher71</author>
      <guid isPermaLink="true">https://bba-jin.tistory.com/75</guid>
      <comments>https://bba-jin.tistory.com/75#entry75comment</comments>
      <pubDate>Thu, 6 Jun 2024 21:16:09 +0900</pubDate>
    </item>
  </channel>
</rss>