<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>개발새발</title>
    <link>https://his0si.tistory.com/</link>
    <description>학부생 프로그래머의 개발일지</description>
    <language>ko</language>
    <pubDate>Sun, 2 Aug 2026 00:47:51 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>비숑주인</managingEditor>
    <image>
      <title>개발새발</title>
      <url>https://tistory1.daumcdn.net/tistory/5946835/attach/eff7c7df9dd34f3082db142824582ee3</url>
      <link>https://his0si.tistory.com</link>
    </image>
    <item>
      <title>정보처리기사 필기 2일컷 후기</title>
      <link>https://his0si.tistory.com/286</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #474747; text-align: start;&quot;&gt;정처기 필기는 100점을 만점에 과목당 40점 이상, 전과목 평균 60점 이상이면 합격이다. 에타 컴공게를 보니까 다들 안 보고 갔다, 하루컷 했다 해서 이틀전에 전체적인 내용만 한번 쓱 훑어보고, 하루전에 기출 문제들을 풀어줬다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #474747; text-align: start;&quot;&gt;1과목이랑 2과목은 완전 소프트웨어공학(+약간의 자료 구조) 내용이었고 3단원은 데이터베이스, 4단원은 전반적인 프로그래밍 언어와 정보통신공학(+약간의 리눅스), 5단원은 사이버보안개론 내용이었다. 데이터베이스랑 사이버보안개론 내용을 제외하면 다 우리 학교 컴공 전필이었기 때문에 완벽하게 기억은 못하더라도 대략적으로 무슨 내용인지는 알만한 내용이었다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개념은 아래 유튜브로 1단원부터 5단원까지 한번 훑어줬다. 특히 소프트웨어공학 파트는 종강과 함께 잊어버렸기에(...) 한번 다시 들으면서 기억을 되살렸다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://youtu.be/V6xZmoIyTR8?si=NvXg7_UP1uxxOHiz&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://youtu.be/V6xZmoIyTR8?si=NvXg7_UP1uxxOHiz&lt;/a&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=V6xZmoIyTR8&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/C05vq/dJMb9llbABA/7jQ8VvBtU5FaetZI1qagC0/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=498_94_704_318,https://scrap.kakaocdn.net/dn/Nxbb4/dJMb84X3c2O/LCXTmFMy2hwzbrkWouKHJk/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=498_94_704_318,https://scrap.kakaocdn.net/dn/sySom/dJMb9jgBK6C/E5kEBFKJ5TekSKuGcToC90/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=498_94_704_318&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;정보처리기사 필기 [제 1과목 소프트웨어 설계] 30분 벼락치기 특강   해커스자격증 양문자&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/V6xZmoIyTR8&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;꿈꾸는 라이언 필기가 유명해서 구입해봤다. 전반적으로 한번 개념들 눈에 한번 바르기 좋았다. 소프트웨어공학이랑 사이버보안개론 부분들을 집중적으로 봤다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://smartstore.naver.com/history_ryan/products/8646839445?NaPm=ct%3D1jo960700%7Cci%3Dshopn%7Ctr%3Dmktlnk%7Chk%3D5308bfcffc73e79263a05777ec89a0385419dbd5%7Ctrx%3Dundefined&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://smartstore.naver.com/history_ryan/products/8646839445?NaPm=ct%3D1jo960700%7Cci%3Dshopn%7Ctr%3Dmktlnk%7Chk%3D5308bfcffc73e79263a05777ec89a0385419dbd5%7Ctrx%3Dundefined&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1778424773108&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;정보처리기사 요약노트 PDF (필기) : 꿈꾸는라이언&quot; data-og-description=&quot;[꿈꾸는라이언] 꿈꾸는라이언 요약노트&quot; data-og-host=&quot;smartstore.naver.com&quot; data-og-source-url=&quot;https://smartstore.naver.com/history_ryan/products/8646839445?NaPm=ct%3D1jo960700%7Cci%3Dshopn%7Ctr%3Dmktlnk%7Chk%3D5308bfcffc73e79263a05777ec89a0385419dbd5%7Ctrx%3Dundefined&quot; data-og-url=&quot;https://smartstore.naver.com/history_ryan/products/8646839445?&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/Owwjh/dJMb8YXP3Jb/poLRwxwCYdMhK2S8hwWR81/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000,https://scrap.kakaocdn.net/dn/bdrwnm/dJMb8XSaegS/VIR2v6ysjXJhV4bNhQ4F70/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000,https://scrap.kakaocdn.net/dn/HDRPp/dJMb8T931H1/DvpW2usvKrQqY6EpiMome1/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000&quot;&gt;&lt;a href=&quot;https://smartstore.naver.com/history_ryan/products/8646839445?NaPm=ct%3D1jo960700%7Cci%3Dshopn%7Ctr%3Dmktlnk%7Chk%3D5308bfcffc73e79263a05777ec89a0385419dbd5%7Ctrx%3Dundefined&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://smartstore.naver.com/history_ryan/products/8646839445?NaPm=ct%3D1jo960700%7Cci%3Dshopn%7Ctr%3Dmktlnk%7Chk%3D5308bfcffc73e79263a05777ec89a0385419dbd5%7Ctrx%3Dundefined&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/Owwjh/dJMb8YXP3Jb/poLRwxwCYdMhK2S8hwWR81/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000,https://scrap.kakaocdn.net/dn/bdrwnm/dJMb8XSaegS/VIR2v6ysjXJhV4bNhQ4F70/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000,https://scrap.kakaocdn.net/dn/HDRPp/dJMb8T931H1/DvpW2usvKrQqY6EpiMome1/img.jpg?width=1000&amp;amp;height=1000&amp;amp;face=0_0_1000_1000');&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;정보처리기사 요약노트 PDF (필기) : 꿈꾸는라이언&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;[꿈꾸는라이언] 꿈꾸는라이언 요약노트&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;smartstore.naver.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 공부하면서 정리한 개념 내용들과 내가 개인적으로 CBT 몇개 풀어보면서 한 오답들이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #474747; text-align: start;&quot;&gt;&lt;a href=&quot;https://his0si.tistory.com/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://his0si.tistory.com/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1769194794096&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;'정보처리기사' 카테고리의 글 목록&quot; data-og-description=&quot;학부생 프로그래머의 개발일지&quot; data-og-host=&quot;his0si.tistory.com&quot; data-og-source-url=&quot;https://his0si.tistory.com/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot; data-og-url=&quot;https://his0si.tistory.com/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/raA8T/dJMb85WNucp/wbyrAsn4XUkzuZcmxIPem0/img.jpg?width=800&amp;amp;height=799&amp;amp;face=0_0_800_799,https://scrap.kakaocdn.net/dn/P9kAB/dJMb81GRoWd/uUrx0rFiYIFUzurom1kLAk/img.jpg?width=800&amp;amp;height=799&amp;amp;face=0_0_800_799,https://scrap.kakaocdn.net/dn/eIMS7/dJMb82Mxhxl/BMG0ubHc0pCkfhW2dD5DV1/img.jpg?width=1076&amp;amp;height=1075&amp;amp;face=0_0_1076_1075&quot;&gt;&lt;a href=&quot;https://his0si.tistory.com/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://his0si.tistory.com/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/raA8T/dJMb85WNucp/wbyrAsn4XUkzuZcmxIPem0/img.jpg?width=800&amp;amp;height=799&amp;amp;face=0_0_800_799,https://scrap.kakaocdn.net/dn/P9kAB/dJMb81GRoWd/uUrx0rFiYIFUzurom1kLAk/img.jpg?width=800&amp;amp;height=799&amp;amp;face=0_0_800_799,https://scrap.kakaocdn.net/dn/eIMS7/dJMb82Mxhxl/BMG0ubHc0pCkfhW2dD5DV1/img.jpg?width=1076&amp;amp;height=1075&amp;amp;face=0_0_1076_1075');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;'정보처리기사' 카테고리의 글 목록&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;학부생 프로그래머의 개발일지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;his0si.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CBT 링크&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://cbtbank.kr/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://cbtbank.kr/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768415107953&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;정보처리기사 기출문제 - CBT문제은행&quot; data-og-description=&quot;cbt문제은행, cbtbank, cbt, 전자문제집, cbt전자문제집, 기출문제, cbt기출문제, cbt시험, 문제은행, 자격증, 컴활자격증, 컴활, 컴퓨터활용능력, 워드, 워드프로세서, 워드자격증, 1급, 2급, 기사, 산업&quot; data-og-host=&quot;cbtbank.kr&quot; data-og-source-url=&quot;https://cbtbank.kr/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot; data-og-url=&quot;https://cbtbank.kr/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/fRIVU/dJMb9gxeK52/V4wMIWXRwHJ6yVsFuT5Kf1/img.png?width=800&amp;amp;height=393&amp;amp;face=0_0_800_393&quot;&gt;&lt;a href=&quot;https://cbtbank.kr/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://cbtbank.kr/category/%EC%A0%95%EB%B3%B4%EC%B2%98%EB%A6%AC%EA%B8%B0%EC%82%AC&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/fRIVU/dJMb9gxeK52/V4wMIWXRwHJ6yVsFuT5Kf1/img.png?width=800&amp;amp;height=393&amp;amp;face=0_0_800_393');&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;정보처리기사 기출문제 - CBT문제은행&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;cbt문제은행, cbtbank, cbt, 전자문제집, cbt전자문제집, 기출문제, cbt기출문제, cbt시험, 문제은행, 자격증, 컴활자격증, 컴활, 컴퓨터활용능력, 워드, 워드프로세서, 워드자격증, 1급, 2급, 기사, 산업&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;cbtbank.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.sinagong.co.kr/pds/001001001/exam-preparations&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.sinagong.co.kr/pds/001001001/exam-preparations&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1769178951144&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;길벗, 이지톡&quot; data-og-description=&quot;IT, 어학, 자기계발, 재테크, 인문, 여행 등 학습과 실용 분야 출판&quot; data-og-host=&quot;www.gilbut.co.kr&quot; data-og-source-url=&quot;https://www.sinagong.co.kr/pds/001001001/exam-preparations&quot; data-og-url=&quot;http://www.gilbut.co.kr&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/TlPzU/dJMb81fMQ58/UZTSQpUpShhshhTGx2L2Hk/img.png?width=157&amp;amp;height=100&amp;amp;face=0_0_157_100,https://scrap.kakaocdn.net/dn/HJCv0/dJMb84XSZvZ/8LoNENd135PvUmgxEDqUY0/img.png?width=157&amp;amp;height=100&amp;amp;face=0_0_157_100,https://scrap.kakaocdn.net/dn/cbItKO/dJMb89x7L1K/kBfygdmPKsGtXuK40EZuEk/img.jpg?width=300&amp;amp;height=444&amp;amp;face=0_0_300_444&quot;&gt;&lt;a href=&quot;https://www.sinagong.co.kr/pds/001001001/exam-preparations&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.sinagong.co.kr/pds/001001001/exam-preparations&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/TlPzU/dJMb81fMQ58/UZTSQpUpShhshhTGx2L2Hk/img.png?width=157&amp;amp;height=100&amp;amp;face=0_0_157_100,https://scrap.kakaocdn.net/dn/HJCv0/dJMb84XSZvZ/8LoNENd135PvUmgxEDqUY0/img.png?width=157&amp;amp;height=100&amp;amp;face=0_0_157_100,https://scrap.kakaocdn.net/dn/cbItKO/dJMb89x7L1K/kBfygdmPKsGtXuK40EZuEk/img.jpg?width=300&amp;amp;height=444&amp;amp;face=0_0_300_444');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;길벗, 이지톡&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;IT, 어학, 자기계발, 재테크, 인문, 여행 등 학습과 실용 분야 출판&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.gilbut.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.kinz.kr/subject/7872&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.kinz.kr/subject/7872&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1769194426227&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;정보처리기사 객관식 필기 기출문제 CBT 목록 - 킨즈&quot; data-og-description=&quot;&quot; data-og-host=&quot;www.kinz.kr&quot; data-og-source-url=&quot;https://www.kinz.kr/subject/7872&quot; data-og-url=&quot;https://www.kinz.kr/subject/7872&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://www.kinz.kr/subject/7872&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.kinz.kr/subject/7872&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;정보처리기사 객관식 필기 기출문제 CBT 목록 - 킨즈&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.kinz.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;합격하면 화면으로 바로 합불 여부가 떴다. 합격 한 뒤에 바로 응시자격서류를 제출하려고 했는데 맥북에서는 응시자격서류 발급이 안된다...혹시 맥북인 사람들은 참고해서 윈도우 노트북에서 응시 서류 발급을 하도록 하자...&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;1964&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/E7GkW/dJMcaa6kxqk/pmOnmv17AHUVZ6OllkesuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/E7GkW/dJMcaa6kxqk/pmOnmv17AHUVZ6OllkesuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/E7GkW/dJMcaa6kxqk/pmOnmv17AHUVZ6OllkesuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FE7GkW%2FdJMcaa6kxqk%2FpmOnmv17AHUVZ6OllkesuK%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;3024&quot; height=&quot;1964&quot; data-origin-width=&quot;3024&quot; data-origin-height=&quot;1964&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>자격증 후기</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/286</guid>
      <comments>https://his0si.tistory.com/286#entry286comment</comments>
      <pubDate>Sun, 10 May 2026 23:42:50 +0900</pubDate>
    </item>
    <item>
      <title>DBeaver로 원격 PostgreSQL에 SSH 터널링으로 접속하기</title>
      <link>https://his0si.tistory.com/308</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;프로덕션 DB는 보안상 외부 인터넷에 직접 노출하지 않는 게 원칙이다. AWS RDS나 사내 DB에 일반적인 방법으로 DBeaver 접속이 거부되는 경험을 한 번쯤 해봤을 것이다. 이는 DB 서버에 공인 IP를 아예 할당하지 않거나, 방화벽으로 DB 포트(5432)를 막아두기 때문이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 글에서는 PostgreSQL을 네이티브로 설치한 Ubuntu 서버에 SSH 터널링 + PEM 키 인증으로 DBeaver를 연결하는 전 과정을 다루려고 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;[DBeaver (Mac)]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; │ SSH (포트 your_ssh_port)&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;▼&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;[Remote Server your_server_ip]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;│&amp;nbsp;localhost:5432&lt;br /&gt;&amp;nbsp; &amp;nbsp; ▼&lt;br /&gt;&amp;nbsp;&amp;nbsp;[PostgreSQL - 외부 미노출]&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span style=&quot;background-color: #fcfcfc; color: #666666; text-align: left;&quot;&gt;&amp;nbsp;PostgreSQL은 localhost만 수신하도록 설정하고, DBeaver는 SSH 터널을 통해 서버 내부에서 DB에 접근한다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;br /&gt;&lt;b&gt;&amp;nbsp;&amp;nbsp;1. PostgreSQL 설치 및 설정&lt;/b&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1776592574654&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt install postgresql postgresql-contrib
sudo systemctl enable postgresql
sudo systemctl start postgresql&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;DB 및 유저 생성&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1776592586954&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo -u postgres psql

CREATE USER your_db_user WITH PASSWORD 'your_db_password';
CREATE DATABASE your_db_name OWNER your_db_user;

\q&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;localhost만 수신하도록 설정&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1776592602066&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;/etc/postgresql/14/main/postgresql.conf:
listen_addresses = 'localhost'

/etc/postgresql/14/main/pg_hba.conf:
host    all    all    127.0.0.1/32    md5

sudo systemctl restart postgresql&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;b&gt;2. SSH 키 생성&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;DBeaver는 SSH 터널에 비밀번호 대신 PEM 키(공개키 인증) 를 사용한다.&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1776592626591&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 서버에서 키 생성
ssh-keygen -t rsa -b 4096 -C &quot;your_key_comment&quot; -f /home/your_user/your_key -N &quot;&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;왜 RSA인가? &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;처음에는 더 현대적인 ed25519로 생성했으나 DBeaver의 SSHJ 라이브러리와 호환 문제가 있었다. RSA 4096이 더 안정적으로 동작한다. &lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;생성 결과:&lt;br /&gt;&lt;br /&gt;your_key &amp;rarr; 개인키 (로컬에 저장, 절대 유출 금지) &lt;br /&gt;your_key.pub &amp;rarr; 공개키 (서버에 등록)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;키 포맷 변환 (중요)&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;ssh-keygen이 기본으로 생성하는 OpenSSH 포맷(-----BEGIN OPENSSH PRIVATE KEY-----)은 DBeaver SSHJ가 인식하지 못한다. 전통적인 PEM 포맷으로 변환해야 한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1776592726160&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh-keygen -p -m PEM -f /home/your_user/your_key -N &quot;&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;변환 후 첫 줄이 -----BEGIN RSA PRIVATE KEY-----로 바뀌면 정상이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;서버에 공개키 등록&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1776592753856&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 사용자 생성
sudo useradd -m -s /bin/bash your_user

# .ssh 디렉토리 설정
sudo mkdir -p /home/your_user/.ssh
sudo cat /home/your_user/your_key.pub &amp;gt;&amp;gt; /home/your_user/.ssh/authorized_keys

sudo chown -R your_user:your_user /home/your_user/.ssh
sudo chmod 700 /home/your_user/.ssh
sudo chmod 600 /home/your_user/.ssh/authorized_keys

# 홈 디렉토리 권한
sudo chown your_user:your_user /home/your_user
sudo chmod 755 /home/your_user&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;br /&gt;4. DBeaver 최종 설정&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;60&quot; data-start=&quot;51&quot; data-section-id=&quot;782sbn&quot; data-ke-size=&quot;size16&quot;&gt;SSH 탭&lt;/p&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;500&quot; data-start=&quot;62&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;500&quot; data-start=&quot;171&quot;&gt;
&lt;tr data-end=&quot;225&quot; data-start=&quot;171&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;190&quot; data-start=&quot;171&quot;&gt;Use SSH Tunnel&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;225&quot; data-start=&quot;190&quot;&gt;✅&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;280&quot; data-start=&quot;226&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;245&quot; data-start=&quot;226&quot;&gt;Host/IP&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;280&quot; data-start=&quot;245&quot;&gt;your_server_ip&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;335&quot; data-start=&quot;281&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;300&quot; data-start=&quot;281&quot;&gt;Port&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;335&quot; data-start=&quot;300&quot;&gt;your_ssh_port&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;390&quot; data-start=&quot;336&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;355&quot; data-start=&quot;336&quot;&gt;User Name&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;390&quot; data-start=&quot;355&quot;&gt;your_user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;445&quot; data-start=&quot;391&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;410&quot; data-start=&quot;391&quot;&gt;Authentication&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;445&quot; data-start=&quot;410&quot;&gt;Public Key&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;500&quot; data-start=&quot;446&quot;&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;465&quot; data-start=&quot;446&quot;&gt;Private Key&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;500&quot; data-start=&quot;465&quot;&gt;your_key.pem 경로&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1620&quot; data-origin-height=&quot;1120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/M9sf3/dJMcaadWmZJ/tLXhInhi1VLarmjav3lNzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/M9sf3/dJMcaadWmZJ/tLXhInhi1VLarmjav3lNzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/M9sf3/dJMcaadWmZJ/tLXhInhi1VLarmjav3lNzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FM9sf3%2FdJMcaadWmZJ%2FtLXhInhi1VLarmjav3lNzK%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;1620&quot; height=&quot;1120&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1620&quot; data-origin-height=&quot;1120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;br /&gt;&lt;br /&gt;Main 탭&lt;/div&gt;
&lt;div&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 85px;&quot; border=&quot;1&quot; data-end=&quot;711&quot; data-start=&quot;519&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody data-end=&quot;711&quot; data-start=&quot;572&quot;&gt;
&lt;tr style=&quot;height: 17px;&quot; data-end=&quot;599&quot; data-start=&quot;572&quot;&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;583&quot; data-start=&quot;572&quot;&gt;Host&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;599&quot; data-start=&quot;583&quot;&gt;localhost&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot; data-end=&quot;627&quot; data-start=&quot;600&quot;&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;611&quot; data-start=&quot;600&quot;&gt;Port&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;627&quot; data-start=&quot;611&quot;&gt;5432&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot; data-end=&quot;655&quot; data-start=&quot;628&quot;&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;639&quot; data-start=&quot;628&quot;&gt;Database&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;655&quot; data-start=&quot;639&quot;&gt;your_db_name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot; data-end=&quot;683&quot; data-start=&quot;656&quot;&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;667&quot; data-start=&quot;656&quot;&gt;Username&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;683&quot; data-start=&quot;667&quot;&gt;your_db_user&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot; data-end=&quot;711&quot; data-start=&quot;684&quot;&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;695&quot; data-start=&quot;684&quot;&gt;Password&lt;/td&gt;
&lt;td style=&quot;height: 17px;&quot; data-col-size=&quot;sm&quot; data-end=&quot;711&quot; data-start=&quot;695&quot;&gt;your_db_password&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1432&quot; data-origin-height=&quot;1174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/TAzXX/dJMcacJByfU/cRauoauf3xWkVGY1yNJ2f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/TAzXX/dJMcacJByfU/cRauoauf3xWkVGY1yNJ2f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/TAzXX/dJMcacJByfU/cRauoauf3xWkVGY1yNJ2f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTAzXX%2FdJMcacJByfU%2FcRauoauf3xWkVGY1yNJ2f1%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;1432&quot; height=&quot;1174&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1432&quot; data-origin-height=&quot;1174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;733&quot; data-start=&quot;718&quot; data-section-id=&quot;g2avbm&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;733&quot; data-start=&quot;718&quot; data-section-id=&quot;g2avbm&quot; data-ke-size=&quot;size16&quot;&gt;연결 확인 (터미널)&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;pre id=&quot;code_1776592875143&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ssh -i ~/path/to/your_key.pem -p your_ssh_port your_user@your_server_ip&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;518&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cBGpNL/dJMcahxmRaF/3eeDvovLSQh3aLuGGAUd20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cBGpNL/dJMcahxmRaF/3eeDvovLSQh3aLuGGAUd20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cBGpNL/dJMcahxmRaF/3eeDvovLSQh3aLuGGAUd20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcBGpNL%2FdJMcahxmRaF%2F3eeDvovLSQh3aLuGGAUd20%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;1338&quot; height=&quot;518&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1338&quot; data-origin-height=&quot;518&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px; border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;1413&quot; data-start=&quot;837&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;증상&lt;/td&gt;
&lt;td&gt;원인&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1092&quot; data-start=&quot;1011&quot;&gt;
&lt;td data-col-size=&quot;md&quot; data-end=&quot;1062&quot; data-start=&quot;1011&quot;&gt;SSH public key authentication failed&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1092&quot; data-start=&quot;1062&quot;&gt;ed25519 키 또는 OpenSSH 포맷 문제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1173&quot; data-start=&quot;1093&quot;&gt;
&lt;td data-col-size=&quot;md&quot; data-end=&quot;1144&quot; data-start=&quot;1093&quot;&gt;Too many authentication failures&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1173&quot; data-start=&quot;1144&quot;&gt;MaxAuthTries 부족 또는 유저명 오류&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1256&quot; data-start=&quot;1174&quot;&gt;
&lt;td data-col-size=&quot;md&quot; data-end=&quot;1225&quot; data-start=&quot;1174&quot;&gt;key type ssh-rsa not in PubkeyAcceptedAlgorithms&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1256&quot; data-start=&quot;1225&quot;&gt;Ubuntu 22.04에서 ssh-rsa 비활성화&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1335&quot; data-start=&quot;1257&quot;&gt;
&lt;td data-col-size=&quot;md&quot; data-end=&quot;1308&quot; data-start=&quot;1257&quot;&gt;Authentication refused: bad ownership&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1335&quot; data-start=&quot;1308&quot;&gt;홈 디렉토리 소유자 문제&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;1413&quot; data-start=&quot;1336&quot;&gt;
&lt;td data-col-size=&quot;md&quot; data-end=&quot;1387&quot; data-start=&quot;1336&quot;&gt;Load key: bad permissions&lt;/td&gt;
&lt;td data-col-size=&quot;sm&quot; data-end=&quot;1413&quot; data-start=&quot;1387&quot;&gt;PEM 파일 권한이 너무 열려 있음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오른쪽 아래의 Test Connection을 눌러 다음과 같이 연결이 되는지 테스트 해 볼 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;725&quot; data-origin-height=&quot;726&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9xdf5/dJMcaa54NQp/T3gkwug3lLwH23cktK5cY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9xdf5/dJMcaa54NQp/T3gkwug3lLwH23cktK5cY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9xdf5/dJMcaa54NQp/T3gkwug3lLwH23cktK5cY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9xdf5%2FdJMcaa54NQp%2FT3gkwug3lLwH23cktK5cY1%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;725&quot; height=&quot;726&quot; data-origin-width=&quot;725&quot; data-origin-height=&quot;726&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이렇게 접속이 된 모습을 확인 할 수 있다!&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1996&quot; data-origin-height=&quot;1422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZOTdU/dJMcadhpJNM/1OFpitiWAkSaMEZ8TOn1AK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZOTdU/dJMcadhpJNM/1OFpitiWAkSaMEZ8TOn1AK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZOTdU/dJMcadhpJNM/1OFpitiWAkSaMEZ8TOn1AK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZOTdU%2FdJMcadhpJNM%2F1OFpitiWAkSaMEZ8TOn1AK%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;1996&quot; height=&quot;1422&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1996&quot; data-origin-height=&quot;1422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>기타</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/308</guid>
      <comments>https://his0si.tistory.com/308#entry308comment</comments>
      <pubDate>Sun, 19 Apr 2026 17:56:13 +0900</pubDate>
    </item>
    <item>
      <title>GitHub 멀티 계정 설정 가이드 (macOS)</title>
      <link>https://his0si.tistory.com/307</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;원래 노트북에서 개인 깃허브 계정만 사용하다가 가끔 재택을 하게 되면서&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;두 개의 GitHub 계정을 하나의 Mac에서 전환하면서 사용하는 방법을 찾아봤다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;b&gt;환경&amp;nbsp; &amp;nbsp;&lt;/b&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; - macOS&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp; - Git&lt;br /&gt;&amp;nbsp; - GitHub CLI (gh)&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;1.&lt;/b&gt; &lt;b&gt;GitHub&lt;/b&gt; &lt;b&gt;CLI&lt;/b&gt; &lt;b&gt;설치&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1776225089156&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  brew install gh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;b&gt;2.&lt;/b&gt; &lt;b&gt;두&lt;/b&gt; &lt;b&gt;계정&lt;/b&gt; &lt;b&gt;모두&lt;/b&gt; &lt;b&gt;로그인&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1776225114927&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  # 첫 번째 계정 로그인
  gh auth login

  # 두 번째 계정 로그인 (한 번 더 실행)
  gh auth login&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 각각 브라우저가 열리며, 해당 계정으로 로그인한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;pre id=&quot;code_1776225134172&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;  gh auth status&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;b&gt;3.&lt;/b&gt; &lt;b&gt;폴더&lt;/b&gt; &lt;b&gt;구조&lt;/b&gt; &lt;b&gt;분리&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 계정별로 레포를 관리할 폴더를 나눴다. 둘 다 기본적으로 문서 폴더에 생성 되어서 finder의 태그 기능을 이용해서 바로 찾을 수 있게 설정해두었다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGAekF/dJMcaf0wN5b/pKxop2BkNJX2Wbb2u67Jw0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGAekF/dJMcaf0wN5b/pKxop2BkNJX2Wbb2u67Jw0/img.png&quot; data-origin-width=&quot;1716&quot; data-origin-height=&quot;800&quot; data-is-animation=&quot;false&quot; style=&quot;width: 54.0932%; margin-right: 10px;&quot; data-widthpercent=&quot;54.73&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGAekF/dJMcaf0wN5b/pKxop2BkNJX2Wbb2u67Jw0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGAekF%2FdJMcaf0wN5b%2FpKxop2BkNJX2Wbb2u67Jw0%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;1716&quot; height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BiaR1/dJMcahxjDPV/74QicWGWxgJN5BDSXkoRg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BiaR1/dJMcahxjDPV/74QicWGWxgJN5BDSXkoRg0/img.png&quot; data-origin-width=&quot;1462&quot; data-origin-height=&quot;824&quot; data-is-animation=&quot;false&quot; style=&quot;width: 44.744%;&quot; data-widthpercent=&quot;45.27&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BiaR1/dJMcahxjDPV/74QicWGWxgJN5BDSXkoRg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBiaR1%2FdJMcahxjDPV%2F74QicWGWxgJN5BDSXkoRg0%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;1462&quot; height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;nbsp; ~/Documents/&lt;br /&gt;&amp;nbsp; ├── GitHub/&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;larr; 개인 계정 레포&lt;br /&gt;&amp;nbsp; ├── GitHub-Work/ &amp;nbsp; &amp;larr; 회사 계정 레포&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;b&gt;4.&lt;/b&gt; &lt;b&gt;폴더별&lt;/b&gt; &lt;b&gt;Git&lt;/b&gt; &lt;b&gt;설정&lt;/b&gt; &lt;b&gt;(자동&lt;/b&gt; &lt;b&gt;계정&lt;/b&gt; &lt;b&gt;전환)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;nbsp;&amp;nbsp;~/.gitconfig&amp;nbsp;(글로벌&amp;nbsp;설정)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; [user]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; name = myname&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; email = myaccount.com&lt;br /&gt;&lt;br /&gt;&amp;nbsp; [includeIf &quot;gitdir:~/Documents/GitHub-Work/&quot;]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; path = ~/.gitconfig-work&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;~/.gitconfig-work&amp;nbsp;(회사&amp;nbsp;전용&amp;nbsp;설정)&lt;br /&gt;&lt;br /&gt;&amp;nbsp; [user]&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; name = myname&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; email = workaccount.com&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 이렇게 설정하면 ~/Documents/GitHub-Work/ 하위의 레포에서는 자동으로 회사 이메일로 커밋 된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;nbsp; # 개인 폴더에서&lt;br /&gt;&amp;nbsp; cd ~/Documents/GitHub/any-repo&lt;br /&gt;&amp;nbsp; git config user.email&lt;br /&gt;&amp;nbsp; # &amp;rarr; myaccount.com&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # 회사 폴더에서&lt;br /&gt;&amp;nbsp; cd ~/Documents/GitHub-Work/any-repo&lt;br /&gt;&amp;nbsp; git config user.email&lt;br /&gt;&amp;nbsp; # &amp;rarr; workaccount.com&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;b&gt;5.&lt;/b&gt; &lt;b&gt;일상적인&lt;/b&gt; &lt;b&gt;전환&lt;/b&gt; &lt;b&gt;방법&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;b&gt;Git&lt;/b&gt; &lt;b&gt;커밋&lt;/b&gt; &lt;b&gt;(자동)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; 폴더 구조만 지키면 &lt;b&gt;전환할&lt;/b&gt; &lt;b&gt;필요&lt;/b&gt; &lt;b&gt;없이&lt;/b&gt; 알맞은 이메일로 커밋 된다!&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;nbsp; - ~/Documents/GitHub/에서 클론 &amp;rarr; 개인 이메일&lt;br /&gt;&amp;nbsp; - ~/Documents/GitHub-Work/에서 클론 &amp;rarr; 회사 이메일&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;b&gt;GitHub&lt;/b&gt; &lt;b&gt;CLI&lt;/b&gt; &lt;b&gt;계정&lt;/b&gt; &lt;b&gt;전환&lt;/b&gt; &lt;b&gt;(PR&lt;/b&gt; &lt;b&gt;생성,&lt;/b&gt; &lt;b&gt;Issue&lt;/b&gt; &lt;b&gt;등)&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; # 어떤 계정이 활성화되어 있는지 확인&lt;/span&gt;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&amp;nbsp; gh auth status&lt;br /&gt;&lt;br /&gt;&amp;nbsp; # 계정 전환&lt;br /&gt;&amp;nbsp; gh auth switch -u myaccount &amp;nbsp; &amp;nbsp; &amp;nbsp;# 개인 계정으로&lt;br /&gt;&amp;nbsp; gh auth switch -u workaccount&amp;nbsp; &amp;nbsp;# 회사 계정으로&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;b&gt;정리하면&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;4&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;작업 구분&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;전환 및 처리 방법&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,0,0&quot;&gt;git commit&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,1,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,1,0&quot;&gt;자동 적용&lt;/b&gt; (로컬 저장소의 user.name 및 user.email 설정 기준)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,0,0&quot;&gt;gh pr create, gh issue 등&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,2,1,0&quot;&gt;gh auth switch -u &amp;lt;계정명&amp;gt; 명령어로 활성 계정 변경&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,0,0&quot;&gt;git clone&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,3,1,0&quot;&gt;gh auth switch로 대상 계정 활성화 후 클론 진행&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; &lt;b&gt;주의사항&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; - 레포를 클론할 때 &lt;b&gt;반드시&lt;/b&gt; &lt;b&gt;해당&lt;/b&gt; &lt;b&gt;계정의&lt;/b&gt; &lt;b&gt;폴더&lt;/b&gt; &lt;b&gt;안에서&lt;/b&gt; 클론해야 커밋 이메일이 올바르게 적용된다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&amp;nbsp; - GitHub Desktop은 이 설정을 인식하지 못하기 때문에 터미널로 사용해야한다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;&lt;span style=&quot;color: #000000; text-align: start;&quot;&gt;&amp;nbsp; -&lt;span&gt; &lt;/span&gt;&lt;/span&gt;git clone https://... 대신 gh repo clone을 사용해야 gh 인증 토큰으로 private repo에 접근할 수 있다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style=&quot;color: #cccccc; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #cccccc;&quot; data-testid=&quot;assistant-message&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000;&quot;&gt;깃허브 데스크탑으로 사용하려면&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;메뉴 &amp;gt; Preferences &amp;gt; Accounts에서 계정 전환 가능&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;다만&amp;nbsp;&lt;b&gt;동시에 1개 계정만&lt;/b&gt; 로그인 가능해서, 전환하려면 로그아웃 후 재로그인해야 한다.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;color: #cccccc; text-align: start;&quot;&gt;
&lt;div style=&quot;color: #cccccc;&quot; data-testid=&quot;assistant-message&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;</description>
      <category>기타</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/307</guid>
      <comments>https://his0si.tistory.com/307#entry307comment</comments>
      <pubDate>Wed, 15 Apr 2026 10:32:07 +0900</pubDate>
    </item>
    <item>
      <title>실험실 창업 TeX-Corps 최종 합격 후기</title>
      <link>https://his0si.tistory.com/306</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;3달 동안 준비한 실험실 창업 TeX-Corps가 최종 합격했다! 창업 동아리조차 경험이 없기도 했고, 지원금 단위가 이렇게 큰 사업에 지원한 것도 처음이라 엄청 떨렸고, 시간도 정말 많이 쏟았다. 혹시 내년에 텍스코어를 지원할 후배들을 위해 후기를 남기려고 한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1656&quot; data-origin-height=&quot;1822&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3EvSE/dJMcaiW8U5q/nn0bSjN08Onrgsu29LFWE1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3EvSE/dJMcaiW8U5q/nn0bSjN08Onrgsu29LFWE1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3EvSE/dJMcaiW8U5q/nn0bSjN08Onrgsu29LFWE1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3EvSE%2FdJMcaiW8U5q%2Fnn0bSjN08Onrgsu29LFWE1%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;1656&quot; height=&quot;1822&quot; data-origin-width=&quot;1656&quot; data-origin-height=&quot;1822&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;텍스코어(TeX-Corps)는 대학 및 연구소가 보유한 공공기술의 사업화를 촉진하기 위해 과학기술정보통신부가 주관하는 딥테크 실험실 창업 탐색 프로그램이다. 쉽게 말해 나라에서 지원해주는 연구실 창업으로, 미국 NSF의 아이코어(I-Corps)를 벤치마킹해서 석박사 연구원팀에게 교육, 멘토링, 시제품 제작비(약 2~3천만 원)를 지원해준다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실험실 창업인만큼 기본적으로 EL은 석사과정생 이상이여야 한다. 여성 특화형은 학부생도 EL이 가능하나, EL이 여성이고 팀 전체의 과반 이상이 여성이여야 여성 특화형으로 지원할 수 있다. 창업 지원자(PM) 은 학교 창업 지원단 측에 메일을 보내니 배정해주셨다. PI는 석사과정생인 팀장 언니와 랩인턴인 EM의 지도 교수님께 부탁드렸다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LpC6t/dJMcahxdZz1/1TTFzgYjA90VjBPKswLyVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LpC6t/dJMcahxdZz1/1TTFzgYjA90VjBPKswLyVK/img.png&quot; data-origin-width=&quot;1544&quot; data-origin-height=&quot;570&quot; data-is-animation=&quot;false&quot; style=&quot;width: 45.3214%; margin-right: 10px;&quot; data-widthpercent=&quot;45.85&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LpC6t/dJMcahxdZz1/1TTFzgYjA90VjBPKswLyVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLpC6t%2FdJMcahxdZz1%2F1TTFzgYjA90VjBPKswLyVK%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;1544&quot; height=&quot;570&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cZC05k/dJMcacCGr3n/ytgNUi7Q0isgk2uBZhYFm0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cZC05k/dJMcacCGr3n/ytgNUi7Q0isgk2uBZhYFm0/img.png&quot; data-origin-width=&quot;1740&quot; data-origin-height=&quot;544&quot; data-is-animation=&quot;false&quot; style=&quot;width: 53.5158%;&quot; data-widthpercent=&quot;54.15&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cZC05k/dJMcacCGr3n/ytgNUi7Q0isgk2uBZhYFm0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcZC05k%2FdJMcacCGr3n%2FytgNUi7Q0isgk2uBZhYFm0%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;1740&quot; height=&quot;544&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제출 서류부터 만만치 않았다....특히 특허 제출란이 나왔을 때 정신이 좀 아득해졌다....아직 대학도 졸업 안한 학부생 나부랭이가 특허가 어디 있겠는가....EL 언니의 도움으로 연구실에서 지원 받을 수 있는 항목들을 지원 받아가며 간신히 써내려갔다....&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BQEH4/dJMcafzu8ou/vbpy5EdGvvrMo5sLHqu4f0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BQEH4/dJMcafzu8ou/vbpy5EdGvvrMo5sLHqu4f0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BQEH4/dJMcafzu8ou/vbpy5EdGvvrMo5sLHqu4f0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBQEH4%2FdJMcafzu8ou%2Fvbpy5EdGvvrMo5sLHqu4f0%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;666&quot; height=&quot;221&quot; data-origin-width=&quot;666&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1차 서류 합격 후 발표 평가가 있었다. 5분 이내의 영상과 ppt를 제출해야 했는데, 우리가 제출한 11페이지의 서류와, 우리의 기술을 설명하기에는 턱없이 부족한 시간이었다....특히 우리는 해외 교육형을 선택해서 마지막 1분은 영어로 우리의 창업을 짧게 설명해야했기 때문에 분량을 줄이는데 꽤 애를 먹었다. 심사위원들이 우리의 도메인에 대학원생만큼의 지식이 없을 것이라고 판단해(실제로는 그런지 알 수 없다...다만 우리는 CPU 마이크로 아키텍쳐와 프로파일링이라는 다소 지협적인 분야를 정했고, 그 분야는 EL 석사 언니의 연구 주제였기 때문에 전공자가 아니면 깊은 기술적인 내용 설명은 과하다고 판단했다) 최대한 소비자 입장에서 이러한 어려움이 있고, 이러한 갈증을 해소하기 위해 00한 프로젝트를 기획했다. 다른 시중의 서비스와는 00한 차별성이 있다 하는 식으로 발표를 신행했다. 팀원들 전부 공대생이고 창업 경험이나 창업 동아리 활동을 한 사람이 전무 했기에 시장 분석 쪽 작성이 특히 어려웠다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2차 발표 평가후 질의 응답이 잡혔다. 질의 면접한 팀과 최종 합격한 팀을 비교했을 때 질의 응답(면접) 은 4:1 정도 경쟁률이었던 것 같다. 1차 서류 합격 경쟁률은 자세히 모르겠으나 전국적으로 지원을 받는 만큼 경쟁률이 꽤 될 것 같았다....면접에서 우리 팀은 우리가 가지고 있는 기술(실제 대학원에서 실험한 결과, 논문, 특허)를 어필 하는 방향으로 우리의 차별성을 설명하려고 했다. 영어로 마지막에 간단하게 소개해보라고 했는데 미리 준비를 해 가지 못해서 당황했다....혹시 텍스코어 질의 응답을 준비하는 팀이라면 간단한 영어 소개도 준비해 가는 것을 추천한다. 다만 영어 실력 자체는 큰 평가 항목은 아니고 패논패여서 큰 디메릿은 아닌 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tmfnW/dJMcaibVOpa/gTDpDLrMzWjtfeSyEXnf11/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tmfnW/dJMcaibVOpa/gTDpDLrMzWjtfeSyEXnf11/img.png&quot; data-origin-width=&quot;1524&quot; data-origin-height=&quot;1052&quot; data-is-animation=&quot;false&quot; style=&quot;width: 42.9073%; margin-right: 10px;&quot; data-widthpercent=&quot;43.41&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tmfnW/dJMcaibVOpa/gTDpDLrMzWjtfeSyEXnf11/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtmfnW%2FdJMcaibVOpa%2FgTDpDLrMzWjtfeSyEXnf11%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;1524&quot; height=&quot;1052&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/deXixF/dJMb9966JRD/uHhwkphyQNJWU8jHKeAC00/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/deXixF/dJMb9966JRD/uHhwkphyQNJWU8jHKeAC00/img.png&quot; data-origin-width=&quot;1556&quot; data-origin-height=&quot;824&quot; data-is-animation=&quot;false&quot; style=&quot;width: 55.9299%;&quot; data-widthpercent=&quot;56.59&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/deXixF/dJMb9966JRD/uHhwkphyQNJWU8jHKeAC00/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdeXixF%2FdJMb9966JRD%2FuHhwkphyQNJWU8jHKeAC00%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;1556&quot; height=&quot;824&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://startup.ewha.ac.kr/board/notice/view/2906&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://startup.ewha.ac.kr/board/notice/view/2906&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775549500280&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;이화스타트업포털&quot; data-og-description=&quot;예비창업자 및 초기 기업가, 각 분야 전문가 멘토 간의 정보 교류, 이화여대 글로벌기업가센터, 이화여대 창업지원단, 이화여대 창업지원단&quot; data-og-host=&quot;startup.ewha.ac.kr&quot; data-og-source-url=&quot;https://startup.ewha.ac.kr/board/notice/view/2906&quot; data-og-url=&quot;https://startup.ewha.ac.kr/board/notice/view/2906&quot; data-og-image=&quot;&quot;&gt;&lt;a href=&quot;https://startup.ewha.ac.kr/board/notice/view/2906&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://startup.ewha.ac.kr/board/notice/view/2906&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url();&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;이화스타트업포털&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;예비창업자 및 초기 기업가, 각 분야 전문가 멘토 간의 정보 교류, 이화여대 글로벌기업가센터, 이화여대 창업지원단, 이화여대 창업지원단&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;startup.ewha.ac.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하면서 겸사겸사 대학원생 창업 동아리인 랩허도 신청했고, 텍스코어보다 더 빨리 발표가 났다. 결과는 무난하게 합격! 나는 인턴중이라 랩허 면접에는 가지 못했는데, 같이 하는 팀장 언니 말로는 이렇게 다들 스펙이 좋은데 왜 이 프로젝트를 하냐, 진짜로 개발 할거 맞냐는 이야기를 들었다고 했다. 헤헤....랩허 서류와 발표는 텍스코어와 거의 동일해서 텍스코어 내용을 재탕했다. 발표 같은 경우에는 전일제 인턴과 겹쳐서 참석하지 못했는데, 팀장 언니 말에 의하면 거의 팀장만 왔고, 전부 온 팀은 거의 없었다고 한다. 혹시 시간이 안 맞는다면 발표자만 참석해도 괜찮을 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dju4zU/dJMcafsCalo/GUYkdetmMkyK6nR8Z2XG7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dju4zU/dJMcafsCalo/GUYkdetmMkyK6nR8Z2XG7K/img.png&quot; data-origin-width=&quot;1892&quot; data-origin-height=&quot;1128&quot; data-is-animation=&quot;false&quot; style=&quot;width: 55.5736%; margin-right: 10px;&quot; data-widthpercent=&quot;56.23&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dju4zU/dJMcafsCalo/GUYkdetmMkyK6nR8Z2XG7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdju4zU%2FdJMcafsCalo%2FGUYkdetmMkyK6nR8Z2XG7K%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;1892&quot; height=&quot;1128&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/7nWgZ/dJMcacbGQL2/UETzKV5rRvnuJnqmdkrsPK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/7nWgZ/dJMcacbGQL2/UETzKV5rRvnuJnqmdkrsPK/img.png&quot; data-origin-width=&quot;1358&quot; data-origin-height=&quot;1040&quot; data-is-animation=&quot;false&quot; style=&quot;width: 43.2636%;&quot; data-widthpercent=&quot;43.77&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/7nWgZ/dJMcacbGQL2/UETzKV5rRvnuJnqmdkrsPK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F7nWgZ%2FdJMcacbGQL2%2FUETzKV5rRvnuJnqmdkrsPK%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;1358&quot; height=&quot;1040&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최종 합격 한 뒤 국내 교육과 오티 일정이 안내 되었다. 국내 교육과 인턴 기간이 한달 정도 겹쳤는데 다행이 비대면 일정도 많고, 금토일 일정 등 주말을 낀 일정 들이 있어서 인턴 기간 중에 연차를 사용해 병행 할 수 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;합격 후 평가 의견 또한 pdf 로 받아 볼 수 있었는데 역시 미흡한 사업화 계획이 약점으로 꼽혔다. 사업화를 위한 시장성 분석과 현황 분석을 보완하라는 의견이 주를 이뤄서, 논의 끝에 논문 작업 등으로 바쁜 EM 한명 대신 사업 동아리 경험이 있고, 사업 구성을 해본 다른 EM이 합류하기로 결정했다. 최종 합격 후 &lt;span style=&quot;background-color: #ffffff; color: #222222; text-align: start;&quot;&gt;EM 변경이 가능하기 때문에 교수님의 서명을 받고 사업화 담당 멤버를 영입했다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;626&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yBuI0/dJMcai3ZhFK/mDSNQ3AFFUulTfdqJenIs1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yBuI0/dJMcai3ZhFK/mDSNQ3AFFUulTfdqJenIs1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yBuI0/dJMcai3ZhFK/mDSNQ3AFFUulTfdqJenIs1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyBuI0%2FdJMcai3ZhFK%2FmDSNQ3AFFUulTfdqJenIs1%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;1400&quot; height=&quot;626&quot; data-origin-width=&quot;1400&quot; data-origin-height=&quot;626&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>회고록</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/306</guid>
      <comments>https://his0si.tistory.com/306#entry306comment</comments>
      <pubDate>Tue, 7 Apr 2026 16:54:37 +0900</pubDate>
    </item>
    <item>
      <title>REST API</title>
      <link>https://his0si.tistory.com/304</link>
      <description>&lt;h2 data-path-to-node=&quot;2&quot; data-ke-size=&quot;size26&quot;&gt;1. REST와 REST API의 개념&lt;/h2&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;REST(REpresentational State Transfer) 란 &quot;분산 시스템&quot;을 위한 HTTP 기반 소프트웨어 아키텍처를 의미한다. 쉽게 말해 웹 애플리케이션, 모바일 앱, 서로 다른 언어로 된 서버들이 HTTP라는 공통된 규격 안에서 자유롭게 통신할 수 있도록 도와주는 통역사 역할을 하는 API라고 이해하면 된다. 여기서 분산 시스템이란 독립된 컴퓨터들이 네트워크를 통해 연결되어 하나의 시스템처럼 움직이는 것을 말하는데, 이를 위해 표준화된 통신 방식이 필수적이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;REST는 크게 &lt;b data-index-in-node=&quot;9&quot; data-path-to-node=&quot;4&quot;&gt;자원, 행위, 메시지&lt;/b&gt;라는 3가지 요소로 구성된다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;자원(Resource):&lt;/b&gt; 우리가 접근하거나 조작할 대상이다. 예를 들어 &quot;상품&quot;이 자원이 된다. 보통 URI를 통해 고유한 식별자를 부여한다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;메서드(Method):&lt;/b&gt; 자원에 대한 행위를 정의한다. HTTP Method인 GET(조회), POST(생성), PUT(수정), DELETE(삭제)를 사용한다. 일반적인 웹에서는 GET과 POST를 주로 쓰지만, REST 환경에서는 자원의 상태를 명확히 관리하기 위해 PUT과 DELETE도 적극적으로 활용한다.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,0&quot;&gt;메시지(Message):&lt;/b&gt; 행위에 담기는 구체적인 내용이다. 예를 들어 &quot;상품명이 진라면인 상품을 생성한다&quot;는 요청에서 &quot;상품명: 진라면, 가격: 1000원&quot;과 같은 데이터가 메시지에 해당한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size26&quot;&gt;2. REST의 주요 특징과 RESTful의 의미&lt;/h2&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;REST는 HTTP 프로토콜을 기반으로 하기 때문에 웹 표준을 최대한 활용한다는 장점이 있다. 가장 큰 특징 중 하나는 Stateless(무상태성)이다. 서버는 클라이언트의 이전 상태를 따로 저장하지 않고 오직 들어온 요청에만 집중한다. 또한 모든 자원에 고유한 &lt;b data-index-in-node=&quot;151&quot; data-path-to-node=&quot;8&quot;&gt;URI&lt;/b&gt;를 부여하여 관리하는데, 이는 우리가 흔히 아는 URL보다 더 넓은 개념의 식별자이다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;이러한 REST 원칙을 잘 지켜서 설계된 시스템을 두고 우리는 &quot;RESTful 하다&quot; 라고 표현한다. 즉, REST API를 제공하는 웹 서비스 시스템 자체를 지칭하는 용어이다. 실무에서는 다양한 디바이스(모바일, 태블릿 등)나 서로 다른 기술 언어로 구축된 이기종 시스템 간에 정보를 주고받기 위해 필수적으로 사용된다. 애플리케이션의 복잡도가 커질수록 서비스별로 독립적인 구축과 운영이 필요해지는데, REST는 이러한 서비스 간 분리와 통합에 대한 표준화된 방법을 제공해 준다.&lt;/p&gt;
&lt;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;&amp;nbsp;&lt;/h2&gt;
&lt;h2 data-path-to-node=&quot;11&quot; data-ke-size=&quot;size26&quot;&gt;3. Node.js 환경에서의 REST API 실전 예제&lt;/h2&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;실제 코드로 REST API 서버를 어떻게 구성하는지 살펴보자. 자바의 SpringBoot와 개념은 같지만, Node.js의 Express 프레임워크를 사용하면 훨씬 간결하게 구현할 수 있다.&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;13&quot; data-ke-size=&quot;size23&quot;&gt;3-1. 서버 구성 및 라우팅 (Express 기반)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;서버에서 각 HTTP 메서드에 맞춰 자원을 처리하는 기본적인 구조이다. @RestController와 유사하게 요청을 받아 JSON으로 응답하는 방식이다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;typescript&quot;&gt;&lt;code&gt;const express = require('express');
const app = express();
app.use(express.json()); // JSON 데이터 파싱을 위한 설정

// 가상의 데이터베이스 (상품 목록)
let products = [
  { id: &quot;1&quot;, name: &quot;진라면&quot;, maker: &quot;오뚜기&quot;, price: 1000 }
];

// GET : 리스트 조회 (getAllProductList)
app.get('/products', (req, res) =&amp;gt; {
  console.log(&quot;Request Method : GET&quot;);
  res.json(products);
});

// GET : 특정 아이디로 조회 (findProductById)
app.get('/products/:id', (req, res) =&amp;gt; {
  const id = req.params.id;
  const product = products.find(p =&amp;gt; p.id === id);
  if (!product) {
    return res.status(404).json({ message: &quot;상품이 존재하지 않습니다&quot; });
  }
  res.status(200).json(product);
});

// POST : 새로운 상품 생성 (registerProduct)
app.post('/products', (req, res) =&amp;gt; {
  const { name, maker, price } = req.body;
  const newProduct = { id: String(products.length + 1), name, maker, price };
  products.push(newProduct);
  res.status(201).json({ message: `${newProduct.name} 상품 등록 완료`, id: newProduct.id });
});

// PUT : 상품 정보 수정 (updateProduct)
app.put('/products/:id', (req, res) =&amp;gt; {
  const id = req.params.id;
  const index = products.findIndex(p =&amp;gt; p.id === id);
  if (index === -1) {
    return res.status(404).json({ message: &quot;수정할 상품이 없습니다&quot; });
  }
  products[index] = { ...products[index], ...req.body };
  res.json({ message: `${id}번 상품 정보 수정 완료` });
});

// DELETE : 상품 삭제 (deleteProduct)
app.delete('/products/:id', (req, res) =&amp;gt; {
  const id = req.params.id;
  const initialLength = products.length;
  products = products.filter(p =&amp;gt; p.id !== id);
  if (products.length === initialLength) {
    return res.status(404).json({ message: &quot;삭제할 상품이 없습니다&quot; });
  }
  res.json({ message: `${id}번 상품 정보 삭제 완료` });
});

app.listen(3000, () =&amp;gt; console.log('REST API 서버가 3000번 포트에서 실행 중이다.'));
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-path-to-node=&quot;16&quot; data-ke-size=&quot;size23&quot;&gt;3-2. 서버 간 통신 (RestTemplate과 유사한 방식)&lt;/h3&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;Node.js에서는 Spring의 RestTemplate 대신 axios나 fetch 라이브러리를 주로 사용한다. 다른 서버(예: 포트 7777이나 8888 서버)와 연동할 때 아래와 같은 패턴으로 통신한다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;javascript&quot;&gt;&lt;code&gt;const axios = require('axios');

// 서버 간 연동 예제 (External API Call)
async function fetchOtherServerData(productId) {
  try {
    const response = await axios.get(`http://localhost:8888/items/${productId}`);
    console.log(&quot;서버 응답 데이터:&quot;, response.data);
  } catch (error) {
    console.error(&quot;통신 에러 발생:&quot;, error.response.status);
  }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h2 data-path-to-node=&quot;20&quot; data-ke-size=&quot;size26&quot;&gt;4. 마무리 및 정리&lt;/h2&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;REST API는 현대 웹 개발에서 떼려야 뗄 수 없는 핵심 기술이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;22&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22,0,0&quot;&gt;URL&lt;/b&gt;은 자원의 위치를 나타내고,&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22,1,0&quot;&gt;HTTP 메서드&lt;/b&gt;는 그 자원을 어떻게 요리할지 결정하며,&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;22,2,0&quot;&gt;JSON&lt;/b&gt;은 그 요리의 실제 내용물이 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;23&quot; data-ke-size=&quot;size16&quot;&gt;SpringBoot든 Node.js든 프레임워크는 도구일 뿐, 중요한 건 REST의 원칙을 이해하고 이를 적절하게 적용하는 설계 능력이다. 처음에는 익숙하지 않겠지만, 직접 API 서버를 띄워보고 Postman이나 curl로 요청을 날려보면서 응답 결과를 확인하다 보면 금방 감이 올 것이다.&lt;/p&gt;</description>
      <category>WEB-STUDY</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/304</guid>
      <comments>https://his0si.tistory.com/304#entry304comment</comments>
      <pubDate>Thu, 19 Mar 2026 14:18:47 +0900</pubDate>
    </item>
    <item>
      <title>EKS 내부 DB 접속하기: kubectl port-forward로 PostgreSQL 로컬 연결</title>
      <link>https://his0si.tistory.com/302</link>
      <description>&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;보통 운영 환경(Production)의 DB는 해킹 위험 때문에 외부 인터넷에서 접속할 수 있는 공인 IP(Public IP)를 아예 할당하지 않는다. 내가 회사 데이터베이스에 일반적인 방식으로 DBeaver에서 바로 접속이 거부당했던 것도 이 이유 때문이었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;포트 포워딩은&amp;nbsp;내가 이미 AWS 권한(aws configure)을 가지고 있으니, 쿠버네티스라는 '관리자 통로'를 타고 들어가서 DB를 로컬로 끌어오는 것이다. 별도의 복잡한 방화벽 설정 없이도 안전하게 접속할 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 EKS(Amazon Elastic Kubernetes Service) 환경에 있는 PostgreSQL 데이터베이스를 로컬 PC에서 접속할 수 있도록 연결하는 방법이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5&quot;&gt;A. AWS CLI 설치 여부 확인&lt;/b&gt; 먼저 아래 명령어를 입력해서 설치가 되어 있는지 확인&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;ada&quot;&gt;&lt;code&gt;aws --version
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;command not found가 뜬다면 아래 설치 과정을 진행해야 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8&quot;&gt;B. AWS CLI 설치 (Mac 기준)&lt;/b&gt; 터미널에 다음 명령어를 복사해서 붙여넣기 (또는 &lt;a href=&quot;https://aws.amazon.com/ko/cli/&quot;&gt;AWS 공식 홈페이지&lt;/a&gt;에서 GUI 설치 파일을 받기).&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;reasonml&quot;&gt;&lt;code&gt;curl &quot;https://awscli.amazonaws.com/AWSCLIV2.pkg&quot; -o &quot;AWSCLIV2.pkg&quot;
sudo installer -pkg AWSCLIV2.pkg -target /&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;12&quot; data-ke-size=&quot;size16&quot;&gt;설치가 완료되었다면 터미널을 완전히 껐다가 다시 키고, 아래 단계 진행하기&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;aws configure (액세스 키와 비밀번호 입력 단계)&lt;/li&gt;
&lt;li&gt;aws eks update-kubeconfig ... (클러스터 연결 단계)&lt;/li&gt;
&lt;li&gt;kubectl port-forward ... (포트 포워딩 단계)&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;이 때 kubectl 명령어도 설치되어 있어야 한다! 만약 aws configure는 성공했는데 kubectl에서 다시 command not found가 뜬다면, 아래 명령어로 설치하자.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;mipsasm&quot;&gt;&lt;code&gt;brew install kubernetes-cli&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;aws configure는 내 컴퓨터에 &quot;나는 이 계정의 주인이니 AWS 리소스에 접근하게 해줘&quot; 라고 신분증을 등록하는 과정이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;1&quot; data-ke-size=&quot;size16&quot;&gt;이 작업을 하려면 먼저 &lt;b data-index-in-node=&quot;13&quot; data-path-to-node=&quot;1&quot;&gt;IAM User의 Access Key&lt;/b&gt;가 있어야 한다. (회사 관리자에게 받았거나, AWS 콘솔에서 직접 생성해야 함.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;1. aws configure 입력 및 정보 기입&lt;/h3&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;터미널에 aws configure를 입력하면 총 4가지를 물어본다. 하나씩 입력하고 엔터를 치면 된다.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;routeros&quot;&gt;&lt;code&gt;$ aws configure
AWS Access Key ID [None]: (여기에 Access Key ID 입력)
AWS Secret Access Key [None]: (여기에 Secret Access Key 입력)
Default region name [None]: ap-northeast-2
Default output format [None]: json
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;Access Key ID&lt;/b&gt;: 보통 AKIA...로 시작하는 긴 문자열&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;Secret Access Key&lt;/b&gt;: 아주 긴 비밀번호 같은 문자열 (입력 시 화면에 안 보일 수 있으니 복사 붙여넣기 후 엔터 치기.)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0&quot;&gt;Default region name&lt;/b&gt;: 서울 리전인 ap-northeast-2 입력&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,3,0&quot;&gt;Default output format&lt;/b&gt;: 보통 json&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2단계:&amp;nbsp;EKS&amp;nbsp;클러스터&amp;nbsp;연결&amp;nbsp;&lt;/h3&gt;
&lt;pre id=&quot;code_1773724558662&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;aws eks update-kubeconfig --region ap-northeast-2 --name [클러스터_이름]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성공하면 Added new context ... 메시지가 나온다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1446&quot; data-origin-height=&quot;152&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cbqzXV/dJMcaakgQe9/HWKBFg9yaNbvwlVE17PTG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cbqzXV/dJMcaakgQe9/HWKBFg9yaNbvwlVE17PTG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cbqzXV/dJMcaakgQe9/HWKBFg9yaNbvwlVE17PTG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbqzXV%2FdJMcaakgQe9%2FHWKBFg9yaNbvwlVE17PTG1%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;1446&quot; height=&quot;152&quot; data-origin-width=&quot;1446&quot; data-origin-height=&quot;152&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;3단계: PostgreSQL 서비스 확인&amp;nbsp;&lt;/h4&gt;
&lt;pre id=&quot;code_1773724800721&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl get svc -n [네임스페이스]&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우리 데이터베이스인 postgres 서비스가 목록에 보이는 걸 확인했다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUgSWK/dJMcadBfcGC/4dHPAU5ukhCiU3YicKuhiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUgSWK/dJMcadBfcGC/4dHPAU5ukhCiU3YicKuhiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUgSWK/dJMcadBfcGC/4dHPAU5ukhCiU3YicKuhiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUgSWK%2FdJMcadBfcGC%2F4dHPAU5ukhCiU3YicKuhiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1058&quot; height=&quot;214&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1058&quot; data-origin-height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;8&quot; data-ke-size=&quot;size23&quot;&gt;4단계: Port Forward&lt;/h3&gt;
&lt;pre id=&quot;code_1773724772227&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl port-forward svc/postgres 5432:5432 -n oracle&lt;/code&gt;&lt;/pre&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;원격 서버의 포트를 내 로컬 포트로 끌어오는 단계이다. Forwarding from 127.0.0.1:5432 -&amp;gt; 5432 메시지가 나오면 성공이다. 디비버를 사용하는 동안 이 창은 계속 켜두어야 연결이 유지된다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;15&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,0,0&quot;&gt;왼쪽 5432:&lt;/b&gt; 내 컴퓨터(Local)에서 사용할 포트&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;15,1,0&quot;&gt;오른쪽 5432:&lt;/b&gt; EKS 내부 DB 서버의 포트&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;이 터미널은 닫으면 연결이 끊긴다!!!! 절대 닫지 말자!!!&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1306&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yAT5O/dJMcahjqiyE/FiPzbBg2PeIEKe0MtWwcQk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yAT5O/dJMcahjqiyE/FiPzbBg2PeIEKe0MtWwcQk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yAT5O/dJMcahjqiyE/FiPzbBg2PeIEKe0MtWwcQk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyAT5O%2FdJMcahjqiyE%2FFiPzbBg2PeIEKe0MtWwcQk%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;1306&quot; height=&quot;130&quot; data-origin-width=&quot;1306&quot; data-origin-height=&quot;130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;다시 연결하고 싶을 때는 전부 다 반복할 필요는 없다. aws configure와 eks update-kubeconfig는 한 번만 하면 설정이 저장되기 때문에 터미널을 닫았다가 다시 연결할 때는 맨 마지막 명령어만 다시 실행하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1773724860256&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;kubectl port-forward svc/postgres 5432:5432 -n oracle&lt;/code&gt;&lt;/pre&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;입력이 끝났다면 아래 명령어를 쳐서 내 정보가 잘 나오는지 확인하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;pre class=&quot;dsconfig&quot;&gt;&lt;code&gt;aws sts get-caller-identity
&lt;/code&gt;&lt;/pre&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;212&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/JELoI/dJMcafslsjq/kjxWUPyOaVvibicgMFyYx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/JELoI/dJMcafslsjq/kjxWUPyOaVvibicgMFyYx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/JELoI/dJMcafslsjq/kjxWUPyOaVvibicgMFyYx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJELoI%2FdJMcafslsjq%2FkjxWUPyOaVvibicgMFyYx1%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;932&quot; height=&quot;212&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;932&quot; data-origin-height=&quot;212&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;

&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 내 계정 번호(Account)가 포함된 결과가 나오면 성공이다!! DBeaver 설정 시 Host는 localhost 또는 127.0.0.1로, Port는 5432로 설정하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;5단계: DBeaver에서 연결하기&lt;/h3&gt;
&lt;p data-path-to-node=&quot;4&quot; data-ke-size=&quot;size16&quot;&gt;포트 포워딩 터미널을 띄워둔 상태에서 DBeaver를 켜고 아래와 같이 설정하면 된다&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;5&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,0,0&quot;&gt;Host:&lt;/b&gt; localhost 또는 127.0.0.1 (중요: RDS 주소가 아닌 로컬 주소를 넣어야 한다!)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,1,0&quot;&gt;Port:&lt;/b&gt; 5432 (포트 포워딩 명령어에서 앞에 적은 숫자와 일치해야 함)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,2,0&quot;&gt;Database:&lt;/b&gt; 접속하려는 DB 이름 (예: postgres)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;5,3,0&quot;&gt;Username / Password:&lt;/b&gt; DB 계정 정보 입력&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1396&quot; data-origin-height=&quot;1114&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LxjRm/dJMcabQ0YaS/MRdDYOWlxpSLKY4h4toQRK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LxjRm/dJMcabQ0YaS/MRdDYOWlxpSLKY4h4toQRK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LxjRm/dJMcabQ0YaS/MRdDYOWlxpSLKY4h4toQRK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLxjRm%2FdJMcabQ0YaS%2FMRdDYOWlxpSLKY4h4toQRK%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;1396&quot; height=&quot;1114&quot; data-origin-width=&quot;1396&quot; data-origin-height=&quot;1114&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>기타</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/302</guid>
      <comments>https://his0si.tistory.com/302#entry302comment</comments>
      <pubDate>Tue, 17 Mar 2026 10:00:48 +0900</pubDate>
    </item>
    <item>
      <title>conda 내보내기</title>
      <link>https://his0si.tistory.com/297</link>
      <description>&lt;div id=&quot;model-response-message-contentr_eaae2edb56893d51&quot;&gt;
&lt;h3 data-path-to-node=&quot;3&quot; data-ke-size=&quot;size23&quot;&gt;1. .yml 파일로 환경 복원하기&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;conda env create -f environment.yml
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;-f&lt;/b&gt;: 파일(file)을 지정한다는 의미&amp;nbsp;&lt;/li&gt;
&lt;li&gt;이 명령어는 파일 안에 적힌 name 항목을 읽어 자동으로 환경 이름을 설정하고 필요한 패키지들을 설치한다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-path-to-node=&quot;7&quot; data-ke-size=&quot;size23&quot;&gt;2. 다른 이름으로 환경 생성하기&lt;/h3&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;만약 파일에 적힌 이름 말고 다른 이름으로 환경을 만들고 싶다면 -n 옵션을 추가하면 된다.&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;css&quot;&gt;&lt;code&gt;conda env create -f environment.yml -n 새로운환경이름
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-path-to-node=&quot;10&quot; data-ke-size=&quot;size23&quot;&gt;3. 기존 환경 업데이트하기&lt;/h3&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;이미 만들어진 환경이 있는데, .yml 파일의 최신 내용으로 패키지를 동기화하고 싶을 때 사용한다&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;pre class=&quot;pgsql&quot;&gt;&lt;code&gt;conda env update -f environment.yml --prune
&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;13&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,0,0&quot;&gt;--prune&lt;/b&gt;: 파일에 없는 패키지는 삭제하여 완벽하게 일치시키는 옵션&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</description>
      <category>기타</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/297</guid>
      <comments>https://his0si.tistory.com/297#entry297comment</comments>
      <pubDate>Thu, 5 Feb 2026 20:08:53 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 4과목 기출 문제 오답 노트</title>
      <link>https://his0si.tistory.com/119</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/V7ry2/btsLQECKGfC/k9XYcFkZRg8iBrrNIWarO1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/V7ry2/btsLQECKGfC/k9XYcFkZRg8iBrrNIWarO1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/V7ry2/btsLQECKGfC/k9XYcFkZRg8iBrrNIWarO1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FV7ry2%2FbtsLQECKGfC%2Fk9XYcFkZRg8iBrrNIWarO1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;377&quot; height=&quot;287&quot; data-origin-width=&quot;377&quot; data-origin-height=&quot;287&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1737008385635&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
int main(int argc, char *argv[]) {
    int a = 5, b = 3, c = 12; // 초기화
    int t1, t2, t3;

    t1 = a &amp;amp;&amp;amp; b; // 논리 AND 연산자, 두 피연산자가 모두 참(0이 아닌 값) 일 때 참(1)을 반환
    // t1=1
    t2 = a || b; // 논리 OR 연산자, 두 피연산자 중 하나라도 참이면 참(1) 을 반환
    // t2=1
    t3 = !c; // 논리 NOT 연산자, 피연산자가 참이면 거짓(0), 피연산자가 거짓이면 참(1)을 반환
    // t3=0

    printf(&quot;%d&quot;, t1 + t2 + t3); // 실행 결과 2
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 2&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;388&quot; data-origin-height=&quot;667&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZ5KNs/btsLOZuPVQU/nffROcM7SU6khytnNYePS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZ5KNs/btsLOZuPVQU/nffROcM7SU6khytnNYePS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZ5KNs/btsLOZuPVQU/nffROcM7SU6khytnNYePS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZ5KNs%2FbtsLOZuPVQU%2FnffROcM7SU6khytnNYePS0%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;388&quot; height=&quot;667&quot; data-origin-width=&quot;388&quot; data-origin-height=&quot;667&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1737008790545&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;

// 구조체 정의: 구조체 st는 정수형 변수 a와 정수형 배열 c[10]을 포함
struct st {
    int a;       // 정수 변수 a
    int c[10];   // 크기가 10인 정수형 배열 c
};

int main(int argc, char *argv[]) {
    int i = 0;
    struct st ob1;            // 구조체 st 타입의 변수 ob1 선언
    struct st ob2;            // 구조체 st 타입의 변수 ob2 선언
    ob1.a = 0;                // ob1의 a를 0으로 초기화
    ob2.a = 0;                // ob2의 a를 0으로 초기화

    for (i = 0; i &amp;lt; 10; i++) {
        ob1.c[i] = i;             // ob1.c[i]에 i 값을 저장
        ob2.c[i] = ob1.c[i] + i; // ob2.c[i]에 ob1.c[i] + i 값을 저장
    }

    // 반복문: 짝수 인덱스의 배열 값으로 ob1.a와 ob2.a를 누적합
    for (i = 0; i &amp;lt; 10; i += 2) {
        ob1.a = ob1.a + ob1.c[i]; // ob1.a에 ob1.c[i] 값을 누적
        ob2.a = ob2.a + ob2.c[i]; // ob2.a에 ob2.c[i] 값을 누적
    }

    printf(&quot;%d&quot;, ob1.a + ob2.a); // 20 + 40
    return 0;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;ob1.c[i]는 i값을 그대로 저장하고, ob2.c[i]는 &lt;br /&gt;ob1.c[i] + i를 저장&lt;br /&gt;&lt;br /&gt;//&amp;nbsp;첫&amp;nbsp;번째&amp;nbsp;반복&amp;nbsp;(i&amp;nbsp;=&amp;nbsp;0) &lt;br /&gt;ob1.a&amp;nbsp;=&amp;nbsp;ob1.a&amp;nbsp;+&amp;nbsp;ob1.c[0]&amp;nbsp;=&amp;nbsp;0&amp;nbsp;+&amp;nbsp;0&amp;nbsp;=&amp;nbsp;0; &lt;br /&gt;ob2.a&amp;nbsp;=&amp;nbsp;ob2.a&amp;nbsp;+&amp;nbsp;ob2.c[0]&amp;nbsp;=&amp;nbsp;0&amp;nbsp;+&amp;nbsp;0&amp;nbsp;=&amp;nbsp;0; &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;두&amp;nbsp;번째&amp;nbsp;반복&amp;nbsp;(i&amp;nbsp;=&amp;nbsp;2) &lt;br /&gt;ob1.a&amp;nbsp;=&amp;nbsp;ob1.a&amp;nbsp;+&amp;nbsp;ob1.c[2]&amp;nbsp;=&amp;nbsp;0&amp;nbsp;+&amp;nbsp;2&amp;nbsp;=&amp;nbsp;2; &lt;br /&gt;ob2.a&amp;nbsp;=&amp;nbsp;ob2.a&amp;nbsp;+&amp;nbsp;ob2.c[2]&amp;nbsp;=&amp;nbsp;0&amp;nbsp;+&amp;nbsp;4&amp;nbsp;=&amp;nbsp;4; &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;세&amp;nbsp;번째&amp;nbsp;반복&amp;nbsp;(i&amp;nbsp;=&amp;nbsp;4) &lt;br /&gt;ob1.a&amp;nbsp;=&amp;nbsp;ob1.a&amp;nbsp;+&amp;nbsp;ob1.c[4]&amp;nbsp;=&amp;nbsp;2&amp;nbsp;+&amp;nbsp;4&amp;nbsp;=&amp;nbsp;6; &lt;br /&gt;ob2.a&amp;nbsp;=&amp;nbsp;ob2.a&amp;nbsp;+&amp;nbsp;ob2.c[4]&amp;nbsp;=&amp;nbsp;4&amp;nbsp;+&amp;nbsp;8&amp;nbsp;=&amp;nbsp;12; &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;네&amp;nbsp;번째&amp;nbsp;반복&amp;nbsp;(i&amp;nbsp;=&amp;nbsp;6) &lt;br /&gt;ob1.a&amp;nbsp;=&amp;nbsp;ob1.a&amp;nbsp;+&amp;nbsp;ob1.c[6]&amp;nbsp;=&amp;nbsp;6&amp;nbsp;+&amp;nbsp;6&amp;nbsp;=&amp;nbsp;12; &lt;br /&gt;ob2.a&amp;nbsp;=&amp;nbsp;ob2.a&amp;nbsp;+&amp;nbsp;ob2.c[6]&amp;nbsp;=&amp;nbsp;12&amp;nbsp;+&amp;nbsp;12&amp;nbsp;=&amp;nbsp;24; &lt;br /&gt;&lt;br /&gt;//&amp;nbsp;다섯&amp;nbsp;번째&amp;nbsp;반복&amp;nbsp;(i&amp;nbsp;=&amp;nbsp;8) &lt;br /&gt;ob1.a&amp;nbsp;=&amp;nbsp;ob1.a&amp;nbsp;+&amp;nbsp;ob1.c[8]&amp;nbsp;=&amp;nbsp;12&amp;nbsp;+&amp;nbsp;8&amp;nbsp;=&amp;nbsp;20; &lt;br /&gt;ob2.a&amp;nbsp;=&amp;nbsp;ob2.a&amp;nbsp;+&amp;nbsp;ob2.c[8]&amp;nbsp;=&amp;nbsp;24&amp;nbsp;+&amp;nbsp;16&amp;nbsp;=&amp;nbsp;40;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1737008978746&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int main(int argc, char *argv[]) { // int argc - main() 함수에 전달 되는 데이터의 갯수
//char *argv[] - main() 함수에 전달 되는 실제적인 데이터로 char형 포인터 배열로 구성 됨
	// 중략
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행 결과: 60&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;165&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eOg47E/btsLPtoPUnA/WqHgKo5SpbRskoQ8beI3Gk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eOg47E/btsLPtoPUnA/WqHgKo5SpbRskoQ8beI3Gk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eOg47E/btsLPtoPUnA/WqHgKo5SpbRskoQ8beI3Gk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeOg47E%2FbtsLPtoPUnA%2FWqHgKo5SpbRskoQ8beI3Gk%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;429&quot; height=&quot;165&quot; data-origin-width=&quot;429&quot; data-origin-height=&quot;165&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라우팅 프로토콜을 IGP(Interior Gateway Protocol)와 EGP(Exterior Gateway Protocol)로 분류했을 때, &lt;b&gt;RIP는 IGP에 속한다&lt;/b&gt;. EGP는 BGP와 같은 프로토콜을 의미하는데, RIP는 네트워크 내에서의 라우팅을 위한 내부 게이트웨이 프로토콜(IGP)이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;175&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cjnTtj/btsLP34cWH9/K6CSr5r07fv5ubRvfk0prk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cjnTtj/btsLP34cWH9/K6CSr5r07fv5ubRvfk0prk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cjnTtj/btsLP34cWH9/K6CSr5r07fv5ubRvfk0prk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcjnTtj%2FbtsLP34cWH9%2FK6CSr5r07fv5ubRvfk0prk%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;386&quot; height=&quot;175&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;175&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: HRN 스케줄링&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;132&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQvVaF/btsLP510oxK/vixBA7mKsqmA6xKIMncMkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQvVaF/btsLP510oxK/vixBA7mKsqmA6xKIMncMkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQvVaF/btsLP510oxK/vixBA7mKsqmA6xKIMncMkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQvVaF%2FbtsLP510oxK%2FvixBA7mKsqmA6xKIMncMkK%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;417&quot; height=&quot;132&quot; data-origin-width=&quot;417&quot; data-origin-height=&quot;132&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UNIX는 멀티태스킹과 멀티유저를 모두 지원한다. 즉, 여러 사용자가 동시에 시스템을 사용할 수 있으며, 동시에 여러 작업을 처리할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chidAe/btsLPywO6Ka/J01RwINPXpFG9BAJidc9Ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chidAe/btsLPywO6Ka/J01RwINPXpFG9BAJidc9Ak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chidAe/btsLPywO6Ka/J01RwINPXpFG9BAJidc9Ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchidAe%2FbtsLPywO6Ka%2FJ01RwINPXpFG9BAJidc9Ak%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;398&quot; height=&quot;130&quot; data-origin-width=&quot;398&quot; data-origin-height=&quot;130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UDP는 주소 지정과 경로 설정을 하지 않으며, 오직 데이터를 전송하는 역할 한다. 주소 지정과 경로 설정은 네트워크 계층에서 수행 된다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;UDP는 간단하고 빠르지만 신뢰성 없는 프로토콜로, 실시간 애플리케이션이나 패킷 손실을 감수할 수 있는 서비스&lt;br /&gt;에서 유용하게 사용된다. TCP와 달리 연결을 설정하지 않고 빠른 데이터 전송을 제공하지만, 데이터 전송의 신뢰성&lt;br /&gt;을 보장하지 않으므로 중요한 데이터의 전송에는 적합하지 않는다.&amp;nbsp;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;OSI 모델과 TCP/IP 모델의 비교&lt;/h3&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt; OSI 모델 &lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt; TCP/IP 모델 &lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7. 응용 계층&lt;/td&gt;
&lt;td&gt;4. 응용 계층&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6. 표현 계층&lt;/td&gt;
&lt;td&gt;(표현 계층 없음)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. 세션 계층&lt;/td&gt;
&lt;td&gt;(세션 계층 없음)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. 전송 계층&lt;/td&gt;
&lt;td&gt;3. 전송 계층&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. 네트워크 계층&lt;/td&gt;
&lt;td&gt;2. 인터넷 계층&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. 데이터 링크 계층&lt;/td&gt;
&lt;td&gt;1. 네트워크 인터페이스 계층&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;1. 물리 계층&lt;/td&gt;
&lt;td&gt;(네트워크 인터페이스 계층에 포함)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;372&quot; data-origin-height=&quot;387&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dRP25L/btsLQzO7WFX/xOe0obchFyTt1XCyy6RnX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dRP25L/btsLQzO7WFX/xOe0obchFyTt1XCyy6RnX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dRP25L/btsLQzO7WFX/xOe0obchFyTt1XCyy6RnX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdRP25L%2FbtsLQzO7WFX%2FxOe0obchFyTt1XCyy6RnX1%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;372&quot; height=&quot;387&quot; data-origin-width=&quot;372&quot; data-origin-height=&quot;387&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;781&quot; data-start=&quot;577&quot;&gt;&lt;b&gt;marr() 메서드 실행&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;781&quot; data-start=&quot;603&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;632&quot; data-start=&quot;603&quot;&gt;temp 배열을 생성: new int[4]&lt;/li&gt;
&lt;li data-end=&quot;700&quot; data-start=&quot;636&quot;&gt;Java의 기본값 규칙에 따라, temp 배열의 모든 요소는 0으로 초기화됨: [0, 0, 0, 0]&lt;/li&gt;
&lt;li data-end=&quot;762&quot; data-start=&quot;704&quot;&gt;for 문을 이용해 temp[i] = i를 수행하여 배열을 [0, 1, 2, 3]으로 설정&lt;/li&gt;
&lt;li data-end=&quot;781&quot; data-start=&quot;766&quot;&gt;temp 배열을 반환&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;895&quot; data-start=&quot;783&quot;&gt;&lt;b&gt;main() 메서드 실행&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;895&quot; data-start=&quot;809&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;859&quot; data-start=&quot;809&quot;&gt;iarr는 marr() 메서드에서 반환된 [0, 1, 2, 3] 배열을 참조&lt;/li&gt;
&lt;li data-end=&quot;895&quot; data-start=&quot;863&quot;&gt;for 문을 이용해 배열을 출력: 0 1 2 3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Java의 배열 참조 변수 문제임! (C 언어의 포인터 개념과 유사)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;답: 0,1,2,3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cqiUjH/btsMtswpiUV/twxTPoO5KvsTCyZVgxvtX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cqiUjH/btsMtswpiUV/twxTPoO5KvsTCyZVgxvtX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cqiUjH/btsMtswpiUV/twxTPoO5KvsTCyZVgxvtX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqiUjH%2FbtsMtswpiUV%2FtwxTPoO5KvsTCyZVgxvtX0%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;326&quot; height=&quot;361&quot; data-origin-width=&quot;326&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;삼항 연산자&lt;/b&gt;&lt;br /&gt;변수 = (조건식) ? 참일 때 값 : 거짓일 때 값;&lt;/blockquote&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;661&quot; data-start=&quot;593&quot;&gt;mx = a &amp;lt; b ? b : a;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;661&quot; data-start=&quot;621&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;661&quot; data-start=&quot;621&quot;&gt;1 &amp;lt; 2이므로 b의 값인 2가 선택됨 &amp;rarr; mx = 2&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;737&quot; data-start=&quot;663&quot;&gt;if (mx == 1)
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;737&quot; data-start=&quot;684&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;737&quot; data-start=&quot;684&quot;&gt;mx의 값은 2, 2 == 1은 false이므로 &lt;b&gt;else 블록 실행&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li data-end=&quot;864&quot; data-start=&quot;739&quot;&gt;else 블록 실행:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;864&quot; data-start=&quot;803&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;842&quot; data-start=&quot;803&quot;&gt;b = 2, mx = 2 &amp;rarr; b &amp;lt; mx는 false&lt;/li&gt;
&lt;li data-end=&quot;864&quot; data-start=&quot;846&quot;&gt;따라서 mn = c = 3&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;533&quot; data-origin-height=&quot;164&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ba5fc0/btsMutaaHoS/6orRKqijEcK5uam4ZBlvo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ba5fc0/btsMutaaHoS/6orRKqijEcK5uam4ZBlvo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ba5fc0/btsMutaaHoS/6orRKqijEcK5uam4ZBlvo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fba5fc0%2FbtsMutaaHoS%2F6orRKqijEcK5uam4ZBlvo1%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;533&quot; height=&quot;164&quot; data-origin-width=&quot;533&quot; data-origin-height=&quot;164&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응집도(Cohesion)는 &lt;b&gt;모듈 내부 요소들이 서로 관련된 정도&lt;/b&gt;를 나타내는 개념&lt;br /&gt;응집도가 높을수록 모듈이 단일 책임 원칙(SRP)을 잘 따르고, 유지보수성이 좋다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;954&quot; data-start=&quot;267&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 7.7907%;&quot;&gt;&lt;b&gt;단계&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.8372%;&quot;&gt;&lt;b&gt;응집도&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.2558%;&quot;&gt;유형 설명&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;455&quot; data-start=&quot;362&quot;&gt;
&lt;td style=&quot;width: 7.7907%;&quot;&gt;&lt;b&gt;1&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.8372%;&quot;&gt;&lt;b&gt;우연적 응집도 (Coincidental Cohesion)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.2558%;&quot;&gt;모듈 내부의 기능들이 아무 연관 없이 우연히 묶여 있음. 응집도가 가장 낮음.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;535&quot; data-start=&quot;456&quot;&gt;
&lt;td style=&quot;width: 7.7907%;&quot;&gt;&lt;b&gt;2&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.8372%;&quot;&gt;&lt;b&gt;논리적 응집도 (Logical Cohesion)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.2558%;&quot;&gt;비슷한 유형의 작업이 같은 모듈에 있지만, 서로 관련이 없음.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;616&quot; data-start=&quot;536&quot;&gt;
&lt;td style=&quot;width: 7.7907%;&quot;&gt;&lt;b&gt;3&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.8372%;&quot;&gt;&lt;b&gt;시간적 응집도 (Temporal Cohesion)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.2558%;&quot;&gt;특정 시점(초기화, 정리 등)에 실행되는 기능들이 모여 있음.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;703&quot; data-start=&quot;617&quot;&gt;
&lt;td style=&quot;width: 7.7907%;&quot;&gt;&lt;b&gt;4&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.8372%;&quot;&gt;&lt;b&gt;절차적 응집도 (Procedural Cohesion)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.2558%;&quot;&gt;순차적으로 실행되지만, 서로 밀접한 관련이 없는 기능들이 묶여 있음.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;778&quot; data-start=&quot;704&quot;&gt;
&lt;td style=&quot;width: 7.7907%;&quot;&gt;&lt;b&gt;5&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.8372%;&quot;&gt;&lt;b&gt;순차적 응집도 (Sequential Cohesion)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.2558%;&quot;&gt;한 기능의 출력이 다음 기능의 입력으로 사용됨.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;872&quot; data-start=&quot;779&quot;&gt;
&lt;td style=&quot;width: 7.7907%;&quot;&gt;&lt;b&gt;6&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.8372%;&quot;&gt;&lt;b&gt;통신적 응집도 (Communicational Cohesion)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.2558%;&quot;&gt;동일한 데이터를 사용하거나, 같은 입출력을 공유하는 기능들이 묶여 있음.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;954&quot; data-start=&quot;873&quot;&gt;
&lt;td style=&quot;width: 7.7907%;&quot;&gt;&lt;b&gt;7&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 33.8372%;&quot;&gt;&lt;b&gt;기능적 응집도 (Functional Cohesion)&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 58.2558%;&quot;&gt;모듈이 하나의 명확한 기능만 수행하며, 응집도가 가장 높음.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;349&quot; data-origin-height=&quot;361&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bz7XJ4/btsMuIydB0E/EQksh1B3cxwLQwZxDOK2X1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bz7XJ4/btsMuIydB0E/EQksh1B3cxwLQwZxDOK2X1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bz7XJ4/btsMuIydB0E/EQksh1B3cxwLQwZxDOK2X1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbz7XJ4%2FbtsMuIydB0E%2FEQksh1B3cxwLQwZxDOK2X1%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;349&quot; height=&quot;361&quot; data-origin-width=&quot;349&quot; data-origin-height=&quot;361&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;530&quot; data-start=&quot;495&quot;&gt;n2 &amp;lt;= 2 &amp;rarr; 2 &amp;lt;= 2 &amp;rarr; true (1)&lt;/li&gt;
&lt;li data-end=&quot;565&quot; data-start=&quot;531&quot;&gt;n3 &amp;gt; 3 &amp;rarr; 3 &amp;gt; 3 &amp;rarr; false (0)&lt;/li&gt;
&lt;li data-end=&quot;600&quot; data-start=&quot;566&quot;&gt;true || false &amp;rarr; 1 || 0 &amp;rarr; 1&lt;/li&gt;
&lt;li data-end=&quot;619&quot; data-start=&quot;601&quot;&gt;&lt;b&gt;결과:&lt;/b&gt; r1 = 1&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;688&quot; data-start=&quot;663&quot;&gt;n3 = 3이므로 &lt;b&gt;참(true)&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;717&quot; data-start=&quot;689&quot;&gt;!n3 &amp;rarr; !3 &amp;rarr; false (0)&lt;/li&gt;
&lt;li data-end=&quot;736&quot; data-start=&quot;718&quot;&gt;&lt;b&gt;결과:&lt;/b&gt; r2 = 0&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;831&quot; data-start=&quot;797&quot;&gt;n1 &amp;gt; 1 &amp;rarr; 1 &amp;gt; 1 &amp;rarr; false (0)&lt;/li&gt;
&lt;li data-end=&quot;865&quot; data-start=&quot;832&quot;&gt;n2 &amp;lt; 3 &amp;rarr; 2 &amp;lt; 3 &amp;rarr; true (1)&lt;/li&gt;
&lt;li data-end=&quot;900&quot; data-start=&quot;866&quot;&gt;false &amp;amp;&amp;amp; true &amp;rarr; 0 &amp;amp;&amp;amp; 1 &amp;rarr; 0&lt;/li&gt;
&lt;li data-end=&quot;919&quot; data-start=&quot;901&quot;&gt;&lt;b&gt;결과:&lt;/b&gt; r3 = 0&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;389&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FqjZO/btsMx1RArfF/kUB3aV865739M1esy6eOgK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FqjZO/btsMx1RArfF/kUB3aV865739M1esy6eOgK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FqjZO/btsMx1RArfF/kUB3aV865739M1esy6eOgK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFqjZO%2FbtsMx1RArfF%2FkUB3aV865739M1esy6eOgK%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;389&quot; height=&quot;168&quot; data-origin-width=&quot;389&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;218&quot; data-start=&quot;57&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;218&quot; data-start=&quot;153&quot;&gt;&lt;b&gt;LRU (Least Recently Used) 알고리즘 사용&lt;/b&gt; &amp;rarr; 가장 오랫동안 사용되지 않은 페이지를 교체&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;페이지 결함이 발생하는 조건은 현재 프레임에 해당 페이지가 없을 때. 1,2,3,6,9번째 총 5회 페이지 결함이 발생한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;198&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WM4nB/btsMvL3PCg3/2dRPTf3so2sUCaNTDFlEHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WM4nB/btsMvL3PCg3/2dRPTf3so2sUCaNTDFlEHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WM4nB/btsMvL3PCg3/2dRPTf3so2sUCaNTDFlEHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWM4nB%2FbtsMvL3PCg3%2F2dRPTf3so2sUCaNTDFlEHK%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;390&quot; height=&quot;198&quot; data-origin-width=&quot;390&quot; data-origin-height=&quot;198&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;339&quot; data-start=&quot;136&quot; data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp; 한 프로세스가 운영체제를 호출할 때 전체 프로세스가 대기할 필요가 없으므로 시스템 성능을 높일 수 있다.&lt;br /&gt;&amp;rarr; 틀린 이유:&lt;br /&gt;사용자 수준 스레드는 운영체제에 의해 직접 관리되지 않으며, 시스템 호출을 하면 프로세스 전체가 블록(block) 된다. 따라서, 시스템 성능을 높일 수 있는 요소가 아니다.&lt;/p&gt;
&lt;p data-end=&quot;339&quot; data-start=&quot;136&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;559&quot; data-start=&quot;341&quot; data-ke-size=&quot;size16&quot;&gt;2.&amp;nbsp; 동시에 여러 스레드가 커널에 접근할 수 있으므로 여러 스레드가 시스템 호출을 동시에 사용할 수 있다.&lt;br /&gt;&amp;rarr;&amp;nbsp; 틀린 이유:&lt;br /&gt;사용자 수준 스레드는 운영체제가 아닌 사용자 라이브러리에서 관리되므로, 커널이 사용자 수준 스레드를 개별적으로 인식하지 않는다. 즉, 여러 스레드가 동시에 커널에 접근할 수 없다. 이는 오히려 커널 수준 스레드의 장점임&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;559&quot; data-start=&quot;341&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;755&quot; data-start=&quot;561&quot; data-ke-size=&quot;size16&quot;&gt;3.&amp;nbsp; 각 스레드를 개별적으로 관리할 수 있으므로 스레드의 독립적인 스케줄링이 가능하다.&lt;br /&gt;&amp;rarr;&amp;nbsp; 틀린 이유:&lt;br /&gt;사용자 수준 스레드는 운영체제가 아니라 사용자 라이브러리에서 스케줄링을 관리하지만, 한 스레드가 블록되면 전체 프로세스가 블록될 수 있는 문제가 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;755&quot; data-start=&quot;561&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;966&quot; data-start=&quot;757&quot; data-ke-size=&quot;size16&quot;&gt;4.&amp;nbsp; 커널 모드로의 전환 없이 스레드 교환이 가능하므로 오버헤드가 줄어든다.&lt;br /&gt;&amp;rarr; 정답인 이유:&lt;br /&gt;사용자 수준 스레드는 커널의 개입 없이 사용자 공간에서만 실행되고 관리되므로, 스레드 간 전환(context switch) 시 커널 모드로 전환하는 오버헤드가 발생하지 않는다. 이는 사용자 수준 스레드의 주요 장점 중 하나임.&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;966&quot; data-start=&quot;757&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/l4BSB/btsMv6s9Afd/fHpG8BKxQ53yklevXB6bS0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/l4BSB/btsMv6s9Afd/fHpG8BKxQ53yklevXB6bS0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/l4BSB/btsMv6s9Afd/fHpG8BKxQ53yklevXB6bS0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fl4BSB%2FbtsMv6s9Afd%2FfHpG8BKxQ53yklevXB6bS0%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;543&quot; height=&quot;169&quot; data-origin-width=&quot;543&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결합도는 모듈 간의 의존성(Dependency)을 나타내는 척도로, 결합도가 낮을수록 좋은 설계라고 평가된다. 결합도는 낮을수록 유지보수성과 확장성이 좋아진다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;227&quot; data-start=&quot;186&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 내용 결합도(Content Coupling) &amp;ndash; 정답&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;512&quot; data-start=&quot;231&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;295&quot; data-start=&quot;231&quot;&gt;한 모듈이 다른 모듈의 &lt;b&gt;내부 데이터나 내부 기능을 직접 참조&lt;/b&gt;할 때 발생하는 가장 강한(나쁜) 결합도.&lt;/li&gt;
&lt;li data-end=&quot;350&quot; data-start=&quot;299&quot;&gt;즉, 다른 모듈의 내부 변수를 직접 변경하거나 특정 내부 로직을 직접 참조하는 경우&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;555&quot; data-start=&quot;514&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 제어 결합도(Control Coupling) &amp;ndash; 오답&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;749&quot; data-start=&quot;559&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;598&quot; data-start=&quot;559&quot;&gt;한 모듈이 다른 모듈의 수행 흐름을 &lt;b&gt;직접 제어&lt;/b&gt;하는 경우.&lt;/li&gt;
&lt;li data-end=&quot;649&quot; data-start=&quot;602&quot;&gt;즉, 특정 값을 넘겨서 다른 모듈 내부에서 실행 흐름을 변경하도록 하는 방식.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;791&quot; data-start=&quot;751&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. 공통 결합도(Common Coupling) &amp;ndash; 오답&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1014&quot; data-start=&quot;795&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;851&quot; data-start=&quot;795&quot;&gt;여러 모듈이 **공통 데이터 영역(Global Variable)**을 공유하여 사용하는 경우.&lt;/li&gt;
&lt;li data-end=&quot;896&quot; data-start=&quot;855&quot;&gt;공통 변수를 수정하면 영향을 받는 모듈이 많아 유지보수가 어려워짐.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1056&quot; data-start=&quot;1016&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;4. 스탬프 결합도(Stamp Coupling) &amp;ndash; 오답&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1367&quot; data-start=&quot;1060&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1122&quot; data-start=&quot;1060&quot;&gt;한 모듈이 다른 모듈에 &lt;b&gt;필요 이상의 데이터 구조(Record, Object 등)를 전달&lt;/b&gt;하는 경우.&lt;/li&gt;
&lt;li data-end=&quot;1182&quot; data-start=&quot;1126&quot;&gt;즉, 필요한 데이터만 넘겨주는 것이 아니라 &lt;b&gt;불필요한 데이터까지 포함된 구조체&lt;/b&gt;를 넘겨줌.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bJgeQO/btsMwc02bss/c1ocJWuJcqC5wWqfULQJo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bJgeQO/btsMwc02bss/c1ocJWuJcqC5wWqfULQJo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bJgeQO/btsMwc02bss/c1ocJWuJcqC5wWqfULQJo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJgeQO%2FbtsMwc02bss%2Fc1ocJWuJcqC5wWqfULQJo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;393&quot; height=&quot;262&quot; data-origin-width=&quot;393&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 data-end=&quot;404&quot; data-start=&quot;391&quot; data-ke-size=&quot;size20&quot;&gt;&amp;nbsp;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;340&quot; data-start=&quot;274&quot;&gt;a[0]의 주소가 &lt;b&gt;10&lt;/b&gt;이라고 가정하고, int형의 크기가 &lt;b&gt;4Byte&lt;/b&gt;라고 주어짐&lt;/li&gt;
&lt;li data-end=&quot;389&quot; data-start=&quot;341&quot;&gt;배열 a는 4개의 정수로 이루어져 있으며, 메모리에서 연속된 주소를 차지한다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-end=&quot;568&quot; data-start=&quot;405&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;요소값&lt;/td&gt;
&lt;td&gt;주소&lt;/td&gt;
&lt;td&gt;계산&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;478&quot; data-start=&quot;452&quot;&gt;
&lt;td&gt;a[0]&lt;/td&gt;
&lt;td&gt;14&lt;/td&gt;
&lt;td&gt;10&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;508&quot; data-start=&quot;479&quot;&gt;
&lt;td&gt;a[1]&lt;/td&gt;
&lt;td&gt;22&lt;/td&gt;
&lt;td&gt;10 + 4 = 14&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;538&quot; data-start=&quot;509&quot;&gt;
&lt;td&gt;a[2]&lt;/td&gt;
&lt;td&gt;30&lt;/td&gt;
&lt;td&gt;14 + 4 = 18&lt;/td&gt;
&lt;/tr&gt;
&lt;tr data-end=&quot;568&quot; data-start=&quot;539&quot;&gt;
&lt;td&gt;a[3]&lt;/td&gt;
&lt;td&gt;38&lt;/td&gt;
&lt;td&gt;18 + 4 = 22&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;389&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9rAok/btsMx3WoeSH/jtrT8VoZCKh4Wmp2Bc8uL1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9rAok/btsMx3WoeSH/jtrT8VoZCKh4Wmp2Bc8uL1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9rAok/btsMx3WoeSH/jtrT8VoZCKh4Wmp2Bc8uL1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9rAok%2FbtsMx3WoeSH%2FjtrT8VoZCKh4Wmp2Bc8uL1%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;389&quot; height=&quot;179&quot; data-origin-width=&quot;389&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;160&quot; data-start=&quot;91&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;160&quot; data-start=&quot;91&quot; data-ke-size=&quot;size16&quot;&gt;1. &quot;시스템을 모듈로 분할하면 각각의 모듈을 별개로 만들고 수정할 수 있기 때문에 좋은 구조가 된다.&quot;&lt;/p&gt;
&lt;p data-end=&quot;175&quot; data-start=&quot;161&quot; data-ke-size=&quot;size16&quot;&gt;올바른 설명&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;300&quot; data-start=&quot;176&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;229&quot; data-start=&quot;176&quot;&gt;모듈화(Modularity)의 주요 목표 중 하나는 재사용성, 유지보수성 향상&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;300&quot; data-start=&quot;230&quot;&gt;시스템을 독립적인 모듈로 나누면 각 모듈을 독립적으로 개발, 수정, 테스트할 수 있어 소프트웨어 구조가 개선된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;305&quot; data-start=&quot;302&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;359&quot; data-start=&quot;307&quot; data-ke-size=&quot;size16&quot;&gt;2. &quot;응집도는 모듈과 모듈 사이의 상호의존 또는 연결 정도를 의미한다.&quot;&lt;/p&gt;
&lt;p data-end=&quot;378&quot; data-start=&quot;360&quot; data-ke-size=&quot;size16&quot;&gt;틀린 설명 &amp;rarr; 정답&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;641&quot; data-start=&quot;379&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;432&quot; data-start=&quot;379&quot;&gt;응집도(Cohesion)는 모듈 내부 구성 요소 간의 연관성을 의미한다.&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;493&quot; data-start=&quot;433&quot;&gt;하지만, 이 선택지에서는 응집도를 &quot;모듈과 모듈 사이의 상호의존&quot;으로 잘못 설명하고 있다.&lt;/li&gt;
&lt;li data-end=&quot;536&quot; data-start=&quot;494&quot;&gt;모듈 간의 연결 정도는 결합도(Coupling)라고 부른다.&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;641&quot; data-start=&quot;537&quot;&gt;올바른 개념 정리:
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;641&quot; data-start=&quot;556&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;597&quot; data-start=&quot;556&quot;&gt;응집도(Cohesion) &amp;rarr; 모듈 내부 요소 간의 연관성&lt;/li&gt;
&lt;li data-end=&quot;641&quot; data-start=&quot;600&quot;&gt;결합도(Coupling) &amp;rarr; 모듈 간의 연결성 (의존성)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;646&quot; data-start=&quot;643&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;695&quot; data-start=&quot;648&quot; data-ke-size=&quot;size16&quot;&gt;3.&amp;nbsp; &quot;모듈 간의 결합도가 약해야 독립적인 모듈이 될 수 있다.&quot;&lt;/p&gt;
&lt;p data-end=&quot;710&quot; data-start=&quot;696&quot; data-ke-size=&quot;size16&quot;&gt;올바른 설명&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;831&quot; data-start=&quot;711&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;771&quot; data-start=&quot;711&quot;&gt;결합도(Coupling)가 낮을수록(Loose Coupling) 모듈 간 독립성이 증가&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;831&quot; data-start=&quot;772&quot;&gt;낮은 결합도는 모듈을 독립적으로 수정, 교체, 테스트할 수 있도록 해 유지보수를 쉽게 만든다.&lt;/li&gt;
&lt;/ul&gt;
&lt;hr data-end=&quot;836&quot; data-start=&quot;833&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;p data-end=&quot;888&quot; data-start=&quot;838&quot; data-ke-size=&quot;size16&quot;&gt;4.&amp;nbsp; &quot;모듈 내 구성 요소 간의 응집도가 강해야 좋은 모듈 설계이다.&quot;&lt;/p&gt;
&lt;p data-end=&quot;903&quot; data-start=&quot;889&quot; data-ke-size=&quot;size16&quot;&gt;올바른 설명&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1050&quot; data-start=&quot;904&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;973&quot; data-start=&quot;904&quot;&gt;응집도가 높을수록(Strong Cohesion) 모듈이 단일 기능을 명확하게 수행하여 유지보수성이 향상됨&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;1050&quot; data-start=&quot;974&quot;&gt;좋은 소프트웨어 설계에서는 높은 응집도(High Cohesion)와 낮은 결합도(Low Coupling)가 중요한 원칙&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>정보처리기사</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/119</guid>
      <comments>https://his0si.tistory.com/119#entry119comment</comments>
      <pubDate>Sat, 24 Jan 2026 03:10:40 +0900</pubDate>
    </item>
    <item>
      <title>정보처리기사 1과목 기출 문제 오답 노트</title>
      <link>https://his0si.tistory.com/120</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bGt1KY/btsMv7r6ZXF/dcdEfuJzXsvi3yESnTJ8uK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bGt1KY/btsMv7r6ZXF/dcdEfuJzXsvi3yESnTJ8uK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bGt1KY/btsMv7r6ZXF/dcdEfuJzXsvi3yESnTJ8uK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGt1KY%2FbtsMv7r6ZXF%2FdcdEfuJzXsvi3yESnTJ8uK%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;399&quot; height=&quot;178&quot; data-origin-width=&quot;399&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-end=&quot;142&quot; data-start=&quot;88&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;142&quot; data-start=&quot;88&quot; data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp; &quot;객체 간의 동적 상호작용을 시간 개념을 중심으로 모델링하는 것이다.&quot;&lt;/p&gt;
&lt;p data-end=&quot;157&quot; data-start=&quot;143&quot; data-ke-size=&quot;size16&quot;&gt;올바른 설명&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;287&quot; data-start=&quot;158&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;241&quot; data-start=&quot;158&quot;&gt;순차 다이어그램(Sequence Diagram)은 객체 간의 메시지 교환을 시간의 흐름에 따라 표현하는 UML 다이어그램&lt;/li&gt;
&lt;li data-end=&quot;287&quot; data-start=&quot;242&quot;&gt;즉, 객체 간의 동적인 상호작용을 시각적으로 표현하는 것이 핵심&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;340&quot; data-start=&quot;294&quot; data-ke-size=&quot;size16&quot;&gt;2. &quot;주로 시스템의 정적 측면을 모델링하기 위해 사용한다.&quot;&lt;/p&gt;
&lt;p data-end=&quot;359&quot; data-start=&quot;341&quot; data-ke-size=&quot;size16&quot;&gt;틀린 설명 &amp;rarr; 정답&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;584&quot; data-start=&quot;360&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;438&quot; data-start=&quot;360&quot;&gt;순차 다이어그램은 시간에 따른 동작과 메시지 흐름을 표현하는 것이 목적이므로, 동적인 측면을 모델링하는 데 사용됨&lt;/li&gt;
&lt;li data-end=&quot;525&quot; data-start=&quot;439&quot;&gt;정적 측면(Static Aspect)을 모델링하는 데 사용되는 UML 다이어그램은 클래스 다이어그램(Class Diagram)이다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;641&quot; data-start=&quot;591&quot; data-ke-size=&quot;size16&quot;&gt;3. &quot;일반적으로 다이어그램의 수직 방향이 시간의 흐름을 나타낸다.&quot;&lt;/p&gt;
&lt;p data-end=&quot;656&quot; data-start=&quot;642&quot; data-ke-size=&quot;size16&quot;&gt;올바른 설명&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;773&quot; data-start=&quot;657&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;694&quot; data-start=&quot;657&quot;&gt;순차 다이어그램에서는 위에서 아래로 시간이 흐른다.&amp;nbsp;&lt;/li&gt;
&lt;li data-end=&quot;773&quot; data-start=&quot;695&quot;&gt;객체(Actor 또는 Object)는 가로축(수평 방향)에 배치되고, 시간의 흐름에 따라 메시지가 수직 방향(아래 방향)으로 연결된다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;850&quot; data-start=&quot;780&quot; data-ke-size=&quot;size16&quot;&gt;4. &quot;회귀 메시지(Self-Message), 제어블록(Statement block) 등으로 구성된다.&quot;&lt;/p&gt;
&lt;p data-end=&quot;865&quot; data-start=&quot;851&quot; data-ke-size=&quot;size16&quot;&gt;올바른 설명&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1100&quot; data-start=&quot;866&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;955&quot; data-start=&quot;866&quot;&gt;순차 다이어그램은 객체 간 메시지, 회귀 메시지(Self-Message), 제어 구조(Control Structure) 등을 포함할 수 있다.&lt;/li&gt;
&lt;li data-end=&quot;1010&quot; data-start=&quot;956&quot;&gt;회귀 메시지(Self-Message): 객체가 자기 자신에게 메시지를 보내는 경우.&lt;/li&gt;
&lt;li data-end=&quot;1100&quot; data-start=&quot;1011&quot;&gt;제어 블록(Statement Block): 루프(Loop), 조건문(Alternative), 병렬 실행(Parallel) 등의 논리를 표현하는 구조.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;289&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c9dvDs/dJMcacIGkH6/CijZmg2di8KKuqmAdw9mrK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c9dvDs/dJMcacIGkH6/CijZmg2di8KKuqmAdw9mrK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c9dvDs/dJMcacIGkH6/CijZmg2di8KKuqmAdw9mrK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc9dvDs%2FdJMcacIGkH6%2FCijZmg2di8KKuqmAdw9mrK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;685&quot; height=&quot;289&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;289&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;3번) 두 기법 모두 결함을 찾기 위한 '검토(Review)' 기법이라는 점은 같으나 방식이 다르다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: none;&quot;&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;9,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,1,0,0&quot;&gt;워크스루(Walkthrough):&lt;/b&gt; 개발자가 주도하여 동료들과 비형식적으로 검토하며 결함을 발견하고 이해를 높이는 것이 목적&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;9,0,1,1,0&quot;&gt;인스펙션(Inspection):&lt;/b&gt; 작성자를 제외한 별도의 전문 검토팀(중재자, 기록자 등 역할 분담)이 정해진 절차와 체크리스트에 따라 수행하는 매우 엄격하고 형식적인 검토 과정&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;120&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkoh33/dJMcabQwc7q/Fzni7FkKJC6zAmh8RusQBk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkoh33/dJMcabQwc7q/Fzni7FkKJC6zAmh8RusQBk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkoh33/dJMcabQwc7q/Fzni7FkKJC6zAmh8RusQBk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbkoh33%2FdJMcabQwc7q%2FFzni7FkKJC6zAmh8RusQBk%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;557&quot; height=&quot;120&quot; data-origin-width=&quot;557&quot; data-origin-height=&quot;120&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2번) 애자일 방법론 자체가 아니라, &lt;b data-index-in-node=&quot;31&quot; data-path-to-node=&quot;9,1,0&quot;&gt;나선형(Spiral) 모델&lt;/b&gt;의 4가지 주요 단계(계획 수립 &amp;rarr; 위험 분석 &amp;rarr; &lt;b data-index-in-node=&quot;73&quot; data-path-to-node=&quot;9,1,0&quot;&gt;개발 및 검증&lt;/b&gt; &amp;rarr; 고객 평가)&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;259&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/biJyUn/dJMcadguasc/HhGgunwtJBMCG6Q5OOdTv1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/biJyUn/dJMcadguasc/HhGgunwtJBMCG6Q5OOdTv1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/biJyUn/dJMcadguasc/HhGgunwtJBMCG6Q5OOdTv1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbiJyUn%2FdJMcadguasc%2FHhGgunwtJBMCG6Q5OOdTv1%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;676&quot; height=&quot;259&quot; data-origin-width=&quot;676&quot; data-origin-height=&quot;259&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번) XP는 구조적 방법론이 아니라, 변화에 기민하게 대응하는 &lt;b data-index-in-node=&quot;38&quot; data-path-to-node=&quot;11,1,0&quot;&gt;애자일(Agile) 방법론&lt;/b&gt;의 한 종류&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;174&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7zwU4/dJMcaia3lmQ/05p9VozDB37KD96S4WEPuK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7zwU4/dJMcaia3lmQ/05p9VozDB37KD96S4WEPuK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7zwU4/dJMcaia3lmQ/05p9VozDB37KD96S4WEPuK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7zwU4%2FdJMcaia3lmQ%2F05p9VozDB37KD96S4WEPuK%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;674&quot; height=&quot;174&quot; data-origin-width=&quot;674&quot; data-origin-height=&quot;174&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,1,0,0&quot;&gt;객체 모델링(Object):&lt;/b&gt; 객체 다이어그램을 통해 객체들 간의 관계를 규정하는 가장 기초적인 단계&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,1,1,0&quot;&gt;동적 모델링(Dynamic):&lt;/b&gt; 상태 다이어그램을 사용하여 시스템의 행위를 기술&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;13,1,1,2,0&quot;&gt;기능 모델링(Function):&lt;/b&gt; 자료 흐름도(DFD)를 통해 데이터 처리 과정을 표현&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;325&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpU4ni/dJMcahDbOD3/YgRwSJEvka4v8TRb7bzGo0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpU4ni/dJMcahDbOD3/YgRwSJEvka4v8TRb7bzGo0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpU4ni/dJMcahDbOD3/YgRwSJEvka4v8TRb7bzGo0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpU4ni%2FdJMcahDbOD3%2FYgRwSJEvka4v8TRb7bzGo0%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;682&quot; height=&quot;325&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;325&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4번) 상향식 설계(Bottom-Up)는 최하위 모듈을 먼저 개발한 후 이를 결합하여 상위 모듈을 만드는 방식. 이 방식은 각 모듈이 이미 완성되어 있어야 하므로, &lt;b data-index-in-node=&quot;100&quot; data-path-to-node=&quot;5,0,0&quot;&gt;인터페이스가 사전에 명확하게 성립되어 있지 않으면&lt;/b&gt; 모듈 간의 결합이나 기능 추가가 매우 어렵다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Dz7V8/dJMcahpGwxK/VRiTbtpXsQSF2Lk2ZU9Xx1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Dz7V8/dJMcahpGwxK/VRiTbtpXsQSF2Lk2ZU9Xx1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Dz7V8/dJMcahpGwxK/VRiTbtpXsQSF2Lk2ZU9Xx1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDz7V8%2FdJMcahpGwxK%2FVRiTbtpXsQSF2Lk2ZU9Xx1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;685&quot; height=&quot;232&quot; data-origin-width=&quot;685&quot; data-origin-height=&quot;232&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4번) 자료 사전(DD)은 &lt;b data-index-in-node=&quot;20&quot; data-path-to-node=&quot;6,0,0&quot;&gt;구조적 분석 기법&lt;/b&gt;에서 데이터 흐름을 정의하는 도구이다. 요구사항 명세 시 구체적인 명세(상세 기능 정의)를 위해 직접적으로 사용되는 표준 도구는 소단위 명세서(Mini-Spec) 입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1174&quot; data-origin-height=&quot;668&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LtC7J/dJMcacJLN66/9nZdsCxhQJ5YMsqNUIHpT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LtC7J/dJMcacJLN66/9nZdsCxhQJ5YMsqNUIHpT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LtC7J/dJMcacJLN66/9nZdsCxhQJ5YMsqNUIHpT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLtC7J%2FdJMcacJLN66%2F9nZdsCxhQJ5YMsqNUIHpT1%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;1174&quot; height=&quot;668&quot; data-origin-width=&quot;1174&quot; data-origin-height=&quot;668&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MOM은 쉽게 말해 서로 다른 프로그램들이 데이터를 주고받을 수 있도록 중간에서 우체국 역할을 해주는 소프트웨어이다. MOM의 가장 큰 특징은&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;7&quot; data-index-in-node=&quot;14&quot;&gt;비동기 방식&lt;/b&gt;과&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b data-path-to-node=&quot;7&quot; data-index-in-node=&quot;22&quot;&gt;메시지 큐(Queue)&lt;/b&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;를 사용한다는 점이다. 데이터를 큐에 쌓아두고 순차적으로 처리하기 때문에, 실시간으로 바로바로 피드백이 와야 하는 '즉각적인 응답'에는 적합하지 않다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-path-to-node=&quot;8&quot;&gt;오히려 반대로 &quot;즉각적인 응답은 필요 없지만, 데이터가 유실되지 않고 느리더라도 안전하고 확실하게 전달되어야 하는 업무&quot;에 아주 적합하다. (예: 쇼핑몰의 주문 처리 시스템, 이메일 전송 등)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;510&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GBB8d/dJMcagyAmON/Woo5SJJKvj4acKPPIuAeT0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GBB8d/dJMcagyAmON/Woo5SJJKvj4acKPPIuAeT0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GBB8d/dJMcagyAmON/Woo5SJJKvj4acKPPIuAeT0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGBB8d%2FdJMcagyAmON%2FWoo5SJJKvj4acKPPIuAeT0%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;1244&quot; height=&quot;510&quot; data-origin-width=&quot;1244&quot; data-origin-height=&quot;510&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1번이 틀린 이유는 익스트림 프로그래밍이 '구조적 방법론'이 아니라 '애자일(Agile) 방법론'이기 때문이다. 구조적 방법론은 완벽한 계획과 문서를 중시하며 순서대로 개발하는 방식이다. 반면 애자일 방법론은 상황 변화에 유연하게 대처하며 빠르게 코딩을 반복하는 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/4ZyRd/dJMcacbUcQ1/PUigo1EPP6lKjOcWxWkc3K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/4ZyRd/dJMcacbUcQ1/PUigo1EPP6lKjOcWxWkc3K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/4ZyRd/dJMcacbUcQ1/PUigo1EPP6lKjOcWxWkc3K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F4ZyRd%2FdJMcacbUcQ1%2FPUigo1EPP6lKjOcWxWkc3K%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;1204&quot; height=&quot;524&quot; data-origin-width=&quot;1204&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1050&quot; data-origin-height=&quot;1234&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ccllVU/dJMcaaZrQvE/wIxMDEbPxVBCFiWoCTWAhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ccllVU/dJMcaaZrQvE/wIxMDEbPxVBCFiWoCTWAhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ccllVU/dJMcaaZrQvE/wIxMDEbPxVBCFiWoCTWAhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FccllVU%2FdJMcaaZrQvE%2FwIxMDEbPxVBCFiWoCTWAhK%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;1050&quot; height=&quot;1234&quot; data-origin-width=&quot;1050&quot; data-origin-height=&quot;1234&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>정보처리기사</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/120</guid>
      <comments>https://his0si.tistory.com/120#entry120comment</comments>
      <pubDate>Sat, 24 Jan 2026 03:09:14 +0900</pubDate>
    </item>
    <item>
      <title>5단원 정보시스템 구축 관리 개념 요약</title>
      <link>https://his0si.tistory.com/291</link>
      <description>&lt;p data-path-to-node=&quot;2&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;1. 정보 보안 및 접근 통제&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;정보보안 3대 요소&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;4&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,0,0&quot;&gt;기밀성(Confidentiality):&lt;/b&gt; 인가된 사용자만 접근 가능.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,0&quot;&gt;무결성(Integrity):&lt;/b&gt; 인가된 사용자만 수정 가능.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,0&quot;&gt;가용성(Availability):&lt;/b&gt; 필요할 때 언제든 자원 사용 가능.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;접근 통제 기술 (Access Control)&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;6&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;방식&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;영문&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;권한 부여 기준&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0,0&quot;&gt;임의 접근 통제&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,1,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,1,0&quot;&gt;DAC&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,1,2,0&quot;&gt;신원(Identity)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,1,3,0&quot;&gt;데이터 소유자가 권한 지정 (SQL: GRANT/REVOKE)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,0,0&quot;&gt;강제 접근 통제&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,2,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,2,1,0&quot;&gt;MAC&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,2,2,0&quot;&gt;등급(Label)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,2,3,0&quot;&gt;관리자가 설정한 보안 등급 비교 (시스템이 결정)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,3,0,0&quot;&gt;역할 기반 접근 통제&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,3,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,3,1,0&quot;&gt;RBAC&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,3,2,0&quot;&gt;역할(Role)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;6,3,3,0&quot;&gt;사용자의 직무나 역할에 따라 권한 부여&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;8&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;2. 네트워크 구성 및 전송 방식&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;네트워크 토폴로지 (형태)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;10&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,0,0&quot;&gt;스타형(성형):&lt;/b&gt; 중앙 노드와 1:1 연결. 고장 발견이 쉽지만 중앙 노드 고장 시 전체 마비.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,1,0&quot;&gt;버스형:&lt;/b&gt; 한 개의 회선에 여러 단말 연결. 회선 양끝 종단장치(Terminator) 필요.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,2,0&quot;&gt;링형(환형):&lt;/b&gt; 인접 단말기끼리 연결. 한 노드 고장 시 전체 시스템 마비.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;10,3,0&quot;&gt;망형(메시형):&lt;/b&gt; 모든 지점 연결. &lt;b data-index-in-node=&quot;19&quot; data-path-to-node=&quot;10,3,0&quot;&gt;응답 속도와 신뢰성 최상&lt;/b&gt;, 비용은 가장 비쌈.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;130&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/canzeC/dJMb99SJjlf/ArynoK0jQxUT1Nq4CeJovk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/canzeC/dJMb99SJjlf/ArynoK0jQxUT1Nq4CeJovk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/canzeC/dJMb99SJjlf/ArynoK0jQxUT1Nq4CeJovk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcanzeC%2FdJMb99SJjlf%2FArynoK0jQxUT1Nq4CeJovk%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;804&quot; height=&quot;130&quot; data-origin-width=&quot;804&quot; data-origin-height=&quot;130&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;정보 전송 방식&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,0,0&quot;&gt;단방향(Simplex):&lt;/b&gt; 한쪽으로만 전송 (라디오, TV).&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0&quot;&gt;반이중(Half-Duplex):&lt;/b&gt; 양방향 가능하나 동시는 불가 (무전기).&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0&quot;&gt;전이중(Full-Duplex):&lt;/b&gt; 동시에 양방향 송수신 가능 (전화기).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;3. 암호화 알고리즘&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;양방향 암호화&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;16&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;구분&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;대칭키 (비밀키)&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;비대칭키 (공개키)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0,0&quot;&gt;키 관계&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,1,1,0&quot;&gt;암호화키 = 복호화키&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,1,2,0&quot;&gt;암호화키 != 복호화키&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,2,0,0&quot;&gt;속도&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,2,1,0&quot;&gt;빠름&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,2,2,0&quot;&gt;느림&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,3,0,0&quot;&gt;키 개수&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,3,1,0&quot;&gt;&lt;span data-index-in-node=&quot;0&quot; data-math=&quot;n(n-1)/2&quot;&gt;n(n-1)/2&lt;/span&gt;&amp;nbsp;(많음)&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,3,2,0&quot;&gt;&lt;span data-index-in-node=&quot;0&quot; data-math=&quot;2n&quot;&gt;2n &lt;/span&gt;(적음)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,4,0,0&quot;&gt;종류&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,4,1,0&quot;&gt;DES, AES, SEED, ARIA&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;16,4,2,0&quot;&gt;RSA, ECC, Diffie-Hellman&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;17&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;17,0,0&quot;&gt;단방향 암호화(Hash):&lt;/b&gt; 복호화가 불가능한 함수 (SHA, MD5 등). 고정된 길이의 해시값 출력.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;4. 소프트웨어 비용 산정 기법&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;20&quot; data-ke-size=&quot;size16&quot;&gt;상향식 산정 (수학적 모델)&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;21&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,0,0&quot;&gt;LOC (Source Line of Code):&lt;/b&gt; 코드 라인 수 기반 산정.&lt;/li&gt;
&lt;li data-path-to-node=&quot;21,0,1&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,0,1,0&quot;&gt;예측치 계산법:&lt;/b&gt; (&lt;span data-index-in-node=&quot;9&quot; data-math=&quot;\frac{a + 4c + b}{6}&quot;&gt;a + 4c + b) / 6&lt;/span&gt;&amp;nbsp;(a: 낙관치, b: 비관치, c: 기대치)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,1,0&quot;&gt;COCOMO:&lt;/b&gt; 보헴 제안. 프로젝트 규모(LOC)에 따라 조직형(5만 라인 이하), 반분리형(30만 이하), 내장형(30만 초과) 으로 구분.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,2,0&quot;&gt;Putnam:&lt;/b&gt; 생명주기 전 과정 노력 분포 기반. &lt;b data-index-in-node=&quot;28&quot; data-path-to-node=&quot;21,2,0&quot;&gt;Rayleigh-Norden 곡선&lt;/b&gt; 활용 (자동화 도구: &lt;b data-index-in-node=&quot;59&quot; data-path-to-node=&quot;21,2,0&quot;&gt;SLIM&lt;/b&gt;).&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;21,3,0&quot;&gt;기능 점수(FP):&lt;/b&gt; 소프트웨어의 기능(입력, 출력, 인터페이스 등) 가중치 합산.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;하향식 산정&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;23&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,0,0&quot;&gt;전문가 감정:&lt;/b&gt; 전문가에게 의뢰.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,1,0&quot;&gt;델파이 기법:&lt;/b&gt; 조정자와 여러 전문가의 의견 종합 (주관성 배제 노력).&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;5. 보안 시스템 및 솔루션&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;26&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26,0,0&quot;&gt;침입 탐지 시스템(IDS):&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;26,0,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26,0,1,0,0&quot;&gt;오용 탐지:&lt;/b&gt; 알려진 공격 패턴 기반.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26,0,1,1,0&quot;&gt;이상 탐지:&lt;/b&gt; 정상 상태와 비교하여 비정상 행위 감지.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26,0,1,2,0&quot;&gt;NIDS:&lt;/b&gt; 네트워크 트래픽 감시 / &lt;b data-index-in-node=&quot;20&quot; data-path-to-node=&quot;26,0,1,2,0&quot;&gt;HIDS:&lt;/b&gt; 호스트(서버) 내부 감시.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26,1,0&quot;&gt;프레임워크:&lt;/b&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;26,1,1&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26,1,1,0,0&quot;&gt;Spring:&lt;/b&gt; JAVA 기반 오픈소스 경량 프레임워크.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;26,1,1,1,0&quot;&gt;전자정부 프레임워크:&lt;/b&gt; 공공사업 표준 아키텍처 제공.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;0&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;2&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;6. 정보보안 침해 및 서비스 공격 유형&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;악성코드 및 해킹 기법&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;4&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;종류&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;특징 및 공격 방식&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,0,0&quot;&gt;웜 (Worm)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,1,1,0&quot;&gt;스스로 복제하며 네트워크를 통해 전파. (트로이 목마와 달리 &lt;b data-index-in-node=&quot;34&quot; data-path-to-node=&quot;4,1,1,0&quot;&gt;자기 증식성&lt;/b&gt; 있음)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,0,0&quot;&gt;트로이 목마&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,2,1,0&quot;&gt;정상 프로그램으로 위장하여 잠입. 복제 능력은 없으나 백도어 형성.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,0,0&quot;&gt;백도어 (Backdoor)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,3,1,0&quot;&gt;설계 시 고의로 만든 통로. &lt;b data-index-in-node=&quot;16&quot; data-path-to-node=&quot;4,3,1,0&quot;&gt;탐지법: 무결성 검사, 로그 분석, SetID 파일 확인.&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,4,0,0&quot;&gt;스니핑 (Sniffing)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,4,1,0&quot;&gt;네트워크 상의 패킷을 엿보며 아이디/비밀번호 탈취. (도청)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,5,0,0&quot;&gt;스푸핑 (Spoofing)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;4,5,1,0&quot;&gt;승인받은 사용자인 것처럼 자신의 IP나 MAC 주소를 속여 접속.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;5&quot; data-ke-size=&quot;size16&quot;&gt;서비스 거부 공격 (DoS / DDoS)&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;6&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,0,0&quot;&gt;DoS:&lt;/b&gt; 한 곳에서 대량의 패킷 전송.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;6,1,0&quot;&gt;DDoS:&lt;/b&gt; 여러 좀비 PC(C&amp;amp;C 서버 명령)를 이용해 분산 공격.&lt;/li&gt;
&lt;/ul&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;7&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;공격 종류&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;상세 내용&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;7,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,1,0,0&quot;&gt;Ping of Death&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;7,1,1,0&quot;&gt;허용 범위를 넘는 거대한 ICMP 패킷을 보내 시스템 마비.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;7,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,2,0,0&quot;&gt;Smurfing&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;7,2,1,0&quot;&gt;소스 IP를 타겟 IP로 위조한 후 ICMP Echo 요청을 브로드캐스트하여 타겟에게 응답 폭주 유도.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;7,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,3,0,0&quot;&gt;TearDrop&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;7,3,1,0&quot;&gt;패킷 재조립 순서(Fragment Offset)를 조작하여 수신측 과부하 유도.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;7,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,4,0,0&quot;&gt;LAND Attack&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;7,4,1,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;7,4,1,0&quot;&gt;출발지 IP와 목적지 IP를 동일하게&lt;/b&gt; 설정하여 무한 루프 응답 유도.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;9&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;7. 정보보안 솔루션&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;11&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;솔루션&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;주요 기능&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,1,0,0&quot;&gt;방화벽 (Firewall)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,1,1,0&quot;&gt;내부/외부 트래픽을 허용 규칙에 따라 필터링.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,2,0,0&quot;&gt;웹 방화벽 (WAF)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,2,1,0&quot;&gt;HTTP/HTTPS 등 &lt;b data-index-in-node=&quot;13&quot; data-path-to-node=&quot;11,2,1,0&quot;&gt;웹 애플리케이션 계층(L7)의 공격&lt;/b&gt;(SQL Injection, XSS) 차단.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,3,0,0&quot;&gt;IPS (침입 방지)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,3,1,0&quot;&gt;IDS의 탐지 기능에 &lt;b data-index-in-node=&quot;12&quot; data-path-to-node=&quot;11,3,1,0&quot;&gt;능동적 차단&lt;/b&gt; 기능을 결합한 솔루션.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,4,0,0&quot;&gt;VPN (가상 사설망)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,4,1,0&quot;&gt;공중망을 전용회선처럼 사용할 수 있게 하는 &lt;b data-index-in-node=&quot;24&quot; data-path-to-node=&quot;11,4,1,0&quot;&gt;터널링 및 암호화&lt;/b&gt; 기술.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,5,0,0&quot;&gt;DLP (데이터 유출 방지)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,5,1,0&quot;&gt;사내 기밀 정보가 외부로 나가는 것을 탐지 및 통제.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,6,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;11,6,0,0&quot;&gt;NAC (네트워크 접근 제어)&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;11,6,1,0&quot;&gt;내부망 접속 시 MAC 주소 기반 인증 및 무결성 체크.&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;13&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;8. 소프트웨어 품질 및 프로세스 평가 모델&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;CMMI (능력 성숙도 통합 모델)&lt;/b&gt;&lt;/p&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,0,0&quot;&gt;초기(Initial):&lt;/b&gt; 프로세스 없음. 개인의 능력에 의존.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0&quot;&gt;관리(Managed):&lt;/b&gt; 프로젝트 단위의 관리 규칙 존재.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,2,0&quot;&gt;정의(Defined):&lt;/b&gt; 조직 차원의 표준 프로세스 확립.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,3,0&quot;&gt;정량적 관리(Quantitatively Managed):&lt;/b&gt; 데이터 기반 정량적 통제.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,4,0&quot;&gt;최적화(Optimizing):&lt;/b&gt; 지속적인 개선 추진.&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-path-to-node=&quot;17&quot; data-ke-size=&quot;size16&quot;&gt;SPICE (ISO 15504)&lt;/p&gt;
&lt;p data-path-to-node=&quot;18&quot; data-ke-size=&quot;size16&quot;&gt;SW 프로세스 평가를 위한 국제 표준으로 6단계 등급을 가집니다.&lt;/p&gt;
&lt;p data-path-to-node=&quot;19&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;19,0&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;19,0&quot;&gt;불완전 &amp;rarr; 수행 &amp;rarr; 관리 &amp;rarr; 확립 &amp;rarr; 예측 가능 &amp;rarr; 최적&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;21&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;9. 데이터 오류 및 기타 보안 용어&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;22&quot; data-ke-size=&quot;size16&quot;&gt;코드 오류 종류&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;23&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,0,0&quot;&gt;필사(Transcription):&lt;/b&gt; 한 자리를 잘못 기록 (ABCD &amp;rarr; AB&lt;b data-index-in-node=&quot;41&quot; data-path-to-node=&quot;23,0,0&quot;&gt;F&lt;/b&gt;D)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,1,0&quot;&gt;전위(Transposition):&lt;/b&gt; 좌우 자리를 바꿈 (ABCD &amp;rarr; A&lt;b data-index-in-node=&quot;38&quot; data-path-to-node=&quot;23,1,0&quot;&gt;CB&lt;/b&gt;D)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;23,2,0&quot;&gt;이중(Double):&lt;/b&gt; 전위 오류가 두 번 발생.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;24&quot; data-ke-size=&quot;size16&quot;&gt;세션 하이재킹 (Session Hijacking)&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;서버와 클라이언트 간의 세션을 가로채는 공격으로, TCP의 &lt;b data-index-in-node=&quot;33&quot; data-path-to-node=&quot;25&quot;&gt;비동기화 상태&lt;/b&gt;를 이용하여 접속 권한을 탈취합니다. &lt;b data-index-in-node=&quot;61&quot; data-path-to-node=&quot;25&quot;&gt;탐지법은 ACK Storm 탐지&lt;/b&gt;가 대표적&lt;/p&gt;
&lt;p data-path-to-node=&quot;25&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;27&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;10. UNIX / LINUX 명령어&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;28&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28,0,0&quot;&gt;chmod:&lt;/b&gt; chmod 755 파일명 (rwx r-x r-x 권한 부여)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28,1,0&quot;&gt;fork / exec:&lt;/b&gt; 프로세스 생성 및 실행.&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;28,2,0&quot;&gt;cat / ls / rm:&lt;/b&gt; 내용 확인 / 목록 확인 / 삭제.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;2&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;2&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;11. 보안 및 인증 관련 용어&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;3&quot; data-ke-size=&quot;size16&quot;&gt;메모리 공격 방어 기술과 인증 프로토콜이 핵심&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 176px;&quot; border=&quot;1&quot; data-path-to-node=&quot;4&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;&lt;b&gt;용어&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;&lt;b&gt;핵심 정의 및 특징&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;height: 44px;&quot;&gt;&lt;span data-path-to-node=&quot;4,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,1,0,0&quot;&gt;Stack Guard&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 44px;&quot;&gt;&lt;span data-path-to-node=&quot;4,1,1,0&quot;&gt;스택 오버플로우를 방지하기 위해 메모리에 &lt;b data-index-in-node=&quot;23&quot; data-path-to-node=&quot;4,1,1,0&quot;&gt;Canary(카나리)&lt;/b&gt; 값을 심고, 이 값이 변조되면 프로그램을 중단시키는 기술&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 44px;&quot;&gt;
&lt;td style=&quot;height: 44px;&quot;&gt;&lt;span data-path-to-node=&quot;4,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,2,0,0&quot;&gt;ASLR&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 44px;&quot;&gt;&lt;span data-path-to-node=&quot;4,2,1,0&quot;&gt;주소 공간 배치 난독화. 실행 시마다 메모리 주소(Stack, Heap 등)를 랜덤하게 배치하여 해커의 주소 예측 공격을 차단&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;&lt;span data-path-to-node=&quot;4,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,3,0,0&quot;&gt;Salt&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;&lt;span data-path-to-node=&quot;4,3,1,0&quot;&gt;비밀번호 암호화 시, 동일한 패스워드라도 서로 다른 암호문이 생성되도록 덧붙이는 무작위 문자열&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;&lt;span data-path-to-node=&quot;4,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,4,0,0&quot;&gt;SSO&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;&lt;span data-path-to-node=&quot;4,4,1,0&quot;&gt;단일 로그인. 한 번의 인증으로 여러 연관된 시스템에 추가 로그인 없이 접근할 수 있는 기술&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 22px;&quot;&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;&lt;span data-path-to-node=&quot;4,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;4,5,0,0&quot;&gt;SSH&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td style=&quot;height: 22px;&quot;&gt;&lt;span data-path-to-node=&quot;4,5,1,0&quot;&gt;네트워크 상의 다른 컴퓨터에 로그인하거나 원격 명령을 실행할 수 있게 해주는 암호화 프로토콜(포트 22번)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;6&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;12. 네트워크 및 인프라 신기술&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;7&quot; data-ke-size=&quot;size16&quot;&gt;물리적 한계를 넘는 논리적 구성과 차세대 통신망 관련 용어&amp;nbsp;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-path-to-node=&quot;8&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;b&gt;용어&lt;/b&gt;&lt;/td&gt;
&lt;td&gt;&lt;b&gt;핵심 정의 및 특징&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,1,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,1,0,0&quot;&gt;VLAN&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,1,1,0&quot;&gt;물리적 위치와 관계없이 &lt;b data-index-in-node=&quot;13&quot; data-path-to-node=&quot;8,1,1,0&quot;&gt;논리적으로 LAN을 분할&lt;/b&gt;하여 보안성과 성능을 높이는 기술&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,2,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,2,0,0&quot;&gt;MQTT&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,2,1,0&quot;&gt;발행-구독(Pub-Sub) 기반의 가볍고 낮은 대역폭을 사용하는 &lt;b data-index-in-node=&quot;36&quot; data-path-to-node=&quot;8,2,1,0&quot;&gt;IoT 전용 메시징 프로토콜&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,3,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,3,0,0&quot;&gt;Docker&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,3,1,0&quot;&gt;컨테이너 기반 가상화 도구. 애플리케이션을 환경에 구애받지 않고 빠르게 배포/실행할 수 있게 함&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,4,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,4,0,0&quot;&gt;PaaS-Ta&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,4,1,0&quot;&gt;국내 기술로 개발된 개방형 클라우드 컴퓨팅 플랫폼(PaaS)&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,5,0,0&quot;&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;8,5,0,0&quot;&gt;Mesh Network&lt;/b&gt;&lt;/span&gt;&lt;/td&gt;
&lt;td&gt;&lt;span data-path-to-node=&quot;8,5,1,0&quot;&gt;망형 네트워크. 기기들이 서로 그물망처럼 연결되어 장애 발생 시 우회 경로를 찾는 등 안정성이 매우 높음&lt;/span&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-path-to-node=&quot;10&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;13. 보안 진단 및 분석 도구&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;11&quot; data-ke-size=&quot;size16&quot;&gt;시스템의 취약점을 찾거나 변조 여부를 확인하는 도구들.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;12&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,0,0&quot;&gt;nmap:&lt;/b&gt; 서버에 열려 있는 포트를 스캐닝하여 보안 취약점을 찾는 네트워크 분석 도구&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,1,0&quot;&gt;Tripwire:&lt;/b&gt; 시스템 내 파일의 변조 여부를 감시하는 무결성 검사 도구. (백도어 탐지 등에 활용)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;12,2,0&quot;&gt;Router:&lt;/b&gt; 서로 다른 네트워크를 연결하고 최적의 경로를 설정해 주는 장비1&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-path-to-node=&quot;14&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;14. 최신 IT 트렌드 및 서비스&lt;/span&gt;&lt;/p&gt;
&lt;p data-path-to-node=&quot;15&quot; data-ke-size=&quot;size16&quot;&gt;디지털 전환(DX)과 관련된 융합 기술들&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-path-to-node=&quot;16&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,0,0&quot;&gt;Digital Twin:&lt;/b&gt; 현실의 사물을 가상 세계에 똑같이 구현하여 시뮬레이션함으로써 사고를 예방하고 자산을 최적화하는 기술&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,1,0&quot;&gt;Smart Grid:&lt;/b&gt; IT를 전력망에 접목하여 에너지 효율을 극대화하는 지능형 전력망&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,2,0&quot;&gt;SOA (서비스 지향 아키텍처):&lt;/b&gt; 업무 단위를 '서비스'라는 독립된 기능으로 구축하고 결합하여 시스템을 구성하는 방법론&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,3,0&quot;&gt;Mashup:&lt;/b&gt; 웹에서 제공하는 여러 API나 서비스를 조합하여 새로운 서비스를 만드는 기술. (예: 구글 지도 + 부동산 정보)&lt;/li&gt;
&lt;li&gt;&lt;b data-index-in-node=&quot;0&quot; data-path-to-node=&quot;16,4,0&quot;&gt;PICONET:&lt;/b&gt; 블루투스 등으로 형성된 소규모 무선 네트워크 단위&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>정보처리기사</category>
      <author>비숑주인</author>
      <guid isPermaLink="true">https://his0si.tistory.com/291</guid>
      <comments>https://his0si.tistory.com/291#entry291comment</comments>
      <pubDate>Sat, 24 Jan 2026 01:40:02 +0900</pubDate>
    </item>
  </channel>
</rss>