<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Jaybon 의 지식창고</title>
    <link>https://ondolroom.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 17 May 2026 14:35:09 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>Jaybon</managingEditor>
    <image>
      <title>Jaybon 의 지식창고</title>
      <url>https://t1.daumcdn.net/cfile/tistory/133256144C3CD3FB14</url>
      <link>https://ondolroom.tistory.com</link>
    </image>
    <item>
      <title>아침 사과는 정말 보약일까? 사과의 효능부터 고르는 법까지 완벽 정리</title>
      <link>https://ondolroom.tistory.com/896</link>
      <description>&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;안녕하세요! 오늘은 한국인이 가장 사랑하는 과일 중 하나이자, '하루 한 알이면 의사가 필요 없다'는 속담의 주인공인&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;사과&lt;/b&gt;에 대해 알아보겠습니다. 아삭한 식감과 달콤새콤한 맛으로 남녀노소 모두에게 인기 있는 사과는 단순한 간식을 넘어 우리 건강에 엄청난 도움을 줍니다.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;1. 사과의 놀라운 효능 3가지&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;사과가 몸에 좋다는 것은 누구나 알지만, 구체적으로 어디에 좋은지 알고 먹으면 더 효과적이겠죠? 사과의 핵심 효능을 정리해 드립니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; color: #000000; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;장 건강 및 변비 예방:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;사과에 풍부한 수용성 식이섬유인 '펙틴'은 장 운동을 촉진하고 배변 활동을 도와 변비 해소에 탁월합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;항산화 및 노화 방지:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;사과 껍질에 들어있는 퀘르세틴 성분은 강력한 항산화 작용을 하여 세포의 노화를 막고 염증을 줄여줍니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;다이어트 및 혈당 조절:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;식이섬유가 풍부해 포만감을 오래 유지시켜 주며, 급격한 혈당 상승을 억제하는 데 도움을 줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;2. 실패 없는 맛있는 사과 고르는 법&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;마트나 시장에서 어떤 사과를 골라야 할지 고민되셨나요? 다음 세 가지만 기억하세요!&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal; color: #000000; text-align: left;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b&gt;색깔:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;전체적으로 고르게 붉고, 아래쪽(꽃받침 부분)까지 노란색이나 녹색 기운 없이 잘 익은 것이 달콤합니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;꼭지:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;꼭지가 마르지 않고 싱싱하며 푸른색을 띠는 것이 수분이 많고 신선한 사과입니다.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;촉감과 소리:&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;가볍게 두드렸을 때 탱탱하고 맑은 소리가 나는 것이 과육이 단단하고 당도가 높습니다.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;3. 밤에 먹는 사과는 정말 '독사과'일까?&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;흔히 '아침 사과는 금, 밤 사과는 독'이라는 말이 있습니다. 이는 사과의 유기산 성분이 밤늦게 섭취할 경우 위 점막을 자극하거나 장 운동을 활발하게 해 숙면을 방해할 수 있기 때문입니다. 하지만&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;위장이 건강한 분들이라면 저녁에 소량 섭취하는 것은 큰 문제가 되지 않습니다.&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;다만, 소화력이 약한 분들은 가급적 오전에 드시는 것을 추천합니다.&lt;/p&gt;
&lt;h2 style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;4. 사과에 대해 자주 묻는 질문 (FAQ)&lt;/h2&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q1. 사과 껍질째 먹어도 되나요?&lt;/b&gt;&lt;br /&gt;네, 적극 권장합니다! 사과의 항산화 성분과 식이섬유의 상당 부분이 껍질에 집중되어 있습니다. 깨끗이 세척하여 껍질째 드시는 것이 영양 섭취 면에서 가장 좋습니다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q2. 사과 씨는 먹으면 안 되나요?&lt;/b&gt;&lt;br /&gt;사과 씨에는 '아미그달린'이라는 독성 물질이 미량 포함되어 있습니다. 성인이 몇 알 먹는다고 치명적이진 않지만, 가급적 씨는 제거하고 드시는 것이 안전합니다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;Q3. 사과를 다른 과일과 함께 보관해도 될까요?&lt;/b&gt;&lt;br /&gt;주의가 필요합니다! 사과는 성숙 촉진 호르몬인 '에틸렌 가스'를 방출합니다. 다른 과일이나 채소와 함께 두면 금방 시들게 할 수 있으므로, 사과는 비닐 팩에 넣어 따로 보관하는 것이 좋습니다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;오늘 알려드린 정보로 더 건강하고 맛있게 사과를 즐겨보세요! 여러분의 건강한 하루를 응원합니다.&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; 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://link.coupang.com/a/dpnKhB&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;&lt;img src=&quot;https://image10.coupangcdn.com/image/affiliate/banner/50adb00fbba9eaa2c9fe32e35a7e54ec@2x.jpg&quot; alt=&quot;곰곰 5번 선별한 못생겨도 맛있는 사과, 1개, 1.5kg(7~12입)&quot; width=&quot;120&quot; height=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #000000; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #3c3d3f; text-align: left;&quot;&gt;&quot;이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.&quot;&lt;/span&gt;&lt;/p&gt;</description>
      <category>정보</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/896</guid>
      <comments>https://ondolroom.tistory.com/896#entry896comment</comments>
      <pubDate>Sat, 10 Jan 2026 13:59:13 +0900</pubDate>
    </item>
    <item>
      <title>코틀린 스프링부트 참고 사이트들</title>
      <link>https://ondolroom.tistory.com/895</link>
      <description>&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://minkukjo.github.io/study/docs/spring/jpa/kotlin-jpa-guide/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://minkukjo.github.io/study/docs/spring/jpa/kotlin-jpa-guide/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660653246023&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;Kotlin JPA 개발 가이드 | 도전하는 개발자&quot; data-og-description=&quot;JPA With Kotlin&quot; data-og-host=&quot;minkukjo.github.io&quot; data-og-source-url=&quot;https://minkukjo.github.io/study/docs/spring/jpa/kotlin-jpa-guide/&quot; data-og-url=&quot;https://minkukjo.github.io/study/docs/spring/jpa/kotlin-jpa-guide&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://minkukjo.github.io/study/docs/spring/jpa/kotlin-jpa-guide/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://minkukjo.github.io/study/docs/spring/jpa/kotlin-jpa-guide/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;Kotlin JPA 개발 가이드 | 도전하는 개발자&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;JPA With Kotlin&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;minkukjo.github.io&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;코틀린 스프링 부트에 QueryDsl 적용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://dev-gorany.tistory.com/362&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://dev-gorany.tistory.com/362&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660653039524&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;[Spring Boot] Kotlin Querydsl 적용 (with. Mono repo, Multi module)&quot; data-og-description=&quot;[Spring Boot] Mono Repo, Multi Module (with. Gradle Kotlin DSL) Intro 개인 프로젝트 정도의 규모라면 하나의 프로젝트 안에 api, web, admin 등이 모두 들어가있어도 커버가 되지만, 규모가 커지면 각각 개별..&quot; data-og-host=&quot;dev-gorany.tistory.com&quot; data-og-source-url=&quot;https://dev-gorany.tistory.com/362&quot; data-og-url=&quot;https://dev-gorany.tistory.com/362&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bKGjNc/hyPsOvgCkQ/gCTSq3KEQCvL9U95RcoFg1/img.png?width=240&amp;amp;height=210&amp;amp;face=0_0_240_210,https://scrap.kakaocdn.net/dn/boarWb/hyPsKGrMlw/4R8MnhiNhGeKHcpNDHlmmk/img.png?width=240&amp;amp;height=210&amp;amp;face=0_0_240_210,https://scrap.kakaocdn.net/dn/rddMz/hyPsI2ZjUn/OgKwTeqULqhbKKQyuJal6k/img.jpg?width=760&amp;amp;height=629&amp;amp;face=0_0_760_629&quot;&gt;&lt;a href=&quot;https://dev-gorany.tistory.com/362&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dev-gorany.tistory.com/362&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bKGjNc/hyPsOvgCkQ/gCTSq3KEQCvL9U95RcoFg1/img.png?width=240&amp;amp;height=210&amp;amp;face=0_0_240_210,https://scrap.kakaocdn.net/dn/boarWb/hyPsKGrMlw/4R8MnhiNhGeKHcpNDHlmmk/img.png?width=240&amp;amp;height=210&amp;amp;face=0_0_240_210,https://scrap.kakaocdn.net/dn/rddMz/hyPsI2ZjUn/OgKwTeqULqhbKKQyuJal6k/img.jpg?width=760&amp;amp;height=629&amp;amp;face=0_0_760_629');&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;[Spring Boot] Kotlin Querydsl 적용 (with. Mono repo, Multi module)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[Spring Boot] Mono Repo, Multi Module (with. Gradle Kotlin DSL) Intro 개인 프로젝트 정도의 규모라면 하나의 프로젝트 안에 api, web, admin 등이 모두 들어가있어도 커버가 되지만, 규모가 커지면 각각 개별..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dev-gorany.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://velog.io/@gosgjung/kotlin-DSL-gradle-QueryDSL-%EC%84%A4%EC%A0%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@gosgjung/kotlin-DSL-gradle-QueryDSL-%EC%84%A4%EC%A0%95&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660665902073&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;(chartnomy) kotlin DSL gradle - QueryDSL 설정&quot; data-og-description=&quot;아직 QueryDsl을 사용하는 코틀린 DSL 기반 Gradle 을 사용하는 Spring Boot 서적들이 없는 것 같았다. (물론 내가 못 찾는 거일수도 있다는거). 인터넷을 찾아가면서 kotlin 기반 gradle 파일에서 querydsl 을 &quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@gosgjung/kotlin-DSL-gradle-QueryDSL-%EC%84%A4%EC%A0%95&quot; data-og-url=&quot;https://velog.io/@gosgjung/kotlin-DSL-gradle-QueryDSL-설정&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/DyqhV/hyPsVVGw8l/N9KpNBRCiS9cwPHsn84La0/img.jpg?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300,https://scrap.kakaocdn.net/dn/SvXhl/hyPsQz2p5R/rWZ9Xhk0hGxK7XCY4kswjk/img.jpg?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300,https://scrap.kakaocdn.net/dn/cbyKkw/hyPsOIYEMa/V7rN1urh3hm0hnzk41UZHk/img.jpg?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300&quot;&gt;&lt;a href=&quot;https://velog.io/@gosgjung/kotlin-DSL-gradle-QueryDSL-%EC%84%A4%EC%A0%95&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@gosgjung/kotlin-DSL-gradle-QueryDSL-%EC%84%A4%EC%A0%95&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/DyqhV/hyPsVVGw8l/N9KpNBRCiS9cwPHsn84La0/img.jpg?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300,https://scrap.kakaocdn.net/dn/SvXhl/hyPsQz2p5R/rWZ9Xhk0hGxK7XCY4kswjk/img.jpg?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300,https://scrap.kakaocdn.net/dn/cbyKkw/hyPsOIYEMa/V7rN1urh3hm0hnzk41UZHk/img.jpg?width=300&amp;amp;height=300&amp;amp;face=0_0_300_300');&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;(chartnomy) kotlin DSL gradle - QueryDSL 설정&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;아직 QueryDsl을 사용하는 코틀린 DSL 기반 Gradle 을 사용하는 Spring Boot 서적들이 없는 것 같았다. (물론 내가 못 찾는 거일수도 있다는거). 인터넷을 찾아가면서 kotlin 기반 gradle 파일에서 querydsl 을&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&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;withConvention deprecated 처리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://pasudo123.tistory.com/472&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://pasudo123.tistory.com/472&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660653071548&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;20210828 [gradle] The concept of conventions is deprecated. Use extensions instead&quot; data-og-description=&quot;개요 querydsl 설정하던도중 Qclass 경로 설정에 대한 deprecated 뭐 만나서 그냥 잠깐 삽질한 경험 공유. gradle version 7.x 이상부터 확인된다. 문제코드 withConvention 을 상세 클릭하면 아래와 같은 내용이..&quot; data-og-host=&quot;pasudo123.tistory.com&quot; data-og-source-url=&quot;https://pasudo123.tistory.com/472&quot; data-og-url=&quot;https://pasudo123.tistory.com/472&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bx0MfH/hyPsSEq2mE/SkkVcSBzYSFGlhKEwr7kyk/img.png?width=800&amp;amp;height=85&amp;amp;face=0_0_800_85,https://scrap.kakaocdn.net/dn/dkhKdJ/hyPsNC8cs7/YvU6DdgP4zhaK2YJ3b2OFk/img.png?width=800&amp;amp;height=85&amp;amp;face=0_0_800_85&quot;&gt;&lt;a href=&quot;https://pasudo123.tistory.com/472&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://pasudo123.tistory.com/472&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bx0MfH/hyPsSEq2mE/SkkVcSBzYSFGlhKEwr7kyk/img.png?width=800&amp;amp;height=85&amp;amp;face=0_0_800_85,https://scrap.kakaocdn.net/dn/dkhKdJ/hyPsNC8cs7/YvU6DdgP4zhaK2YJ3b2OFk/img.png?width=800&amp;amp;height=85&amp;amp;face=0_0_800_85');&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;20210828 [gradle] The concept of conventions is deprecated. Use extensions instead&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;개요 querydsl 설정하던도중 Qclass 경로 설정에 대한 deprecated 뭐 만나서 그냥 잠깐 삽질한 경험 공유. gradle version 7.x 이상부터 확인된다. 문제코드 withConvention 을 상세 클릭하면 아래와 같은 내용이..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;pasudo123.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;spiring boot jpa entity 작성하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://chana.tistory.com/entry/spring-boot-kotlin-kotlin%EC%9C%BC%EB%A1%9C-JPA-entity-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://chana.tistory.com/entry/spring-boot-kotlin-kotlin%EC%9C%BC%EB%A1%9C-JPA-entity-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660653096284&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;[spring boot / kotlin] kotlin으로 JPA entity 작성하기&quot; data-og-description=&quot;Spring boot 프레임워크에서는 @Entiy 어노테이션을 사용해서 어플리케이션의 엔티티 객체와 데이터베이스 테이블을 매핑해 객체지향적으로 데이터베이스의 데이터를 관리할 수 있다. JPA 엔티티를 &quot; data-og-host=&quot;chana.tistory.com&quot; data-og-source-url=&quot;https://chana.tistory.com/entry/spring-boot-kotlin-kotlin%EC%9C%BC%EB%A1%9C-JPA-entity-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://chana.tistory.com/entry/spring-boot-kotlin-kotlin%EC%9C%BC%EB%A1%9C-JPA-entity-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/d8htPI/hyPsVnEjXO/RBRv3DPcDhLaPpHorl7d1k/img.png?width=735&amp;amp;height=560&amp;amp;face=0_0_735_560,https://scrap.kakaocdn.net/dn/mpxnf/hyPsRZO879/dK4uZqEfK4e1xYJQqwsdAK/img.png?width=735&amp;amp;height=560&amp;amp;face=0_0_735_560&quot;&gt;&lt;a href=&quot;https://chana.tistory.com/entry/spring-boot-kotlin-kotlin%EC%9C%BC%EB%A1%9C-JPA-entity-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://chana.tistory.com/entry/spring-boot-kotlin-kotlin%EC%9C%BC%EB%A1%9C-JPA-entity-%EC%9E%91%EC%84%B1%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/d8htPI/hyPsVnEjXO/RBRv3DPcDhLaPpHorl7d1k/img.png?width=735&amp;amp;height=560&amp;amp;face=0_0_735_560,https://scrap.kakaocdn.net/dn/mpxnf/hyPsRZO879/dK4uZqEfK4e1xYJQqwsdAK/img.png?width=735&amp;amp;height=560&amp;amp;face=0_0_735_560');&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;[spring boot / kotlin] kotlin으로 JPA entity 작성하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Spring boot 프레임워크에서는 @Entiy 어노테이션을 사용해서 어플리케이션의 엔티티 객체와 데이터베이스 테이블을 매핑해 객체지향적으로 데이터베이스의 데이터를 관리할 수 있다. JPA 엔티티를&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;chana.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://effectivesquid.tistory.com/entry/Kotlin-JPA-%EC%82%AC%EC%9A%A9%EC%8B%9C-Entity-%EC%A0%95%EC%9D%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://effectivesquid.tistory.com/entry/Kotlin-JPA-%EC%82%AC%EC%9A%A9%EC%8B%9C-Entity-%EC%A0%95%EC%9D%98&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660653266022&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;Kotlin + JPA 사용시 Entity 정의&quot; data-og-description=&quot;클래스 정의 제약 사항 JPA를 사용하게 되면 대부분 Hibernate를 구현체로 사용하게 된다. Hibernate를 구현체로 사용하게 되면 Entity로 사용할 클래스에 몇 가지 제약사항이 존재한다. https://docs.oracle.c&quot; data-og-host=&quot;effectivesquid.tistory.com&quot; data-og-source-url=&quot;https://effectivesquid.tistory.com/entry/Kotlin-JPA-%EC%82%AC%EC%9A%A9%EC%8B%9C-Entity-%EC%A0%95%EC%9D%98&quot; data-og-url=&quot;https://effectivesquid.tistory.com/entry/Kotlin-JPA-%EC%82%AC%EC%9A%A9%EC%8B%9C-Entity-%EC%A0%95%EC%9D%98&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iF9n7/hyPsUbbRR7/u9nZ7u2uSqsNldYm14QpYK/img.png?width=800&amp;amp;height=63&amp;amp;face=0_0_800_63,https://scrap.kakaocdn.net/dn/e6qpw/hyPsSErjVg/cz0onR1dlWWXCQGmFxz681/img.png?width=800&amp;amp;height=63&amp;amp;face=0_0_800_63,https://scrap.kakaocdn.net/dn/bbaFop/hyPsMxsTnP/CjrqH4cjnljkjM5ONtZ1k1/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512&quot;&gt;&lt;a href=&quot;https://effectivesquid.tistory.com/entry/Kotlin-JPA-%EC%82%AC%EC%9A%A9%EC%8B%9C-Entity-%EC%A0%95%EC%9D%98&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://effectivesquid.tistory.com/entry/Kotlin-JPA-%EC%82%AC%EC%9A%A9%EC%8B%9C-Entity-%EC%A0%95%EC%9D%98&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iF9n7/hyPsUbbRR7/u9nZ7u2uSqsNldYm14QpYK/img.png?width=800&amp;amp;height=63&amp;amp;face=0_0_800_63,https://scrap.kakaocdn.net/dn/e6qpw/hyPsSErjVg/cz0onR1dlWWXCQGmFxz681/img.png?width=800&amp;amp;height=63&amp;amp;face=0_0_800_63,https://scrap.kakaocdn.net/dn/bbaFop/hyPsMxsTnP/CjrqH4cjnljkjM5ONtZ1k1/img.jpg?width=512&amp;amp;height=512&amp;amp;face=0_0_512_512');&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;Kotlin + JPA 사용시 Entity 정의&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;클래스 정의 제약 사항 JPA를 사용하게 되면 대부분 Hibernate를 구현체로 사용하게 된다. Hibernate를 구현체로 사용하게 되면 Entity로 사용할 클래스에 몇 가지 제약사항이 존재한다. https://docs.oracle.c&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;effectivesquid.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;querydsl 커스텀&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gksdudrb922.tistory.com/125&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://gksdudrb922.tistory.com/125&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660658792163&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;[Querydsl] 스프링 데이터 JPA가 제공하는 Querydsl 기능&quot; data-og-description=&quot;https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84/ 실전! Querydsl - 인프런 | 강의 Querydsl의 기초부터 실무 활용까지 한번에 해결, 본 강의는 자바 백엔드 개발의 실전 코스를 완성하는 마지막 강..&quot; data-og-host=&quot;gksdudrb922.tistory.com&quot; data-og-source-url=&quot;https://gksdudrb922.tistory.com/125&quot; data-og-url=&quot;https://gksdudrb922.tistory.com/125&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/zK5zg/hyPsWttMMj/VbHRbq5434GI7x8DJRxJQK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/b4SgV9/hyPsXsqIxJ/zGUsourltdXNop4xNI8L71/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://gksdudrb922.tistory.com/125&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gksdudrb922.tistory.com/125&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/zK5zg/hyPsWttMMj/VbHRbq5434GI7x8DJRxJQK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/b4SgV9/hyPsXsqIxJ/zGUsourltdXNop4xNI8L71/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;[Querydsl] 스프링 데이터 JPA가 제공하는 Querydsl 기능&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;https://www.inflearn.com/course/Querydsl-%EC%8B%A4%EC%A0%84/ 실전! Querydsl - 인프런 | 강의 Querydsl의 기초부터 실무 활용까지 한번에 해결, 본 강의는 자바 백엔드 개발의 실전 코스를 완성하는 마지막 강..&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gksdudrb922.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://blog.sapzil.org/2018/08/26/kotlin-jpa-pitfalls-embeddable/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://blog.sapzil.org/2018/08/26/kotlin-jpa-pitfalls-embeddable/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1660878232127&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;Kotlin에서 JPA 사용할 때 주의할 점 (2) - Embeddable, IdClass | The Sapzil&quot; data-og-description=&quot;Kotlin에서 JPA 사용할 때 주의할 점을 쓴 이후로 직장에서 하는 프로젝트에도 Kotlin + JPA를 사용하게 되었습니다. 그러다보니 좀 더 고급 기능을 사용하게 되고 또 여러가지 새로운 어려움에 부딪&quot; data-og-host=&quot;blog.sapzil.org&quot; data-og-source-url=&quot;https://blog.sapzil.org/2018/08/26/kotlin-jpa-pitfalls-embeddable/&quot; data-og-url=&quot;https://blog.sapzil.org/2018/08/26/kotlin-jpa-pitfalls-embeddable/&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://blog.sapzil.org/2018/08/26/kotlin-jpa-pitfalls-embeddable/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://blog.sapzil.org/2018/08/26/kotlin-jpa-pitfalls-embeddable/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;Kotlin에서 JPA 사용할 때 주의할 점 (2) - Embeddable, IdClass | The Sapzil&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Kotlin에서 JPA 사용할 때 주의할 점을 쓴 이후로 직장에서 하는 프로젝트에도 Kotlin + JPA를 사용하게 되었습니다. 그러다보니 좀 더 고급 기능을 사용하게 되고 또 여러가지 새로운 어려움에 부딪&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;blog.sapzil.org&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;</description>
      <category>Server/Spring Boot</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/895</guid>
      <comments>https://ondolroom.tistory.com/895#entry895comment</comments>
      <pubDate>Tue, 16 Aug 2022 21:34:40 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트 / n개의 요소를 가진 배열 생성하기 , 배열에 동일한 데이터 채우기</title>
      <link>https://ondolroom.tistory.com/894</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1659792843157&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// n개의 요소를 가진 배열 생성하기
const arr = Array(n);

// 배열에 동일한 데이터 채우기
// 모든 요소를 5로 채울 경우
arr.fill(5);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Web/JavaScript</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/894</guid>
      <comments>https://ondolroom.tistory.com/894#entry894comment</comments>
      <pubDate>Sat, 6 Aug 2022 22:35:55 +0900</pubDate>
    </item>
    <item>
      <title>플러터 인텔리제이에서 안드로이드 스튜디오 안켜질 때</title>
      <link>https://ondolroom.tistory.com/893</link>
      <description>&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://github.com/flutter/flutter-intellij/issues/2113&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://github.com/flutter/flutter-intellij/issues/2113&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1652626451780&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;IntelliJ idea can't find android studio &amp;middot; Issue #2113 &amp;middot; flutter/flutter-intellij&quot; data-og-description=&quot;Having a problem with intellij idea. I have a Flutter project that's not finding some plugins (same issue in this thread #2089). So, I tried to right-click on the android folder -&amp;gt; Flutter -...&quot; data-og-host=&quot;github.com&quot; data-og-source-url=&quot;https://github.com/flutter/flutter-intellij/issues/2113&quot; data-og-url=&quot;https://github.com/flutter/flutter-intellij/issues/2113&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/boHi4K/hyOpGj2HGI/esIb7aj1Nq7QNLqdrUBiGk/img.png?width=1200&amp;amp;height=600&amp;amp;face=0_0_1200_600&quot;&gt;&lt;a href=&quot;https://github.com/flutter/flutter-intellij/issues/2113&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://github.com/flutter/flutter-intellij/issues/2113&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/boHi4K/hyOpGj2HGI/esIb7aj1Nq7QNLqdrUBiGk/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;IntelliJ idea can't find android studio &amp;middot; Issue #2113 &amp;middot; flutter/flutter-intellij&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Having a problem with intellij idea. I have a Flutter project that's not finding some plugins (same issue in this thread #2089). So, I tried to right-click on the android folder -&amp;gt; Flutter -...&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 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://www.google.com/search?q=toolbox+android+studio+location&amp;amp;oq=toolbox+android+studio+location&amp;amp;aqs=chrome..69i57j0i5i30.7377j0j7&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&quot;&gt;https://www.google.com/search?q=toolbox+android+studio+location&amp;amp;oq=toolbox+android+studio+location&amp;amp;aqs=chrome..69i57j0i5i30.7377j0j7&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;figure id=&quot;og_1652626463096&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;toolbox android studio location - Google 검색&quot; data-og-description=&quot;GPS Status &amp;amp; Toolbox has 19532275 downloads on Android Freeware and is among the most popular Travel, Local, GPS, compass, location, maps, tool, agps,&amp;nbsp;...&quot; data-og-host=&quot;www.google.com&quot; data-og-source-url=&quot;https://www.google.com/search?q=toolbox+android+studio+location&amp;amp;oq=toolbox+android+studio+location&amp;amp;aqs=chrome..69i57j0i5i30.7377j0j7&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&quot; data-og-url=&quot;https://www.google.com/search?q=toolbox+android+studio+location&amp;amp;oq=toolbox+android+studio+location&amp;amp;aqs=chrome..69i57j0i5i30.7377j0j7&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.google.com/search?q=toolbox+android+studio+location&amp;amp;oq=toolbox+android+studio+location&amp;amp;aqs=chrome..69i57j0i5i30.7377j0j7&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.google.com/search?q=toolbox+android+studio+location&amp;amp;oq=toolbox+android+studio+location&amp;amp;aqs=chrome..69i57j0i5i30.7377j0j7&amp;amp;sourceid=chrome&amp;amp;ie=UTF-8&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&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;toolbox android studio location - Google 검색&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;GPS Status &amp;amp; Toolbox has 19532275 downloads on Android Freeware and is among the most popular Travel, Local, GPS, compass, location, maps, tool, agps,&amp;nbsp;...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.google.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;C:\Users\유저명\AppData\Local\JetBrains\Toolbox\apps\AndroidStudio\ch-1\212.5712.43.2112.8403254&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>App/Flutter</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/893</guid>
      <comments>https://ondolroom.tistory.com/893#entry893comment</comments>
      <pubDate>Sun, 15 May 2022 23:55:37 +0900</pubDate>
    </item>
    <item>
      <title>Docker 도커 AWS EC2로 세팅 및 SpringBoot로 배포해보기</title>
      <link>https://ondolroom.tistory.com/891</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 준비물&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SSH 접속 툴 : Mobax&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Putty와 FileZilla를 합쳐놓은 듯한 프로그램이다.&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://mobaxterm.mobatek.net/download.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://mobaxterm.mobatek.net/download.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650853436068&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;MobaXterm free Xserver and tabbed SSH client for Windows&quot; data-og-description=&quot;The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!&quot; data-og-host=&quot;mobaxterm.mobatek.net&quot; data-og-source-url=&quot;https://mobaxterm.mobatek.net/download.html&quot; data-og-url=&quot;https://mobaxterm.mobatek.net/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cQopyD/hyN9LGP7Lj/CAP0A2Oa4j2Fk92tcsKnO1/img.png?width=764&amp;amp;height=489&amp;amp;face=0_0_764_489,https://scrap.kakaocdn.net/dn/dbrTB5/hyN9Zd2YHR/hWvi065JlUn9YGRIGXyLV0/img.png?width=768&amp;amp;height=443&amp;amp;face=0_0_768_443,https://scrap.kakaocdn.net/dn/b29D9q/hyN9XmYjY8/VHy9Gstu2ZDMvOpTlt67M0/img.png?width=768&amp;amp;height=443&amp;amp;face=0_0_768_443&quot;&gt;&lt;a href=&quot;https://mobaxterm.mobatek.net/download.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mobaxterm.mobatek.net/download.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cQopyD/hyN9LGP7Lj/CAP0A2Oa4j2Fk92tcsKnO1/img.png?width=764&amp;amp;height=489&amp;amp;face=0_0_764_489,https://scrap.kakaocdn.net/dn/dbrTB5/hyN9Zd2YHR/hWvi065JlUn9YGRIGXyLV0/img.png?width=768&amp;amp;height=443&amp;amp;face=0_0_768_443,https://scrap.kakaocdn.net/dn/b29D9q/hyN9XmYjY8/VHy9Gstu2ZDMvOpTlt67M0/img.png?width=768&amp;amp;height=443&amp;amp;face=0_0_768_443');&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;MobaXterm free Xserver and tabbed SSH client for Windows&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mobaxterm.mobatek.net&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;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://ondolroom.tistory.com/815&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ondolroom.tistory.com/815&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650854898667&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;도커 설치 및 기본 이용&quot; data-og-description=&quot;참고 영상 youtu.be/hWPv9LMlme8 www.yalco.kr/36_docker/ 가장 쉽게 배우는 도커 어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주 &quot; data-og-host=&quot;ondolroom.tistory.com&quot; data-og-source-url=&quot;https://ondolroom.tistory.com/815&quot; data-og-url=&quot;https://ondolroom.tistory.com/815&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/F2gpr/hyN9WaAS0n/X1LMYMGpMvxNog1f2m8QR0/img.png?width=324&amp;amp;height=549&amp;amp;face=0_0_324_549,https://scrap.kakaocdn.net/dn/ezyFD/hyN9PbqED1/lyG31JYUpfdUHGhsAVCXOk/img.png?width=324&amp;amp;height=549&amp;amp;face=0_0_324_549,https://scrap.kakaocdn.net/dn/OQOQk/hyN9WuSg5C/By0FuBrkvulViPNMfeMKy0/img.png?width=1040&amp;amp;height=660&amp;amp;face=0_0_1040_660&quot;&gt;&lt;a href=&quot;https://ondolroom.tistory.com/815&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ondolroom.tistory.com/815&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/F2gpr/hyN9WaAS0n/X1LMYMGpMvxNog1f2m8QR0/img.png?width=324&amp;amp;height=549&amp;amp;face=0_0_324_549,https://scrap.kakaocdn.net/dn/ezyFD/hyN9PbqED1/lyG31JYUpfdUHGhsAVCXOk/img.png?width=324&amp;amp;height=549&amp;amp;face=0_0_324_549,https://scrap.kakaocdn.net/dn/OQOQk/hyN9WuSg5C/By0FuBrkvulViPNMfeMKy0/img.png?width=1040&amp;amp;height=660&amp;amp;face=0_0_1040_660');&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;도커 설치 및 기본 이용&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;참고 영상 youtu.be/hWPv9LMlme8 www.yalco.kr/36_docker/ 가장 쉽게 배우는 도커 어려운 프로그래밍 개념들을 쉽게 설명해주는 유튜브 채널 '얄팍한 코딩사전'. 영상에서 다 알려주지 못한 정보들이나 자주&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ondolroom.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://ondolroom.tistory.com/881&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://ondolroom.tistory.com/881&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650854912690&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;도커 docker 간단 정리&quot; data-og-description=&quot;리눅스 우분투에 도커 설치 https://shanepark.tistory.com/237 Ubuntu 20.04 LTS ) Docker 설치하기 Intro Docker는 제가 회사에서 사용하는 노트북의 OS를 Windows 에서 Ubuntu 로 변경하게 된 트리거 였습니다...&quot; data-og-host=&quot;ondolroom.tistory.com&quot; data-og-source-url=&quot;https://ondolroom.tistory.com/881&quot; data-og-url=&quot;https://ondolroom.tistory.com/881&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/oMVjn/hyN9SssOX1/Bg6o0370W8JWcUBTC7Z6d1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/jlwkX/hyN9NxWv2i/c8tW2mSCI9xpANqtrx0BSk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800&quot;&gt;&lt;a href=&quot;https://ondolroom.tistory.com/881&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://ondolroom.tistory.com/881&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/oMVjn/hyN9SssOX1/Bg6o0370W8JWcUBTC7Z6d1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/jlwkX/hyN9NxWv2i/c8tW2mSCI9xpANqtrx0BSk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800');&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;도커 docker 간단 정리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;리눅스 우분투에 도커 설치 https://shanepark.tistory.com/237 Ubuntu 20.04 LTS ) Docker 설치하기 Intro Docker는 제가 회사에서 사용하는 노트북의 OS를 Windows 에서 Ubuntu 로 변경하게 된 트리거 였습니다...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;ondolroom.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;h2 data-ke-size=&quot;size26&quot;&gt;1. SpringBoot 프로젝트 준비 및 세팅&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단한 todoList를 준비하였다. 아래에서 다운로드 받을 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/9V6XZ/btrAh8qgG1x/fqtp9MmfnBtYkJI1s2FmTk/springdatajpa_project.zip?attach=1&amp;amp;knm=tfile.zip&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;springdatajpa_project.zip&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.07MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&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;pre id=&quot;code_1650850408042&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;//스프링부트 버전
springboot 2.6.2
// 자바 환경
java 1.8
// 데이터베이스
h2 mem database
// 포트
8082&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;위 프로젝트를 빌드하여 jar 파일로 만들자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일명은 springdatajpa_project 가 앞에 붙도록 제작하는 것을 추천한다.&lt;br /&gt;(ex springdatajpa_project-asdf.jar 등)&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://velog.io/@kekim20/Spring-Boot-%EB%B9%8C%EB%93%9C%ED%95%98%EC%97%AC-jar%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@kekim20/Spring-Boot-%EB%B9%8C%EB%93%9C%ED%95%98%EC%97%AC-jar%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650852197946&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;[Spring Boot] 빌드하여 jar파일 생성/실행하기&quot; data-og-description=&quot;빌드하고 jar파일로 실행하기&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@kekim20/Spring-Boot-%EB%B9%8C%EB%93%9C%ED%95%98%EC%97%AC-jar%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0&quot; data-og-url=&quot;https://velog.io/@kekim20/Spring-Boot-빌드하여-jar파일-생성실행하기&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/CROem/hyN9Y0t2NK/STsaMzGlKWxDae7yZOKzJ1/img.jpg?width=768&amp;amp;height=500&amp;amp;face=466_88_588_221,https://scrap.kakaocdn.net/dn/bmAQHL/hyN9WawzfV/jxYur8ZQhlEEAzL2Qc9rg1/img.jpg?width=768&amp;amp;height=500&amp;amp;face=466_88_588_221,https://scrap.kakaocdn.net/dn/VMDfJ/hyN9MscSsZ/KEweScfywc499DCjjCTFwk/img.jpg?width=1242&amp;amp;height=1274&amp;amp;face=0_0_1242_1274&quot;&gt;&lt;a href=&quot;https://velog.io/@kekim20/Spring-Boot-%EB%B9%8C%EB%93%9C%ED%95%98%EC%97%AC-jar%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@kekim20/Spring-Boot-%EB%B9%8C%EB%93%9C%ED%95%98%EC%97%AC-jar%ED%8C%8C%EC%9D%BC-%EC%83%9D%EC%84%B1%EC%8B%A4%ED%96%89%ED%95%98%EA%B8%B0&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/CROem/hyN9Y0t2NK/STsaMzGlKWxDae7yZOKzJ1/img.jpg?width=768&amp;amp;height=500&amp;amp;face=466_88_588_221,https://scrap.kakaocdn.net/dn/bmAQHL/hyN9WawzfV/jxYur8ZQhlEEAzL2Qc9rg1/img.jpg?width=768&amp;amp;height=500&amp;amp;face=466_88_588_221,https://scrap.kakaocdn.net/dn/VMDfJ/hyN9MscSsZ/KEweScfywc499DCjjCTFwk/img.jpg?width=1242&amp;amp;height=1274&amp;amp;face=0_0_1242_1274');&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;[Spring Boot] 빌드하여 jar파일 생성/실행하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;빌드하고 jar파일로 실행하기&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&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;h2 data-ke-size=&quot;size26&quot;&gt;2. AWS EC2 세팅하기&amp;nbsp;&lt;/h2&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는 콘솔화면이 자주 바뀐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;20220425날짜 기준으로 작성 중이다.&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 아이디가 없다면 가입하자.&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;374&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l5pAl/btrAmzAdEV4/WlASNRkQr7WbLwuzTKhEck/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l5pAl/btrAmzAdEV4/WlASNRkQr7WbLwuzTKhEck/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l5pAl/btrAmzAdEV4/WlASNRkQr7WbLwuzTKhEck/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl5pAl%2FbtrAmzAdEV4%2FWlASNRkQr7WbLwuzTKhEck%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;374&quot; height=&quot;287&quot; data-origin-width=&quot;374&quot; data-origin-height=&quot;287&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bOwnwd/btrAh8XXrER/YG43KmWP4kpgDyDs24KQB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bOwnwd/btrAh8XXrER/YG43KmWP4kpgDyDs24KQB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bOwnwd/btrAh8XXrER/YG43KmWP4kpgDyDs24KQB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOwnwd%2FbtrAh8XXrER%2FYG43KmWP4kpgDyDs24KQB0%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;808&quot; height=&quot;281&quot; data-origin-width=&quot;808&quot; data-origin-height=&quot;281&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;AMI는 서버의 OS를 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 결과 도커 환경을 원활히 작동시키는 Ubuntu을 추천한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;737&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/et7wh9/btrAlf9Qa4V/gV1IncOoDtLjBbB1slkw9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/et7wh9/btrAlf9Qa4V/gV1IncOoDtLjBbB1slkw9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/et7wh9/btrAlf9Qa4V/gV1IncOoDtLjBbB1slkw9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fet7wh9%2FbtrAlf9Qa4V%2FgV1IncOoDtLjBbB1slkw9K%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;796&quot; height=&quot;737&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;737&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;현재 연습용이기 때문에 프리티어(AWS 신규 가입시 1년간 무료) 유형을 선택하자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;206&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cHjsjG/btrAjprBJiS/va0sKnfUefGKkBPTjzD55K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cHjsjG/btrAjprBJiS/va0sKnfUefGKkBPTjzD55K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cHjsjG/btrAjprBJiS/va0sKnfUefGKkBPTjzD55K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcHjsjG%2FbtrAjprBJiS%2Fva0sKnfUefGKkBPTjzD55K%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;206&quot; data-origin-width=&quot;801&quot; data-origin-height=&quot;206&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;br /&gt;(생성 시 기본적으로 키페어 유형은 RSA, 여기서는 Mobax를 사용하므로 파일 형식은 pem 추천)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;205&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/o7RuZ/btrAcVxPX4l/6MuX1lhgwyvCbFEfoyK7k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/o7RuZ/btrAcVxPX4l/6MuX1lhgwyvCbFEfoyK7k0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/o7RuZ/btrAcVxPX4l/6MuX1lhgwyvCbFEfoyK7k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fo7RuZ%2FbtrAcVxPX4l%2F6MuX1lhgwyvCbFEfoyK7k0%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;795&quot; height=&quot;205&quot; data-origin-width=&quot;795&quot; data-origin-height=&quot;205&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;br /&gt;SSH 트래픽허용 / HTTPS 트래픽 허용 / HTTP 트래픽 허용을 선택해주자.(22 / 443 / 80 인바운드 포트가 열린다.)&lt;br /&gt;(추후 다른 포트를 사용할 경우 보안그룹에서 포트 설정을 해줘야 된다는 점을 기억하자.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;519&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/G6Bnc/btrAj3u2EK3/CoUEG0lmNfKnTadjYBVsM1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/G6Bnc/btrAj3u2EK3/CoUEG0lmNfKnTadjYBVsM1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/G6Bnc/btrAj3u2EK3/CoUEG0lmNfKnTadjYBVsM1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FG6Bnc%2FbtrAj3u2EK3%2FCoUEG0lmNfKnTadjYBVsM1%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;519&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;519&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;용량은 10기가 이상 gp3를 이용하는 것을 추천한다.&lt;br /&gt;aws신규 가입자는 프리티어로 비용없이 사용가능 하기 때문에 30기가로 설정해도 무방하다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;390&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ch6OB8/btrAhdSJhnE/JL5aLyNezCa5VvzMp2Vuu1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ch6OB8/btrAhdSJhnE/JL5aLyNezCa5VvzMp2Vuu1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ch6OB8/btrAhdSJhnE/JL5aLyNezCa5VvzMp2Vuu1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fch6OB8%2FbtrAhdSJhnE%2FJL5aLyNezCa5VvzMp2Vuu1%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;794&quot; height=&quot;390&quot; data-origin-width=&quot;794&quot; data-origin-height=&quot;390&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 alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;712&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ul2sS/btrAlhNlHRs/GntxkbtVhvftNfstFW5NR0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ul2sS/btrAlhNlHRs/GntxkbtVhvftNfstFW5NR0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ul2sS/btrAlhNlHRs/GntxkbtVhvftNfstFW5NR0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ful2sS%2FbtrAlhNlHRs%2FGntxkbtVhvftNfstFW5NR0%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;393&quot; height=&quot;712&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;712&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;br /&gt;(늦게 뜨는 경우가 있으니 새로고침하거나 기다려보자.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;699&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cDhfbx/btrAj2PIJ2Z/NBWbl8IQINlyo8UzWKPKI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cDhfbx/btrAj2PIJ2Z/NBWbl8IQINlyo8UzWKPKI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cDhfbx/btrAj2PIJ2Z/NBWbl8IQINlyo8UzWKPKI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcDhfbx%2FbtrAj2PIJ2Z%2FNBWbl8IQINlyo8UzWKPKI1%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;699&quot; height=&quot;202&quot; data-origin-width=&quot;699&quot; data-origin-height=&quot;202&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;퍼블릭 IPv4 주소를 확인하자.&lt;br /&gt;(해당 아이피는 동적 아이피이다. 인스턴스를 중지하고 재실행하면 바뀔 수 있다. 바뀌지 않게 하려면 탄력적 IP를 사용하자.)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;210&quot; data-origin-height=&quot;78&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OCuzU/btrAmFtc0I8/WS1vkSnhJa3hpJiOB58m4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OCuzU/btrAmFtc0I8/WS1vkSnhJa3hpJiOB58m4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OCuzU/btrAmFtc0I8/WS1vkSnhJa3hpJiOB58m4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOCuzU%2FbtrAmFtc0I8%2FWS1vkSnhJa3hpJiOB58m4k%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;210&quot; height=&quot;78&quot; data-origin-width=&quot;210&quot; data-origin-height=&quot;78&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;h2 data-ke-size=&quot;size26&quot;&gt;3. EC2 접속 및 도커 세팅하기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MobaXterm을 켜서 접속 세팅을 하자.&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;Session을 누른다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9Cd5s/btrAlfILjpg/REo9iFgDlyev1EKB3WIy50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9Cd5s/btrAlfILjpg/REo9iFgDlyev1EKB3WIy50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9Cd5s/btrAlfILjpg/REo9iFgDlyev1EKB3WIy50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9Cd5s%2FbtrAlfILjpg%2FREo9iFgDlyev1EKB3WIy50%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;377&quot; height=&quot;100&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;100&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;SSH 클릭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Reomte host는 EC2서버의 퍼블릭 주소를 선택한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Specify username은 리눅스 서버의 기본유저명을 말한다. &lt;br /&gt;우분투의 경우 ubuntu&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;포트는 22&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Advanced SSH settings를 클릭하고 Use private key를 체크한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EC2를 구성할 때 생성한 키페어를 선택하여 넣어준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모두 작성했다면 OK를 눌러주자.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;848&quot; data-origin-height=&quot;569&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cGCKZo/btrAmE8SsMO/w9jzdkkZeMTkY6KcO8fuAk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cGCKZo/btrAmE8SsMO/w9jzdkkZeMTkY6KcO8fuAk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cGCKZo/btrAmE8SsMO/w9jzdkkZeMTkY6KcO8fuAk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcGCKZo%2FbtrAmE8SsMO%2Fw9jzdkkZeMTkY6KcO8fuAk%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;848&quot; height=&quot;569&quot; data-origin-width=&quot;848&quot; data-origin-height=&quot;569&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1258&quot; data-origin-height=&quot;842&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cef0rU/btrAj23ipfU/DA7yZPiw3KF1Kw9hA7b9d1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cef0rU/btrAj23ipfU/DA7yZPiw3KF1Kw9hA7b9d1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cef0rU/btrAj23ipfU/DA7yZPiw3KF1Kw9hA7b9d1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcef0rU%2FbtrAj23ipfU%2FDA7yZPiw3KF1Kw9hA7b9d1%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;1258&quot; height=&quot;842&quot; data-origin-width=&quot;1258&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;아래 링크를 참고하여 우분투에서 도커를 세팅해보자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://shanepark.tistory.com/237&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://shanepark.tistory.com/237&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650854021945&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;Ubuntu 20.04 LTS ) Docker 설치하기&quot; data-og-description=&quot;Intro Docker는 제가 회사에서 사용하는 노트북의 OS를 Windows 에서 Ubuntu 로 변경하게 된 트리거 였습니다. Docker를 사용하면 정말 편하게 격리된 컨테이너들을 구성해 가상화의 장점을 정말 잘 살릴 &quot; data-og-host=&quot;shanepark.tistory.com&quot; data-og-source-url=&quot;https://shanepark.tistory.com/237&quot; data-og-url=&quot;https://shanepark.tistory.com/237&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cio7qA/hyN9YGeAio/tOlgjUydVyeUMGf8TwPKa0/img.png?width=336&amp;amp;height=287&amp;amp;face=0_0_336_287,https://scrap.kakaocdn.net/dn/dNh5if/hyN9S0i0uQ/BjiGW4iW7zK4y5G9FAjc01/img.png?width=336&amp;amp;height=287&amp;amp;face=0_0_336_287,https://scrap.kakaocdn.net/dn/29Da2/hyN9SMK0NR/KO3fxnzByD56Erb5hGl8vK/img.png?width=723&amp;amp;height=695&amp;amp;face=0_0_723_695&quot;&gt;&lt;a href=&quot;https://shanepark.tistory.com/237&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://shanepark.tistory.com/237&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cio7qA/hyN9YGeAio/tOlgjUydVyeUMGf8TwPKa0/img.png?width=336&amp;amp;height=287&amp;amp;face=0_0_336_287,https://scrap.kakaocdn.net/dn/dNh5if/hyN9S0i0uQ/BjiGW4iW7zK4y5G9FAjc01/img.png?width=336&amp;amp;height=287&amp;amp;face=0_0_336_287,https://scrap.kakaocdn.net/dn/29Da2/hyN9SMK0NR/KO3fxnzByD56Erb5hGl8vK/img.png?width=723&amp;amp;height=695&amp;amp;face=0_0_723_695');&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;Ubuntu 20.04 LTS ) Docker 설치하기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Intro Docker는 제가 회사에서 사용하는 노트북의 OS를 Windows 에서 Ubuntu 로 변경하게 된 트리거 였습니다. Docker를 사용하면 정말 편하게 격리된 컨테이너들을 구성해 가상화의 장점을 정말 잘 살릴&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;shanepark.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;h2 data-ke-size=&quot;size26&quot;&gt;4. 프로젝트 배포해보기&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 편안한 작업을 위해 Super User 권한을 받아오자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b2nlWp/btrAj2hUvXb/pYmN6RnSHH7G00CDabrCB0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b2nlWp/btrAj2hUvXb/pYmN6RnSHH7G00CDabrCB0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b2nlWp/btrAj2hUvXb/pYmN6RnSHH7G00CDabrCB0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb2nlWp%2FbtrAj2hUvXb%2FpYmN6RnSHH7G00CDabrCB0%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;470&quot; height=&quot;72&quot; data-origin-width=&quot;470&quot; data-origin-height=&quot;72&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;필자는 project 라고 이름 지었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;673&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccYge1/btrAj2PJquf/jfFZq6xnMxGdJ2nsw95591/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccYge1/btrAj2PJquf/jfFZq6xnMxGdJ2nsw95591/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccYge1/btrAj2PJquf/jfFZq6xnMxGdJ2nsw95591/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccYge1%2FbtrAj2PJquf%2FjfFZq6xnMxGdJ2nsw95591%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;479&quot; height=&quot;673&quot; data-origin-width=&quot;479&quot; data-origin-height=&quot;673&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EgSXD/btrAmzfW5OF/bwKOGQfdTmRBUk7NirNuw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EgSXD/btrAmzfW5OF/bwKOGQfdTmRBUk7NirNuw0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EgSXD/btrAmzfW5OF/bwKOGQfdTmRBUk7NirNuw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEgSXD%2FbtrAmzfW5OF%2FbwKOGQfdTmRBUk7NirNuw0%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;442&quot; height=&quot;270&quot; data-origin-width=&quot;442&quot; data-origin-height=&quot;270&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;확장자 없이 파일을 하나 만들고 이름을 Dockerfile 로 만든다.&lt;br /&gt;(만들기 어렵다면, 예제 프로젝트 내부에 도커파일을 만들어 두었으니 사용하면된다.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 내용을 입력해주자.&lt;br /&gt;(1번 Jar파일 제작에서 정해준 이름에 따라 아래 ARG부분을 적절히 수정해주자. )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래에 설명이 있으니 참고하자.&lt;/p&gt;
&lt;pre id=&quot;code_1650854496263&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 도커 허브에서 이미지를 가져와서 이미지를 작업한다
# FROM (이미지 이름:버전)
#FROM openjdk:8-alpine3.9
FROM openjdk:8-jre-alpine3.9

# 컨테이너 실행 전 작동할 명령
# RUN (명령)
# 타임존 설정 (설정을 하지 않으면 시간 저장시 다른 시간대로 저장됨)
RUN ln -snf /usr/share/zoneinfo/Asia/Seoul /etc/localtime
RUN echo Asia/Seoul &amp;gt; /etc/timezone

# 컨테이너 내 작업 경로
# WORKDIR (경로)
WORKDIR /app

# 작업 파일을 변수화 하기
# ARG (변수명)=(파일명)
ARG JAR_FILE=springdatajpa_project*.jar

# 작업 파일을 컨테이너로 복사
# COPY (파일명 또는 ${변수명}) (복사할 파일명)
COPY ${JAR_FILE} application.jar

# 컨테이너 시작 시 내릴 명령 (CMD와 ENTRYPOINT 차이 확인)
# ENTRYPOINT [(명령),(매개변수),(매개변수),(...)]
ENTRYPOINT [&quot;java&quot;,&quot;-jar&quot;,&quot;application.jar&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;도커파일과 Jar 파일을 드래그하여 폴더에 넣어주자.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;366&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BbL42/btrAhGzo5iI/0rTnisI5p56ekROtINqJg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BbL42/btrAhGzo5iI/0rTnisI5p56ekROtINqJg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BbL42/btrAhGzo5iI/0rTnisI5p56ekROtINqJg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBbL42%2FbtrAhGzo5iI%2F0rTnisI5p56ekROtINqJg1%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;495&quot; height=&quot;366&quot; data-origin-width=&quot;495&quot; data-origin-height=&quot;366&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;278&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JRorA/btrAmyBnccC/HuodFHaLuqgqhMntzCec4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JRorA/btrAmyBnccC/HuodFHaLuqgqhMntzCec4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JRorA/btrAmyBnccC/HuodFHaLuqgqhMntzCec4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJRorA%2FbtrAmyBnccC%2FHuodFHaLuqgqhMntzCec4k%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;494&quot; height=&quot;278&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;278&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;1. 이미지 만들기 docker bulid ~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 컨테이너 만들기 docker create&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 컨테이너 실행하기 docker start&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(컨테이너 만들기와 실행하기를 동시에 할 경우 docker run을 사용한다.)&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;pre id=&quot;code_1650854856015&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd /home/ubuntu/project/&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;92&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/k8C54/btrAjoMZz8F/302Dqvw75eeVLL6FjxdxJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/k8C54/btrAjoMZz8F/302Dqvw75eeVLL6FjxdxJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/k8C54/btrAjoMZz8F/302Dqvw75eeVLL6FjxdxJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fk8C54%2FbtrAjoMZz8F%2F302Dqvw75eeVLL6FjxdxJK%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;746&quot; height=&quot;92&quot; data-origin-width=&quot;746&quot; data-origin-height=&quot;92&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;docker build [옵션] [ -t 이미지 명] [도커파일 경로]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-t 는 이미지에 이름을 붙여준다는 뜻이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;. 은 도커파일의 경로이다. 아까 도커파일 경로로 이동했기 때문에 . (현재경로)로 입력한다.&lt;/p&gt;
&lt;pre id=&quot;code_1650855026102&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker build -t test_proj_img .&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;166&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Rm3Ut/btrAmzNMnl1/mcfKroLOtFtBI4vSvbL9yK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Rm3Ut/btrAmzNMnl1/mcfKroLOtFtBI4vSvbL9yK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Rm3Ut/btrAmzNMnl1/mcfKroLOtFtBI4vSvbL9yK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRm3Ut%2FbtrAmzNMnl1%2FmcfKroLOtFtBI4vSvbL9yK%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;920&quot; height=&quot;166&quot; data-origin-width=&quot;920&quot; data-origin-height=&quot;166&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;pre id=&quot;code_1650855138974&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker images&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;187&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c3Y4ZI/btrAhGlToOW/oktd4FurMXk8SdK0CBxA0k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c3Y4ZI/btrAhGlToOW/oktd4FurMXk8SdK0CBxA0k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c3Y4ZI/btrAhGlToOW/oktd4FurMXk8SdK0CBxA0k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3Y4ZI%2FbtrAhGlToOW%2Foktd4FurMXk8SdK0CBxA0k%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;930&quot; height=&quot;187&quot; data-origin-width=&quot;930&quot; data-origin-height=&quot;187&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;docker create [옵션] [-p 외부포트:내부포트] [--name 컨테이너명] [이미지명]&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트는 8082포트로 제작하였지만 외부에서 80포트로 들어올 경우를 가정하여 제작한다.&lt;/p&gt;
&lt;pre id=&quot;code_1650857949530&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker create --restart=always -p 80:8082 --name test_proj test_proj_img&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 data-ke-size=&quot;size16&quot;&gt;-a 옵션은 모든 컨테이너를 보여준다는 뜻이다. (-a를 빼면 실행 중인 컨테이너만 보인다.)&lt;/p&gt;
&lt;pre id=&quot;code_1650858061163&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker ps -a&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1233&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/txrHn/btrAlhtbpya/IIprTskhRcDxEIrLzkDrbk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/txrHn/btrAlhtbpya/IIprTskhRcDxEIrLzkDrbk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/txrHn/btrAlhtbpya/IIprTskhRcDxEIrLzkDrbk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtxrHn%2FbtrAlhtbpya%2FIIprTskhRcDxEIrLzkDrbk%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;1233&quot; height=&quot;75&quot; data-origin-width=&quot;1233&quot; data-origin-height=&quot;75&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;pre id=&quot;code_1650858191331&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker start test_proj&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;50&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uodid/btrAjolZE2J/u5Bs3nOyHxozqP9RAmqRaK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uodid/btrAjolZE2J/u5Bs3nOyHxozqP9RAmqRaK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uodid/btrAjolZE2J/u5Bs3nOyHxozqP9RAmqRaK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fuodid%2FbtrAjolZE2J%2Fu5Bs3nOyHxozqP9RAmqRaK%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;796&quot; height=&quot;50&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;50&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; create와 start를 동시에 할 경우 run 명령어를 사용한다.&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;-f 옵션은 컨테이너 내부에 로그를 지속적으로 보여줄 때 사용한다.&lt;/p&gt;
&lt;pre id=&quot;code_1650858315642&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker logs -f test_proj&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;1357&quot; data-origin-height=&quot;458&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dQSvAg/btrAcUy3gu2/kQLfuKfljmR3mKWWTkD1a0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dQSvAg/btrAcUy3gu2/kQLfuKfljmR3mKWWTkD1a0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dQSvAg/btrAcUy3gu2/kQLfuKfljmR3mKWWTkD1a0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdQSvAg%2FbtrAcUy3gu2%2FkQLfuKfljmR3mKWWTkD1a0%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;1357&quot; height=&quot;458&quot; data-origin-width=&quot;1357&quot; data-origin-height=&quot;458&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그를 벗어날 때에는 Ctrl + C 를 사용한다.&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;pre id=&quot;code_1650858611401&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// 일반 이미지 기반 컨테이너
docker exec -it test_proj /bin/bash

또는

// alpine이나 slim 이미지 기반 컨테이너
docker exec -it test_proj /bin/sh&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;접속이 된 것을 확인할 수 있으며 도커파일의 WORKDIR로 시작하는 것을 볼 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1302&quot; data-origin-height=&quot;105&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/mC2bC/btrAoEOs9AA/1oiDzexXA8fLjtjwuR9oZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/mC2bC/btrAoEOs9AA/1oiDzexXA8fLjtjwuR9oZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/mC2bC/btrAoEOs9AA/1oiDzexXA8fLjtjwuR9oZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FmC2bC%2FbtrAoEOs9AA%2F1oiDzexXA8fLjtjwuR9oZ1%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;1302&quot; height=&quot;105&quot; data-origin-width=&quot;1302&quot; data-origin-height=&quot;105&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;해당 컨테이너에서 나갈 때에는 exit를 입력한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;733&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdDXzv/btrAp6cUuYJ/pwu9HXq36ofdaZPeImRN6k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdDXzv/btrAp6cUuYJ/pwu9HXq36ofdaZPeImRN6k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdDXzv/btrAp6cUuYJ/pwu9HXq36ofdaZPeImRN6k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdDXzv%2FbtrAp6cUuYJ%2Fpwu9HXq36ofdaZPeImRN6k%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;733&quot; height=&quot;72&quot; data-origin-width=&quot;733&quot; data-origin-height=&quot;72&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;174&quot; data-origin-height=&quot;30&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PiKmx/btrAh7rlE89/eUJk3z6chu2DkJ0XEQ5RiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PiKmx/btrAh7rlE89/eUJk3z6chu2DkJ0XEQ5RiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PiKmx/btrAh7rlE89/eUJk3z6chu2DkJ0XEQ5RiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPiKmx%2FbtrAh7rlE89%2FeUJk3z6chu2DkJ0XEQ5RiK%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;174&quot; height=&quot;30&quot; data-origin-width=&quot;174&quot; data-origin-height=&quot;30&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&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;321&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b1xqnb/btrApmAg4Eh/S1ckXKQ4Bb92pRlZQvTd21/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b1xqnb/btrApmAg4Eh/S1ckXKQ4Bb92pRlZQvTd21/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b1xqnb/btrApmAg4Eh/S1ckXKQ4Bb92pRlZQvTd21/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb1xqnb%2FbtrApmAg4Eh%2FS1ckXKQ4Bb92pRlZQvTd21%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;1164&quot; height=&quot;321&quot; data-origin-width=&quot;1164&quot; data-origin-height=&quot;321&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/Linux</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/891</guid>
      <comments>https://ondolroom.tistory.com/891#entry891comment</comments>
      <pubDate>Mon, 25 Apr 2022 11:52:58 +0900</pubDate>
    </item>
    <item>
      <title>SpringDataJPA QueryDSL 5.0.0 gradle setting / 그래들 세팅방법</title>
      <link>https://ondolroom.tistory.com/890</link>
      <description>&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;(Use this setting)&lt;/p&gt;
&lt;pre id=&quot;code_1650603155500&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;plugins {
    id 'org.springframework.boot' version '2.6.2'
    id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

configurations {
    compileOnly {
        extendsFrom annotationProcessor
    }
}

repositories {
    mavenCentral()
    maven { url &quot;https://plugins.gradle.org/m2/&quot; } // 플러그인 저장소
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
    implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    implementation 'org.springframework.boot:spring-boot-starter-web'
    compileOnly 'org.projectlombok:lombok'
    developmentOnly 'org.springframework.boot:spring-boot-devtools'
    runtimeOnly 'com.h2database:h2'
    annotationProcessor 'org.projectlombok:lombok'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'

    // QueryDSL
    implementation &quot;com.querydsl:querydsl-jpa:5.0.0&quot;
    implementation &quot;com.querydsl:querydsl-core:5.0.0&quot;
    annotationProcessor &quot;com.querydsl:querydsl-apt:5.0.0:jpa&quot;
    annotationProcessor 'org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final'
    annotationProcessor 'javax.annotation:javax.annotation-api:1.3.2'
}

test {
    useJUnitPlatform()
}&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;size16&quot;&gt;---------------------------------------------------&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(Don't use this setting )&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;QueryDsl 세팅에 애를 먹는 경우가 많다 4 버전 대에는 특히 심했는데, 아래와 같은 코드를 추가해줬었다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;136&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bstIZR/btrz9g10imc/Gf5UGc44hBtCKVWcxUdTlK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bstIZR/btrz9g10imc/Gf5UGc44hBtCKVWcxUdTlK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bstIZR/btrz9g10imc/Gf5UGc44hBtCKVWcxUdTlK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbstIZR%2Fbtrz9g10imc%2FGf5UGc44hBtCKVWcxUdTlK%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;561&quot; height=&quot;136&quot; data-origin-width=&quot;561&quot; data-origin-height=&quot;136&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;646&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/egzBuH/btrz6ZzUOAZ/868cGGjnFth1q9PjEjRqWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/egzBuH/btrz6ZzUOAZ/868cGGjnFth1q9PjEjRqWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/egzBuH/btrz6ZzUOAZ/868cGGjnFth1q9PjEjRqWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FegzBuH%2Fbtrz6ZzUOAZ%2F868cGGjnFth1q9PjEjRqWK%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;523&quot; height=&quot;646&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;646&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;하지만 5버전을 세팅하면서 부터인지 위와 같은 복잡한 세팅이 필요 없어진 듯하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;맨 위에 보이는 세팅처럼 //QueryDsl 부분만 추가해주면 따로 설정이 필요없이 잘 작동 될 것이다.&lt;/p&gt;</description>
      <category>Server/Spring Boot</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/890</guid>
      <comments>https://ondolroom.tistory.com/890#entry890comment</comments>
      <pubDate>Fri, 22 Apr 2022 13:58:52 +0900</pubDate>
    </item>
    <item>
      <title>gitignore 기본 세팅</title>
      <link>https://ondolroom.tistory.com/889</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링 부트 (intellij)&lt;/p&gt;
&lt;pre id=&quot;code_1650595721679&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/&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;nextjs (intellij vscode)&lt;/p&gt;
&lt;pre id=&quot;code_1651193277587&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# local env files
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo

# intellij
.idea

### VS Code ###
.vscode/&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;ignore 하기 전에 잘못 올라간 파일들은 아래 링크를 참고하여 삭제할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1651193836660&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;[Git] Github에 잘못 올라간 파일 삭제하기 - Heee's Development Blog&quot; data-og-description=&quot;Step by step goes a long way.&quot; data-og-host=&quot;gmlwjd9405.github.io&quot; data-og-source-url=&quot;https://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html&quot; data-og-url=&quot;http://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/eafkGF/hyOczmg8Ht/uzN2M5rJZGKCVtqFSp8tk0/img.png?width=1292&amp;amp;height=332&amp;amp;face=0_0_1292_332&quot;&gt;&lt;a href=&quot;https://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://gmlwjd9405.github.io/2018/05/17/git-delete-incorrect-files.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/eafkGF/hyOczmg8Ht/uzN2M5rJZGKCVtqFSp8tk0/img.png?width=1292&amp;amp;height=332&amp;amp;face=0_0_1292_332');&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;[Git] Github에 잘못 올라간 파일 삭제하기 - Heee's Development Blog&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Step by step goes a long way.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;gmlwjd9405.github.io&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;</description>
      <category>낙서장</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/889</guid>
      <comments>https://ondolroom.tistory.com/889#entry889comment</comments>
      <pubDate>Fri, 22 Apr 2022 11:48:47 +0900</pubDate>
    </item>
    <item>
      <title>NextJS 미들웨어</title>
      <link>https://ondolroom.tistory.com/886</link>
      <description>&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://nextjs.org/docs/advanced-features/middleware&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://nextjs.org/docs/advanced-features/middleware&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650441632157&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;Advanced Features: Middleware (Beta) | Next.js&quot; data-og-description=&quot;Learn how to use Middleware in Next.js to run code before a request is completed.&quot; data-og-host=&quot;nextjs.org&quot; data-og-source-url=&quot;https://nextjs.org/docs/advanced-features/middleware&quot; data-og-url=&quot;https://nextjs.org/docs/advanced-features/middleware&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c94ta5/hyN6217Epb/U9IYdsneNMTTEB9VzRVKUk/img.png?width=2048&amp;amp;height=1170&amp;amp;face=0_0_2048_1170&quot;&gt;&lt;a href=&quot;https://nextjs.org/docs/advanced-features/middleware&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://nextjs.org/docs/advanced-features/middleware&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c94ta5/hyN6217Epb/U9IYdsneNMTTEB9VzRVKUk/img.png?width=2048&amp;amp;height=1170&amp;amp;face=0_0_2048_1170');&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;Advanced Features: Middleware (Beta) | Next.js&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Learn how to use Middleware in Next.js to run code before a request is completed.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;nextjs.org&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;pre id=&quot;code_1650441664376&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { NextFetchEvent, NextRequest, NextResponse } from &quot;next/server&quot;;
import jwtDecode from &quot;jwt-decode&quot;;
import CustomJwtPayload from &quot;@/util/jwt/CustomJwtPayload&quot;;

// 리프레시 토큰 관리를 위한 미들웨어 제작
export function middleware(req: NextRequest, ev: NextFetchEvent) {
  // 스태틱파일 구분을 위한 정규표현식
  const PUBLIC_FILE = /\.(.*)$/;

  const { origin, pathname } = req.nextUrl;

  // 스태틱파일이 아니거나 로그인 관련 주소가 아니면 조건실행
  if (!PUBLIC_FILE.test(pathname) &amp;amp;&amp;amp; !pathname.includes(&quot;/sign&quot;)) {
    console.log(req.nextUrl);

    const refreshToken = req.cookies[&quot;refresh_token&quot;];
    const nowTimestamp = new Date().getTime();

    // 만료일 초기화
    let exp = -1;

    // 디코딩하여 만료일 체크
    try {
      exp = jwtDecode&amp;lt;CustomJwtPayload&amp;gt;(refreshToken).exp * 1000;
    } catch (e) {
      // 토큰이 디코딩 되지 않으면 로그인 페이지로 이동
      return NextResponse.redirect(`${origin}/sign/in`);
    }

    // 만료되었으면 로그인 페이지로 이동
    if (exp &amp;lt; nowTimestamp) {
      return NextResponse.redirect(`${origin}/sign/in`);
    }
  }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>Web/ReactJS</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/886</guid>
      <comments>https://ondolroom.tistory.com/886#entry886comment</comments>
      <pubDate>Wed, 20 Apr 2022 17:01:45 +0900</pubDate>
    </item>
    <item>
      <title>NextJS Api 키 등 중요 변수 숨기기</title>
      <link>https://ondolroom.tistory.com/885</link>
      <description>&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://velog.io/@himprover/NextJs-env.local-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EC%A4%91%EC%9A%94-%EB%B3%80%EC%88%98-%EC%88%A8%EA%B8%B0%EA%B8%B0-feat.-api-key&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://velog.io/@himprover/NextJs-env.local-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EC%A4%91%EC%9A%94-%EB%B3%80%EC%88%98-%EC%88%A8%EA%B8%B0%EA%B8%B0-feat.-api-key&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1650357060072&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;NextJS env.local 사용해서 중요 변수 숨기기 (feat. api key)&quot; data-og-description=&quot;보통 오픈소스를 개발하면 github에 많이 업로드 한다.오픈소스 중에는 openApi를 사용해서 개발하는 경우도 있는데 이 때 api 인증키가 사용된다.api에 따라 다르지만, 대부분 api 인증키가 본인 이외&quot; data-og-host=&quot;velog.io&quot; data-og-source-url=&quot;https://velog.io/@himprover/NextJs-env.local-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EC%A4%91%EC%9A%94-%EB%B3%80%EC%88%98-%EC%88%A8%EA%B8%B0%EA%B8%B0-feat.-api-key&quot; data-og-url=&quot;https://velog.io/@himprover/NextJs-env.local-사용해서-중요-변수-숨기기-feat.-api-key&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bAlCLZ/hyN6UJcXMO/8rteIFxvHeYLT5p85ByhqK/img.jpg?width=3984&amp;amp;height=2656&amp;amp;face=0_0_3984_2656,https://scrap.kakaocdn.net/dn/gGx0y/hyN5ygKhQf/wrZp6djJcehgXDk7t6oYS1/img.jpg?width=3984&amp;amp;height=2656&amp;amp;face=0_0_3984_2656,https://scrap.kakaocdn.net/dn/cry1a1/hyN5zfB1O3/5V6bY4k5mODuNvljRoHdZk/img.jpg?width=3984&amp;amp;height=2656&amp;amp;face=0_0_3984_2656&quot;&gt;&lt;a href=&quot;https://velog.io/@himprover/NextJs-env.local-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EC%A4%91%EC%9A%94-%EB%B3%80%EC%88%98-%EC%88%A8%EA%B8%B0%EA%B8%B0-feat.-api-key&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://velog.io/@himprover/NextJs-env.local-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%84%9C-%EC%A4%91%EC%9A%94-%EB%B3%80%EC%88%98-%EC%88%A8%EA%B8%B0%EA%B8%B0-feat.-api-key&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bAlCLZ/hyN6UJcXMO/8rteIFxvHeYLT5p85ByhqK/img.jpg?width=3984&amp;amp;height=2656&amp;amp;face=0_0_3984_2656,https://scrap.kakaocdn.net/dn/gGx0y/hyN5ygKhQf/wrZp6djJcehgXDk7t6oYS1/img.jpg?width=3984&amp;amp;height=2656&amp;amp;face=0_0_3984_2656,https://scrap.kakaocdn.net/dn/cry1a1/hyN5zfB1O3/5V6bY4k5mODuNvljRoHdZk/img.jpg?width=3984&amp;amp;height=2656&amp;amp;face=0_0_3984_2656');&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;NextJS env.local 사용해서 중요 변수 숨기기 (feat. api key)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;보통 오픈소스를 개발하면 github에 많이 업로드 한다.오픈소스 중에는 openApi를 사용해서 개발하는 경우도 있는데 이 때 api 인증키가 사용된다.api에 따라 다르지만, 대부분 api 인증키가 본인 이외&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;velog.io&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;</description>
      <category>Web/ReactJS</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/885</guid>
      <comments>https://ondolroom.tistory.com/885#entry885comment</comments>
      <pubDate>Tue, 19 Apr 2022 17:31:11 +0900</pubDate>
    </item>
    <item>
      <title>자바스크립트 javascript // 쿼리스트링(querystring)을 수정하는 방법</title>
      <link>https://ondolroom.tistory.com/882</link>
      <description>&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-origin-width=&quot;718&quot; data-origin-height=&quot;271&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRYLLZ/btrrcvmGiUb/78iUpN8C37stRiViOFe5b0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRYLLZ/btrrcvmGiUb/78iUpN8C37stRiViOFe5b0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRYLLZ/btrrcvmGiUb/78iUpN8C37stRiViOFe5b0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRYLLZ%2FbtrrcvmGiUb%2F78iUpN8C37stRiViOFe5b0%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;718&quot; height=&quot;271&quot; data-origin-width=&quot;718&quot; data-origin-height=&quot;271&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;pre id=&quot;code_1642615442099&quot; class=&quot;html xml&quot; data-ke-language=&quot;html&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;let params = new URLSearchParams(location.search);
params.set(&quot;page&quot;, &quot;0&quot;);
location.href = `/question?${params.toString()}`;&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;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;&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;&amp;nbsp;&lt;/p&gt;</description>
      <category>Web/JavaScript</category>
      <author>Jaybon</author>
      <guid isPermaLink="true">https://ondolroom.tistory.com/882</guid>
      <comments>https://ondolroom.tistory.com/882#entry882comment</comments>
      <pubDate>Thu, 20 Jan 2022 03:04:19 +0900</pubDate>
    </item>
  </channel>
</rss>