<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>투케이2K</title>
    <link>https://kkh0977.tistory.com/</link>
    <description>[투케이2K] 
 
- 투케이2K의 개발블로그입니다. 
 
- 프로그램 개발관련 지식을 함께 공유하기 위한 블로그입니다. 
 
- 소통은 언제나 환영합니다. 
 
- 새로오신 분들 모두 반갑습니다. 좋은 하루 보내세요</description>
    <language>ko</language>
    <pubDate>Thu, 23 Jul 2026 03:55:11 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>투케이2K</managingEditor>
    <image>
      <title>투케이2K</title>
      <url>https://tistory1.daumcdn.net/tistory/4418760/attach/ba07d3f16bfc4b40b3b41f79c1119abf</url>
      <link>https://kkh0977.tistory.com</link>
    </image>
    <item>
      <title>212. (Aws/Amazon) [AWS Simple Queue Service] SQS GetQueueAttributes API 설명 정리 - SQS Queue 속성 정보 조회</title>
      <link>https://kkh0977.tistory.com/9001</link>
      <description>&lt;div id=&quot;SE-6d5e9328-865a-49e8-99a2-f5a7de60124b&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-ea21d6a5-b337-44f3-b23d-3d48dba1a413&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[개발 환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-e0fbb2c4-6c18-4d78-a43d-cf1bdcf1dfe2&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-345db4ef-7e9c-4bab-baf2-6ae8dd1db356&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;개발 환경 : Aws / Amazon Web Services&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-cb6af6d0-b986-4590-8177-1f67e04a2f95&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-7954e0d6-76cb-4a9a-9b04-8d2ae9efb11f&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : [AWS Simple Queue Service] SQS GetQueueAttributes API 설명 정리 - SQS Queue 속성 정보 조회&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-c5faf988-7fec-4b43-aeaa-090495ce142d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-eb8c80b2-f07d-4a67-844d-fbf727a5289e&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/S4Pb7/dJMcafOgMgP/THfkVFgZ1JUzP7xK6iQkr1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/S4Pb7/dJMcafOgMgP/THfkVFgZ1JUzP7xK6iQkr1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/S4Pb7/dJMcafOgMgP/THfkVFgZ1JUzP7xK6iQkr1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FS4Pb7%2FdJMcafOgMgP%2FTHfkVFgZ1JUzP7xK6iQkr1%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;220&quot; height=&quot;221&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-0adde4a2-6c1a-4d67-840d-8a1aa682410e&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-fd76edf6-c581-4ee7-a701-2e3021618754&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-36ed8acc-33f9-484e-a617-f25b5891449d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[설명 정리]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-8b5a1ea3-f188-4452-a8f8-332d438ba192&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784718763959&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / SQS / Simple Queue Service


- 사전)   SQS (Simple Queue Service) 심플 큐 서비스 간략 설명 :

  &amp;gt;&amp;gt; Aws SQS 란 서버들끼리 주고 받을 수 있는 메세지 큐를 제공하는 AWS 서비스 입니다

  &amp;gt;&amp;gt; Aws SQS 는 특정 플랫폼 서비스 확장 시 각 기능들을 여러 서버에서 처리하게 되면서, 서버들끼리 주고 받는 메세지를 잃어버리지 않고 정확하게 처리하는 데 도움을 주는 서비스입니다

  &amp;gt;&amp;gt; Aws SQS 는 시스템이 처리 해야할 일을 나중에 처리하거나, 다른 시스템이 처리할 수 있도록 하기 위한 비동기 메세징을 지원합니다

  &amp;gt;&amp;gt; Aws SQS 기본 개념 및 속성 용어 설명 : 

    - 메세지 : SQS 의 기본 데이터 단위 / XML, JSON과 같은 텍스트 형태이며 최대 64KB 까지 보낼 수 있음 / 메세지마다 고유한 ID가 부여 됨

    - 큐 (Queue) : 메세지를 담는 공간 / 리전 별로 생성 필요 / 자료형의 큐와 이름이 같지만, 선입선출(FIFO)을 보장 하지 않음

    - 배치 API : 한 번에 메세지를 최대 10개 혹은 최대 256KB까지 동시 처리 가능

    - 보기 제한 시간 (Visibility Timeout) : 메세지를 받은 뒤 특정 시간 동안 다른 곳에서 동일한 메세지를 다시 꺼내볼 수 없음 / 큐 하나에 여러 서버가 메세지를 받을 때 동일한 메세지를 동시에 처리하는 것을 방지 함

    - 지연 전송 (Delay Delivery) : 특정 시간 동안 메세지를 받지 못하게 한다

    - 처리 실패 큐 (Dead Letter Queues) : 메세지를 받고 작업이 처리되면 메세지를 삭제 하지만, 설정한 횟수를 초과하여 메세지를 받았는데 삭제되지 않고 남아있다면 처리 실패 큐로 보내진다

    - 짧은 폴링 (Short Polling) : 메세지 받기 요청을 하면 결과를 즉시 받을 수 있음

    - 긴 폴링 (Long Polling) : 메세지가 있으면 바로 가져오고, 메세지가 없으면 메세지가 올 때까지 기다림 / 기본 제한시간은 20초이며, 1초부터 최대 20초까지 설정할 수 있음

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명] 
// --------------------------------------------------------------------------------------

1. GetQueueAttributes 는 특정 SQS Queue의 속성(Attribute) 정보를 조회하는 API 입니다.


2. GetQueueAttributes 를 사용해 Queue 설정과 상태 정보 조회 및 Queue 가 존재하는지 확인할 수 있습니다.


3.   GetQueueAttributes 호출 Request 전문 : 

  {
    &quot;AttributeNames&quot;: [ &quot;string&quot; ], // 조회할 속성명을 지정합니다.
    &quot;QueueUrl&quot;: &quot;string&quot; // 조회할 Queue의 URL입니다.
  }


4.   GetQueueAttributes 호출 Response 전문 : 

  {
    &quot;Attributes&quot;: { 
        &quot;string&quot; : &quot;string&quot; 
    }
  }


5.   많이 사용하는 Attribute 정리 : 

    QueueArn : 큐의 ARN 조회

    AttributeNames: [&quot;QueueArn&quot;]
    
    {
      &quot;Attributes&quot;: {
        &quot;QueueArn&quot;: &quot;arn:aws:sqs:ap-northeast-2:12345678912:iot-status-queue&quot;
      }
    }

    ApproximateNumberOfMessages : 현재 소비되지 않은 메시지 수

    AttributeNames: [&quot;ApproximateNumberOfMessages&quot;]
    
    {
      &quot;ApproximateNumberOfMessages&quot;: &quot;25&quot;
    }

    CreatedTimestamp : 큐 생성 시각(Unix Timestamp) 

    AttributeNames: [&quot;CreatedTimestamp&quot;]
    
    {
      &quot;CreatedTimestamp&quot;: &quot;1753070000&quot;
    }

    VisibilityTimeout : 메시지를 읽은 후 다른 Consumer가 보지 못하도록 숨겨지는 시간(초)입니다.

    AttributeNames: [&quot;VisibilityTimeout&quot;]
    
    {
      &quot;VisibilityTimeout&quot;: &quot;30&quot;
    }

    MessageRetentionPeriod : 메시지 보관 기간(초)입니다.

    AttributeNames: [&quot;MessageRetentionPeriod&quot;]
    
    {
      &quot;MessageRetentionPeriod&quot;: &quot;345600&quot; // 345600초 = 4일입니다.
    }

    Policy : Queue Access Policy 조회

    AttributeNames: [&quot;Policy&quot;]

    SQS에 어떤 IAM/User/Role이 접근할 수 있는지 확인할 때 사용합니다.

    All : 모든 속성을 한 번에 조회합니다.

    AttributeNames: [&quot;All&quot;]


6. ⚠️ GetQueueAttributes 호출 제약 조건 정리 : 

  &amp;gt;&amp;gt; QueueUrl은 반드시 존재해야 함

    - 존재하지 않는 Queue URL이면 실패

    - Queue가 삭제되었거나 URL이 잘못된 경우 예외 발생

  &amp;gt;&amp;gt; AttributeNames 지정 권장

    - AWS 문서에 따르면 AttributeNames는 Optional이지만 지정하지 않으면 빈 결과가 반환될 수 있습니다.

  &amp;gt;&amp;gt; 메시지 개수는 실시간 값이 아님

    - AWS 문서에서는 생산자가 메시지 전송을 멈춘 후에도 최대 약 1분 정도 오차가 발생할 수 있다고 설명합니다.

  &amp;gt;&amp;gt; 권한 필요
  
    {
      &quot;Effect&quot;: &quot;Allow&quot;,
      &quot;Action&quot;: [
        &quot;sqs:GetQueueAttributes&quot;
      ],
      &quot;Resource&quot;: &quot;*&quot;
    }


7.   GetQueueAttributes 호출 주요 에러 코드

  &amp;gt;&amp;gt; QueueDoesNotExist : 

    - Queue 삭제
    - Queue URL 오타
    - 계정 불일치
    - Region 불일치

  &amp;gt;&amp;gt; InvalidAddress : 

    - 잘못된 Queue URL

  &amp;gt;&amp;gt; RequestThrottled : 

    - 호출량 초과
    - 너무 많은 API 호출

  &amp;gt;&amp;gt; UnsupportedOperation : 

    - 지원되지 않는 요청
    - 지원되지 않는 Attribute 나 잘못된 호출 방식 사용 시 발생 가능

  &amp;gt;&amp;gt; InvalidSecurity : 

    - 서명 또는 인증 문제
    - 잘못된 Access Key
    - 잘못된 Secret Key
    - SigV4 서명 오류

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ 196. (TWOK/LOGIC) [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue Service

https://kkh0977.tistory.com/8884

https://blog.naver.com/kkh0977/224306047793?trackingCode=blog_bloghome_searchlist


▶️ 88. (Aws/Amazon) [Aws SQS Message Queue] SQS 에서 Queue 큐에 메시지 전송 및 Lambda 트리거 함수 등록 Receive 응답 처리 정리

https://kkh0977.tistory.com/8144

https://blog.naver.com/kkh0977/223934877161?trackingCode=blog_bloghome_searchlist


▶️ 18. (Aws/Amazon) [Aws SQS Message Queue] SQS (Simple Queue Service) 심플 큐 서비스 개념 및 설명 정리

https://kkh0977.tistory.com/7620

https://blog.naver.com/kkh0977/223733090215?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-c242b374-7a2e-47ab-a238-83f010b6fa5c&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-a64c8d1e-f145-4ae5-83da-5ca2fffe7a09&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-b36b41d7-3949-445c-bfc0-e3814aa0ef08&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-19ed6643-8bfb-411d-bc08-68678dc204a7&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-e2b37468-d219-402e-90cf-77ea4b658166&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8884&quot;&gt;https://kkh0977.tistory.com/8884&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784718741397&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;196. (TWOK/LOGIC) [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue&quot; data-og-description=&quot;[로직 정리]​정리 로직 : AWS / SQS / Simple Queue Service​제 목 : [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue Service​ [설 명]​// ----------------------------------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8884&quot; data-og-url=&quot;https://kkh0977.tistory.com/8884&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/scVyR/dJMb8YXYZBJ/IcHb1RkeRDIPgclhBHwrk1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/1lEYQ/dJMb84qlJAt/nC7udzSnpQG4lPHAQ3kuyk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bRSMTI/dJMb8WMCR36/ua0hJKMZ2bDzkRqUcjWEU0/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8884&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8884&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/scVyR/dJMb8YXYZBJ/IcHb1RkeRDIPgclhBHwrk1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/1lEYQ/dJMb84qlJAt/nC7udzSnpQG4lPHAQ3kuyk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bRSMTI/dJMb8WMCR36/ua0hJKMZ2bDzkRqUcjWEU0/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;196. (TWOK/LOGIC) [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[로직 정리]​정리 로직 : AWS / SQS / Simple Queue Service​제 목 : [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue Service​ [설 명]​// ----------------------------------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Aws (Amazon)</category>
      <category>2K</category>
      <category>aws</category>
      <category>GetQueueAttributes</category>
      <category>It</category>
      <category>Queue</category>
      <category>sqs</category>
      <category>개발자</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/9001</guid>
      <comments>https://kkh0977.tistory.com/9001#entry9001comment</comments>
      <pubDate>Wed, 22 Jul 2026 20:13:14 +0900</pubDate>
    </item>
    <item>
      <title>576. (javaScript) [간단 소스] 자바스크립트 AWS SQS GetQueueAttributes 사용해 큐 Queue 존재 여부 확인 수행</title>
      <link>https://kkh0977.tistory.com/9000</link>
      <description>&lt;div id=&quot;SE-346d9d2e-0ebc-4e79-b878-c0bcc558264d&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-5f38048b-c72c-48b2-af75-ac0170374622&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[개발 환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-065aa637-d3f8-445c-b5c8-4f1d033efc9a&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-2fb8b9f8-8951-4014-9f5e-960b2c3d60ef&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;개발 툴 : Edit++ / Vscode&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-819078bf-0753-4653-bc7b-284e68ae7704&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-72f0132f-5418-461c-9556-fd2ecb3a287a&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;개발 언어 : JavaScript&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-71c2fc47-b1f7-40a5-bd79-78dca9e7407f&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-0962fbc5-089b-4cde-983e-4b88620a5c05&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;222&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cnuofi/dJMcabrupwu/SrjMTKxUyIzr485WXQ0ck0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cnuofi/dJMcabrupwu/SrjMTKxUyIzr485WXQ0ck0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cnuofi/dJMcabrupwu/SrjMTKxUyIzr485WXQ0ck0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcnuofi%2FdJMcabrupwu%2FSrjMTKxUyIzr485WXQ0ck0%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;220&quot; height=&quot;222&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;222&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-3aaaf8f6-2607-4da1-a90a-57d434fe42c4&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-a71e558a-5d9b-44d2-b31d-e826434377bf&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-c8b1fa2a-46eb-48fb-857a-114b743aee07&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[소스 코드]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-0a323537-3c9a-4ac0-9fca-a90863c62dfb&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784716822087&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-----------------------------------------------------------------------------------------
[사전 설명 및 설정 사항]
-----------------------------------------------------------------------------------------

- 개발 환경 : Web


- 개발 기술 : JavaScript / AWS / SQS


- 사전)   SQS (Simple Queue Service) 심플 큐 서비스 간략 설명 :

  &amp;gt;&amp;gt; Aws SQS 란 서버들끼리 주고 받을 수 있는 메세지 큐를 제공하는 AWS 서비스 입니다

  &amp;gt;&amp;gt; Aws SQS 는 특정 플랫폼 서비스 확장 시 각 기능들을 여러 서버에서 처리하게 되면서, 서버들끼리 주고 받는 메세지를 잃어버리지 않고 정확하게 처리하는 데 도움을 주는 서비스입니다

  &amp;gt;&amp;gt; Aws SQS 는 시스템이 처리 해야할 일을 나중에 처리하거나, 다른 시스템이 처리할 수 있도록 하기 위한 비동기 메세징을 지원합니다

  &amp;gt;&amp;gt; Aws SQS 기본 개념 및 속성 용어 설명 : 

    - 메세지 : SQS 의 기본 데이터 단위 / XML, JSON과 같은 텍스트 형태이며 최대 64KB 까지 보낼 수 있음 / 메세지마다 고유한 ID가 부여 됨

    - 큐 (Queue) : 메세지를 담는 공간 / 리전 별로 생성 필요 / 자료형의 큐와 이름이 같지만, 선입선출(FIFO)을 보장 하지 않음

    - 배치 API : 한 번에 메세지를 최대 10개 혹은 최대 256KB까지 동시 처리 가능

    - 보기 제한 시간 (Visibility Timeout) : 메세지를 받은 뒤 특정 시간 동안 다른 곳에서 동일한 메세지를 다시 꺼내볼 수 없음 / 큐 하나에 여러 서버가 메세지를 받을 때 동일한 메세지를 동시에 처리하는 것을 방지 함

    - 지연 전송 (Delay Delivery) : 특정 시간 동안 메세지를 받지 못하게 한다

    - 처리 실패 큐 (Dead Letter Queues) : 메세지를 받고 작업이 처리되면 메세지를 삭제 하지만, 설정한 횟수를 초과하여 메세지를 받았는데 삭제되지 않고 남아있다면 처리 실패 큐로 보내진다

    - 짧은 폴링 (Short Polling) : 메세지 받기 요청을 하면 결과를 즉시 받을 수 있음

    - 긴 폴링 (Long Polling) : 메세지가 있으면 바로 가져오고, 메세지가 없으면 메세지가 올 때까지 기다림 / 기본 제한시간은 20초이며, 1초부터 최대 20초까지 설정할 수 있음

-----------------------------------------------------------------------------------------





-----------------------------------------------------------------------------------------
[소스 코드]
-----------------------------------------------------------------------------------------

&amp;lt;!DOCTYPE HTML&amp;gt;
&amp;lt;html lang=&quot;ko&quot; translate=&quot;no&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;javaScriptTest&amp;lt;/title&amp;gt;

    &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;

    &amp;lt;!-- [반응형 구조 만들기] --&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no&quot;&amp;gt;

    &amp;lt;!-- [Chrome / Edge (Chromium)에서 자동 번역 기능을 완전히 비활성화] --&amp;gt;
    &amp;lt;meta name=&quot;google&quot; content=&quot;notranslate&quot;&amp;gt;

    

    &amp;lt;!-- 내부 CSS 스타일 지정 --&amp;gt;
    &amp;lt;style&amp;gt;

        html, body {
            width: 100%;
            height: 100%;
            margin : 0 auto;
            padding : 0;
            border : none;
            background-color: #666;
        }

    &amp;lt;/style&amp;gt;





    &amp;lt;!-- ✅ [스크립트 : CDN 주소 설정] --&amp;gt; 
    &amp;lt;!-- &amp;lt;script src=&quot;https://code.jquery.com/jquery-latest.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; --&amp;gt;

    &amp;lt;script src=&quot;https://sdk.amazonaws.com/js/aws-sdk-2.1416.0.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;







    &amp;lt;!-- [자바스크립트 코드 지정] --&amp;gt;
    &amp;lt;script&amp;gt;    


        // -----------------------------------------------------------------
        // ✅ [Window.onload 웹 브라우저 로드 완료]
        // -----------------------------------------------------------------
        window.onload = function() {
            console.log(&quot;[window onload] : [html 최초 로드 및 이벤트 상시 대기 실시] : [start]&quot;);

            try {

                // ------------------------------------------------
                //   AWS 인증 및 사용 관련 변수 선언
                // ------------------------------------------------
                const accessKey = 'AK..7Q';
                const secretKey = 'Zz..xj';
                const region = 'ap-northeast-2';

                const sqsUrl = 'https://sqs.ap-northeast-2.amazonaws.com/123456789012/IoT_Role_Test_queue';


                // ------------------------------------------------
                //   AWS.config 지정
                // ------------------------------------------------
                AWS.config.update({
                    region: region,          
                    accessKeyId: accessKey,
                    secretAccessKey: secretKey
                });


                // -----------------------------------------
                //   AWS 객체 생성
                // -----------------------------------------
                const sqs = new AWS.SQS();


                // -----------------------------------------
                //   GetQueueAttributes 호출을 통해서 Queue 존재 여부 확인
                // -----------------------------------------
                // GetQueueAttributes 는 해당 Queue가 존재하는지 확인할 때도 많이 쓰지만, 원래 목적은 Queue의 상세 속성(Attribute)을 조회하는 API입니다.
                // -----------------------------------------                
                sqs.getQueueAttributes({
                    QueueUrl: sqsUrl,
                    AttributeNames: ['QueueArn']
                }, function(err, data) {

                    if (err) {
                        console.error('GetQueueAttributes : Queue not found : ', err);

                        if (err.code === 'AWS.SimpleQueueService.NonExistentQueue') {
                            console.error('GetQueueAttributes : Queue does not exist');
                        }

                    } else {
                        console.log('GetQueueAttributes : Queue exists : ', data, ' / ', data.Attributes);

                        // -----------------------------------------
                        //   응답 데이터 예시 
                        // -----------------------------------------
                        // Attributes: {QueueArn: 'arn:aws:sqs:ap-northeast-2:123456789012:IoT_Role_Test_queue'}
                        // ResponseMetadata: {RequestId: 'db592037-d020-5992-8de0-42ef0be782fc'}
                        // -----------------------------------------

                    }
                });
                
            }
            catch (exception) {
                console.error(&quot;[window onload] : [Exception] : ❌ 예외 상황 발생 : &quot;, exception);
            }

        }; 
      
    &amp;lt;/script&amp;gt;


&amp;lt;/head&amp;gt;


&amp;lt;body&amp;gt;

&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;

-----------------------------------------------------------------------------------------





-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

▶️ 196. (TWOK/LOGIC) [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue Service

https://kkh0977.tistory.com/8884

https://blog.naver.com/kkh0977/224306047793?trackingCode=blog_bloghome_searchlist


▶️ 88. (Aws/Amazon) [Aws SQS Message Queue] SQS 에서 Queue 큐에 메시지 전송 및 Lambda 트리거 함수 등록 Receive 응답 처리 정리

https://kkh0977.tistory.com/8144

https://blog.naver.com/kkh0977/223934877161?trackingCode=blog_bloghome_searchlist


▶️ 18. (Aws/Amazon) [Aws SQS Message Queue] SQS (Simple Queue Service) 심플 큐 서비스 개념 및 설명 정리

https://kkh0977.tistory.com/7620

https://blog.naver.com/kkh0977/223733090215?trackingCode=blog_bloghome_searchlist

-----------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-265e48a8-d5dc-4952-9561-fe3b41f165da&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-afff8850-ab73-40f2-af94-be34418a25d7&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-f3713cf9-aa68-48f8-b29c-fd68c2c4e8d6&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-058086a4-0bc6-489d-b978-e2535c060ec1&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-9721c74d-d50c-4d4a-ae2f-c5c381764092&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8884&quot;&gt;https://kkh0977.tistory.com/8884&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784716795830&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;196. (TWOK/LOGIC) [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue&quot; data-og-description=&quot;[로직 정리]​정리 로직 : AWS / SQS / Simple Queue Service​제 목 : [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue Service​ [설 명]​// ----------------------------------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8884&quot; data-og-url=&quot;https://kkh0977.tistory.com/8884&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/scVyR/dJMb8YXYZBJ/IcHb1RkeRDIPgclhBHwrk1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/1lEYQ/dJMb84qlJAt/nC7udzSnpQG4lPHAQ3kuyk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bRSMTI/dJMb8WMCR36/ua0hJKMZ2bDzkRqUcjWEU0/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8884&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8884&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/scVyR/dJMb8YXYZBJ/IcHb1RkeRDIPgclhBHwrk1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/1lEYQ/dJMb84qlJAt/nC7udzSnpQG4lPHAQ3kuyk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bRSMTI/dJMb8WMCR36/ua0hJKMZ2bDzkRqUcjWEU0/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;196. (TWOK/LOGIC) [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[로직 정리]​정리 로직 : AWS / SQS / Simple Queue Service​제 목 : [Aws] AWS SQS 서비스를 활용한 Server To Server 서버 간 이벤트 처리 로직 정리 - Simple Queue Service​ [설 명]​// ----------------------------------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>JavaScript</category>
      <category>2K</category>
      <category>aws</category>
      <category>GetQueueAttributes</category>
      <category>It</category>
      <category>sqs</category>
      <category>개발자</category>
      <category>자바스크립트</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/9000</guid>
      <comments>https://kkh0977.tistory.com/9000#entry9000comment</comments>
      <pubDate>Wed, 22 Jul 2026 19:40:50 +0900</pubDate>
    </item>
    <item>
      <title>211. (Aws/Amazon) [AWS Lambda] AWS 콘솔 대시보드에서 Lambda 람다 실행 역할 (IAM Role) 정보 확인 방법</title>
      <link>https://kkh0977.tistory.com/8999</link>
      <description>&lt;div id=&quot;SE-1e1f118c-c971-45c0-a006-114dd8754160&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-9529276c-5187-4fae-88e3-c0ef828c1782&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[개발 환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-bbe1000f-a015-4999-8ca9-fa4c40306043&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-e04f8883-aae0-4d20-a099-28a68945d651&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;개발 환경 : Aws / Amazon Web Services&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-7ba97f7f-7d99-4ccd-ba3f-56e55a5d3f95&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-597d1a7c-31b8-4940-879e-fc6f4633f74c&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : [AWS Lambda] AWS 콘솔 대시보드에서 Lambda 람다 실행 역할 (IAM Role) 정보 확인 방법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-a0dc167f-8b75-4903-9b66-adfd4e086976&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-4f6c9ffb-303c-42b9-8646-eb693baad9c8&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbTBW0/dJMcadbFxgC/WAthKdIkFzocZkgIBrQYJk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbTBW0/dJMcadbFxgC/WAthKdIkFzocZkgIBrQYJk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbTBW0/dJMcadbFxgC/WAthKdIkFzocZkgIBrQYJk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbTBW0%2FdJMcadbFxgC%2FWAthKdIkFzocZkgIBrQYJk%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;220&quot; height=&quot;221&quot; data-origin-width=&quot;220&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-06e4fe91-10ad-4615-bf1d-8edb5458e922&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-cc50ec80-3203-42a8-bbcb-802f7b29d963&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-443466a2-02d3-4594-bfa1-0ec32da042a2&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[설명 정리]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-c7ede1af-b47b-4ac4-a241-61d147a99e48&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784715987302&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / Lambda / Function


- 사전)   AWS Lambda 간단 설명 : 

  &amp;gt;&amp;gt; Aws Lambda 는 서버 리스 FaaS 솔루션으로, 함수의 인스턴스를 실행하여 이벤트를 처리할 수 있습니다.

  &amp;gt;&amp;gt; Aws Lambda 는 이벤트에 응답하여 코드를 실행 하고 해당 코드에 필요한 컴퓨팅 리소스를 자동으로 관리합니다.


- 사전)   API Gateway 간단 설명 : 

  &amp;gt;&amp;gt; API Gateway 는 규모와 관계없이 REST 및 WebSocket API 를 생성, 게시, 유지, 모니터링 및 보호하기 위한 AWS 서비스입니다

  &amp;gt;&amp;gt; API Gateway 는 트래픽 관리, CORS 지원, 권한 부여 및 액세스 제어, 제한, 모니터링 및 API 버전 관리 등 최대 수십만 개의 동시 API 호출을 수신 및 처리하는 데 관계된 모든 작업을 처리합니다

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명] 
// --------------------------------------------------------------------------------------

1. Aws 사이트 접속 후 1차 계정 로그인 수행 실시


2. Aws 사이트에서 상단  [ 검색 ] 메뉴 진입 -&amp;gt; Lambda 검색 수행


3. Lambda 화면에서 표시 된 함수 리스트에서 특정 함수 선택

  &amp;gt;&amp;gt; 함수 이름 | 설명 | 패키지 유형 | 런타임 | 유형 | 마지막 수정


4. 특정 함수 화면에서 [ 구성 ] 메뉴 선택 실시

  &amp;gt;&amp;gt; 코드 | 테스트 | 모니터링 | 구성 | 별칭 | 버전


5. 구성 목록에서 [ 권한 ] 메뉴 선택 실시


6. 권한 화면에서 부여 된 ✅ [ 역할 이름 ] 클릭 또는 ✅ [ 역할 문서 보기 ] 수행


7.   AWS Lambda 실행 역할 (Execution Role) 추가 설명 정리

  &amp;gt;&amp;gt; AWS Lambda 실행 역할은 람다 함수가 실행될 때 다른 AWS 리소스(예: S3, DynamoDB, CloudWatch)에 안전하게 접근하거나 로그를 남길 수 있도록 권한을 부여하는 IAM 역할입니다.

  &amp;gt;&amp;gt; 주요 권한 부여 범위 : 

    - AWS 리소스 접근 : S3 버킷 읽기/쓰기, DynamoDB 테이블 데이터 조회/수정 등 다른 AWS 서비스를 람다 코드 내에서 호출할 때 필요한 권한입니다.

    - 로그 및 모니터링 : 람다가 실행된 로그를 기록하기 위해 필수적인 AmazonCloudWatchLogsFullAccess 또는 AWSLambdaBasicExecutionRole 권한입니다.

    - VPC 접근 : 람다 함수가 프라이빗 VPC 내부의 리소스에 접근해야 할 경우 AWSLambdaVPCAccessExecutionRole 권한이 필요합니다.

  &amp;gt;&amp;gt; 설정 방법 및 관리 : 
  
    - 람다를 생성할 때 지정하며, IAM 콘솔이나 AWS 문서를 통해 필요한 리소스에 대한 정책을 추가하거나 인라인 정책으로 편집할 수 있습니다.

    - https://docs.aws.amazon.com/ko_kr/lambda/latest/dg/lambda-intro-execution-role.html


8.   자바스크립트에서 AWS Lambda 함수 세부 정보 조회 방법 코드 첨부 : GetFunction

  &amp;lt;!-- [CDN 주소 설정] --&amp;gt;
  &amp;lt;script src=&quot;https://sdk.amazonaws.com/js/aws-sdk-2.1416.0.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;


  // [전역 변수 선언]        
  const region = 'ap-northeast-2';
  const accessKey = 'AK..A6';
  const secretKey = 'mP..5J';

  const functionName = 'device-status-manager'; // 람다 함수 명칭


  // [AWS.config 지정]
  AWS.config.update({        
    region: region,      
    accessKeyId: accessKey,
    secretAccessKey: secretKey
  });


  // [AWS 객체 생성]
  const aws = new AWS.Lambda();


  // [요청 파라미터 생성]
  const param = { // ✅ Request_파라미터
    FunctionName: functionName
  };


  // [getFunction] : AWS 람다 특정 함수 정보 조회 수행
  aws.getFunction( param , function(err, data) { 
    
    if (err) {
      console.error(&quot;[getFunction] : [Error] : &quot;, err);
    }
    else {
      console.log(&quot;[getFunction] : [Success] : &quot;, data);
    }

  });

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ 187. (Aws/Amazon) [AWS Lambda] AWS Lambda 람다 함수 목록 리스트 조회 ListFunctions API 설명 정리

https://kkh0977.tistory.com/8646

https://blog.naver.com/kkh0977/224191409655


▶️ 188. (Aws/Amazon) [AWS Lambda] AWS Lambda 람다 함수 정보 조회 GetFunction API 설명 정리

https://kkh0977.tistory.com/8649

https://blog.naver.com/kkh0977/224194452206


▶️ 107. (Aws/Amazon) [Amazon API Gateway] API 게이트웨이 람다 Lambda 프록시 통합 설정 옵션 설명 정리

https://kkh0977.tistory.com/8234

https://blog.naver.com/kkh0977/223983117575


▶️ 106. (Aws/Amazon) [Amazon API Gateway] API 게이트웨이 REST Get 호출 및 Lambda 프록시 통합 설정 Return 응답 반환 형식 정리

https://kkh0977.tistory.com/8229

https://blog.naver.com/kkh0977/223980399876


▶️ 100. (Aws/Amazon) [AWS Lambda] Aws 람다 Python 3.13 기반 기본 함수 구조 설명 정리

https://kkh0977.tistory.com/8188

https://blog.naver.com/kkh0977/223962723156


▶️ 494. (javaScript) 자바스크립트 AWS Lambda 함수 세부 정보 조회 수행 - GetFunction

https://kkh0977.tistory.com/8647

https://blog.naver.com/kkh0977/224193151696?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-c87af086-2dfb-4100-88ab-ab56431baf93&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-bf6f7f67-3d31-4d06-bf11-f22df74f600a&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-0f0b49ac-b908-46e0-9b44-0d3e3ae72c59&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-bf080ac6-88e2-4794-800c-50812ace9052&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-70b9ee2c-1e33-4ce8-ae71-ce3cbee75336&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8646&quot;&gt;https://kkh0977.tistory.com/8646&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784715966837&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;187. (Aws/Amazon) [AWS Lambda] AWS Lambda 람다 함수 목록 리스트 조회 ListFunctions API 설명 정리&quot; data-og-description=&quot;[개발 환경 설정]​개발 환경 : Aws / Amazon Web Services​ [설명 정리]​// --------------------------------------------------------------------------------------[개발 및 환경]// ---------------------------------------------------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8646&quot; data-og-url=&quot;https://kkh0977.tistory.com/8646&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bYhyt1/dJMb9lMou6r/V5XJbIqrGekkk19J99kt71/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Zv0us/dJMb8Yp8zmW/CNHy99S1JPhtDhLkGFnwT0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/kkceX/dJMb9iITTgf/C5VH781lkEHu17pIhVK0A1/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8646&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8646&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bYhyt1/dJMb9lMou6r/V5XJbIqrGekkk19J99kt71/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Zv0us/dJMb8Yp8zmW/CNHy99S1JPhtDhLkGFnwT0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/kkceX/dJMb9iITTgf/C5VH781lkEHu17pIhVK0A1/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;187. (Aws/Amazon) [AWS Lambda] AWS Lambda 람다 함수 목록 리스트 조회 ListFunctions API 설명 정리&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[개발 환경 설정]​개발 환경 : Aws / Amazon Web Services​ [설명 정리]​// --------------------------------------------------------------------------------------[개발 및 환경]// ---------------------------------------------------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Aws (Amazon)</category>
      <category>2K</category>
      <category>aws</category>
      <category>It</category>
      <category>lambda</category>
      <category>Role</category>
      <category>개발자</category>
      <category>대시보드</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/8999</guid>
      <comments>https://kkh0977.tistory.com/8999#entry8999comment</comments>
      <pubDate>Wed, 22 Jul 2026 19:27:04 +0900</pubDate>
    </item>
    <item>
      <title>90. (Bitbucket/Git) [Git 명령어] git remote rename 명령어 사용해 원격 저장소 (Repository) 이름 변경 수행</title>
      <link>https://kkh0977.tistory.com/8998</link>
      <description>&lt;div id=&quot;SE-bc4c6f0d-a8c0-4529-aaa9-445b4944060a&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-44993c32-4af8-4f08-ab7c-9c13a9cdee04&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-f677daa4-8314-4699-abfc-7319702b432d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-cb09783e-c01c-4d68-ab8f-0f6c9a282de3&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;저장소 : Git / 깃 / Bitbucket&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-f9c90c36-d1d9-421a-81c8-d7e55f000c56&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-df0cb0a4-a870-4f42-a0b9-e168e60501c9&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;사용 목적 : 소스 코드 버전 관리 실시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-b6c3f3c7-e8f5-4a35-82a7-6ab110605897&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-29d5a085-5be7-4939-ac20-569abe0a999b&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : [Git 명령어] git remote rename 명령어 사용해 원격 저장소 (Repository) 이름 변경 수행&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-4579d948-0028-4078-a7ba-710080c79ca0&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-d50bb571-7f88-4d71-b9be-d9292fef1e75&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmS1rL/dJMcaazmPbL/DKrOibH0rrbqNnw1crQUh1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmS1rL/dJMcaazmPbL/DKrOibH0rrbqNnw1crQUh1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmS1rL/dJMcaazmPbL/DKrOibH0rrbqNnw1crQUh1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmS1rL%2FdJMcaazmPbL%2FDKrOibH0rrbqNnw1crQUh1%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;219&quot; height=&quot;224&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-73050627-4c5a-42d7-863b-a649a7d6ec93&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-858e69fc-9f50-481f-b45b-b335012ccf81&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-87511e8d-a9b4-4139-bb4c-57b7d5104bac&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[내 용]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-5cb0ddf5-829d-426b-b2f5-ea17dde3f01d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784637081645&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-----------------------------------------------------------------------------------------
[구 분]
-----------------------------------------------------------------------------------------

구 분 : Git / 원격 저장소


제 목 : [Git 명령어] git remote rename 명령어 사용해 원격 저장소 (Repository) 이름 변경 수행


사전)   Git 간단 설명 정리 : 

  &amp;gt;&amp;gt; Git 은 소스 코드 버전 관리를 위한 분산 버전관리 시스템 (Distributed Version Control System, DVCS) 입니다.

    - 코드의 변경 이력을 모두 기록하고, 여러 개발자가 안전하게 협업할 수 있게 도와주는 도구입니다.

  &amp;gt;&amp;gt; Git 을 통해 코드의 과거부터 현재까지 모든 변경 이력을 기록하고, 여러 사람이 동시에 작업해도 충돌 없이 협업할 수 있습니다.

  &amp;gt;&amp;gt; Git 주요 용어 정리 : 

    - 저장소 (Repository) : 프로젝트의 파일과 변경 이력을 저장하는 장소 (로컬 저장소: 내 컴퓨터 / 원격 저장소: GitHub, GitLab 등의 서버)
    - 커밋 (Commit) : 저장 버튼 + 스냅샷 (특정 시점의 전체 파일 상태를 기록한 것)
    - 브랜치(Branch) : 독립된 작업 공간 (각 기능(feature)마다 따로 작업할 수 있음 / 개발을 마치면 메인 브랜치에 merge (병합) 하여 통합)
    - remote : 원격 저장소
    - Merge : 두 브랜치를 합치는 가장 흔한 방식
    - Rebase : 히스토리를 깔끔하게 재정렬하며 합치는 방식

  &amp;gt;&amp;gt; Git 주요 명령어 정리 : 

    - git clone : 원격 저장소를 내 로컬에 그대로 복제
    - git pull : 원격 저장소 변경 사항을 가져와 내 브랜치에 자동 병합
    - git fetch : 변경 사항만 로컬에 가져오고 병합은 직접 해야 함
    - git push : 내 변경 사항을 원격 저장소로 올림

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[설명 정리]
-----------------------------------------------------------------------------------------

1.   사전) git remote rename 설명 : 

  &amp;gt;&amp;gt; git remote rename은 원격 저장소(Remote Repository)의 이름을 변경하는 명령어입니다.

  &amp;gt;&amp;gt; git remote rename &amp;rarr; 원격 저장소의 이름(Name)을 변경


2.   git remote rename 기본 문법 : 

  &amp;gt;&amp;gt; git remote rename &amp;lt;기존이름&amp;gt; &amp;lt;새이름&amp;gt;


3.   git remote rename 사용 예시 : 

  &amp;gt;&amp;gt; git remote rename origin upstream

    - 원격 저장소의 이름을 origin에서 upstream으로 변경한다.

  &amp;gt;&amp;gt; AS-IS : origin  https://bitbucket.org/twok-2k/ios-swiftproject.git (push)

  &amp;gt;&amp;gt; TO-BE : upstream  https://bitbucket.org/twok-2k/ios-swiftproject.git (push)


4. ✅ 추가 설명) Remote (Remote Repository)

  &amp;gt;&amp;gt; Git 프로젝트는 원격 저장소 정보를 가지고 있습니다.

  &amp;gt;&amp;gt; 현재 등록된 원격 저장소는 다음 명령으로 확인할 수 있습니다.

  &amp;gt;&amp;gt; 명령어 : git remote -v

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

▶️ 88. (Bitbucket/Git) [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행

https://kkh0977.tistory.com/8994

https://blog.naver.com/kkh0977/224352388691


▶️ 82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법

https://kkh0977.tistory.com/8988

https://blog.naver.com/kkh0977/224350968799


▶️ 83. (Bitbucket/Git) [SSH Key 설정 방법] : [2] : 비트버킷 ssh key 생성 방법 및 ssh 연결 테스트 확인 방법

https://kkh0977.tistory.com/8989

https://blog.naver.com/kkh0977/224350974963


▶️ 84. (Bitbucket/Git) [SSH Key 설정 방법] : [3] : App passwords are deprecated .. URL returned error: 410

https://kkh0977.tistory.com/8990

https://blog.naver.com/kkh0977/224350985203


▶️ 85. (Bitbucket/Git) [SSH Key 설정 방법] : [4] : Git SSH Key 공개키 기반 인증 방식 설명 정리

https://kkh0977.tistory.com/8991

https://blog.naver.com/kkh0977/224352336395


▶️ 79. (GitLab/Git) [깃랩] Personal Access Token (PAT) Git 액세스 토큰 생성 방법 정리

https://kkh0977.tistory.com/8654

https://blog.naver.com/kkh0977/224198943947


▶️ 76. (Bitbucket/Git) App passwords are recommended .. fatal: Authentication failed for 'https ..'

https://kkh0977.tistory.com/8082

https://blog.naver.com/kkh0977/223910363021

-----------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-4e812d0a-c9ef-4aea-a36d-ce67e77b1d09&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-cb03a930-a8da-4f23-bd2e-cd6d9801b7d5&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-3222e6a0-9156-44fb-b89e-f0fb1f10c772&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-11755328-5b2f-42f6-922a-0398e7e45e05&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-f0ab1713-bd46-418a-af7c-edd08ae16d77&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8988&quot;&gt;https://kkh0977.tistory.com/8988&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784637065002&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;82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법&quot; data-og-description=&quot;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법​ [설 명]​---------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8988&quot; data-og-url=&quot;https://kkh0977.tistory.com/8988&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/7q6ui/dJMb87N9Usr/oKjvz7zXI6uuQ0O8xsCFd1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dhZir2/dJMb83kF5LR/TjQofkFwHKoy1OJLhczw11/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/fFG0d/dJMb8Yp8siL/1XtKp8p9oi8chbvQahTaG0/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8988&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8988&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/7q6ui/dJMb87N9Usr/oKjvz7zXI6uuQ0O8xsCFd1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dhZir2/dJMb83kF5LR/TjQofkFwHKoy1OJLhczw11/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/fFG0d/dJMb8Yp8siL/1XtKp8p9oi8chbvQahTaG0/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법​ [설 명]​---------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Git (깃 &amp;amp; 저장소)</category>
      <category>2K</category>
      <category>Bitbucket</category>
      <category>git</category>
      <category>It</category>
      <category>remote</category>
      <category>Rename</category>
      <category>개발자</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/8998</guid>
      <comments>https://kkh0977.tistory.com/8998#entry8998comment</comments>
      <pubDate>Tue, 21 Jul 2026 21:32:01 +0900</pubDate>
    </item>
    <item>
      <title>89. (Bitbucket/Git) [Git 명령어] git remote set-url 명령어 사용해 Git 저장소 (Remote Repository) URL 주소 변경 수행</title>
      <link>https://kkh0977.tistory.com/8997</link>
      <description>&lt;div id=&quot;SE-18056923-203a-490c-98ef-a50dc0d6347d&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-856a5900-512a-4202-aa82-523b4b7ff0fc&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-624f93ba-6ae3-49ec-8713-05b5aa69a2b2&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-9ac3cf8a-5219-4e02-9fe7-32ba7672db4b&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;저장소 : Git / 깃 / Bitbucket&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-94bca72a-2c2c-4806-9747-92f528e31327&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-8694aa60-1f89-4fa7-9a03-b3bc2293401c&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;사용 목적 : 소스 코드 버전 관리 실시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-eac13db6-1411-4a96-8bd3-99634882d84b&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-8e9c9ba6-326e-47fe-aca5-827e6f74b8ad&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : [Git 명령어] git remote set-url 명령어 사용해 Git 저장소 (Remote Repository) URL 주소 변경 수행&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-32ddef22-686b-4647-b0b0-67079dc1b241&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-09a00cdb-b99e-48c4-9edc-de90ee58221a&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dXdKlp/dJMcaixompp/6uK7lSZzRXDCxZXWdHaHw1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dXdKlp/dJMcaixompp/6uK7lSZzRXDCxZXWdHaHw1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dXdKlp/dJMcaixompp/6uK7lSZzRXDCxZXWdHaHw1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdXdKlp%2FdJMcaixompp%2F6uK7lSZzRXDCxZXWdHaHw1%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;219&quot; height=&quot;224&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-25cc1cce-cdcb-4c4b-905b-be4627f76712&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-97fc57d9-2974-4ffa-b0f5-52de975c081a&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-6f75105d-60a5-489c-afdb-963699059316&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[내 용]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-9be1f660-09ce-43fc-8cce-4bc41eb029ee&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784636186428&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-----------------------------------------------------------------------------------------
[구 분]
-----------------------------------------------------------------------------------------

구 분 : Git / 원격 저장소


제 목 : [Git 명령어] git remote set-url 명령어 사용해 Git 저장소 (Remote Repository) URL 주소 변경 수행


사전)   Git 간단 설명 정리 : 

  &amp;gt;&amp;gt; Git 은 소스 코드 버전 관리를 위한 분산 버전관리 시스템 (Distributed Version Control System, DVCS) 입니다.

    - 코드의 변경 이력을 모두 기록하고, 여러 개발자가 안전하게 협업할 수 있게 도와주는 도구입니다.

  &amp;gt;&amp;gt; Git 을 통해 코드의 과거부터 현재까지 모든 변경 이력을 기록하고, 여러 사람이 동시에 작업해도 충돌 없이 협업할 수 있습니다.

  &amp;gt;&amp;gt; Git 주요 용어 정리 : 

    - 저장소 (Repository) : 프로젝트의 파일과 변경 이력을 저장하는 장소 (로컬 저장소: 내 컴퓨터 / 원격 저장소: GitHub, GitLab 등의 서버)
    - 커밋 (Commit) : 저장 버튼 + 스냅샷 (특정 시점의 전체 파일 상태를 기록한 것)
    - 브랜치(Branch) : 독립된 작업 공간 (각 기능(feature)마다 따로 작업할 수 있음 / 개발을 마치면 메인 브랜치에 merge (병합) 하여 통합)
    - remote : 원격 저장소
    - Merge : 두 브랜치를 합치는 가장 흔한 방식
    - Rebase : 히스토리를 깔끔하게 재정렬하며 합치는 방식

  &amp;gt;&amp;gt; Git 주요 명령어 정리 : 

    - git clone : 원격 저장소를 내 로컬에 그대로 복제
    - git pull : 원격 저장소 변경 사항을 가져와 내 브랜치에 자동 병합
    - git fetch : 변경 사항만 로컬에 가져오고 병합은 직접 해야 함
    - git push : 내 변경 사항을 원격 저장소로 올림

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[설명 정리]
-----------------------------------------------------------------------------------------

1.   사전) git remote set-url 설명 : 

  &amp;gt;&amp;gt; git remote set-url은 Git 저장소(Remote Repository)의 URL을 변경하는 명령어입니다.

  &amp;gt;&amp;gt; 예를 들어 현재 프로젝트가 Bitbucket의 HTTPS 주소를 사용하고 있는데 SSH 주소로 변경하거나, 저장소가 이전되어 새로운 URL로 변경해야 할 때 사용합니다.


2.   git remote set-url 기본 문법 : 

  &amp;gt;&amp;gt; git remote set-url &amp;lt;remote-name&amp;gt; &amp;lt;new-url&amp;gt;

  &amp;gt;&amp;gt; &amp;lt;remote-name&amp;gt; : 원격 저장소 이름 (origin, upstream 등)

  &amp;gt;&amp;gt; &amp;lt;new-url&amp;gt; : 변경할 새로운 URL


3.   git remote set-url 사용 예시 : 

  &amp;gt;&amp;gt; git remote set-url origin git@bitbucket.org:twok-2k/ios-swiftproject.git


4. ✅ 추가 설명) Remote (Remote Repository)

  &amp;gt;&amp;gt; Git 프로젝트는 원격 저장소 정보를 가지고 있습니다.

  &amp;gt;&amp;gt; 현재 등록된 원격 저장소는 다음 명령으로 확인할 수 있습니다.

  &amp;gt;&amp;gt; 명령어 : git remote -v

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

▶️ 88. (Bitbucket/Git) [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행

https://kkh0977.tistory.com/8994

https://blog.naver.com/kkh0977/224352388691


▶️ 82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법

https://kkh0977.tistory.com/8988

https://blog.naver.com/kkh0977/224350968799


▶️ 83. (Bitbucket/Git) [SSH Key 설정 방법] : [2] : 비트버킷 ssh key 생성 방법 및 ssh 연결 테스트 확인 방법

https://kkh0977.tistory.com/8989

https://blog.naver.com/kkh0977/224350974963


▶️ 84. (Bitbucket/Git) [SSH Key 설정 방법] : [3] : App passwords are deprecated .. URL returned error: 410

https://kkh0977.tistory.com/8990

https://blog.naver.com/kkh0977/224350985203


▶️ 85. (Bitbucket/Git) [SSH Key 설정 방법] : [4] : Git SSH Key 공개키 기반 인증 방식 설명 정리

https://kkh0977.tistory.com/8991

https://blog.naver.com/kkh0977/224352336395


▶️ 79. (GitLab/Git) [깃랩] Personal Access Token (PAT) Git 액세스 토큰 생성 방법 정리

https://kkh0977.tistory.com/8654

https://blog.naver.com/kkh0977/224198943947


▶️ 76. (Bitbucket/Git) App passwords are recommended .. fatal: Authentication failed for 'https ..'

https://kkh0977.tistory.com/8082

https://blog.naver.com/kkh0977/223910363021

-----------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-bd8f8418-05dd-49cd-8cc8-b1beb29c736d&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-8f7bf8be-c36c-46d7-822a-353becd8a363&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-b7c07825-88cc-4a4f-b583-fd2d350a8b97&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-05bf87ab-1752-4c19-a1a0-5d7f0fe62477&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-fbc05f4c-2fd6-482c-a32c-b0baa6000259&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8994&quot;&gt;https://kkh0977.tistory.com/8994&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784636169919&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;88. (Bitbucket/Git) [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행&quot; data-og-description=&quot;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행​ [내 용]​-------------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8994&quot; data-og-url=&quot;https://kkh0977.tistory.com/8994&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bJ3ZwG/dJMb8ZvOvzm/ggOzkcWJsnTjfKHKBCmAdk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/H040M/dJMb8VNIReK/NMVEaqWmgAxhN1TnxLStX0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Vx4S8/dJMb8Z3EAtu/zZp9VQTCNDLPY6wHcHHiGk/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8994&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8994&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bJ3ZwG/dJMb8ZvOvzm/ggOzkcWJsnTjfKHKBCmAdk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/H040M/dJMb8VNIReK/NMVEaqWmgAxhN1TnxLStX0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/Vx4S8/dJMb8Z3EAtu/zZp9VQTCNDLPY6wHcHHiGk/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;88. (Bitbucket/Git) [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행​ [내 용]​-------------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Git (깃 &amp;amp; 저장소)</category>
      <category>2K</category>
      <category>Bitbucket</category>
      <category>git</category>
      <category>It</category>
      <category>remote</category>
      <category>개발자</category>
      <category>원격주소</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/8997</guid>
      <comments>https://kkh0977.tistory.com/8997#entry8997comment</comments>
      <pubDate>Tue, 21 Jul 2026 21:16:54 +0900</pubDate>
    </item>
    <item>
      <title>106. (Http/Beacon) Beacon API (비콘 API) sendBeacon 사용해 페이지가 닫히거나 다른 페이지로 이동하더라도 백그라운드 요청 수행</title>
      <link>https://kkh0977.tistory.com/8996</link>
      <description>&lt;div id=&quot;SE-834359e0-311d-4330-90f4-660fd2f2ca5c&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-1b3e96cf-862c-4e24-8dea-495161886fd5&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[개발 환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-8393b01d-d301-449f-aa20-d04da6a1ce02&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-8ebfafda-3285-4cf6-80d9-70da28a34a9e&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;개발 툴 : Edit++ / VsCode&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-e5e0ffc6-c2bf-4be7-9770-abfec0745dc8&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-8f096251-0b30-46c4-877a-0ec354d69bf0&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;개발 기술 : Http / API&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-85eb773d-47b1-4105-a6b8-136be937b4cf&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-ddd2ed4e-a633-4c41-b873-f1afbcf273eb&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : Beacon API (비콘 API) sendBeacon 사용해 페이지가 닫히거나 다른 페이지로 이동하더라도 백그라운드 요청 수행&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-c39277a5-b687-4675-a550-a707625ed9c0&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-5a9cec86-769d-47fe-874b-6bf5d4425d84&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;218&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5wat2/dJMcadCGpKI/WgwTmlvYwF7tLgok5lkvlk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5wat2/dJMcadCGpKI/WgwTmlvYwF7tLgok5lkvlk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5wat2/dJMcadCGpKI/WgwTmlvYwF7tLgok5lkvlk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5wat2%2FdJMcadCGpKI%2FWgwTmlvYwF7tLgok5lkvlk%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;218&quot; height=&quot;220&quot; data-origin-width=&quot;218&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-1667fbbb-b4f2-4d1f-adb3-f993d30a0a50&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-aba3f1d1-746f-434b-a6d9-1feb52a1b38b&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-b7c1ba50-c908-48df-b250-cf7310280a3e&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[소스 코드]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-5b2789bf-f2c1-4393-a12b-5cf56889a223&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784634471083&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : JavaScript / 자바스크립트


- 개발 툴 : Edit ++ / VsCode


- 구분 : HTTP / API


- 사전)   Beacon API 간단 설명 :

  &amp;gt;&amp;gt; Beacon API 는 웹 서버에 비동기적인 논블로킹 요청을 보내기 위해 사용됩니다.

    - ✅ HTTP POST 요청으로 보내집니다.

  &amp;gt;&amp;gt; Beacon API 요청은 서버로부터 응답을 요구하지 않으며, 페이지가 종료되는 시점에도 요청이 취소되지 않고 비동기로 전송을 보장합니다.

  &amp;gt;&amp;gt; Beacon API 주요 특징

    - 전송 보장 : 기존 fetch나 XMLHttpRequest는 페이지가 언로드(unload)되면 요청이 중단될 수 있으나, Beacon 요청은 브라우저가 종료되거나 페이지가 변경되어도 백그라운드에서 안전하게 완료됩니다.
    - 비동기 및 논블로킹 : 메인 스레드를 차단하지 않아 페이지 로드나 이동 속도에 영향을 주지 않습니다.
    - 응답 미수신 : 서버의 응답이나 데이터를 반환받지 않는 '발송 후 잊기(fire and forget)' 방식입니다.
    - 제한사항 : HTTP POST 방식만 지원하며, 대용량 데이터 전송에는 적합하지 않습니다.

  &amp;gt;&amp;gt; ✅ 데이터 크기 제한 (중요)

    - 64KB 제한 : 브라우저는 진행 중인 모든 keepalive 요청 및 sendBeacon() 요청의 총 데이터 크기를 최대 64KB로 제한합니다.
    - 실패 가능성 : 남은 버퍼 용량(64KB)을 초과하는 요청을 보내면 TypeError: fetch failed 에러가 발생하며 요청이 전송되지 않습니다.


- 사전)   document.visibilityState 간략 설명 : 

  &amp;gt;&amp;gt; document.visibilityState 는 현재 웹 페이지가 사용자에게 보이는 상태인지 여부를 알려주는 Document API 입니다.

  &amp;gt;&amp;gt; document.visibilityState 가 주로 사용 되는 경우

    - 사용자가 다른 탭으로 이동했는지 감지
    - 브라우저가 백그라운드 상태인지 감지
    - 동영상 자동 일시정지
    - 실시간 데이터 조회 중지
    - 성능 최적화 및 배터리 절약

  &amp;gt;&amp;gt; document.visibilityState 상태 값
  
    - &quot;visible&quot; : 페이지가 사용자에게 보이는 상태
    - &quot;hidden&quot; : 탭이 백그라운드에 있거나 최소화된 상태

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

&amp;lt;!DOCTYPE HTML&amp;gt;
&amp;lt;html lang=&quot;ko&quot; translate=&quot;no&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;javaScriptTest&amp;lt;/title&amp;gt;

    &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;

    &amp;lt;!-- [반응형 구조 만들기] --&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no&quot;&amp;gt;

    &amp;lt;!-- [Chrome / Edge (Chromium)에서 자동 번역 기능을 완전히 비활성화] --&amp;gt;
    &amp;lt;meta name=&quot;google&quot; content=&quot;notranslate&quot;&amp;gt;

    

    &amp;lt;!-- 내부 CSS 스타일 지정 --&amp;gt;
    &amp;lt;style&amp;gt;

        html, body {
            width: 100%;
            height: 100%;
            margin : 0 auto;
            padding : 0;
            border : none;
            background-color: #666;
        }

    &amp;lt;/style&amp;gt;





    &amp;lt;!-- ✅ [스크립트 : CDN 주소 설정] --&amp;gt; 
    &amp;lt;!-- &amp;lt;script src=&quot;https://code.jquery.com/jquery-latest.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; --&amp;gt;







    &amp;lt;!-- [자바스크립트 코드 지정] --&amp;gt;
    &amp;lt;script&amp;gt;    


        // -----------------------------------------------------------------
        // ✅ [Window.onload 웹 브라우저 로드 완료]
        // -----------------------------------------------------------------
        window.onload = function() {
            console.log(&quot;[window onload] : [html 최초 로드 및 이벤트 상시 대기 실시] : [start]&quot;);

            try {

                // ------------------------------------------------
                //   사전) Beacon API 간략 설명
                // ------------------------------------------------
                /*
                1. Beacon API 는 웹 서버에 비동기적인 논블로킹 요청을 보내기 위해 사용됩니다.

                  &amp;gt;&amp;gt; ✅ HTTP POST 요청으로 보내집니다.

                2. Beacon API 요청은 서버로부터 응답을 요구하지 않으며, 페이지가 종료되는 시점에도 요청이 취소되지 않고 비동기로 전송을 보장합니다.

                3. Beacon API 주요 특징

                  &amp;gt;&amp;gt; 전송 보장 : 기존 fetch나 XMLHttpRequest는 페이지가 언로드(unload)되면 요청이 중단될 수 있으나, Beacon 요청은 브라우저가 종료되거나 페이지가 변경되어도 백그라운드에서 안전하게 완료됩니다.

                  &amp;gt;&amp;gt; 비동기 및 논블로킹 : 메인 스레드를 차단하지 않아 페이지 로드나 이동 속도에 영향을 주지 않습니다.

                  &amp;gt;&amp;gt; 응답 미수신 : 서버의 응답이나 데이터를 반환받지 않는 '발송 후 잊기(fire and forget)' 방식입니다.
                  
                  &amp;gt;&amp;gt; 제한사항 : HTTP POST 방식만 지원하며, 대용량 데이터 전송에는 적합하지 않습니다.

                4. ✅ 데이터 크기 제한 (중요)

                  &amp;gt;&amp;gt; 64KB 제한 : 브라우저는 진행 중인 모든 keepalive 요청 및 sendBeacon() 요청의 총 데이터 크기를 최대 64KB로 제한합니다.

                  &amp;gt;&amp;gt; 실패 가능성 : 남은 버퍼 용량(64KB)을 초과하는 요청을 보내면 TypeError: fetch failed 에러가 발생하며 요청이 전송되지 않습니다.

                5. 추가 설명 사이트 : https://developer.mozilla.org/ko/docs/Web/API/Navigator/sendBeacon
                */
                // ------------------------------------------------



                // ------------------------------------------------
                //   실시간 브라우저 표시 및 보이는 상태 확인
                // ------------------------------------------------

                document.addEventListener('visibilitychange', () =&amp;gt; {

                    if (document.visibilityState === 'hidden') {
                        console.log(&quot;visibilitychange :: hidden&quot;);


                        // [URL 선언 실시]
                        var urlData = &quot;https://jsonplaceholder.typicode.com/posts&quot;;


                        // [Object 객체 생성 및 body 값 추가 실시]
                        var jsonObject = new Object();
                        jsonObject[&quot;userId&quot;] = 1;
                        jsonObject[&quot;id&quot;] = 1;

                        
                        // ✅ [Beacon API 요청 수행]
                        // [문자열, FormData, Blob 등을 전송할 수 있습니다.]
                        const data = JSON.stringify(jsonObject);
                        navigator.sendBeacon(urlData, data);


                    }

                });
                
                

                // ------------------------------------------------
                //   출력 로그 예시
                // ------------------------------------------------
                /*                
                visibilitychange :: hidden
                
                ✅ 개발자 모드 &amp;gt; 네트워크 탭에서 요청한 API 상태 확인
                */
                // ------------------------------------------------
                
            }
            catch (exception) {
                console.error(&quot;[window onload] : [Exception] : ❌ 예외 상황 발생 : &quot;, exception);
            }

        }; 
      
    &amp;lt;/script&amp;gt;


&amp;lt;/head&amp;gt;


&amp;lt;body&amp;gt;

&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ [간단 소스] callback 콜백 방식 사용해 fetch api (페치) API 호출 및 결과 확인 수행

https://kkh0977.tistory.com/8786

https://blog.naver.com/kkh0977/224262801929


▶️ [function 함수 콜백 (callback) 리턴 데이터 반환 실시]

https://kkh0977.tistory.com/2080

https://blog.naver.com/kkh0977/222794828517?trackingCode=blog_bloghome_searchlist


▶️ [fetch api (페치) 사용해 async await 동기 방식 http 정의 및 커스텀 sleep 지정 및 일정 시간 대기 후 재요청 수행]

https://kkh0977.tistory.com/8653

https://blog.naver.com/kkh0977/224198939582


▶️ [fetch (페치) Web API 사용해 async await 동기 방식 http 요청 및 response header 및 body 확인 실시]

https://kkh0977.tistory.com/3514

https://blog.naver.com/kkh0977/222952720427?trackingCode=blog_bloghome_searchlist


▶️ [fetch (페치) Web API 사용해 http post body json 방식 요청 수행 실시]

https://kkh0977.tistory.com/3513

https://blog.naver.com/kkh0977/222952665953?trackingCode=blog_bloghome_searchlist


▶️ [fetch (페치) Web API 사용해 http get 방식 요청 수행 실시]

https://kkh0977.tistory.com/3510

https://blog.naver.com/kkh0977/222951679283?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-0afecd96-4f28-4421-806c-f2247f6d7b90&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-283b6d56-a7c8-4e00-8cb4-93be54e40f6b&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-aa8a2062-d1ac-4ad8-8d4e-3c9fa8b0790d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-ac1fa983-f420-4557-9639-ef94f6f0efd4&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-b07f369c-c852-4ed8-8564-90bea5fa2537&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8653&quot;&gt;https://kkh0977.tistory.com/8653&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784634448515&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;102. (Http/fetch) fetch api (페치) 사용해 async await 동기 방식 http 정의 및 커스텀 sleep 지정 및 일정 시&quot; data-og-description=&quot;[개발 환경 설정]​개발 툴 : Edit++ / VsCode​개발 기술 : Http / API​제 목 : fetch api (페치) 사용해 async await 동기 방식 http 정의 및 커스텀 sleep 지정 및 일정 시간 대기 후 재요청 수행​ [소스 코드] //&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8653&quot; data-og-url=&quot;https://kkh0977.tistory.com/8653&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/czShAG/dJMb86PeNTO/WmWGJ65ohwC7itvlpLpxlk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/tSzvL/dJMb9eT2qO9/3EV0p6Ko0besUzl0K3p7tK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c7CNy0/dJMb9jgKl5a/2t4p4rWnspuYbqTaQTQC0k/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8653&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8653&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/czShAG/dJMb86PeNTO/WmWGJ65ohwC7itvlpLpxlk/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/tSzvL/dJMb9eT2qO9/3EV0p6Ko0besUzl0K3p7tK/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/c7CNy0/dJMb9jgKl5a/2t4p4rWnspuYbqTaQTQC0k/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;102. (Http/fetch) fetch api (페치) 사용해 async await 동기 방식 http 정의 및 커스텀 sleep 지정 및 일정 시&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[개발 환경 설정]​개발 툴 : Edit++ / VsCode​개발 기술 : Http / API​제 목 : fetch api (페치) 사용해 async await 동기 방식 http 정의 및 커스텀 sleep 지정 및 일정 시간 대기 후 재요청 수행​ [소스 코드] //&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Http &amp;amp; Api</category>
      <category>2K</category>
      <category>API</category>
      <category>beacon</category>
      <category>http</category>
      <category>It</category>
      <category>개발자</category>
      <category>백그라운드</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/8996</guid>
      <comments>https://kkh0977.tistory.com/8996#entry8996comment</comments>
      <pubDate>Tue, 21 Jul 2026 20:48:38 +0900</pubDate>
    </item>
    <item>
      <title>105. (Http/fetch) fetch api (페치) 요청 시 keepalive 옵션 지정해 페이지가 닫히거나 다른 페이지로 이동하더라도 백그라운드 요청 보장 설정</title>
      <link>https://kkh0977.tistory.com/8995</link>
      <description>&lt;div id=&quot;SE-3d2fbda5-2e45-41b0-9995-d103c48595fe&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-76c7bfb6-f644-4d2d-b0a5-811ac7697880&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[개발 환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-93c701f9-f644-4cb9-b3af-4d3104e9f80d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-16438277-847a-4323-b839-6a114222e017&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;개발 툴 : Edit++ / VsCode&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-8c312f33-ad27-45d8-8c01-357f933ae6e2&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-63d87172-2113-4fc2-aa88-b5b54a8269bd&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;개발 기술 : Http / API&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-f3911eb2-3f32-46af-b374-946804677d9a&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-1455398b-3ded-41e1-a9ef-2db54cb67b86&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : fetch api (페치) 요청 시 keepalive 옵션 지정해 페이지가 닫히거나 다른 페이지로 이동하더라도 백그라운드 요청 보장 설정&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-e3013fba-2bfd-4dae-ac75-fb5535e41266&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-c7619c37-bb2b-4089-9291-cd5d4a3eb641&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;218&quot; data-origin-height=&quot;220&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/H1B3u/dJMcahZtRNw/cL62ZKKdfHOdkQRO4pD2x0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/H1B3u/dJMcahZtRNw/cL62ZKKdfHOdkQRO4pD2x0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/H1B3u/dJMcahZtRNw/cL62ZKKdfHOdkQRO4pD2x0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FH1B3u%2FdJMcahZtRNw%2FcL62ZKKdfHOdkQRO4pD2x0%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;218&quot; height=&quot;220&quot; data-origin-width=&quot;218&quot; data-origin-height=&quot;220&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-9543f3e7-1474-4177-9139-0cdfbc73f6a1&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-e6242247-5454-42ee-aa02-63fb82546564&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-4494da71-c421-463f-945f-76317f4ba498&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[소스 코드]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-013a34d1-6a2d-458b-9816-20cd9bf19ae9&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784633928031&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : JavaScript / 자바스크립트


- 개발 툴 : Edit ++ / VsCode


- 구분 : HTTP / API


- 사전)   Fetch API 간단 설명 :

  &amp;gt;&amp;gt; Fetch API 는 JavaScript 에서 접근하고 조작할 수 있는 인터페이스를 제공하는 Web Api 입니다.

  &amp;gt;&amp;gt; Fetch API 는 브라우저에서 비동기 HTTP 요청을 수행할 수 있습니다.

    - 데이터를 서버에 요청(request) 하고 응답(response)을 받아 처리할 때 사용합니다.

  &amp;gt;&amp;gt; Fetch API 핵심 기능 : 

    - Promise 기반 : 비동기 처리가 쉽고 .then(), .catch() 또는 async/await로 직관적으로 코드를 작성할 수 있습니다.
    - JSON 처리 간편 : response.json()만 호출하면 비동기로 JSON 데이터 파싱 가능
    - 다양한 옵션 제공 : HTTP 메서드 (GET, POST, PUT, DELETE 등) , 헤더 설정 , 요청 바디(JSON, FormData 등) , CORS 설정 , 인증 토큰 추가
    - 스트림 기반 처리 지원 : 대용량 다운로드에도 효율적


- 사전)   document.visibilityState 간략 설명 : 

  &amp;gt;&amp;gt; document.visibilityState 는 현재 웹 페이지가 사용자에게 보이는 상태인지 여부를 알려주는 Document API 입니다.

  &amp;gt;&amp;gt; document.visibilityState 가 주로 사용 되는 경우

    - 사용자가 다른 탭으로 이동했는지 감지
    - 브라우저가 백그라운드 상태인지 감지
    - 동영상 자동 일시정지
    - 실시간 데이터 조회 중지
    - 성능 최적화 및 배터리 절약

  &amp;gt;&amp;gt; document.visibilityState 상태 값
  
    - &quot;visible&quot; : 페이지가 사용자에게 보이는 상태
    - &quot;hidden&quot; : 탭이 백그라운드에 있거나 최소화된 상태

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[소스 코드]
// --------------------------------------------------------------------------------------

&amp;lt;!DOCTYPE HTML&amp;gt;
&amp;lt;html lang=&quot;ko&quot; translate=&quot;no&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;title&amp;gt;javaScriptTest&amp;lt;/title&amp;gt;

    &amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=utf-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;

    &amp;lt;!-- [반응형 구조 만들기] --&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0, user-scalable=no&quot;&amp;gt;

    &amp;lt;!-- [Chrome / Edge (Chromium)에서 자동 번역 기능을 완전히 비활성화] --&amp;gt;
    &amp;lt;meta name=&quot;google&quot; content=&quot;notranslate&quot;&amp;gt;

    

    &amp;lt;!-- 내부 CSS 스타일 지정 --&amp;gt;
    &amp;lt;style&amp;gt;

        html, body {
            width: 100%;
            height: 100%;
            margin : 0 auto;
            padding : 0;
            border : none;
            background-color: #666;
        }

    &amp;lt;/style&amp;gt;





    &amp;lt;!-- ✅ [스크립트 : CDN 주소 설정] --&amp;gt; 
    &amp;lt;!-- &amp;lt;script src=&quot;https://code.jquery.com/jquery-latest.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt; --&amp;gt;







    &amp;lt;!-- [자바스크립트 코드 지정] --&amp;gt;
    &amp;lt;script&amp;gt;    


        // -----------------------------------------------------------------
        // ✅ [Window.onload 웹 브라우저 로드 완료]
        // -----------------------------------------------------------------
        window.onload = function() {
            console.log(&quot;[window onload] : [html 최초 로드 및 이벤트 상시 대기 실시] : [start]&quot;);

            try {

                // ------------------------------------------------
                //   사전) fetch keepalive 옵션 간략 설명
                // ------------------------------------------------
                /*
                1. fetch()의 keepalive 옵션은 페이지가 닫히거나 다른 페이지로 이동하더라도 HTTP 요청이 취소되지 않고 백그라운드에서 끝까지 완료되도록 보장하는 옵션입니다.

                2. 기존 fetch() 요청은 사용자가 브라우저 탭을 닫거나 링크를 클릭해 다른 페이지로 이동하면 즉시 중단(Abort)되지만, keepalive: true를 설정하면 브라우저가 해당 요청을 메모리에 남겨두고 끝까지 실행합니다.

                3. 핵심 특징 : 

                  &amp;gt;&amp;gt; 페이지 종료 시 전송 보장 : navigator.sendBeacon()과 동일하게 웹페이지의 수명 주기와 상관없이 요청을 안전하게 전송합니다.

                  &amp;gt;&amp;gt; 자유로운 커스텀 : sendBeacon()과 달리 커스텀 HTTP 헤더 설정, 다양한 HTTP 메서드(PUT, DELETE 등) 사용, 상세한 바디(body) 데이터 포맷 지정이 모두 가능합니다.

                  &amp;gt;&amp;gt; 비동기/논블로킹 : 메인 스레드를 붙잡지 않아 다음 페이지로 이동하는 속도를 늦추지 않습니다.

                  &amp;gt;&amp;gt; 응답 무시 (Fire and Forget) : 보통 페이지가 완전히 언로드된 후 요청이 처리되므로, 자바스크립트 코드로 서버의 응답 데이터를 받아와 UI를 업데이트하는 작업은 불가능합니다.

                4. ✅ 데이터 크기 제한 (중요)

                  &amp;gt;&amp;gt; 64KB 제한 : 브라우저는 진행 중인 모든 keepalive 요청 및 sendBeacon() 요청의 총 데이터 크기를 최대 64KB로 제한합니다.

                  &amp;gt;&amp;gt; 실패 가능성 : 남은 버퍼 용량(64KB)을 초과하는 요청을 보내면 TypeError: fetch failed 에러가 발생하며 요청이 전송되지 않습니다.
                */
                // ------------------------------------------------



                // ------------------------------------------------
                //   실시간 브라우저 표시 및 보이는 상태 확인
                // ------------------------------------------------
                document.addEventListener('visibilitychange', () =&amp;gt; {

                    if (document.visibilityState === 'hidden') {
                        console.log(&quot;visibilitychange :: hidden&quot;);


                        // [URL 선언 실시]
                        var urlData = &quot;https://jsonplaceholder.typicode.com/posts&quot;;


                        // [Headers 객체 선언 및 헤더 값 추가]
                        const myHeaders = new Headers();
                        myHeaders.append(&quot;Content-Type&quot;, &quot;application/json&quot;);
                        myHeaders.append(&quot;Cache-Control&quot;, &quot;no-cache&quot;);


                        // [Object 객체 생성 및 body 값 추가 실시]

                        var jsonObject = new Object();
                        jsonObject[&quot;userId&quot;] = 1;
                        jsonObject[&quot;id&quot;] = 1;

                        
                        // [Fetch 요청 수행 실시]
                        // [사용자가 웹사이트를 나가지 않고 서비스를 계속 이용 중인 상태에서 keepalive 요청을 보냈다면 정상적으로 서버의 리턴 응답을 확인할 수 있습니다.]
                        fetch(urlData, {
                            method: &quot;POST&quot;,
                            headers: myHeaders, // [헤더 값 지정]
                            body: JSON.stringify(jsonObject), // [Body 값 지정]

                            keepalive: true // ✅ 페이지가 닫혀도 요청 전송을 보장하는 핵심 옵션
                        })
                        .then((response) =&amp;gt; {
                            console.log(&quot;&quot;);
                            console.log(&quot;======================================================&quot;);
                            console.log(&quot;[Http] : [response] : [http 응답 코드 및 헤더 확인]&quot;);
                            console.log(&quot;-----------------------------------------&quot;);
                            console.log(&quot;Status Code : &quot; + response.status);
                            console.log(&quot;-----------------------------------------&quot;);
                            console.log(&quot;Content-Type : &quot; + response.headers.get('Content-Type'));
                            console.log(&quot;======================================================&quot;);
                            console.log(&quot;&quot;);

                            // [상태 코드 확인]
                            if (!response.ok) {
                                throw new Error(&quot;Http Status Error : &quot; + response.status);
                            }

                            // [리턴 반환 설정]
                            //return response.json(); // JSON 형식 반환

                            return response.text(); // TEXT 형식 반환
                        }) 
                        .then((data) =&amp;gt; {
                            console.log(&quot;&quot;);
                            console.log(&quot;======================================================&quot;);
                            console.log(&quot;[Http] : [response] : [http 응답 데이터 확인]&quot;);
                            console.log(&quot;-----------------------------------------&quot;);
                            console.log(&quot;response : &quot; + data);
                            console.log(&quot;======================================================&quot;);
                            console.log(&quot;&quot;);
                        })
                        .catch((error) =&amp;gt; {
                            console.error(&quot;&quot;);
                            console.error(&quot;======================================================&quot;);
                            console.error(&quot;[Http] : [error] : [http 에러 결과 확인]&quot;);
                            console.error(&quot;-----------------------------------------&quot;);
                            console.error(&quot;[error] : &quot; + error);
                            console.error(&quot;======================================================&quot;);
                            console.error(&quot;&quot;); 
                        });


                    }

                });
                
                

                // ------------------------------------------------
                //   출력 로그 예시
                // ------------------------------------------------
                /*                
                visibilitychange :: hidden
                
                ======================================================
                [Http] : [response] : [http 응답 코드 및 헤더 확인]
                -----------------------------------------
                Status Code : 201
                -----------------------------------------
                Content-Type : application/json; charset=utf-8
                ======================================================
                
                
                ======================================================
                [Http] : [response] : [http 응답 데이터 확인]
                -----------------------------------------
                response : {
                &quot;userId&quot;: 1,
                &quot;id&quot;: 101
                }
                ======================================================
                */
                // ------------------------------------------------
                
            }
            catch (exception) {
                console.error(&quot;[window onload] : [Exception] : ❌ 예외 상황 발생 : &quot;, exception);
            }

        }; 
      
    &amp;lt;/script&amp;gt;


&amp;lt;/head&amp;gt;


&amp;lt;body&amp;gt;

&amp;lt;/body&amp;gt;

&amp;lt;/html&amp;gt;

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

▶️ [간단 소스] callback 콜백 방식 사용해 fetch api (페치) API 호출 및 결과 확인 수행

https://kkh0977.tistory.com/8786

https://blog.naver.com/kkh0977/224262801929


▶️ [function 함수 콜백 (callback) 리턴 데이터 반환 실시]

https://kkh0977.tistory.com/2080

https://blog.naver.com/kkh0977/222794828517?trackingCode=blog_bloghome_searchlist


▶️ [fetch api (페치) 사용해 async await 동기 방식 http 정의 및 커스텀 sleep 지정 및 일정 시간 대기 후 재요청 수행]

https://kkh0977.tistory.com/8653

https://blog.naver.com/kkh0977/224198939582


▶️ [fetch (페치) Web API 사용해 async await 동기 방식 http 요청 및 response header 및 body 확인 실시]

https://kkh0977.tistory.com/3514

https://blog.naver.com/kkh0977/222952720427?trackingCode=blog_bloghome_searchlist


▶️ [fetch (페치) Web API 사용해 http post body json 방식 요청 수행 실시]

https://kkh0977.tistory.com/3513

https://blog.naver.com/kkh0977/222952665953?trackingCode=blog_bloghome_searchlist


▶️ [fetch (페치) Web API 사용해 http get 방식 요청 수행 실시]

https://kkh0977.tistory.com/3510

https://blog.naver.com/kkh0977/222951679283?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-352cd729-7c80-4a34-ab25-60bb7388c9c6&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-29ca1271-f6e3-4570-8ca6-9de2be27894b&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-859cfbc8-da75-428a-946c-ba0298e2c92f&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-e063dd1e-8506-41a7-ba07-d7da035f34b0&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-c92915ca-3098-482f-a7a9-ce6eb6415f06&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8786&quot;&gt;https://kkh0977.tistory.com/8786&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784633906658&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;104. (Http/fetch) [간단 소스] callback 콜백 방식 사용해 fetch api (페치) API 호출 및 결과 확인 수행&quot; data-og-description=&quot;[개발 환경 설정]​개발 툴 : Edit++ / VsCode​개발 기술 : Http / API​제 목 : [간단 소스] callback 콜백 방식 사용해 fetch api (페치) API 호출 및 결과 확인 수행​ [소스 코드]​// ---------------------------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8786&quot; data-og-url=&quot;https://kkh0977.tistory.com/8786&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/dBsnsJ/dJMb8U86MV1/1s8RlduIQLB76kfcXFz540/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bpK3Di/dJMb8RR40UK/u57kB3dZb1mGhD5gp4xR81/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dsclZk/dJMb8PGJhxZ/z5wSkEj7fLDoCVH6G9s9O1/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8786&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8786&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/dBsnsJ/dJMb8U86MV1/1s8RlduIQLB76kfcXFz540/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bpK3Di/dJMb8RR40UK/u57kB3dZb1mGhD5gp4xR81/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/dsclZk/dJMb8PGJhxZ/z5wSkEj7fLDoCVH6G9s9O1/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;104. (Http/fetch) [간단 소스] callback 콜백 방식 사용해 fetch api (페치) API 호출 및 결과 확인 수행&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[개발 환경 설정]​개발 툴 : Edit++ / VsCode​개발 기술 : Http / API​제 목 : [간단 소스] callback 콜백 방식 사용해 fetch api (페치) API 호출 및 결과 확인 수행​ [소스 코드]​// ---------------------------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Http &amp;amp; Api</category>
      <category>2K</category>
      <category>API</category>
      <category>http</category>
      <category>It</category>
      <category>KeepAlive</category>
      <category>개발자</category>
      <category>자바스크립트</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/8995</guid>
      <comments>https://kkh0977.tistory.com/8995#entry8995comment</comments>
      <pubDate>Tue, 21 Jul 2026 20:39:27 +0900</pubDate>
    </item>
    <item>
      <title>88. (Bitbucket/Git) [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행</title>
      <link>https://kkh0977.tistory.com/8994</link>
      <description>&lt;div id=&quot;SE-09151ec3-00a1-4360-b4bb-8533cd6abecb&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-aff3be55-61aa-4b55-99f7-42858775aed9&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-9eea396c-b55d-48a3-a142-597314c6e89c&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-add7bd75-c87b-4e23-ac41-bb3c8ae2b8bf&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;저장소 : Git / 깃 / Bitbucket&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-f7fdd468-62e0-41fa-9346-0a52f0f1efff&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-d19dbc8e-20c4-40b6-b044-0144e96d31e0&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;사용 목적 : 소스 코드 버전 관리 실시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-73be3a33-5820-4ac7-9cf2-831fb1bae78c&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-562d6d26-d507-44f9-93d0-431a1caa553d&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-f9276318-eb12-476d-a75a-129a0b35b73a&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-bf0d7535-6005-418f-bdab-cf6f01514222&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yxtTD/dJMcabLQL5b/WCBRlAOhoeRj677WkqD89K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yxtTD/dJMcabLQL5b/WCBRlAOhoeRj677WkqD89K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yxtTD/dJMcabLQL5b/WCBRlAOhoeRj677WkqD89K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyxtTD%2FdJMcabLQL5b%2FWCBRlAOhoeRj677WkqD89K%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;219&quot; height=&quot;224&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-99fc8d8f-e316-4f15-848d-eb33a7619553&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-bf4852e8-ad96-4e4f-bf7d-55bc2c3b916d&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-01c74220-1c35-4ffb-9eff-ff585a8f88dc&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[내 용]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-ab93c604-dc4d-4e28-88ca-90c74377602e&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784545659857&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-----------------------------------------------------------------------------------------
[구 분]
-----------------------------------------------------------------------------------------

구 분 : Git / 원격 저장소


제 목 : [Git 명령어] cat ~/.ssh/id_ed25519.pub 명령어 사용해 Git SSH Key 공개키 정보 확인 수행


사전) Git 간단 설명 정리 : 

  &amp;gt;&amp;gt; Git 은 소스 코드 버전 관리를 위한 분산 버전관리 시스템 (Distributed Version Control System, DVCS) 입니다.

    - 코드의 변경 이력을 모두 기록하고, 여러 개발자가 안전하게 협업할 수 있게 도와주는 도구입니다.

  &amp;gt;&amp;gt; Git 을 통해 코드의 과거부터 현재까지 모든 변경 이력을 기록하고, 여러 사람이 동시에 작업해도 충돌 없이 협업할 수 있습니다.

  &amp;gt;&amp;gt; Git 주요 용어 정리 : 

    - 저장소 (Repository) : 프로젝트의 파일과 변경 이력을 저장하는 장소 (로컬 저장소: 내 컴퓨터 / 원격 저장소: GitHub, GitLab 등의 서버)
    - 커밋 (Commit) : 저장 버튼 + 스냅샷 (특정 시점의 전체 파일 상태를 기록한 것)
    - 브랜치(Branch) : 독립된 작업 공간 (각 기능(feature)마다 따로 작업할 수 있음 / 개발을 마치면 메인 브랜치에 merge (병합) 하여 통합)
    - remote : 원격 저장소
    - Merge : 두 브랜치를 합치는 가장 흔한 방식
    - Rebase : 히스토리를 깔끔하게 재정렬하며 합치는 방식

  &amp;gt;&amp;gt; Git 주요 명령어 정리 : 

    - git clone : 원격 저장소를 내 로컬에 그대로 복제
    - git pull : 원격 저장소 변경 사항을 가져와 내 브랜치에 자동 병합
    - git fetch : 변경 사항만 로컬에 가져오고 병합은 직접 해야 함
    - git push : 내 변경 사항을 원격 저장소로 올림

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[설명 정리]
-----------------------------------------------------------------------------------------

1.   사전 설정 필요 사항 : 

  &amp;gt;&amp;gt; 로컬 PC 에서 SSH Key 정보 생성 필요


2.   사전 Git SSH Key 간략 설명 : 

  &amp;gt;&amp;gt; Git 에서 SSH Key 는 Git 서버 (GitHub, GitLab, Bitbucket 등) 에 비밀번호를 입력하지 않고 안전하게 인증하기 위한 공개키 기반 인증 방식입니다.

  &amp;gt;&amp;gt; SSH Key를 사용해 Git 저장소에 코드를 Push/Pull 할 수 있습니다.

  &amp;gt;&amp;gt; HTTP 방식 URL 주소 : https://github.com/user/repo.git

  &amp;gt;&amp;gt; SSH Key 방식 URL 주소 : git@github.com:user/repo.git


3.   Git 명령어 수행 형식 : 

  &amp;gt;&amp;gt; cat ~/.ssh/id_ed25519.pub


4.   Git 명령어 수행 결과

  &amp;gt;&amp;gt; ssh-ed25519 AA..5l test@gmail.com

  &amp;gt;&amp;gt; ✅ 해당 정보를 Git 또는 Bitbucket 에 등록 필요

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

▶️ 82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법

https://kkh0977.tistory.com/8988

https://blog.naver.com/kkh0977/224350968799


▶️ 83. (Bitbucket/Git) [SSH Key 설정 방법] : [2] : 비트버킷 ssh key 생성 방법 및 ssh 연결 테스트 확인 방법

https://kkh0977.tistory.com/8989

https://blog.naver.com/kkh0977/224350974963


▶️ 84. (Bitbucket/Git) [SSH Key 설정 방법] : [3] : App passwords are deprecated .. URL returned error: 410

https://kkh0977.tistory.com/8990

https://blog.naver.com/kkh0977/224350985203


▶️ 85. (Bitbucket/Git) [SSH Key 설정 방법] : [4] : Git SSH Key 공개키 기반 인증 방식 설명 정리

https://kkh0977.tistory.com/8991

https://blog.naver.com/kkh0977/224352336395


▶️ 79. (GitLab/Git) [깃랩] Personal Access Token (PAT) Git 액세스 토큰 생성 방법 정리

https://kkh0977.tistory.com/8654

https://blog.naver.com/kkh0977/224198943947


▶️ 76. (Bitbucket/Git) App passwords are recommended .. fatal: Authentication failed for 'https ..'

https://kkh0977.tistory.com/8082

https://blog.naver.com/kkh0977/223910363021

-----------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-66800348-e5fa-4dc7-813b-c84671799592&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-4a3ddd0d-cf73-445a-b8b9-acf3f83f9884&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-15f07fdf-aa42-4626-b679-f7fb1f928c3b&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-77435d93-66b6-4c16-8dc9-03bde5c5794f&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-a60ec22f-d3a3-4b32-b8f1-400bb3bea3df&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8988&quot;&gt;https://kkh0977.tistory.com/8988&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784545641040&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;82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법&quot; data-og-description=&quot;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법​ [설 명]​---------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8988&quot; data-og-url=&quot;https://kkh0977.tistory.com/8988&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c3tsB9/dJMb8YXYJOq/EApk2dWgDS5zghUkY2T7x1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cW0sni/dJMb89yqzM0/T4m680EgmNKDQKVWKBkCL1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/zxrFL/dJMb8Yp8j4j/HhH5xza8T5kLL7dPoMv610/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8988&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8988&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c3tsB9/dJMb8YXYJOq/EApk2dWgDS5zghUkY2T7x1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cW0sni/dJMb89yqzM0/T4m680EgmNKDQKVWKBkCL1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/zxrFL/dJMb8Yp8j4j/HhH5xza8T5kLL7dPoMv610/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법​ [설 명]​---------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Git (깃 &amp;amp; 저장소)</category>
      <category>2K</category>
      <category>Bitbucket</category>
      <category>git</category>
      <category>It</category>
      <category>SSH</category>
      <category>개발자</category>
      <category>공개키</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/8994</guid>
      <comments>https://kkh0977.tistory.com/8994#entry8994comment</comments>
      <pubDate>Mon, 20 Jul 2026 20:08:13 +0900</pubDate>
    </item>
    <item>
      <title>87. (Bitbucket/Git) [Git 명령어] ssh -T git@bitbucket.org 사용해 Git SSH Key 연결 테스트 수행</title>
      <link>https://kkh0977.tistory.com/8993</link>
      <description>&lt;div id=&quot;SE-ec292c75-a323-4648-a1f1-6ada139e07ee&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-68316317-0cc2-46b0-baa5-f03b2a36151a&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-7c16c09d-e803-4f95-b311-d652625c9561&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-86c1e8a7-bca8-462e-81f3-a3ce3e3a73d3&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;저장소 : Git / 깃 / Bitbucket&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-601034c5-2d51-4765-8678-9aee09f15a22&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-4d013b21-1117-4c99-a3a9-d6bbb24cf6da&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;사용 목적 : 소스 코드 버전 관리 실시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-7f51cbfd-b93c-47c1-847b-272fd21a0cb6&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-881b619c-ddfb-4877-9921-2d58a624ef64&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : [Git 명령어] ssh -T git@bitbucket.org 사용해 Git SSH Key 연결 테스트 수행&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-c631c998-b209-4882-a464-23ea97af5199&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-2070ea92-1e30-41fa-a94a-8f75ac14231a&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ua66I/dJMcadiytyI/OFrNRHe86EeikSCcoiylp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ua66I/dJMcadiytyI/OFrNRHe86EeikSCcoiylp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ua66I/dJMcadiytyI/OFrNRHe86EeikSCcoiylp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FUa66I%2FdJMcadiytyI%2FOFrNRHe86EeikSCcoiylp0%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;219&quot; height=&quot;224&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-4a1127e2-eb66-4264-ac66-6a10bc848a0d&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-18c13039-31a4-43ab-b0f0-bd37de8d9677&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-89cafa5c-0b45-424c-a559-9144bdfbdcc6&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[내 용]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-978f5ef0-39f3-41c4-b94c-f098a973858f&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784543757784&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-----------------------------------------------------------------------------------------
[구 분]
-----------------------------------------------------------------------------------------

구 분 : Git / 원격 저장소


제 목 : [Git 명령어] ssh -T git@bitbucket.org 사용해 Git SSH Key 연결 테스트 수행


사전) Git 간단 설명 정리 : 

  &amp;gt;&amp;gt; Git 은 소스 코드 버전 관리를 위한 분산 버전관리 시스템 (Distributed Version Control System, DVCS) 입니다.

    - 코드의 변경 이력을 모두 기록하고, 여러 개발자가 안전하게 협업할 수 있게 도와주는 도구입니다.

  &amp;gt;&amp;gt; Git 을 통해 코드의 과거부터 현재까지 모든 변경 이력을 기록하고, 여러 사람이 동시에 작업해도 충돌 없이 협업할 수 있습니다.

  &amp;gt;&amp;gt; Git 주요 용어 정리 : 

    - 저장소 (Repository) : 프로젝트의 파일과 변경 이력을 저장하는 장소 (로컬 저장소: 내 컴퓨터 / 원격 저장소: GitHub, GitLab 등의 서버)
    - 커밋 (Commit) : 저장 버튼 + 스냅샷 (특정 시점의 전체 파일 상태를 기록한 것)
    - 브랜치(Branch) : 독립된 작업 공간 (각 기능(feature)마다 따로 작업할 수 있음 / 개발을 마치면 메인 브랜치에 merge (병합) 하여 통합)
    - remote : 원격 저장소
    - Merge : 두 브랜치를 합치는 가장 흔한 방식
    - Rebase : 히스토리를 깔끔하게 재정렬하며 합치는 방식

  &amp;gt;&amp;gt; Git 주요 명령어 정리 : 

    - git clone : 원격 저장소를 내 로컬에 그대로 복제
    - git pull : 원격 저장소 변경 사항을 가져와 내 브랜치에 자동 병합
    - git fetch : 변경 사항만 로컬에 가져오고 병합은 직접 해야 함
    - git push : 내 변경 사항을 원격 저장소로 올림

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[설명 정리]
-----------------------------------------------------------------------------------------

1.   사전 설정 필요 사항 : 

  &amp;gt;&amp;gt; 로컬 PC 에서 SSH Key 정보 생성 필요

  &amp;gt;&amp;gt; Git 또는 Bitbucket 사이트에서 SSH Key 등록 필요


2.   Git 명령어 수행 형식 : 

  &amp;gt;&amp;gt; ssh -T git@bitbucket.org


3.   Git 명령어 수행 결과

  The authenticity of host 'bitbucket.org (104.192.140.24)' can't be established.
  ED25519 key fingerprint is SHA256:ybg..SM.
  This key is not known by any other names
  Are you sure you want to continue connecting (yes/no/[fingerprint])? yes ✅ 수동으로 yes 입력 필요
  Warning: Permanently added 'bitbucket.org' (ED25519) to the list of known hosts.
  authenticated via ssh key.

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

▶️ 82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법

https://kkh0977.tistory.com/8988

https://blog.naver.com/kkh0977/224350968799


▶️ 83. (Bitbucket/Git) [SSH Key 설정 방법] : [2] : 비트버킷 ssh key 생성 방법 및 ssh 연결 테스트 확인 방법

https://kkh0977.tistory.com/8989

https://blog.naver.com/kkh0977/224350974963


▶️ 84. (Bitbucket/Git) [SSH Key 설정 방법] : [3] : App passwords are deprecated .. URL returned error: 410

https://kkh0977.tistory.com/8990

https://blog.naver.com/kkh0977/224350985203


▶️ 85. (Bitbucket/Git) [SSH Key 설정 방법] : [4] : Git SSH Key 공개키 기반 인증 방식 설명 정리

https://kkh0977.tistory.com/8991

https://blog.naver.com/kkh0977/224352336395


▶️ 79. (GitLab/Git) [깃랩] Personal Access Token (PAT) Git 액세스 토큰 생성 방법 정리

https://kkh0977.tistory.com/8654

https://blog.naver.com/kkh0977/224198943947


▶️ 76. (Bitbucket/Git) App passwords are recommended .. fatal: Authentication failed for 'https ..'

https://kkh0977.tistory.com/8082

https://blog.naver.com/kkh0977/223910363021

-----------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-1433c430-30d3-4e8d-8f5b-f63aee8325a4&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-7bbb3792-c777-47dc-bc4c-574e29e513a9&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-15107075-f613-401c-a869-69986c0afce6&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-714415fd-f406-454a-99de-e1449994cf70&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-20ae9d07-7cac-4c24-a029-09f8da681bb1&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8988&quot;&gt;https://kkh0977.tistory.com/8988&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784543739878&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;82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법&quot; data-og-description=&quot;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법​ [설 명]​---------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8988&quot; data-og-url=&quot;https://kkh0977.tistory.com/8988&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c3tsB9/dJMb8YXYJOq/EApk2dWgDS5zghUkY2T7x1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cW0sni/dJMb89yqzM0/T4m680EgmNKDQKVWKBkCL1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/zxrFL/dJMb8Yp8j4j/HhH5xza8T5kLL7dPoMv610/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8988&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8988&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c3tsB9/dJMb8YXYJOq/EApk2dWgDS5zghUkY2T7x1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cW0sni/dJMb89yqzM0/T4m680EgmNKDQKVWKBkCL1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/zxrFL/dJMb8Yp8j4j/HhH5xza8T5kLL7dPoMv610/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법​ [설 명]​---------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Git (깃 &amp;amp; 저장소)</category>
      <category>2K</category>
      <category>Bitbucket</category>
      <category>git</category>
      <category>It</category>
      <category>KEY</category>
      <category>SSH</category>
      <category>개발자</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/8993</guid>
      <comments>https://kkh0977.tistory.com/8993#entry8993comment</comments>
      <pubDate>Mon, 20 Jul 2026 19:36:23 +0900</pubDate>
    </item>
    <item>
      <title>86. (Bitbucket/Git) [에러 관리] SSH key Permission denied (publickey) fatal: Could not read repository</title>
      <link>https://kkh0977.tistory.com/8992</link>
      <description>&lt;div id=&quot;SE-8ce069d9-cce0-40ec-8392-c2ef536d2791&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-53471754-fa15-4101-971e-4eed6bb05a26&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[환경 설정]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-223946fe-7814-45b5-a1c6-dddc2b8bc3f0&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;​&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-1acf860f-e466-4120-8c06-996b44d70690&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;저장소 : Git / 깃 / Bitbucket&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-48228082-581f-4fcf-b79d-71f8cd021807&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-51388255-4ee1-4d0c-a7b9-94c21776f525&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;사용 목적 : 소스 코드 버전 관리 실시&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-217ace97-81a7-4bb4-8273-fd4a2e4a7f6a&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-d59e8707-4a55-4a4b-845f-8dd08326ee1a&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #000000;&quot;&gt;&lt;b&gt;제 목 : [에러 관리] SSH key Permission denied (publickey) fatal: Could not read repository&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-2288ba19-6f22-49fd-af7e-36b4b7a185a2&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-b4eeaa70-db51-459e-90b1-70889828a43b&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba0A4k/dJMcai46qL0/6Z2mDyu9YDwqjXNR8xkOZk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba0A4k/dJMcai46qL0/6Z2mDyu9YDwqjXNR8xkOZk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba0A4k/dJMcai46qL0/6Z2mDyu9YDwqjXNR8xkOZk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba0A4k%2FdJMcai46qL0%2F6Z2mDyu9YDwqjXNR8xkOZk%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;219&quot; height=&quot;224&quot; data-origin-width=&quot;219&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-81c0592a-a22c-45fe-91cf-a59199cae116&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-3971dbb8-cdf6-4a3e-992f-a3e9f65fee92&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-a42d6aa4-651a-4cad-b074-b23cea5c62b7&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[내 용]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-749a09ff-cdc7-4d45-a7b3-6498ae93864e&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1784542322226&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;-----------------------------------------------------------------------------------------
[구 분]
-----------------------------------------------------------------------------------------

구 분 : Git / 원격 저장소


제 목 : [에러 관리] SSH key Permission denied (publickey) fatal: Could not read repository


사전) Git 간단 설명 정리 : 

  &amp;gt;&amp;gt; Git 은 소스 코드 버전 관리를 위한 분산 버전관리 시스템 (Distributed Version Control System, DVCS) 입니다.

    - 코드의 변경 이력을 모두 기록하고, 여러 개발자가 안전하게 협업할 수 있게 도와주는 도구입니다.

  &amp;gt;&amp;gt; Git 을 통해 코드의 과거부터 현재까지 모든 변경 이력을 기록하고, 여러 사람이 동시에 작업해도 충돌 없이 협업할 수 있습니다.

  &amp;gt;&amp;gt; Git 주요 용어 정리 : 

    - 저장소 (Repository) : 프로젝트의 파일과 변경 이력을 저장하는 장소 (로컬 저장소: 내 컴퓨터 / 원격 저장소: GitHub, GitLab 등의 서버)
    - 커밋 (Commit) : 저장 버튼 + 스냅샷 (특정 시점의 전체 파일 상태를 기록한 것)
    - 브랜치(Branch) : 독립된 작업 공간 (각 기능(feature)마다 따로 작업할 수 있음 / 개발을 마치면 메인 브랜치에 merge (병합) 하여 통합)
    - remote : 원격 저장소
    - Merge : 두 브랜치를 합치는 가장 흔한 방식
    - Rebase : 히스토리를 깔끔하게 재정렬하며 합치는 방식

  &amp;gt;&amp;gt; Git 주요 명령어 정리 : 

    - git clone : 원격 저장소를 내 로컬에 그대로 복제
    - git pull : 원격 저장소 변경 사항을 가져와 내 브랜치에 자동 병합
    - git fetch : 변경 사항만 로컬에 가져오고 병합은 직접 해야 함
    - git push : 내 변경 사항을 원격 저장소로 올림

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[에러 원인]
-----------------------------------------------------------------------------------------

1.   SSH Key 생성 후 git push 수행 시 공개키가 Git (또는 Bitbucket) 에 등록되어 있지 않아서 발생하는 이슈


2.   에러 발생 전체 로그 : 

    git@github.com: Permission denied (publickey).
    fatal: Could not read from remote repository.


3.   현재 상황 정리 :

  &amp;gt;&amp;gt; ssh key 는 정상 생성되어 있는 상태

  &amp;gt;&amp;gt; git 특정 프로젝트 remote origin url 을 ssh 방식으로 변경해 놓은 상태

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[해결 방법]
-----------------------------------------------------------------------------------------

1.   Git (또는 Bitbucket) 에 공개키 등록 후 SSH 테스트 및 push 수행 실시


2.   Git (또는 Bitbucket) 에 공개키 등록 후 SSH 테스트 명령어 : 

  &amp;gt;&amp;gt; ssh -T git@bitbucket.org


3.   추가 Permission denied (publickey) 가 발생할 수 있는 상황 정리 : 

  &amp;gt;&amp;gt; 공개키가 GitHub 에 등록되지 않음 : Git (또는 Bitbucket) 에 내가 생성한 SSH Key 가 정상 등록 되었는지 확인

  &amp;gt;&amp;gt; SSH Agent 에 키가 등록되지 않음 : ssh-add -l 명령어를 통해 확인 시 The agent has no identities. 에러가 발생함

  &amp;gt;&amp;gt; 잘못된 SSH Key 사용 중 : 회사 및 개인 계정 혼용 사용으로 잘못 설정 되어 있는 경우

  &amp;gt;&amp;gt; Remote URL 이 SSH 가 아님 : git remote -v 명령어를 통해 확인 시 HTTPS 주소로 되어 있는 경우 ssh 방식이 아님

  &amp;gt;&amp;gt; 권한 없는 Repository 접근 : 키는 정상인데 Repository 권한이 없음 -&amp;gt; ssh -T git@github.com 명령어 테스트 시 Repository not found. 에러가 발생함

  &amp;gt;&amp;gt; SSH Key 파일 권한 문제 : chmod 를 사용해 ssh key 파일 권한 확인

  &amp;gt;&amp;gt; 회사 방화벽 또는 22번 포트 차단 : telnet github.com 22 를 통해서 포트 연결 테스트 수행

-----------------------------------------------------------------------------------------






-----------------------------------------------------------------------------------------
[참고 사이트]
-----------------------------------------------------------------------------------------

▶️ 82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법

https://kkh0977.tistory.com/8988

https://blog.naver.com/kkh0977/224350968799


▶️ 83. (Bitbucket/Git) [SSH Key 설정 방법] : [2] : 비트버킷 ssh key 생성 방법 및 ssh 연결 테스트 확인 방법

https://kkh0977.tistory.com/8989

https://blog.naver.com/kkh0977/224350974963


▶️ 84. (Bitbucket/Git) [SSH Key 설정 방법] : [3] : App passwords are deprecated .. URL returned error: 410

https://kkh0977.tistory.com/8990

https://blog.naver.com/kkh0977/224350985203


▶️ 79. (GitLab/Git) [깃랩] Personal Access Token (PAT) Git 액세스 토큰 생성 방법 정리

https://kkh0977.tistory.com/8654

https://blog.naver.com/kkh0977/224198943947


▶️ 76. (Bitbucket/Git) App passwords are recommended .. fatal: Authentication failed for 'https ..'

https://kkh0977.tistory.com/8082

https://blog.naver.com/kkh0977/223910363021

-----------------------------------------------------------------------------------------&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-0688b7ab-be15-4ca0-bd45-47582596d3ff&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;SE-46e8bf92-c907-45a8-84a4-b7adba12f508&quot; style=&quot;background-color: #ffffff; color: #557a74; text-align: left;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p id=&quot;SE-09f5374d-adb9-439f-837d-42c878a621de&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffef34; color: #000000;&quot;&gt;&lt;b&gt;[참고 사이트]&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-2cc7ac84-fa0c-40aa-b85a-a835c29864db&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;​&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;SE-64fd00df-bc8d-45b1-84b0-9f3b00b7672b&quot; style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;b&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8988&quot;&gt;https://kkh0977.tistory.com/8988&lt;/a&gt;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;figure id=&quot;og_1784542304381&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;82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법&quot; data-og-description=&quot;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법​ [설 명]​---------------&quot; data-og-host=&quot;kkh0977.tistory.com&quot; data-og-source-url=&quot;https://kkh0977.tistory.com/8988&quot; data-og-url=&quot;https://kkh0977.tistory.com/8988&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c3tsB9/dJMb8YXYJOq/EApk2dWgDS5zghUkY2T7x1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cW0sni/dJMb89yqzM0/T4m680EgmNKDQKVWKBkCL1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/zxrFL/dJMb8Yp8j4j/HhH5xza8T5kLL7dPoMv610/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415&quot;&gt;&lt;a href=&quot;https://kkh0977.tistory.com/8988&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kkh0977.tistory.com/8988&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c3tsB9/dJMb8YXYJOq/EApk2dWgDS5zghUkY2T7x1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/cW0sni/dJMb89yqzM0/T4m680EgmNKDQKVWKBkCL1/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/zxrFL/dJMb8Yp8j4j/HhH5xza8T5kLL7dPoMv610/img.png?width=559&amp;amp;height=415&amp;amp;face=0_0_559_415');&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;82. (Bitbucket/Git) [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[환경 설정]​저장소 : Git / 깃 / Bitbucket​사용 목적 : 소스 코드 버전 관리 실시​제 목 : [SSH Key 설정 방법] : [1] : mac os 에서 ssh key 생성 및 프로젝트에 remote origin 설정 방법​ [설 명]​---------------&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kkh0977.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;</description>
      <category>Git (깃 &amp;amp; 저장소)</category>
      <category>2K</category>
      <category>Bitbucket</category>
      <category>git</category>
      <category>It</category>
      <category>KEY</category>
      <category>SSH</category>
      <category>개발자</category>
      <category>컴퓨터</category>
      <category>투케이</category>
      <category>투케이2k</category>
      <author>투케이2K</author>
      <guid isPermaLink="true">https://kkh0977.tistory.com/8992</guid>
      <comments>https://kkh0977.tistory.com/8992#entry8992comment</comments>
      <pubDate>Mon, 20 Jul 2026 19:12:29 +0900</pubDate>
    </item>
  </channel>
</rss>