<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>하루를 쌓는 블로그</title>
    <link>https://daily-stack.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 30 Jul 2026 00:18:37 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>jaeheon0520</managingEditor>
    <image>
      <title>하루를 쌓는 블로그</title>
      <url>https://tistory1.daumcdn.net/tistory/6783569/attach/949ec5e4564a4f61ac96da42161e3fb8</url>
      <link>https://daily-stack.tistory.com</link>
    </image>
    <item>
      <title>chmod vs chown vs chgrp 명령어</title>
      <link>https://daily-stack.tistory.com/149</link>
      <description>&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;세 명령어 모두 파일/디렉토리의 권한과 소유권을 다루지만 역할이 다릅니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;핵심 차이&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;명령어 역할 대상&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.8372%;&quot;&gt;chmod&lt;/td&gt;
&lt;td style=&quot;width: 47.2093%;&quot;&gt;&lt;b&gt;권한(permission) 변경&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8372%;&quot;&gt;읽기/쓰기/실행 권한&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.8372%;&quot;&gt;chown&lt;/td&gt;
&lt;td style=&quot;width: 47.2093%;&quot;&gt;&lt;b&gt;소유자(owner) 변경&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8372%;&quot;&gt;&lt;b&gt;사용자, 그룹 모두 가능 (교수님 강조)&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 13.8372%;&quot;&gt;chgrp&lt;/td&gt;
&lt;td style=&quot;width: 47.2093%;&quot;&gt;&lt;b&gt;그룹(group) 변경&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 38.8372%;&quot;&gt;그룹만 변경&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;chmod &amp;mdash; 권한 변경&lt;/h2&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;숫자 방식 (Octal)&lt;/h3&gt;
&lt;pre class=&quot;vala&quot;&gt;&lt;code&gt;chmod 755 file.sh
#      &amp;uarr;&amp;uarr;&amp;uarr;
#      │││ others: 5 = r-x
#      ││owner:  7 = rwx
#      │group:  5 = r-x
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;숫자 권한 의미&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;7&lt;/td&gt;
&lt;td&gt;rwx&lt;/td&gt;
&lt;td&gt;읽기+쓰기+실행&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;rw-&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;r-x&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;r--&lt;/td&gt;
&lt;td&gt;읽기만&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;0&lt;/td&gt;
&lt;td&gt;---&lt;/td&gt;
&lt;td&gt;권한 없음&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;기호 방식 (Symbolic)&lt;/h3&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;chmod u+x file.sh      # 소유자에게 실행 권한 추가
chmod g-w file.txt     # 그룹의 쓰기 권한 제거
chmod o=r file.txt     # others는 읽기만
chmod a+x script.sh    # 모두(all)에게 실행 권한
chmod u+x,g-w file     # 복합 적용
&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대상 의미&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;u&lt;/td&gt;
&lt;td&gt;user (소유자)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;g&lt;/td&gt;
&lt;td&gt;group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;o&lt;/td&gt;
&lt;td&gt;others&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;a&lt;/td&gt;
&lt;td&gt;all (u+g+o)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;자주 쓰는 패턴&lt;/h3&gt;
&lt;pre class=&quot;perl&quot;&gt;&lt;code&gt;chmod 644 file.txt     # 일반 파일 (소유자 rw, 나머지 r)
chmod 755 script.sh    # 실행 스크립트
chmod 700 secret.key   # 소유자만 접근
chmod 777 shared/      # 모두 full (보안상 위험, 주의)
chmod -R 755 /var/www  # 디렉토리 재귀 적용
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;chown &amp;mdash; 소유자/그룹 변경&lt;/h2&gt;
&lt;pre class=&quot;markdown&quot;&gt;&lt;code&gt;# 기본 문법
chown [소유자][:그룹] 파일

chown alice file.txt           # 소유자만 alice로
chown alice:devteam file.txt   # 소유자 + 그룹 동시 변경
chown :devteam file.txt        # 그룹만 변경 (= chgrp와 동일)
chown alice: file.txt          # 소유자 변경 + 그룹은 alice의 기본 그룹

chown -R alice:devteam /app    # 디렉토리 재귀 적용
&lt;/code&gt;&lt;/pre&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;chown은 보통 &lt;b&gt;root 또는 sudo&lt;/b&gt; 권한 필요&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;chgrp &amp;mdash; 그룹 변경&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;chown :그룹과 기능은 같지만 &lt;b&gt;그룹만&lt;/b&gt; 바꿀 때 명시적으로 사용&lt;/p&gt;
&lt;pre class=&quot;applescript&quot;&gt;&lt;code&gt;chgrp devteam file.txt         # 그룹을 devteam으로
chgrp -R www-data /var/www     # 재귀 적용
chgrp $(id -gn) file.txt       # 현재 사용자의 기본 그룹으로
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;실전 시나리오&lt;/h2&gt;
&lt;pre class=&quot;jboss-cli&quot;&gt;&lt;code&gt;# 웹서버 배포 시
chown -R www-data:www-data /var/www/html
chmod -R 755 /var/www/html
chmod -R 644 /var/www/html/*.html

# SSH 키 보안 설정
chmod 700 ~/.ssh
chmod 600 ~/.ssh/id_rsa        # 개인키: 소유자만 읽기
chmod 644 ~/.ssh/id_rsa.pub    # 공개키: 읽기 공개

# 스크립트 실행 가능하게
chmod +x deploy.sh &amp;amp;&amp;amp; ./deploy.sh

# 현재 권한 확인
ls -la file.txt
# -rw-r--r-- 1 alice devteam 1024 Jun 9 10:00 file.txt
#  &amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;   &amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr; &amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;&amp;uarr;
#  권한         소유자  그룹
&lt;/code&gt;&lt;/pre&gt;
&lt;hr data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 style=&quot;text-align: left;&quot; data-ke-size=&quot;size26&quot;&gt;ㅈ&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;chmod&lt;/b&gt; &amp;rarr; &quot;이 파일을 누가 어떻게 쓸 수 있나&quot; (권한)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;chown&lt;/b&gt; &amp;rarr; &quot;이 파일의 주인이 누구냐&quot; (소유자 + 그룹)&lt;/li&gt;
&lt;li&gt;&lt;b&gt;chgrp&lt;/b&gt; &amp;rarr; &quot;이 파일이 어느 팀 거냐&quot; (그룹만)&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/149</guid>
      <comments>https://daily-stack.tistory.com/149#entry149comment</comments>
      <pubDate>Tue, 9 Jun 2026 20:54:13 +0900</pubDate>
    </item>
    <item>
      <title>운영체제 가계도: Unix, Linux, macOS, Windows의 관계</title>
      <link>https://daily-stack.tistory.com/148</link>
      <description>&lt;p data-end=&quot;181&quot; data-start=&quot;148&quot; data-ke-size=&quot;size16&quot;&gt;컴퓨터 운영체제를 이야기할 때 자주 등장하는 이름들이 있다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;223&quot; data-start=&quot;183&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;191&quot; data-start=&quot;183&quot; data-section-id=&quot;9xr342&quot;&gt;Unix&lt;/li&gt;
&lt;li data-end=&quot;201&quot; data-start=&quot;192&quot; data-section-id=&quot;126o4xa&quot;&gt;Linux&lt;/li&gt;
&lt;li data-end=&quot;211&quot; data-start=&quot;202&quot; data-section-id=&quot;abhzkr&quot;&gt;macOS&lt;/li&gt;
&lt;li data-end=&quot;223&quot; data-start=&quot;212&quot; data-section-id=&quot;1ch3z3r&quot;&gt;Windows&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;323&quot; data-start=&quot;225&quot; data-ke-size=&quot;size16&quot;&gt;이들은 완전히 별개의 시스템이 아니라 &lt;b&gt;역사적으로 서로 영향을 주고받으며 발전한 운영체제들&lt;/b&gt;이다.&lt;br /&gt;전체 흐름을 이해하려면 &lt;b&gt;운영체제 가계도&lt;/b&gt;를 보는 것이 가장 쉽다.&lt;/p&gt;
&lt;p data-end=&quot;323&quot; data-start=&quot;225&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-end=&quot;328&quot; data-start=&quot;325&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;351&quot; data-start=&quot;330&quot; data-section-id=&quot;1ogwu6k&quot;&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h2 data-end=&quot;351&quot; data-start=&quot;330&quot; data-section-id=&quot;1ogwu6k&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;1. 모든 이야기의 시작: Unix&lt;/b&gt;&lt;/h2&gt;
&lt;h3 data-end=&quot;393&quot; data-start=&quot;353&quot; data-section-id=&quot;135sat4&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;span&gt;Unix&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-end=&quot;457&quot; data-start=&quot;395&quot; data-ke-size=&quot;size16&quot;&gt;1969년 &lt;span&gt;&lt;span&gt;Bell Labs&lt;/span&gt;&lt;/span&gt; 연구소에서 개발된 운영체제이다.&lt;/p&gt;
&lt;p data-end=&quot;457&quot; data-start=&quot;395&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;465&quot; data-start=&quot;459&quot; data-ke-size=&quot;size16&quot;&gt;초기 개발자&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;545&quot; data-start=&quot;466&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;505&quot; data-start=&quot;466&quot; data-section-id=&quot;wlg39x&quot;&gt;&lt;span&gt;&lt;span&gt;Ken Thompson&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;545&quot; data-start=&quot;506&quot; data-section-id=&quot;1etlrsl&quot;&gt;&lt;span&gt;&lt;span&gt;Dennis Ritchie&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;578&quot; data-start=&quot;547&quot; data-ke-size=&quot;size16&quot;&gt;Unix는 당시 기준으로 매우 혁신적인 개념을 도입했다.&lt;/p&gt;
&lt;h3 data-end=&quot;595&quot; data-start=&quot;580&quot; data-section-id=&quot;1aqfkyc&quot; data-ke-size=&quot;size23&quot;&gt;Unix의 핵심 철학&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-end=&quot;670&quot; data-start=&quot;597&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li data-end=&quot;618&quot; data-start=&quot;597&quot; data-section-id=&quot;1vhrw2d&quot;&gt;&lt;b&gt;모든 것을 파일로 처리한다&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;639&quot; data-start=&quot;619&quot; data-section-id=&quot;198w3ut&quot;&gt;&lt;b&gt;작은 프로그램을 조합한다&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;654&quot; data-start=&quot;640&quot; data-section-id=&quot;1q5mohk&quot;&gt;&lt;b&gt;멀티유저 지원&lt;/b&gt;&lt;/li&gt;
&lt;li data-end=&quot;670&quot; data-start=&quot;655&quot; data-section-id=&quot;19bv58e&quot;&gt;&lt;b&gt;멀티태스킹 지원&lt;/b&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p data-end=&quot;737&quot; data-start=&quot;672&quot; data-ke-size=&quot;size16&quot;&gt;특히 Dennis Ritchie가 만든 &lt;b&gt;C 언어&lt;/b&gt;로 구현되면서&lt;br /&gt;Unix는 다양한 컴퓨터로 이식되기 시작했다.&lt;/p&gt;
&lt;p data-end=&quot;785&quot; data-start=&quot;739&quot; data-ke-size=&quot;size16&quot;&gt;이때부터 Unix는 &lt;b&gt;운영체제 역사에서 가장 큰 영향력을 가진 시스템&lt;/b&gt;이 된다.&lt;/p&gt;
&lt;p data-end=&quot;785&quot; data-start=&quot;739&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-end=&quot;790&quot; data-start=&quot;787&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;817&quot; data-start=&quot;792&quot; data-section-id=&quot;100fybc&quot;&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h2 data-end=&quot;817&quot; data-start=&quot;792&quot; data-section-id=&quot;100fybc&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;2. Unix에서 갈라진 두 개의 큰 계열&lt;/b&gt;&lt;/h2&gt;
&lt;p data-end=&quot;850&quot; data-start=&quot;819&quot; data-ke-size=&quot;size16&quot;&gt;Unix는 대학과 기업에 퍼지면서 여러 갈래로 발전한다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Unix&lt;/span&gt;&lt;br /&gt;&lt;span&gt; ├─ BSD 계열&lt;/span&gt;&lt;br /&gt;&lt;span&gt; └─ System V 계열&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;h3 data-end=&quot;902&quot; data-start=&quot;893&quot; data-section-id=&quot;z19zkw&quot; data-ke-size=&quot;size23&quot;&gt;BSD 계열&lt;/h3&gt;
&lt;p data-end=&quot;908&quot; data-start=&quot;904&quot; data-ke-size=&quot;size16&quot;&gt;BSD는 &lt;b&gt;Berkeley Software Distribution &lt;/b&gt;의 약자다.&lt;/p&gt;
&lt;p data-end=&quot;996&quot; data-start=&quot;954&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;996&quot; data-start=&quot;954&quot; data-ke-size=&quot;size16&quot;&gt;개발&lt;br /&gt;&amp;rarr; &lt;span&gt;&lt;span&gt;University of California, Berkeley&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1005&quot; data-start=&quot;998&quot; data-ke-size=&quot;size16&quot;&gt;대표 운영체제&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1132&quot; data-start=&quot;1007&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1048&quot; data-start=&quot;1007&quot; data-section-id=&quot;hjs5dh&quot;&gt;&lt;span&gt;&lt;span&gt;FreeBSD&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1090&quot; data-start=&quot;1049&quot; data-section-id=&quot;pzvh1x&quot;&gt;&lt;span&gt;&lt;span&gt;OpenBSD&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;1132&quot; data-start=&quot;1091&quot; data-section-id=&quot;1l5awad&quot;&gt;&lt;span&gt;&lt;span&gt;NetBSD&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1141&quot; data-start=&quot;1134&quot; data-ke-size=&quot;size16&quot;&gt;BSD는 특히&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1164&quot; data-start=&quot;1143&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1152&quot; data-start=&quot;1143&quot; data-section-id=&quot;n76exw&quot;&gt;네트워크 기술&lt;/li&gt;
&lt;li data-end=&quot;1164&quot; data-start=&quot;1153&quot; data-section-id=&quot;j2s7wg&quot;&gt;TCP/IP 스택&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1179&quot; data-start=&quot;1166&quot; data-ke-size=&quot;size16&quot;&gt;발전에 큰 역할을 했다.&lt;/p&gt;
&lt;p data-end=&quot;1214&quot; data-start=&quot;1181&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1214&quot; data-start=&quot;1181&quot; data-ke-size=&quot;size16&quot;&gt;오늘날 인터넷의 핵심 기술 중 상당수가 BSD에서 발전했다.&lt;/p&gt;
&lt;p data-end=&quot;1214&quot; data-start=&quot;1181&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr data-end=&quot;1219&quot; data-start=&quot;1216&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;1243&quot; data-start=&quot;1221&quot; data-section-id=&quot;16tgjze&quot;&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h2 data-end=&quot;1243&quot; data-start=&quot;1221&quot; data-section-id=&quot;16tgjze&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;3. macOS는 Unix의 후손이다&lt;/b&gt;&lt;/h2&gt;
&lt;p data-end=&quot;1261&quot; data-start=&quot;1245&quot; data-ke-size=&quot;size16&quot;&gt;현재 애플 컴퓨터의 운영체제인&lt;/p&gt;
&lt;h3 data-end=&quot;1303&quot; data-start=&quot;1263&quot; data-section-id=&quot;1k85mm0&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;span&gt;macOS&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-end=&quot;1334&quot; data-start=&quot;1305&quot; data-ke-size=&quot;size16&quot;&gt;이 시스템은 실제로 &lt;b&gt;Unix 기반 운영체제&lt;/b&gt;다.&lt;/p&gt;
&lt;p data-end=&quot;1350&quot; data-start=&quot;1336&quot; data-ke-size=&quot;size16&quot;&gt;구조를 보면 다음과 같다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Unix&lt;/span&gt;&lt;br /&gt;&lt;span&gt; └─ BSD&lt;/span&gt;&lt;br /&gt;&lt;span&gt; └─ Darwin&lt;/span&gt;&lt;br /&gt;&lt;span&gt; └─ macOS&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1437&quot; data-start=&quot;1410&quot; data-ke-size=&quot;size16&quot;&gt;Darwin은 macOS의 핵심 기반 시스템이다.&lt;/p&gt;
&lt;p data-end=&quot;1451&quot; data-start=&quot;1439&quot; data-ke-size=&quot;size16&quot;&gt;Darwin 내부 구조&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;1476&quot; data-start=&quot;1453&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;1462&quot; data-start=&quot;1453&quot; data-section-id=&quot;1p76vvd&quot;&gt;BSD 시스템&lt;/li&gt;
&lt;li data-end=&quot;1476&quot; data-start=&quot;1463&quot; data-section-id=&quot;1p1q2ac&quot;&gt;Mach kernel&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;1496&quot; data-start=&quot;1478&quot; data-ke-size=&quot;size16&quot;&gt;이 두 기술이 합쳐져 만들어졌다.&lt;/p&gt;
&lt;p data-end=&quot;1545&quot; data-start=&quot;1498&quot; data-ke-size=&quot;size16&quot;&gt;개발 회사 &amp;rarr; &lt;span&gt;&lt;span&gt;Apple&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1596&quot; data-start=&quot;1547&quot; data-ke-size=&quot;size16&quot;&gt;그래서 macOS 터미널에서 사용하는 명령어 대부분은 &lt;b&gt;Unix 명령어와 동일&lt;/b&gt;하다.&lt;/p&gt;
&lt;p data-end=&quot;1599&quot; data-start=&quot;1598&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1599&quot; data-start=&quot;1598&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;ex)&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1599&quot; data-start=&quot;1598&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;ls&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1599&quot; data-start=&quot;1598&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;cd&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1599&quot; data-start=&quot;1598&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;grep&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;1599&quot; data-start=&quot;1598&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;font-family: -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Apple SD Gothic Neo', Arial, sans-serif; letter-spacing: 0px;&quot;&gt;chmod&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;1658&quot; data-start=&quot;1627&quot; data-ke-size=&quot;size16&quot;&gt;이 때문에 개발자들이 macOS를 선호하는 경우가 많다.&lt;/p&gt;
&lt;hr data-end=&quot;1663&quot; data-start=&quot;1660&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;1692&quot; data-start=&quot;1665&quot; data-section-id=&quot;pb7lli&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;4. Linux는 Unix와 &amp;ldquo;닮은&amp;rdquo; 운영체제&lt;/b&gt;&lt;/h2&gt;
&lt;p data-end=&quot;1754&quot; data-start=&quot;1694&quot; data-ke-size=&quot;size16&quot;&gt;많은 사람들이 Linux를 Unix의 후손이라고 생각하지만 엄밀히 말하면 &lt;b&gt;직접적인 후손은 아니다.&lt;/b&gt;&lt;/p&gt;
&lt;h3 data-end=&quot;1798&quot; data-start=&quot;1756&quot; data-section-id=&quot;10r24ew&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;span&gt;Linux&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-end=&quot;1818&quot; data-start=&quot;1800&quot; data-ke-size=&quot;size16&quot;&gt;1991년 핀란드 대학생이었던 &lt;span&gt;&lt;span&gt;Linus Torvalds &lt;/span&gt;&lt;/span&gt;가 개발을 시작했다.&lt;/p&gt;
&lt;p data-end=&quot;1880&quot; data-start=&quot;1874&quot; data-ke-size=&quot;size16&quot;&gt;Linux는&lt;/p&gt;
&lt;blockquote data-end=&quot;1916&quot; data-start=&quot;1882&quot; data-ke-style=&quot;style1&quot;&gt;
&lt;p data-end=&quot;1916&quot; data-start=&quot;1884&quot; data-ke-size=&quot;size16&quot;&gt;Unix와 동일한 기능을 가지도록 &lt;b&gt;새롭게 만든 커널&lt;/b&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p data-end=&quot;1921&quot; data-start=&quot;1918&quot; data-ke-size=&quot;size16&quot;&gt;이다.&lt;/p&gt;
&lt;p data-end=&quot;1936&quot; data-start=&quot;1923&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;1936&quot; data-start=&quot;1923&quot; data-ke-size=&quot;size16&quot;&gt;그래서 Linux는 보통 &lt;b&gt;Unix-like OS &lt;/b&gt;라고 불린다.&lt;/p&gt;
&lt;hr data-end=&quot;1968&quot; data-start=&quot;1965&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-end=&quot;1982&quot; data-start=&quot;1970&quot; data-section-id=&quot;1biwpif&quot; data-ke-size=&quot;size23&quot;&gt;Linux의 구조&lt;/h3&gt;
&lt;p data-end=&quot;2000&quot; data-start=&quot;1984&quot; data-ke-size=&quot;size16&quot;&gt;Linux는 커널만 의미한다.&lt;/p&gt;
&lt;p data-end=&quot;2042&quot; data-start=&quot;2002&quot; data-ke-size=&quot;size16&quot;&gt;운영체제 전체는 &lt;b&gt;배포판(distribution)&lt;/b&gt; 형태로 제공된다.&lt;/p&gt;
&lt;p data-end=&quot;2050&quot; data-start=&quot;2044&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2050&quot; data-start=&quot;2044&quot; data-ke-size=&quot;size16&quot;&gt;대표 배포판&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2227&quot; data-start=&quot;2052&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2095&quot; data-start=&quot;2052&quot; data-section-id=&quot;1y51851&quot;&gt;&lt;span&gt;&lt;span&gt;Ubuntu&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2139&quot; data-start=&quot;2096&quot; data-section-id=&quot;1ce4kxh&quot;&gt;&lt;span&gt;&lt;span&gt;Debian&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2183&quot; data-start=&quot;2140&quot; data-section-id=&quot;g165th&quot;&gt;&lt;span&gt;&lt;span&gt;Red Hat Enterprise Linux&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li data-end=&quot;2227&quot; data-start=&quot;2184&quot; data-section-id=&quot;1tbdkl1&quot;&gt;&lt;span&gt;&lt;span&gt;CentOS&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2236&quot; data-start=&quot;2229&quot; data-ke-size=&quot;size16&quot;&gt;이 배포판들이&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2261&quot; data-start=&quot;2238&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2246&quot; data-start=&quot;2238&quot; data-section-id=&quot;dqmve0&quot;&gt;패키지 관리&lt;/li&gt;
&lt;li data-end=&quot;2252&quot; data-start=&quot;2247&quot; data-section-id=&quot;1o4har&quot;&gt;GUI&lt;/li&gt;
&lt;li data-end=&quot;2261&quot; data-start=&quot;2253&quot; data-section-id=&quot;ozay6c&quot;&gt;시스템 도구&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2285&quot; data-start=&quot;2263&quot; data-ke-size=&quot;size16&quot;&gt;등을 포함해 완전한 운영체제를 구성한다.&lt;/p&gt;
&lt;hr data-end=&quot;2290&quot; data-start=&quot;2287&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2315&quot; data-start=&quot;2292&quot; data-section-id=&quot;zmabsi&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;5. Windows는 완전히 다른 계열&lt;/b&gt;&lt;/h2&gt;
&lt;p data-end=&quot;2322&quot; data-start=&quot;2317&quot; data-ke-size=&quot;size16&quot;&gt;마지막으로&lt;/p&gt;
&lt;h3 data-end=&quot;2366&quot; data-start=&quot;2324&quot; data-section-id=&quot;4rwzfc&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;span&gt;Microsoft Windows&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-end=&quot;2397&quot; data-start=&quot;2368&quot; data-ke-size=&quot;size16&quot;&gt;Windows는 Unix와 &lt;b&gt;혈연 관계가 없다.&lt;/b&gt;&lt;/p&gt;
&lt;p data-end=&quot;2404&quot; data-start=&quot;2399&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2404&quot; data-start=&quot;2399&quot; data-ke-size=&quot;size16&quot;&gt;개발 회사&lt;/p&gt;
&lt;p data-end=&quot;2447&quot; data-start=&quot;2406&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; &lt;span&gt;&lt;span&gt;Microsoft&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;2460&quot; data-start=&quot;2449&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2460&quot; data-start=&quot;2449&quot; data-ke-size=&quot;size16&quot;&gt;현재 Windows는&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Windows NT kernel&lt;/span&gt;&lt;br /&gt;&lt;span&gt; └─ Windows 10&lt;/span&gt;&lt;br /&gt;&lt;span&gt; └─ Windows 11&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p data-end=&quot;2533&quot; data-start=&quot;2519&quot; data-ke-size=&quot;size16&quot;&gt;구조를 기반으로 동작한다.&lt;/p&gt;
&lt;p data-end=&quot;2549&quot; data-start=&quot;2535&quot; data-ke-size=&quot;size16&quot;&gt;Windows는 역사적으로&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2572&quot; data-start=&quot;2551&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2559&quot; data-start=&quot;2551&quot; data-section-id=&quot;1x5uw0e&quot;&gt;GUI 중심&lt;/li&gt;
&lt;li data-end=&quot;2572&quot; data-start=&quot;2560&quot; data-section-id=&quot;c2512s&quot;&gt;개인용 컴퓨터 중심&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;2582&quot; data-start=&quot;2574&quot; data-ke-size=&quot;size16&quot;&gt;으로 발전했다.&lt;/p&gt;
&lt;p data-end=&quot;2613&quot; data-start=&quot;2584&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;2613&quot; data-start=&quot;2584&quot; data-ke-size=&quot;size16&quot;&gt;그래서 Unix 계열과는 &lt;b&gt;설계 철학이 다르다.&lt;/b&gt;&lt;/p&gt;
&lt;hr data-end=&quot;2618&quot; data-start=&quot;2615&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2636&quot; data-start=&quot;2620&quot; data-section-id=&quot;157th1v&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;6. 운영체제 전체 가계도(&lt;/b&gt;Unix &amp;middot; Linux &amp;middot; macOS &amp;middot; Windows&amp;nbsp; 등&lt;b&gt;)&amp;nbsp;&lt;/b&gt;&lt;/h2&gt;
&lt;p data-end=&quot;2660&quot; data-start=&quot;2638&quot; data-ke-size=&quot;size16&quot;&gt;운영체제 관계를 단순화하면 다음과 같다.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Unix (1969)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│&lt;/span&gt;&lt;br /&gt;&lt;span&gt;├─ BSD&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ └─ macOS&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│&lt;/span&gt;&lt;br /&gt;&lt;span&gt;└─ 영향을 준 계열&lt;/span&gt;&lt;br /&gt;&lt;span&gt; └─ Linux&lt;/span&gt;&lt;br /&gt;&lt;span&gt; ├─ Ubuntu&lt;/span&gt;&lt;br /&gt;&lt;span&gt; ├─ Debian&lt;/span&gt;&lt;br /&gt;&lt;span&gt; └─ RedHat&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;완전히 별도 계열&lt;/span&gt;&lt;br /&gt;&lt;span&gt;└─ Windows&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;175&quot; data-end=&quot;210&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;175&quot; data-end=&quot;210&quot;&gt;운영체제의 계보를 좀 더 자세히 이해하려면&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;두 단계 구조&lt;/b&gt;로 보면 쉽다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;212&quot; data-end=&quot;264&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;212&quot; data-end=&quot;264&quot;&gt;1. 운영체제 계열 (Unix / Windows 등)&lt;br /&gt;2. Linux 내부 배포판 구조&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot; data-start=&quot;266&quot; data-end=&quot;282&quot;&gt;아래 가계도가 전체 흐름이다.&lt;/p&gt;
&lt;div style=&quot;color: #333333; text-align: start;&quot;&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div id=&quot;code-block-viewer&quot;&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;Unix (1969)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│&lt;/span&gt;&lt;br /&gt;&lt;span&gt;├─ BSD 계열&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ ├─ FreeBSD&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ ├─ OpenBSD&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ ├─ NetBSD&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ └─ macOS (Darwin 기반)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│&lt;/span&gt;&lt;br /&gt;&lt;span&gt;├─ Linux 계열&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ ├─ Debian&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │ ├─ Ubuntu&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │ │ └─ Linux Mint&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │ └─ Kali Linux&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ ├─ Red Hat 계열&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │ ├─ Red Hat Enterprise Linux&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │ ├─ CentOS&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │ ├─ Rocky Linux&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │ └─ AlmaLinux&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ │&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ └─ 기타&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ ├─ Arch Linux&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│ └─ Gentoo&lt;/span&gt;&lt;br /&gt;&lt;span&gt;│&lt;/span&gt;&lt;br /&gt;&lt;span&gt;└─ 별도 계열&lt;/span&gt;&lt;br /&gt;&lt;span&gt;└─ Windows&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;os-family-tree-v0-qZ5k2xhPjTj8el_KMqBYxgPHyxrVeibqQ2Yrwy49NBM.webp&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;607&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bFNgL9/dJMcacvyefn/UgOYYUUSu99EAxVRIsYAV1/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bFNgL9/dJMcacvyefn/UgOYYUUSu99EAxVRIsYAV1/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bFNgL9/dJMcacvyefn/UgOYYUUSu99EAxVRIsYAV1/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbFNgL9%2FdJMcacvyefn%2FUgOYYUUSu99EAxVRIsYAV1%2Fimg.webp&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;1080&quot; height=&quot;607&quot; data-filename=&quot;os-family-tree-v0-qZ5k2xhPjTj8el_KMqBYxgPHyxrVeibqQ2Yrwy49NBM.webp&quot; data-origin-width=&quot;1080&quot; data-origin-height=&quot;607&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;hr data-end=&quot;2818&quot; data-start=&quot;2815&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;2839&quot; data-start=&quot;2820&quot; data-section-id=&quot;yxi1mv&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;7. 오늘날 운영체제 사용 구조&lt;/b&gt;&lt;/h2&gt;
&lt;p data-end=&quot;2861&quot; data-start=&quot;2841&quot; data-ke-size=&quot;size16&quot;&gt;현재 IT 세계는 대략 다음 구조다.&lt;/p&gt;
&lt;h3 data-end=&quot;2873&quot; data-start=&quot;2863&quot; data-section-id=&quot;frvpzs&quot; data-ke-size=&quot;size23&quot;&gt;개인용 PC&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2891&quot; data-start=&quot;2874&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2883&quot; data-start=&quot;2874&quot; data-section-id=&quot;33yq2f&quot;&gt;Windows&lt;/li&gt;
&lt;li data-end=&quot;2891&quot; data-start=&quot;2884&quot; data-section-id=&quot;1658dej&quot;&gt;macOS&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;2899&quot; data-start=&quot;2893&quot; data-section-id=&quot;1hroa5a&quot; data-ke-size=&quot;size23&quot;&gt;서버&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;2916&quot; data-start=&quot;2900&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;2916&quot; data-start=&quot;2900&quot; data-section-id=&quot;1hazmo3&quot;&gt;Linux (압도적 다수)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-end=&quot;2980&quot; data-start=&quot;2938&quot; data-section-id=&quot;vodom0&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;&lt;span&gt;Android&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-end=&quot;3006&quot; data-start=&quot;2982&quot; data-ke-size=&quot;size16&quot;&gt;Linux 커널을 기반으로 만든 운영체제다.&lt;/p&gt;
&lt;p data-end=&quot;3013&quot; data-start=&quot;3008&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;3013&quot; data-start=&quot;3008&quot; data-ke-size=&quot;size16&quot;&gt;개발 회사&lt;/p&gt;
&lt;p data-end=&quot;3056&quot; data-start=&quot;3015&quot; data-ke-size=&quot;size16&quot;&gt;&amp;rarr; &lt;span&gt;&lt;span&gt;Google&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-end=&quot;3096&quot; data-start=&quot;3058&quot; data-ke-size=&quot;size16&quot;&gt;그래서 사실상 &lt;b&gt;전 세계 스마트폰 대부분도 Linux 기반&lt;/b&gt;이다.&lt;/p&gt;
&lt;hr data-end=&quot;3101&quot; data-start=&quot;3098&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-end=&quot;3120&quot; data-start=&quot;3103&quot; data-section-id=&quot;1o5t5u2&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;8. 흥미로운 사실 몇 가지&lt;/b&gt;&lt;/h2&gt;
&lt;p data-end=&quot;3145&quot; data-start=&quot;3122&quot; data-section-id=&quot;1r9llez&quot; data-ke-size=&quot;size18&quot;&gt;1) 인터넷의 기반은 Unix 기술&lt;/p&gt;
&lt;p data-end=&quot;3184&quot; data-start=&quot;3147&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;초기 인터넷의 TCP/IP 스택은 BSD Unix에서 발전했다.&lt;/p&gt;
&lt;p data-end=&quot;3184&quot; data-start=&quot;3147&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;3210&quot; data-start=&quot;3186&quot; data-section-id=&quot;1ebvr8r&quot; data-ke-size=&quot;size18&quot;&gt;2) 대부분의 슈퍼컴퓨터는 Linux&lt;/p&gt;
&lt;p data-end=&quot;3239&quot; data-start=&quot;3212&quot; data-ke-size=&quot;size16&quot;&gt;현재 슈퍼컴퓨터의 대부분이 Linux를 사용한다.&lt;/p&gt;
&lt;p data-end=&quot;3239&quot; data-start=&quot;3212&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;3254&quot; data-start=&quot;3241&quot; data-section-id=&quot;6vat55&quot; data-ke-size=&quot;size18&quot;&gt;3) 개발자 환경&lt;/p&gt;
&lt;p data-end=&quot;3263&quot; data-start=&quot;3256&quot; data-ke-size=&quot;size16&quot;&gt;많은 개발자가&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3280&quot; data-start=&quot;3265&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3272&quot; data-start=&quot;3265&quot; data-section-id=&quot;1658dej&quot;&gt;macOS&lt;/li&gt;
&lt;li data-end=&quot;3280&quot; data-start=&quot;3273&quot; data-section-id=&quot;16rabu6&quot;&gt;Linux&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;3289&quot; data-start=&quot;3282&quot; data-ke-size=&quot;size16&quot;&gt;를 선호한다.&lt;/p&gt;
&lt;p data-end=&quot;3289&quot; data-start=&quot;3282&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-end=&quot;3294&quot; data-start=&quot;3291&quot; data-ke-size=&quot;size16&quot;&gt;이유는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3327&quot; data-start=&quot;3296&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3305&quot; data-start=&quot;3296&quot; data-section-id=&quot;17sgxvr&quot;&gt;Unix 환경&lt;/li&gt;
&lt;li data-end=&quot;3315&quot; data-start=&quot;3306&quot; data-section-id=&quot;1wy37x8&quot;&gt;강력한 터미널&lt;/li&gt;
&lt;li data-end=&quot;3327&quot; data-start=&quot;3316&quot; data-section-id=&quot;1m856xd&quot;&gt;개발 도구 호환성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-end=&quot;3334&quot; data-start=&quot;3329&quot; data-ke-size=&quot;size16&quot;&gt;때문이다.&lt;/p&gt;
&lt;hr data-end=&quot;3339&quot; data-start=&quot;3336&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h1 data-end=&quot;3348&quot; data-start=&quot;3341&quot; data-section-id=&quot;10ogz9i&quot;&gt;&amp;nbsp;&lt;/h1&gt;
&lt;h2 data-end=&quot;3348&quot; data-start=&quot;3341&quot; data-section-id=&quot;10ogz9i&quot; data-ke-size=&quot;size26&quot;&gt;&lt;b&gt;9.&amp;nbsp; 핵심 정리&lt;/b&gt;&lt;/h2&gt;
&lt;p data-end=&quot;3376&quot; data-start=&quot;3350&quot; data-ke-size=&quot;size16&quot;&gt;운영체제 관계를 한 줄로 정리하면 다음과 같다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-end=&quot;3487&quot; data-start=&quot;3378&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li data-end=&quot;3404&quot; data-start=&quot;3378&quot; data-section-id=&quot;1o02c68&quot;&gt;&lt;b&gt;Unix&lt;/b&gt; &amp;rarr; 현대 운영체제의 조상&lt;/li&gt;
&lt;li data-end=&quot;3428&quot; data-start=&quot;3405&quot; data-section-id=&quot;bdratz&quot;&gt;&lt;b&gt;macOS&lt;/b&gt; &amp;rarr; Unix 후손&lt;/li&gt;
&lt;li data-end=&quot;3465&quot; data-start=&quot;3429&quot; data-section-id=&quot;1ya8xgt&quot;&gt;&lt;b&gt;Linux&lt;/b&gt; &amp;rarr; Unix와 비슷하게 새로 만든 시스템&lt;/li&gt;
&lt;li data-end=&quot;3487&quot; data-start=&quot;3466&quot; data-section-id=&quot;eei0ol&quot;&gt;&lt;b&gt;Windows&lt;/b&gt; &amp;rarr; 별도 계열&lt;/li&gt;
&lt;/ul&gt;</description>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/148</guid>
      <comments>https://daily-stack.tistory.com/148#entry148comment</comments>
      <pubDate>Mon, 9 Mar 2026 22:25:32 +0900</pubDate>
    </item>
    <item>
      <title>nslookup 명령어</title>
      <link>https://daily-stack.tistory.com/147</link>
      <description>&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;nslookup&amp;nbsp;&lt;/h3&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;nslookup 명령어는 도메인 이름과 IP 주소 간의 변환을 수행하는 네트워크 도구이다. 주로 DNS 서버를 통해 도메인 이름에 해당하는 IP 주소를 확인하거나, 반대로 IP 주소에 대응하는 도메인 이름을 찾을 때 사용된다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;Windows, Mac, Linux 어느 OS에서도 사용가능하다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;nslookup = ns(name server) + lookup(검색)&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;DNS 레코드?&lt;br /&gt;DNS Record는 DNS 서버가 해당 패킷을 받았을 때 어떤식으로 처리할지를 나타내는 지침을 말한다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;img1.daumcdn.png&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;398&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Qawec/btsLBed3YsY/QLOTa2TFbQDsknVE1fAxqK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Qawec/btsLBed3YsY/QLOTa2TFbQDsknVE1fAxqK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Qawec/btsLBed3YsY/QLOTa2TFbQDsknVE1fAxqK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQawec%2FbtsLBed3YsY%2FQLOTa2TFbQDsknVE1fAxqK%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;653&quot; height=&quot;398&quot; data-filename=&quot;img1.daumcdn.png&quot; data-origin-width=&quot;653&quot; data-origin-height=&quot;398&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;잘 정리되어 있는 사이트 :&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-DNS-%EB%A0%88%EC%BD%94%EB%93%9C-%EC%A2%85%EB%A5%98-%E2%98%85-%EC%95%8C%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC#aaaa&quot;&gt;  DNS 레코드 종류 ★ 완벽 정리&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1735799996673&quot; style=&quot;color: #333333; text-align: start;&quot; contenteditable=&quot;false&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/c1tkyc/hyXSEZnTsW/zhg6aMmBmtQdbPDKPeIrNk/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/qZlPt/hyXSpgQECk/KDE9TKCQ50fkBFX9OrZky0/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/fRpqE/hyXSqmxH4c/0dUZqa68HnY8ykMaOksbQ1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot; data-og-url=&quot;https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-DNS-%EB%A0%88%EC%BD%94%EB%93%9C-%EC%A2%85%EB%A5%98-%E2%98%85-%EC%95%8C%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC&quot; data-og-source-url=&quot;https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-DNS-%EB%A0%88%EC%BD%94%EB%93%9C-%EC%A2%85%EB%A5%98-%E2%98%85-%EC%95%8C%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC#aaaa&quot; data-og-host=&quot;inpa.tistory.com&quot; data-og-description=&quot;DNS 레코드 DNS Record는 DNS 서버가 해당 패킷을 받았을 때 어떤식으로 처리할지를 나타내는 지침을 말한다. 간단히 말하면 DNS 상에서 도메인에 관한 설정을 하기 위해 사용되는 일련의 설정 문자라&quot; data-og-title=&quot;  DNS 레코드 종류 ★ 완벽 정리&quot; data-og-type=&quot;article&quot; data-ke-align=&quot;alignCenter&quot; data-ke-type=&quot;opengraph&quot;&gt;&lt;a style=&quot;color: #000000;&quot; href=&quot;https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-DNS-%EB%A0%88%EC%BD%94%EB%93%9C-%EC%A2%85%EB%A5%98-%E2%98%85-%EC%95%8C%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC#aaaa&quot; data-source-url=&quot;https://inpa.tistory.com/entry/WEB-%F0%9F%8C%90-DNS-%EB%A0%88%EC%BD%94%EB%93%9C-%EC%A2%85%EB%A5%98-%E2%98%85-%EC%95%8C%EA%B8%B0-%EC%89%BD%EA%B2%8C-%EC%A0%95%EB%A6%AC#aaaa&quot;&gt;
&lt;div style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/c1tkyc/hyXSEZnTsW/zhg6aMmBmtQdbPDKPeIrNk/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/qZlPt/hyXSpgQECk/KDE9TKCQ50fkBFX9OrZky0/img.png?width=800&amp;amp;height=420&amp;amp;face=0_0_800_420,https://scrap.kakaocdn.net/dn/fRpqE/hyXSqmxH4c/0dUZqa68HnY8ykMaOksbQ1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;p style=&quot;color: #000000;&quot; data-ke-size=&quot;size16&quot;&gt;  DNS 레코드 종류 ★ 완벽 정리&lt;/p&gt;
&lt;p style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;DNS 레코드 DNS Record는 DNS 서버가 해당 패킷을 받았을 때 어떤식으로 처리할지를 나타내는 지침을 말한다. 간단히 말하면 DNS 상에서 도메인에 관한 설정을 하기 위해 사용되는 일련의 설정 문자라&lt;/p&gt;
&lt;p style=&quot;color: #909090;&quot; data-ke-size=&quot;size16&quot;&gt;inpa.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;Syntax&lt;/h3&gt;
&lt;pre id=&quot;code_1735799996674&quot; class=&quot;routeros&quot; style=&quot;background-color: #f8f8f8; color: #383a42; text-align: start;&quot; data-ke-type=&quot;codeblock&quot; data-ke-language=&quot;shell&quot;&gt;&lt;code&gt;nslookup [호스트 이름 또는 IP 주소]&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;ex)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignLeft&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처d.PNG&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;244&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/WoG9J/btsLDwLGq69/IagU44pM0qxNOcKc4B530K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/WoG9J/btsLDwLGq69/IagU44pM0qxNOcKc4B530K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/WoG9J/btsLDwLGq69/IagU44pM0qxNOcKc4B530K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FWoG9J%2FbtsLDwLGq69%2FIagU44pM0qxNOcKc4B530K%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;373&quot; height=&quot;244&quot; data-filename=&quot;캡처d.PNG&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;244&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&gt;&lt;span style=&quot;color: #9d9d9d; text-align: left;&quot;&gt;&lt;b&gt;[Server]&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;:&lt;/span&gt;&amp;nbsp;사용되는 DNS 서버 정보를 나타낸다.&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #9d9d9d; text-align: left;&quot;&gt;&lt;b&gt;[Address]&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;:&lt;/span&gt;&amp;nbsp;사용되는 DNS 서버의 IP 주소이다.
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DNS 서버에 관한 정보는 사용하는 통신사(ISP)의 와이파이, 인터넷에 따라 다르다.&amp;nbsp;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;DNS 서버의 작동 방식:&lt;/li&gt;
&lt;li&gt;사용자가 브라우저에 도메인 이름 입력.&lt;/li&gt;
&lt;li&gt;브라우저는 운영 체제의 DNS 클라이언트(로컬 DNS 캐시)를 확인.&lt;/li&gt;
&lt;li&gt;로컬 캐시에 없는 경우, 인터넷 서비스 제공자(ISP)의 DNS 서버에 요청.&lt;/li&gt;
&lt;li&gt;ISP의 DNS 서버에서 결과를 찾거나 다른 DNS 서버로 요청 전달(재귀 요청).&lt;/li&gt;
&lt;li&gt;권한 DNS 서버가 최종적으로 IP 주소를 반환.&lt;/li&gt;
&lt;li&gt;반환된 IP 주소를 사용해 서버에 연결.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #9d9d9d; text-align: left;&quot;&gt;&lt;b&gt;[Non-authoritative answer]&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;: 공부해보기?&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #9d9d9d; text-align: left;&quot;&gt;&lt;b&gt;[Name]&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;:&quot;naver.com&quot;의 호스트 이름.&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;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;&lt;span style=&quot;color: #9d9d9d; text-align: left;&quot;&gt;&lt;b&gt;[Addresses]&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;: &quot;naver.com&quot;의 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;- 중요 정보&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;&lt;span style=&quot;color: #353638; text-align: left;&quot;&gt;결과 4 개의 IP 주소가 있다. 이는 네이버의 웹 서버들의 IP 주소들로, 이런저런 목적을 달성하기 위해 웹 서버를 4개로 병렬로 운영하고 있음을 추론할 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot;&gt;DNS 서버 변경하기&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초기에&amp;nbsp;설정되어&amp;nbsp;있는&amp;nbsp;해당&amp;nbsp;통신사의&amp;nbsp;DNS&amp;nbsp;서버를&amp;nbsp;이용하지&amp;nbsp;않아도&amp;nbsp;된다.&amp;nbsp;지금&amp;nbsp;다니고&amp;nbsp;있는&amp;nbsp;회사에서도&amp;nbsp;초기에&amp;nbsp;설정된&amp;nbsp;DNS&amp;nbsp;서버를&amp;nbsp;사용하면&amp;nbsp;사내망에&amp;nbsp;접속할&amp;nbsp;수&amp;nbsp;없었기&amp;nbsp;때문에&amp;nbsp;DNS&amp;nbsp;서버를&amp;nbsp;직접&amp;nbsp;변경&amp;nbsp;해주어야했다.&lt;br /&gt;&lt;br /&gt;아래와&amp;nbsp;같이&amp;nbsp;DNS&amp;nbsp;서버를&amp;nbsp;수동으로&amp;nbsp;변경하는&amp;nbsp;과정을&amp;nbsp;거치게&amp;nbsp;되면&amp;nbsp;다른&amp;nbsp;DNS&amp;nbsp;서버를&amp;nbsp;이용할&amp;nbsp;수&amp;nbsp;있다.&lt;br /&gt;&lt;br /&gt;1)&amp;nbsp;제어판에서&amp;nbsp;DNS&amp;nbsp;서버&amp;nbsp;변경하기&lt;br /&gt;&lt;br /&gt;제어판&amp;nbsp;&amp;rarr;&amp;nbsp;네트워크&amp;nbsp;및&amp;nbsp;공유센터&amp;nbsp;&amp;rarr;&amp;nbsp;연결&amp;nbsp;&amp;rarr;&amp;nbsp;속성&amp;nbsp;&amp;rarr;&amp;nbsp;인터넷&amp;nbsp;프로토콜&amp;nbsp;버전&amp;nbsp;4(IPv4)&amp;nbsp;&amp;rarr;&amp;nbsp;다음&amp;nbsp;DNS&amp;nbsp;서버&amp;nbsp;주소&amp;nbsp;사용&amp;nbsp;&amp;rarr;&amp;nbsp;기본&amp;nbsp;설정&amp;nbsp;DNS&amp;nbsp;및&amp;nbsp;보조&amp;nbsp;DNS&amp;nbsp;서버(선택)&amp;nbsp;입력&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처d.PNG&quot; data-origin-width=&quot;1733&quot; data-origin-height=&quot;550&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FAUT2/btsLBlZlVUQ/9g0qsJkCayieqNRCGlEDhK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FAUT2/btsLBlZlVUQ/9g0qsJkCayieqNRCGlEDhK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FAUT2/btsLBlZlVUQ/9g0qsJkCayieqNRCGlEDhK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFAUT2%2FbtsLBlZlVUQ%2F9g0qsJkCayieqNRCGlEDhK%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;892&quot; height=&quot;283&quot; data-filename=&quot;캡처d.PNG&quot; data-origin-width=&quot;1733&quot; data-origin-height=&quot;550&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;캡처d.PNG&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;524&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bcV1Jx/btsLBjmQsg9/ppFv8PyIojdIhs1XtGrk4K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bcV1Jx/btsLBjmQsg9/ppFv8PyIojdIhs1XtGrk4K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bcV1Jx/btsLBjmQsg9/ppFv8PyIojdIhs1XtGrk4K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbcV1Jx%2FbtsLBjmQsg9%2FppFv8PyIojdIhs1XtGrk4K%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;471&quot; height=&quot;524&quot; data-filename=&quot;캡처d.PNG&quot; data-origin-width=&quot;471&quot; data-origin-height=&quot;524&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;참고로 잘못된 DNS 서버 주소를 입력하면 인터넷 접속이 안된다. 따라서 수동으로 DNS 서버를 설정할 경우에는&amp;nbsp; DNS 서버의 IP 주소를 정확하게 입력해야 한다.&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;참고 사이트:&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;/span&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://m.blog.naver.com/kangyh5/221701387941&quot;&gt;DNS서버 확인 및 변경하기(IP 주소 찾기:nslookup) : 네이버 블로그&lt;/a&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://jibinary.tistory.com/265&quot;&gt;[DNS 네트워크] nslookup 명령어란? 쉽게 개념 정리 &amp;mdash; 아주 쉽게 정리한 블로그&lt;/a&gt;&lt;/p&gt;</description>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/147</guid>
      <comments>https://daily-stack.tistory.com/147#entry147comment</comments>
      <pubDate>Mon, 30 Dec 2024 14:22:36 +0900</pubDate>
    </item>
    <item>
      <title>랩탑 배터리 수명 확인하기</title>
      <link>https://daily-stack.tistory.com/146</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;실행 순서&lt;/b&gt;&lt;/h3&gt;
&lt;ol style=&quot;list-style-type: decimal;&quot; data-ke-list-type=&quot;decimal&quot;&gt;
&lt;li&gt;win + R로 실행창 띄운 뒤&lt;/li&gt;
&lt;li&gt;cmd 입력, 혹은 그냥 검색창에 cmd 검색해도 됨&lt;/li&gt;
&lt;li&gt;명령 프롬프트 등장&lt;/li&gt;
&lt;li&gt;powercfg -batteryreport 입력&lt;/li&gt;
&lt;li&gt;C:으로&amp;nbsp;시작하는&amp;nbsp;URL이&amp;nbsp;나오는데&amp;nbsp;이거&amp;nbsp;그대로&amp;nbsp;복사해서&amp;nbsp;브라우저&amp;nbsp;주소창에&amp;nbsp;입력&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;123.png&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;188&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sxuT3/btsLsCyX3NV/wzUboL2UhpUK2qk6DgPMWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sxuT3/btsLsCyX3NV/wzUboL2UhpUK2qk6DgPMWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sxuT3/btsLsCyX3NV/wzUboL2UhpUK2qk6DgPMWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsxuT3%2FbtsLsCyX3NV%2FwzUboL2UhpUK2qk6DgPMWk%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;1471&quot; height=&quot;188&quot; data-filename=&quot;123.png&quot; data-origin-width=&quot;1471&quot; data-origin-height=&quot;188&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래&amp;nbsp;사진처럼&amp;nbsp;battery&amp;nbsp;report화면이&amp;nbsp;나오고&amp;nbsp;이를&amp;nbsp;통해&amp;nbsp;배터리&amp;nbsp;상태를&amp;nbsp;확인할&amp;nbsp;수&amp;nbsp;있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;report.png&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;388&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1yRO1/btsLqZ257rv/nM5126hPDbwxyGRTUrA5Qk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1yRO1/btsLqZ257rv/nM5126hPDbwxyGRTUrA5Qk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1yRO1/btsLqZ257rv/nM5126hPDbwxyGRTUrA5Qk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1yRO1%2FbtsLqZ257rv%2FnM5126hPDbwxyGRTUrA5Qk%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;1160&quot; height=&quot;388&quot; data-filename=&quot;report.png&quot; data-origin-width=&quot;1160&quot; data-origin-height=&quot;388&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배터리 상태를 평가하기 위해 살펴봐야 할 주요 지표는 다음과 같다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;설계 용량(Design Capacity)&lt;/b&gt;: 67,010 mWh&lt;/li&gt;
&lt;li&gt;&lt;b&gt;완전 충전 용량(Full Charge Capacity)&lt;/b&gt;: 57,128 mWh&lt;/li&gt;
&lt;li&gt;&lt;b&gt;사이클 수(Cycle Count)&lt;/b&gt;: 596회&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;배터리 효율?&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Design Capacity 는Capacity는 처음 설계한 용량이고, Full Charge Capacity는 현재 완충했을 때의 배터리 용량이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;b&gt;완충 시 용량을 설계 용량으로 나누면 배터리 효율을 구할 수 있는데, 보통 60 ~70%까지 떨어진다면 배터리를 교체를 고려하는 것이 좋다.&lt;/b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 내 랩탑의 경우는&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;57,128 / 67,010 * 100 = 85.25(%) 임을 알 수 있는데&lt;/p&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년 반 정도 사용하 했다면 효율이 90% 정도까지 떨어진다고 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;CYCLE COUNT&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제일 아래에 CYCLE COUNT라는 항목도 볼 수 있는데, CYCLE COUNT 란&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설계된 배터리 용량 만큼의 전기 에너지를 사용하는 방전(discharge) 주기로서,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배터리 사이클 = 설계 배터리 용량을 100% 소모한 횟수라고 이해하면 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좀 더 쉽게 생각해보면, 100% 충전된 상태에서 충전 없이 0%가 될 때까지 쭉 사용하였을 때 CYCLE COUNT가 1 증가하게 되는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;헷갈리지 말아야 할 것은 배터리 사이클 횟수는 완충 횟수, 방전 횟수가 아니다. 방전 해야만 +1이 되는 게 아니라는 의미.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 배터리를 100% 완충 후에 50%만 사용하고 다시 충전했다면 0.5회 사이클을 이용한 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 &lt;b&gt;&lt;i&gt;실제로 소모한 배터리량 / 설계 배터리 용량 = 배터리 사이클 횟수라고&lt;/i&gt;&lt;/b&gt; 이해하면 될 듯하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적인 환경에서 사용할 경우 1년 반 사용했다면&amp;nbsp; CYCLE COUNT는 약 300~450회 정도 된다고 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;배터리 수명을 오래 유지하기 위해서는&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 밤새 충전 금지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 20 ~ 80 % 룰&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 발열 줄이기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/146</guid>
      <comments>https://daily-stack.tistory.com/146#entry146comment</comments>
      <pubDate>Sun, 22 Dec 2024 13:17:11 +0900</pubDate>
    </item>
    <item>
      <title>[라이브 특강] 이론 파트</title>
      <link>https://daily-stack.tistory.com/145</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;SW 개발 방법론&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구조적 방법론 : 절차지향, 하향식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;객체지향 방법론&lt;/b&gt;: 객체관의 관계, 상향식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애자일 방법론: 변화에 빠르고 유연히 대응&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;SW 개발 모델&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폭포수 모델: 순차적 접근&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로토타이핑 모델: 시제품&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나선형 모델: 계획 &amp;rarr; 위험분석 &amp;rarr; 개발 &amp;rarr; 평가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RAD: 빠른 개발 주기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;V 모형: 단위테스트(정적, 동적)&amp;nbsp; &amp;rarr; 통합테스트(하향식-스텁, 상향식-드라이버), (빅뱅테스트)&amp;nbsp; &amp;rarr; 시스템 테스트 &amp;rarr; 인수 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;애자일 방법론&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작은 구성 요소 빠르게 개발&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- XP (의사, 피, 존, 용기, 담)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SCRUM: 백로그(기능명세서), 스프린트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;비용 산정&lt;/h4&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;COCOMO&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 조직형: 5만 라인 이하&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 반분리형: 30만 라인 이하&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 내장형: 30만 라인 이상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Putname 기법: 고든 레일리 곡선&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능 점수 기법 : 기능에 비용 매김&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;작업 분해(WBS)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CPM 네트워크 작성 : 전후 관계를 따져서 네트워크 계산 A &amp;rarr; B&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최소 소요 기간 계산: 임계 기간(가장 큰 숫자)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간트 차트 표현: 내가 알던 WBS&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;요구사항 개발 프로세스&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개발 프로세스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 도출 &amp;rarr; 분석 &amp;rarr; 명세 &amp;rarr; 확인&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; &amp;nbsp; DFD, DD, Minispec, STD, UML 등&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; &amp;nbsp; 기능 요구사항&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 비기능 요구사항&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CASE 도구 (Computer Aid Software Engineering)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 상위 CASE: 분석 설계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 하위 CASE: 구현 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;구조적 분석 모델&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료 흐름도 DFD&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료 사전 DD&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소단위 명세서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ERD 개체 사각형 마름모 관계 속성 동그라미 ??&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상태 전이도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;객체지향 분석 모델&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;럼바우&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 객체 모델링: 객체 다이어그램(클래스 다이어그램)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 동적 모델링: 상태 다이어그램&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 기능 모델링: DFD&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Booch: 미시적 및 거시적 개발&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자콥슨: 유스케이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드와 요든: ERD&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위르프 브룩: 분석-설계 구분 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;UI 설계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UI/UX&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UI: 사용자가 접하는 화면 디자인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UX: 사용자가 화면을 이용하면서 느끼는 경험&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UI 유형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CLI: 키보드 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GUI: 마우스 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;NUI: 자연스러운 움직임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;OUI: 모든 것이 입력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UI 설계원칙&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;직관성: 누구나 쉽게 이해하고 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유효성: 목적을 정확히 달성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;학습성: 누구나 쉽게 배워야 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유연성: 요구사항 수용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UI 설계도구 (별로 안중요)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 와이어 프레임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 스토리 보드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 프로토타입&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 목업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 유스케이스&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;형상 관리&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소프트웨어 변경 사항을 추적하고 관리하는 도구&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형상관리 절차&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형상 식별: 관리 대상 선정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;형상 통제&lt;/b&gt;: 변경 요청을 검토하고 승인하여, 현재의 기준선에 반영&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형상 감사: 변경 검증&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형상 기록: 변경 사항의 이력을 보존&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형상 관리 도구&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CVS, SVN, GIT&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;개발 프레임워크&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프레임워크: 개발 구조를 제공하는 틀&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;라이브러리: 재사용 가능한 코드 모음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API: 소프트웨어 간 상호작용을 위한 인터페이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ORM: 객체지향 프로그래밍 언어의 객체를 데이터베이스의 테이블과 매핑&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;모듈 구현&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모듈: 특정 기능을 수행하며 다른 모듈과 결합하여 전체 시스템을 구성할 수 있는 단위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;독립성: 응집도는 높이고, 결합도는 낮춘다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FAN - IN, FAN - OUT&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;결합도&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자료 결합도(Data): 값 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스탬프 결합도(Stamp): 배열, 스트럭쳐, 포인터 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제어 결합도(Control): 제어 요소 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 결합도(External): 다른 모듈 선언 변수 참조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공통 결합도(Common): 전역변수 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용 결합도(Content): 다른 모듈 내부 기능 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;응집도&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능적 응집도(Functional): 단일 목적 수행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순차적 응집도(Sequential): 출력값이 입력값으로 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통신적 응집도(Communication): 동일한 입력/출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;절차적 응집도(Procedual): 순차적으로 수행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간적 응집도(Temporal): 특정 시간에 수행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논리적 응집도(Logical): 유사한 성격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우연적 응집도(Coincidental): 연관 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;EAI(Enterprise Appliation Integraion)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기업 내 다양한 애플리케이션 간의 데이터를 통합하고 상호 운용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - Point-to-Point: 애플리케이션 간 1 : 1 연결 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - Hub &amp;amp; Spoke : 중앙 허브를 통해 애플리케이션을 연결하여 관리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - Message Bus: 메시지 버스를 사용해 각 애플리케이션이 버스와 통신&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - Hybrid: 여러 통합 방식을 혼합&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;SOAP&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XML 기반의 표준화된 프로토콜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보안성과 트랜잭션 관리가 중요한 복잡한 웹 서비스 통신에 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP, HTTPS, SMTP 등을 통한 XML 기반 메시지 교환 프로토콜&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;- SOAP: XML을 기반으로 한 웹 서비스 통신 프로토콜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- UDDI: 웹 서비스의 검색과 등록을 위한 표준화된 디렉터리 서비스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- WSDL: XML 형식의 언어(기능, 위치, 사용법 기술)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;REST&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP 기반의 경량화된 아키텍처 스타일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;URL을 통해 자원을 표현하고 상태를 주고받는다&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; &amp;nbsp; - 자원 : URI&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 행위: GET, POST, DELETE, PUT&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 표현: 데이터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;HTTP&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP: 클라이언트와 서버 간에 하이퍼텍스트를 전송하기 위한 웹 통신 프로토콜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hypertext: 문서 내의 링크를 통해 다른 문서나 리소스로 연결할 수 있는 텍스트 형식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML: 웹 페이지의 구조와 내용을 정의하는 마크업 언어, 하이퍼텍스트 작성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AJAX: 웹 페이지를 전체 새로 고침 없이 비동기적으로 데이터를 주고 받음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;인터페이스 전송 데이터&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;JSON: 경량 데이터 교환 형식으로, 가독성과 구조화가 뛰어나 주로 웹에서 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XML: 데이터를 구조화하고 계층적으로 표현하는 마크업 언어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;YAML: 가독성이 높은 데이터 직렬화 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CSV: 데이터를 쉼표로 구분하여 표현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;객체지향 구성요소&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;클래스: 객체를 정의하는 설계도나 틀로, 객체의 속성과 메서드를 포함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;속성: 객체가 가지는 데이터나 상태를 나타내는 변수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메서드: 객체가 수행할 수 있는 동작이나 기능을 정의한 함수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체: 클래스로부터 생성된 실제 인스턴스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;메시지: 객체 간에 메서드를 호출하여 상호작용 하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;객체지향 특징&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정보은닉: 객체 내부의 세부 구현 내용을 숨기고, 필요한 정보만 외부에 공개&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;캡슐화: 객체의 속성과 메서드를 하나로 묶고, 외부에서 접근을 제한, GET SET 같은거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상속: 기존 클래스의 속성과 메서드를 새로운 클래스가 물려받아서 사용할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다형성: 같은 메서드나 연산이 다양한 객체에서 다르게 동작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추상화: 복잡한 시스템에서 중요한 특징만을 추려내어 간결하게 표현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;객체지향 설계 원칙(☆)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단일 책임 원칙: 한 클래스는 하나의 책임만 진다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개방 폐쇄 원칙: 확장에는 열려 있고, 수정에는 닫혀 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리스코프 치환 원칙: 자식 클래스는 언제나 부모 클래스를 대체&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인터페이스 분리 원칙: 사용하지 않는 인터페이스는 구현하지 않는다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의존성 역전 원칙: 자주 변화하지 않는 것에 의존하다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;테스트의 기본 원칙&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결함 집중(파레트 법칙): 결함은 20%의 핵심 모듈에서 80%의 오류가 발생한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;살충제 패러독스: 동일한 테스트 케이스를 반복하면 더 이상 새로운 결함을 발견하지 못한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 부재의 궤변: 소프트웨어가 결함이 없더라도 사용자의 요구사항을 만족하지 못하면 의미없다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;테스트 오라클(☆)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트의 결과가 참인지 거짓인지 판단하기 위해 미리 정의된 참값을 입력하여 비교하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 참 오라클: 모든 입력값에 대해 정확한 기대 결과를 제공하여 완벽하게 검증&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 샘플링 오라클: 일부 입력값에 대해서만 정확한 기대 결과를 제공&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 휴리스틱 오라클: 경험이나 직관을 바탕으로 예상 결과를 제공해 검증&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 일관성 검사 오라클: 변경 전후로 테스트 결과의 일관성 검증, 여러 버전 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;테스트 기법(☆)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;화이트박스 테스트&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 문장검증, 분기검증, 경로검증, 조건검증&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;블랙박스 테스트&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 동등 분할 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 경계값 분석&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 원인 효과 그래프 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 오류 예측 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 비교 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 상태전이 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;테스트 장치&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 드라이브: 상향식 테스트에 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 스텁: 햐향식 테스트에 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 케이스: 입력값, 실행 조건, 기대 결과 등의 집합&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;성능 분석 지표&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처리량: 일정 시간 내에 처리하는 작업의 양&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응답 시간: 요청 전송 시점부터 첫 응답 시점까지의 시간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경과 시간: 요청 전송 시점부터 첫 처리가 완료되기까지의 총 시간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자원 사용률: CPU, 메모리, 네트워크의 자원 사용량&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;소스코드 품질 분석&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소스코드 품질 분석&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 동료 검토, 페어 프로그래밍&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 워크 스루 , 팀 회의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 인스펙션, 공식 회의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리팩토링&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 기능의 변경 없이 내부 구조를 개선하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;튜닝&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; - 튜닝 SQL문을 최적화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;유지보수&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수정 보수(Corrective Maintenance): 오류 수정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;적응 보수(Adaptive Maintenance): 환경 변화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;향상 보수(Perfective Maintenance): 기능추가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예방 보수(Perventive Maintenace): 잠재적 오류 대비&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;DRM&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;디지털 컨텐츠의 저작권을 보호하고, 불법 복제 및 무단 사용을 방지하기 위해 사용되는 기술&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저작권 보호 기술&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암호화 기술: 특정 키를 가진 사용자만이 콘텐츠를 이용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위변조 방지(Tamper-Proofing): 콘텐츠에 무단 조작 시 감지&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;워터마킹: 콘텐츠에 저작권 정보를 은닉&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;핑거프린팅: 저작권 정보와 구매자 정보 삽입&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;스키마&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스키마는 데이터베이스의 구조와 제약 조건을 정의하는 설계도&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3계층 스키마&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 외부 스키마: 사용자 관점의 데이터뷰&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 내부 스키마: 물리적 저장구조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 개념 스키마: 데이터베이스의 논리적 구조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;독립성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 논리적 독립성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 물리적 독립성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터베이스 설계(☆)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설계 단계&lt;br /&gt;- 개념 설계: ERD로 구조를 정의하는 단계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 논리 설계: 데이터베이스 스키마로 논리적 구조를 설계하는 단계, 정규화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 물리 설계: 저장 매체와 성능을 고려한 물리적 구현 단계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 모델&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 데이터의 구조, 연산, 제약조건을 논리적 또는 개념적으로 표현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;관계형 모델&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;칼럼: 테이블의 속성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;튜플: 테이블의 행&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인: 칼럼의 값 범위&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차수: 칼럼의 개수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카디널리티: 튜플의 개수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;널: 값이 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;이상현상(☆)&lt;/b&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터의 비정상적인 처리가 발생하여 무결성이 깨지는 문제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삽입이상: 데이터를 삽입할 때, 불필요한 데이터가 함께 삽입되는 현상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삭제이상: 튜플을 삭제할 때, 연쇄 삭제 현상으로 인해 정보 손실&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;갱신이상: 데이터를 갱신할 때, 일부 정보만 갱신되어 정보에 모순이 생기는 현상&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;함수적 종속관계&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한 속성의 값이 다른 속성에 의해 고유하게 결정되는 관계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표현&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A &amp;rarr; B ( A가 B를 결정한다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A 는 결정자, B는 종속자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 완전 함수 종속: 기본키 전체에 의해 결정되는 종속 관계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 부분 함수 종속: 기본키의 일부 속성에 의해 결정되는 종속 관계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이행적 함수 종속: 한 속성이 다른 속성을 통해 간접적으로 종속되는 관계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;정규화&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 중복을 줄이고 일관성을 유지하기 위해 데이터를 구조적으로 분해하는 과정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1: 도메인이 원자값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2: 부분함수 종속 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3:&amp;nbsp; 이행적 함수 종속 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;B: 모든 결정자가 후보키&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4: 다치 종속 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5: 조인 종속 이용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;반정규화&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;성능 향상을 위해 정규화 된 데이터베이스 구조를 의도적으로 일부 결합하거나 중복을 허용하는 과정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;데이터베이스 이중화 &amp;amp; 백업&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기밀성: 아무나 보면 안됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무결성: 인가된 사용자만 수정 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가용성: 인가된 사용자라면 언제든지 이용 가능 해야함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이중화:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;데이터베이스의 고가용성을 보장하기 위해 동일한 데이터를 복제하여 두개 이상의 서버에 저장하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;백업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-전체 백업: 모든 데이터 백업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 증분 백업: 전체 백업 이후에 변경/추가된 데이터만 백업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 차등 백업: 전체 백업 이후, 모든 변경/ 추가된 데이터를 백업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 합성 백업: 전체백업 + 증분백업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RTO/RPO&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- RTO: 복구 시간 목표(시간, 2시간 안에는 무조건 복구 해야함)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- RPO: 복구 시점 목표(데이터 양, 복구 되기까지 손실된 데이터의 양)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;물리설계&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;355&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uFyZ2/btsJ9LiXWj0/5T2AovzBwGVYW5u88b6u7K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uFyZ2/btsJ9LiXWj0/5T2AovzBwGVYW5u88b6u7K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uFyZ2/btsJ9LiXWj0/5T2AovzBwGVYW5u88b6u7K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuFyZ2%2FbtsJ9LiXWj0%2F5T2AovzBwGVYW5u88b6u7K%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;608&quot; height=&quot;355&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;608&quot; data-origin-height=&quot;355&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;키&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테이블에서 행을 고유하게 식별하는 속성 또는 속성들의 집합&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유일성: 키 값이 중복되지 않음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최소성: 키가 행을 고유하게 식별하는데 필요한 최소한의 속성들로 구성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기본키: 유일성 최소성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;후보키: 유일성 최소성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대체키: 후보키 - 기본키&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;슈퍼키: 유일성 만 만족&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;무결성 제약조건&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터의 일관성과 정확성을 유지하기 위한 규칙&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;종류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개체 무결성: 기본키는 중복되거나 NULL 값을 가질 수 없다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참조 무결성: 외래키는 참조하는 테이블의 기본키 값과 일치해야 한다. CASCADE, RESTRICT&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도메인 무결성: 속성 값은 미리 정의된 데이터 타입과 값의 범위 내에 있어야 한다는 규칙&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;트랜잭션&lt;/h4&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;ACID&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Atomicity&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Consistency&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Isolation&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Durability&lt;/p&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;commit rollback savepoint&lt;/p&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;partially commited : commit을 시키기 전 상태&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;병행 제어&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동시에 실행되는 트랜젝션 간의 상호작용을 관리해 데이터 일관성을 유지하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;갱신분실, 비완료 의존성, 모순성, 연쇄복귀&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;병행제어 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로킹: 트랜젝션이 데이터에 접근할 때 잠금을 걸어 다른 트랜잭션의 접근을 제어하는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2단계 로킹: 확장 단계(잠금)와 축소단계(해제)로 나누어 잠금이 이루어지는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타임 스탬프: 트랜잭션에 시간순서 값을 부여해 충돌을 방지하는 병행제어 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;낙관적 병행제어: 트랜잭션 동안 충돌을 가정하지 않고 종료 시점에만 충돌을 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다중버전 병행제어: 여러 버전의 타임스탬프를 비교&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;데이터베이스 장애&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템 운영 중 발생하는 다양한 오류로 인해 데이터베이스 작업이 중단되는 상황&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;덤프&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스의 모든 데이터와 구조를 백업하거나 복구하기 위해 파일로 내보내는 작업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;회복기법 (이거 이해 못함)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그 기반 회복 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 지연 갱신: REDO(재실행)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 즉시 갱신: REDO + UNDO&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;검사점 회복 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그림자 페이징 회복 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미디어 회복 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ARIES 회복 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;관계대수 &amp;amp; 관계해석&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관계 대수&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스에서 원하는 데이터를 얻기 위해 연산을 통해 결과를 도출한는 &lt;b&gt;절차적 언어&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;270&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/boZ4Xq/btsJ7RSNPEv/jPUp7PpBgvfARWonNvGkW0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/boZ4Xq/btsJ7RSNPEv/jPUp7PpBgvfARWonNvGkW0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/boZ4Xq/btsJ7RSNPEv/jPUp7PpBgvfARWonNvGkW0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FboZ4Xq%2FbtsJ7RSNPEv%2FjPUp7PpBgvfARWonNvGkW0%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;620&quot; height=&quot;270&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;270&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관계 해석&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조건을 명시하여 원하는 데이터를 정의하는&lt;b&gt; 비절차적 언어&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;기억장치&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레지스터: CPU 내부에 있는 초고속 저장장치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;캐시메모리: CPU와 주기억장치 간 데이터 전송을 빠르게 하기 위해 사용되는 임시 저장소&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;주기억장치: 프로그램과 데이터를 일시적으로 저장&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연관메모리: 내용의 일부를 이용하여 엑세스하는 장치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보조기억장치: 데이터를 영구적으로 저장하는 장치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SSD: 반도체 기반의 비휘발성 저장장치&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;운영체제&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;207&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cEjTu2/btsJ9N8VFdr/QiAhrKqmXq3SWmiBWNEzG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cEjTu2/btsJ9N8VFdr/QiAhrKqmXq3SWmiBWNEzG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cEjTu2/btsJ9N8VFdr/QiAhrKqmXq3SWmiBWNEzG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcEjTu2%2FbtsJ9N8VFdr%2FQiAhrKqmXq3SWmiBWNEzG1%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;640&quot; height=&quot;207&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;640&quot; data-origin-height=&quot;207&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;UNIX 운영체제&lt;/h4&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;커널 쉘 Utility&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 시스템 구조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 부트 블록, 슈퍼 블록, i-node 블록, 데이터 블록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파일 디스크립터&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 필요한 파일 관리 정보를 포함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;기억장치 관리 전략&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;402&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5woVt/btsJ7syRQ8b/sKB1cy9IeAsyrcnPxB7mn0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5woVt/btsJ7syRQ8b/sKB1cy9IeAsyrcnPxB7mn0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5woVt/btsJ7syRQ8b/sKB1cy9IeAsyrcnPxB7mn0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5woVt%2FbtsJ7syRQ8b%2FsKB1cy9IeAsyrcnPxB7mn0%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;630&quot; height=&quot;402&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;630&quot; data-origin-height=&quot;402&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;312&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cItYwy/btsJ8aLgPsW/2J6STq0JK8FErlP8INdkI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cItYwy/btsJ8aLgPsW/2J6STq0JK8FErlP8INdkI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cItYwy/btsJ8aLgPsW/2J6STq0JK8FErlP8INdkI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcItYwy%2FbtsJ8aLgPsW%2F2J6STq0JK8FErlP8INdkI1%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;660&quot; height=&quot;312&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;660&quot; data-origin-height=&quot;312&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;281&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Jga4K/btsJ80nzGFH/6TZbL3PTGydqR6zTn6oqe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Jga4K/btsJ80nzGFH/6TZbL3PTGydqR6zTn6oqe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Jga4K/btsJ80nzGFH/6TZbL3PTGydqR6zTn6oqe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FJga4K%2FbtsJ80nzGFH%2F6TZbL3PTGydqR6zTn6oqe0%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;708&quot; height=&quot;281&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;281&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;화면 캡처 2024-10-16 232802.png&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;303&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vOSno/btsJ76PYHUm/a3c0yt4J8VTqjUpZDJKp2K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vOSno/btsJ76PYHUm/a3c0yt4J8VTqjUpZDJKp2K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vOSno/btsJ76PYHUm/a3c0yt4J8VTqjUpZDJKp2K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvOSno%2FbtsJ76PYHUm%2Fa3c0yt4J8VTqjUpZDJKp2K%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;625&quot; height=&quot;303&quot; data-filename=&quot;화면 캡처 2024-10-16 232802.png&quot; data-origin-width=&quot;625&quot; data-origin-height=&quot;303&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/145</guid>
      <comments>https://daily-stack.tistory.com/145#entry145comment</comments>
      <pubDate>Wed, 16 Oct 2024 21:06:23 +0900</pubDate>
    </item>
    <item>
      <title>[WSL2] Vmmemwsl의 RAM 과다 사용 이슈 해결법</title>
      <link>https://daily-stack.tistory.com/143</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;유튜브로 강의를 듣는데, 노트북 버벅임이 굉장히 심해서 도저히 강의를 들을 수 없을 지경이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(마우스 커서조차 잘 움직이지 않을 정도...)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;CTRL + SHIFT + ESC를 눌러 작업 관리자를 열어보니, 메모리 사용량이 95%를 넘고 있었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자세히 살펴보니 'Vmmemwsl' 프로세스가 절반 이상의 RAM을 사용하고 있었고, 구글링을 통해 문제를 해결할 수 있었다.&lt;/p&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;&lt;a href=&quot;https://xpectation.tistory.com/216&quot;&gt;[WSL2] Vmmem의 RAM 점유율 해결 방법 &amp;mdash; 자기실현적 기대 (tistory.com)&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1729006520976&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;[WSL2] Vmmem의 RAM 점유율 해결 방법&quot; data-og-description=&quot;RAM 95% 달성 기념으로 이전 포스팅에서 RAM 용량에 대한 내용을 다루었다. 개발자 노트북의 RAM은 16GB로는 부족하다 주변에서 컴퓨터 견적이나 노트북 추천을 부탁해오면 항상 하는 말이 있다. 램&quot; data-og-host=&quot;xpectation.tistory.com&quot; data-og-source-url=&quot;https://xpectation.tistory.com/216&quot; data-og-url=&quot;https://xpectation.tistory.com/216&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/b2a2iu/hyXhScrKwQ/ZqLsDm3ObjZHAOKslKejSK/img.png?width=800&amp;amp;height=199&amp;amp;face=0_0_800_199,https://scrap.kakaocdn.net/dn/bbIttn/hyXhYqa5Fp/JsChtk99mkt2kTgic4NIv1/img.png?width=800&amp;amp;height=199&amp;amp;face=0_0_800_199,https://scrap.kakaocdn.net/dn/nme5G/hyXhNa7qIe/xyGTb2oKGiZmRXdUdc9ke1/img.png?width=1484&amp;amp;height=370&amp;amp;face=0_0_1484_370&quot;&gt;&lt;a href=&quot;https://xpectation.tistory.com/216&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://xpectation.tistory.com/216&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/b2a2iu/hyXhScrKwQ/ZqLsDm3ObjZHAOKslKejSK/img.png?width=800&amp;amp;height=199&amp;amp;face=0_0_800_199,https://scrap.kakaocdn.net/dn/bbIttn/hyXhYqa5Fp/JsChtk99mkt2kTgic4NIv1/img.png?width=800&amp;amp;height=199&amp;amp;face=0_0_800_199,https://scrap.kakaocdn.net/dn/nme5G/hyXhNa7qIe/xyGTb2oKGiZmRXdUdc9ke1/img.png?width=1484&amp;amp;height=370&amp;amp;face=0_0_1484_370');&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;[WSL2] Vmmem의 RAM 점유율 해결 방법&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;RAM 95% 달성 기념으로 이전 포스팅에서 RAM 용량에 대한 내용을 다루었다. 개발자 노트북의 RAM은 16GB로는 부족하다 주변에서 컴퓨터 견적이나 노트북 추천을 부탁해오면 항상 하는 말이 있다. 램&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;xpectation.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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-filename=&quot;temp.png&quot; data-origin-width=&quot;1323&quot; data-origin-height=&quot;722&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5rnuv/btsJ75INsBV/8TjXwIzVKFiGfXyVNavlX0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5rnuv/btsJ75INsBV/8TjXwIzVKFiGfXyVNavlX0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5rnuv/btsJ75INsBV/8TjXwIzVKFiGfXyVNavlX0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5rnuv%2FbtsJ75INsBV%2F8TjXwIzVKFiGfXyVNavlX0%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;1323&quot; height=&quot;722&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;1323&quot; data-origin-height=&quot;722&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;</description>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/143</guid>
      <comments>https://daily-stack.tistory.com/143#entry143comment</comments>
      <pubDate>Wed, 16 Oct 2024 00:35:57 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] 2020년 3회 실기 기출문제 풀이</title>
      <link>https://daily-stack.tistory.com/142</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 형상 통제에 대해 간략히 설명하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형상 식별 - 형상 통제(base line) - 형상 감사 - 형상 기록&lt;/p&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;중앙집중방식 - CVS, SVN&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원격통제방식- GIT&lt;/p&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;rarr; 버전 관리(cvs, svv, git)&amp;nbsp; &amp;rarr; 형상 관리&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-filename=&quot;temp.png&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;242&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQQCei/btsJ42kVWtM/xyW15ExdSLYJLDAZyNAQY0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQQCei/btsJ42kVWtM/xyW15ExdSLYJLDAZyNAQY0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQQCei/btsJ42kVWtM/xyW15ExdSLYJLDAZyNAQY0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQQCei%2FbtsJ42kVWtM%2FxyW15ExdSLYJLDAZyNAQY0%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;422&quot; height=&quot;242&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;422&quot; data-origin-height=&quot;242&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 소프트웨어 형상 변경 요청을 검토하고 승인하여 현재의 베이스라인에 반영될 수 있도록 통제&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;2. 다음은 EAI 구축 유형에 대한 설명이다. 1, 2에 해당하는 유형을 쓰시오&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%; height: 48px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 20px;&quot;&gt;&lt;b&gt;유형&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center; height: 20px;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 11px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 11px; text-align: center;&quot;&gt;(&amp;nbsp; &amp;nbsp;1&amp;nbsp; &amp;nbsp;)&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 11px;&quot;&gt;중간에 미들웨어를 두지 않고 각 애플리케이션 간 직접 연결&lt;br /&gt;솔루션 구매 없이 통합, 상대적 저렴하게 통합 가능&lt;br /&gt;변경, 재사용 어려움&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 17px;&quot;&gt;
&lt;td style=&quot;width: 50%; height: 17px; text-align: center;&quot;&gt;(&amp;nbsp; &amp;nbsp;2&amp;nbsp; &amp;nbsp;)&lt;/td&gt;
&lt;td style=&quot;width: 50%; height: 17px;&quot;&gt;단일 접점이 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식&lt;br /&gt;모든 데이터 전송 보장, 확장 및 유지 보수 용이&lt;br /&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;EAI: 기업 간, 혹은 애플리케이션 간 데이터 전달을 위한 인터페이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Point to Point - 개발자 둘이 협의해서 데이터를 주고 받음, 개발자 마다 방식이 다를테니까 변경, 재사용 어려움&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hub and Spoke - 중간에 허브를 두고, 여러 어플리캐이션들이 &lt;b&gt;허브&lt;/b&gt;를 통해 데이터를 주고 받음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Message bus - 버스에 데이터를 흘리면 필요한 애플리케이션이 가져다 씀&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Hybrid - hub and spoke + message bus&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SSL: https 형태, 데이터를 암호화 해서 서버로 전송&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPSec: 네트워크 계층에서 동작, AH, ESP&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SHTTP: SSL 과 유사, 메시지 단위로 암호화해서 전송&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TLS: 전송계층에서 동작&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;답: point to point, hub and spoke&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;3. UI(User Interface) 설계 원칙 중 직관성에 대해 간략히 서술하시오&lt;/h4&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;438&quot; data-origin-height=&quot;211&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cUOakr/btsJ6bWZIV0/TR12C8KWtIhzqWbGRHqqe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cUOakr/btsJ6bWZIV0/TR12C8KWtIhzqWbGRHqqe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cUOakr/btsJ6bWZIV0/TR12C8KWtIhzqWbGRHqqe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcUOakr%2FbtsJ6bWZIV0%2FTR12C8KWtIhzqWbGRHqqe0%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;438&quot; height=&quot;211&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;438&quot; data-origin-height=&quot;211&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 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;4. 다음 제어 흐름 그래프에 대한 분기 커버리지(Branch Coverage)를 수행하는 경우의 테스트 케이스 경로를 7단계와 6단계로 나눠서 순서대로 나열하시오&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;267&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B8LNB/btsJ6jN7emr/JRFTsKCSO7KXKCxoIZ9L10/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B8LNB/btsJ6jN7emr/JRFTsKCSO7KXKCxoIZ9L10/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B8LNB/btsJ6jN7emr/JRFTsKCSO7KXKCxoIZ9L10/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB8LNB%2FbtsJ6jN7emr%2FJRFTsKCSO7KXKCxoIZ9L10%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;492&quot; height=&quot;267&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;492&quot; data-origin-height=&quot;267&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 6개 7개 들어가게 맞춰서 흐름(숫자)을 쓰면 됩니다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답:&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6단계: 123456, 124567&lt;br /&gt;7단계: 1234567, 1234561&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;코드 커버리지(Code Coverage)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구문 커버리지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조건 커버리지 .. 조건문 = 결정포인트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 결정 포인트 내의 모든 개별 조건식에 대해 수행하는 테스트 커버리지, 결정포인트를 보지 않고 결정포인트 내의 개별 조건식을 봄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결정 커버리지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 결정 포인트 내의 모든 분기문에 대해 수행하는 테스트 커버리지, 개별 조건식을 보지 않고, 결정 포인트에 대해서 확인 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;5. 소프트웨어 테스트 기법 중 소프트웨어 기능이 완전히 작동하는 것을 입증하는 테스트로, 동치분할/경계값 분석을 이용하여 테스트하는 기법을 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;블랙박스 테스트&lt;/b&gt;(ex.90 ~ 100)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동등 분할 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 입력 자료에 초점을 맞춰 테스트 케이스를 만들어 검사하는 방법 (95)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;경계값 분석&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 입력 조건의 경계값을 테스트 케이스로 선정하는 방법(89, 90, 91, 99, 100, 101)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원인-효과 그래프 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 입력 데이터 간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석한 다음 효용성이 높은 테스트 케이스를 선정하여 검사하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 예측 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 과거의 경험이나 테스터의 감각으로 테스트하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비교 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 여러 버전의 프로그램에 동일한 테스트 자료를 제공하여 동일한 결과가 출력되는지 테스트하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 블랙박스 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오류 예측 검사, 비교 검사&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;6. &amp;lt;학생&amp;gt; 테이블에 '주소' 칼럼을 추가하는 SQL 문을 완성하는 빈칸 1~2에 알맞은 예약어를 쓰시오&lt;/h4&gt;
&lt;pre id=&quot;code_1728915585734&quot; class=&quot;sql&quot; data-ke-language=&quot;sql&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;(   1   ) TABLE 학생 (   2   ) 주소 VARCHAR(20);&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;DDL: CREATE ALTER DROP TRUNCATE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DML: INSERT UPDATE DELETE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DCL: GRANT REVOKE, COMMIT ROLLBACK SAVEPOINT&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-filename=&quot;temp.png&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bC4tCS/btsJ4ZbZpwq/Ul8jBQtnY9mKYpW0I9tHZ1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bC4tCS/btsJ4ZbZpwq/Ul8jBQtnY9mKYpW0I9tHZ1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bC4tCS/btsJ4ZbZpwq/Ul8jBQtnY9mKYpW0I9tHZ1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbC4tCS%2FbtsJ4ZbZpwq%2FUl8jBQtnY9mKYpW0I9tHZ1%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;613&quot; height=&quot;360&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;613&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;316&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d0HXJd/btsJ5xF2R5T/VUobbt8lSw88UfRkHGUQx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d0HXJd/btsJ5xF2R5T/VUobbt8lSw88UfRkHGUQx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d0HXJd/btsJ5xF2R5T/VUobbt8lSw88UfRkHGUQx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd0HXJd%2FbtsJ5xF2R5T%2FVUobbt8lSw88UfRkHGUQx0%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;627&quot; height=&quot;316&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;627&quot; data-origin-height=&quot;316&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):ALTER&amp;nbsp; &amp;nbsp; (2):ADD&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;7. &amp;lt;성적&amp;gt; 테이블을 대상으로 아래 &amp;lt;요구사항&amp;gt;을 적용하여 결과를 출력하는&amp;nbsp; SQL문을 작성하시오.&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;317&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cTND4k/btsJ4OuQIAq/7mkNgSlDefdTiVHmptiFd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cTND4k/btsJ4OuQIAq/7mkNgSlDefdTiVHmptiFd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cTND4k/btsJ4OuQIAq/7mkNgSlDefdTiVHmptiFd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcTND4k%2FbtsJ4OuQIAq%2F7mkNgSlDefdTiVHmptiFd1%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;510&quot; height=&quot;317&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;317&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;lt;요구사항&amp;gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;lt;성적&amp;gt; 테이블에서 과목별 평균 점수가 90점 이상인 과목이름, 최소점수, 최대점수를 출력하시오&lt;/li&gt;
&lt;li&gt;WHERE 구문은 하지 않는다&lt;/li&gt;
&lt;li&gt;GROUP BY, HAVING을 이용한다&lt;/li&gt;
&lt;li&gt;최소점수, 최대점수 별칭을 위해 AS 문을 이용한다&lt;/li&gt;
&lt;li&gt;명령문의 최종 문자인 세미콜론(;)은 생략 가능하다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELECT 문의 기본 구조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELECT&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FROM&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WHERE ~ AND/OR&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GROUP BY&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HAVING&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ORDER BY&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GROUP BY를 사용했다면 SELECT 문에 GROUP BY 한 항목만 올라올 수 있다, 나머지 항목 못올라옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WHERE 절에 집계함수 사용 불가&lt;/p&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;br /&gt;SELECT 과목이름, MIN(점수) AS 최소점수, MAX(점수) AS 최대점수&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FROM 성적&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GROUP BY 과목이름&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HAVING AVG(점수) &amp;gt;= 90;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;8. &amp;lt;학생&amp;gt; 테이블에서 이름이 '민수'인 학생 튜플을 삭제하는 SQL문을 작성하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;요구사항&amp;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;/li&gt;
&lt;li&gt;SQL 명령문은 대/소문자를 구분하지 않는다&lt;/li&gt;
&lt;li&gt;SQL 명령문의 종결 문자인 세미콜론(;)은 생략 가능하다&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CRUD 예시&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;INSERT INTO 테이블명( 칼럼들 ) VALUES ( 1, '문자', 3);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UPDATE 테이블명 SET A=1, B= 'A' WHERE A = 3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DELETE FROM 테이블명 WHERE A=1;&lt;/p&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;DELETE FROM 학생&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WHERE 이름='민수';&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;9. 데이터베이스 스키마(Schema)에 대해 간략히 서술하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부 스키마: 사용자, 프로그램 입장에서 본 데이터베이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개념 스키마: 데이터베이스의 전체적인 구조와 제약조건&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내부 스키마: 저장장치 입장에서 본 데이터베이스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논리적 독립성: 개념 스키마가 바뀌어도 외부 스키마에 영향을 미치지 않는다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물리적 독립성: 내부 스키마가 바뀌어도 외부, 개념스키마에 영향을 미치지 않는다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 데이터베이스의 전제적인 구조와 제약조건에 대한 명세를 기술하고 정의한 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;10. 다음에서 설명하는 관계 대수 연산의 기호를 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;릴레이션 A에서 릴레이션 B의 모든 조건을 만족하는 튜플을 프로젝션 해서 제외하는 연산자이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;관계대수 연산자&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;196&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cpdASs/btsJ5qAc9Kc/MuY1xxVpGbkkOfXzYtEZKk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cpdASs/btsJ5qAc9Kc/MuY1xxVpGbkkOfXzYtEZKk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cpdASs/btsJ5qAc9Kc/MuY1xxVpGbkkOfXzYtEZKk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcpdASs%2FbtsJ5qAc9Kc%2FMuY1xxVpGbkkOfXzYtEZKk%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;597&quot; height=&quot;196&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;597&quot; data-origin-height=&quot;196&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;SELECT : 렐레이션에서 조건을 만족하는 수평적 부분 집합(튜플)을 구하기 위한 연산을 말한다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;106&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dDDP9R/btsJ4fl7hmD/J9nr0KDOUuFvMT9Tm8JSSk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dDDP9R/btsJ4fl7hmD/J9nr0KDOUuFvMT9Tm8JSSk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dDDP9R/btsJ4fl7hmD/J9nr0KDOUuFvMT9Tm8JSSk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdDDP9R%2FbtsJ4fl7hmD%2FJ9nr0KDOUuFvMT9Tm8JSSk%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;348&quot; height=&quot;106&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;348&quot; data-origin-height=&quot;106&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;PROJECT : 릴레이션에서 수직적 부분집합(속성의 값)을 구하는 연산으로 원하는 속성만 추출하기 위한 연산이다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;328&quot; data-origin-height=&quot;122&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brZLi4/btsJ30bFpYS/QppNoyZkU7ovehqqBMk4E1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brZLi4/btsJ30bFpYS/QppNoyZkU7ovehqqBMk4E1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brZLi4/btsJ30bFpYS/QppNoyZkU7ovehqqBMk4E1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrZLi4%2FbtsJ30bFpYS%2FQppNoyZkU7ovehqqBMk4E1%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;328&quot; height=&quot;122&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;328&quot; data-origin-height=&quot;122&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;JOIN : 두 테이블로부터 조건에 맞는 관련된 튜플들을 하나의 튜플로 결합하여 하나의 테이블로 만드는 연산&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;457&quot; data-origin-height=&quot;232&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lMpao/btsJ6bQiYhF/gWWpxguaY4HsrEwsZuPR50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lMpao/btsJ6bQiYhF/gWWpxguaY4HsrEwsZuPR50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lMpao/btsJ6bQiYhF/gWWpxguaY4HsrEwsZuPR50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlMpao%2FbtsJ6bQiYhF%2FgWWpxguaY4HsrEwsZuPR50%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;457&quot; height=&quot;232&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;457&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;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DIVISION: A,B 두 테이블에 대해 'A DIVISION B'는 B테이블의 조건을 만족하는 튜플들을 테이블 A에서 추출하는 연산이다&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/brqTBj/btsJ6rLXA1P/yi8GE7CErDMFmkA4IF8061/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/brqTBj/btsJ6rLXA1P/yi8GE7CErDMFmkA4IF8061/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/brqTBj/btsJ6rLXA1P/yi8GE7CErDMFmkA4IF8061/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbrqTBj%2FbtsJ6rLXA1P%2Fyi8GE7CErDMFmkA4IF8061%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;223&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;386&quot; data-origin-height=&quot;223&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;정답: DIVISION&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;11. 다음 설명에 해당하는 라우팅 프로토콜을 쓰시오.&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;최단 경로 탐색에 다익스트라 알고리즘기반 방식 사용&lt;/li&gt;
&lt;li&gt;최적 경로 선택을 위해 흡수, 대역폭, 지연시간 등을 고려&lt;/li&gt;
&lt;li&gt;링크상태 변화시에만 라우팅 정보전송&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정적 라우팅 프로토콜: 관리자가 직접 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동적 라우팅 프로토콜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 내부 라우팅 프로토콜(IGP):&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 1. 거리벡터 알고리즘(RIP): 홉수(이동 수)가 짧은 것을 우선, 최대 15홉, 30초마다 한번씩 라우팅 테이블 갱신&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;243&quot; data-origin-height=&quot;246&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxGngj/btsJ5y57daz/QJGiUh9mkYQZlaDogkDYxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxGngj/btsJ5y57daz/QJGiUh9mkYQZlaDogkDYxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxGngj/btsJ5y57daz/QJGiUh9mkYQZlaDogkDYxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdxGngj%2FbtsJ5y57daz%2FQJGiUh9mkYQZlaDogkDYxK%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;243&quot; height=&quot;246&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;243&quot; data-origin-height=&quot;246&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp; 2.링크상태 알고리즘(OSPF): 홉수의 제한 없음, 나의 링크 상태가 바뀌었을 때 내 주변 라우터에게 나의 상태 모두 전달&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 외부 라우팅 프로토콜(EGP): BGP (EGP는 BGP이다)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: OSPF&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;12. 인터넷 프로토콜의 비신뢰적인 특성을 보완하기 위한 프로토콜로 IP 패킷 전송 중 에러 발생 시 에러 발생 원인을 알려주거나 네트워크 상태를 진단해주는 기능을 제공하는 프로토콜을 무엇이라고 하는지 영문 약어로 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로토콜의 3요소: (구타를 왜하니, 의그)&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;OSI 7 참조모델&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응용 계층: 프로그램&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표현 계층: 압축, 암호화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세션 계층: 연결 설정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;--------------------------------------------- 데이터 생성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전송 계층:&amp;nbsp; 헤더 + 데이터 = 세그먼트, 양 종단 간의 신뢰성 있는 정보 전달 TCP(연결 체결) UDP(연결 미체결)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크 계층: 헤더 + 세그먼트 = 패킷, 빠르게 보내기(비연결성, 비신뢰성), 라우터, IP(주소), ICMP(전송 실패시), ARP(MAC), RARP(IP)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터링크 계층: 헤더 + 패킷 = 프레임, 인접한 노드간의 신뢰성 있는 정보 전달, 스위치, 브리지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물리 계층 : 비트로 쏴줌, NIC, 허브, 리피터&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-filename=&quot;temp.png&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;391&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/OpKoE/btsJ6a50RmW/Jws5qTKYYBd13nrY27ZRvk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/OpKoE/btsJ6a50RmW/Jws5qTKYYBd13nrY27ZRvk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/OpKoE/btsJ6a50RmW/Jws5qTKYYBd13nrY27ZRvk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FOpKoE%2FbtsJ6a50RmW%2FJws5qTKYYBd13nrY27ZRvk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;647&quot; height=&quot;391&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;647&quot; data-origin-height=&quot;391&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;정답: ICMP&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;13. 헝가리안 표기업에 대해 간략히 설명하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;변수명 표기법(안나올듯..?)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;카멜(낙타 등) 표기법 : 여러 단어 결합시, 첫 단어를 제외하고, 단어의 첫 글자를 대문자로 표기 ex.studentAge&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;파스칼 표기법: 모든 단어의 첫 글자를 대문자로 표기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스네이크 표기법: 모든 단어를 소문자로 표기하고, 단어 사이에 언더바를 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;케밥 표기법: 모든 단어를 소문자로 표기하고, 단어 사이에 하이픈(-) 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 프로그래밍 언어에서 변수 및 함수의 인자 이름 앞에 데이터 타입을 명시하는 코딩 규칙&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;14. 리팩토리(Refactoring)의 목적에 대해 간략히 설명하시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리팩토링 절차&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동료 검토 &amp;rarr; 워크 스루 &amp;rarr; 인스펙션(공식 회의)&amp;nbsp; &amp;rarr; 리팩토링&lt;/p&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;15. 빈 칸 안에 공통으로 들어갈 가장 적합한 용어를 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 가리켜 '기술적 은어'라는 뜻으로 (&amp;nbsp; &amp;nbsp;) 이라 불렀다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로토콜 3요소 : 의미, 구문, 타이밍&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정보보안 3요소: 기밀성, 무결성, 가용성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;16. 다음은 C 언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.&lt;/h4&gt;
&lt;pre id=&quot;code_1729011613517&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;void main() 
{
    int i=0, c=0;
    while(i&amp;lt;10) {
    	i++;
        c *= i;
    }
    printf(&quot;%d&quot;, c);
}&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;정답: 0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;17. 다음은 C 언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.&lt;/h4&gt;
&lt;pre id=&quot;code_1729011923596&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int r1() {
    return 4;
}
int r10() {
	return (30 + r1()); // 34
}
int r100() {
	return (200 + r10()); // 234
}
void main() {
	printf(&quot;%d&quot;, r100()); // 234
}&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;정답 : 234&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;18. 다음은 JAVA 로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.&lt;/h4&gt;
&lt;pre id=&quot;code_1729012349159&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public static void main(String[] args) {
    int i = 0;
    int sum = 0;
    while (i &amp;lt; 10) {
    	i++;
        if (i%2 == 1}
        	continue;
        sum += i;
    }
    System.out.print(sum); // 20
}&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;정답: 30&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;19. 다음은 JAVA 로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.&lt;/h4&gt;
&lt;pre id=&quot;code_1729013480307&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;abstract class Vehicle {
    String name;
    
    public Vehicle (String val) {
	this.name = val;
    }
    
    public String getName() {
    	return &quot;Vehicle name: &quot; + name;
    }
}

class Car extends Vehicle {
    private String name; // 우선 부모 클래스의 변수를 가져온 다음, 내 변수 추가
 
    public Car(String val) {
		name = super.name = val;
        public String getName(String val) { // 부모 클래스와 매개변수의 수가 다름, 오버 로딩
			return &quot;Car name: &quot; + val;
        public String getName(byte val[]) { // 부모 클래스와 매개변수의 수가 다름, 오버 로딩
        	return &quot;Car name: &quot; + val;
        }
    }
}

public class Main {
    public static void main(String[] args) {
        Vehicle obj = new Car(&quot;Spark&quot;);
        System.out.println(obj.getName()); // 매개 변수가 없으므로 부모 클래스의 메서드 호출
    }
}&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;abstract : 추상 클래스 , 미완성 클래스&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자식의 생성자에서 부모를 명시적으로 호출하고 있지 않으면, 부모가 가지고있는 default 생성자를 묵시적으로 호출하게 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: Vehicle name : Spark&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;20. C++에서 생성자(Constructor)에 대해 간략히 설명하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 객체 생성 시 자동으로 호출되는 메서드로 멤버를 초기화하는 목적으로 주로 사용된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;객체지향 특징&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정보은닉&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;캡슐화: 정보은닉된 것들을 사용할 수 있게 해줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상속: 부모로 부터 물려받음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다형성: 메서드 오버라이딩, 오버 로딩&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추상화: 공통의 성질을 묶어둠&lt;/p&gt;</description>
      <category>정보처리기사</category>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/142</guid>
      <comments>https://daily-stack.tistory.com/142#entry142comment</comments>
      <pubDate>Tue, 15 Oct 2024 07:01:45 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] 2020년 2회 실기 기출문제 풀이</title>
      <link>https://daily-stack.tistory.com/141</link>
      <description>&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;1. 일정한 주기를 가지고 계속 검토해 나가며 필요할 때마다 요구사항을 더하고 수정하여 커다랗게 살을 붙이면서 개발해 나가는 프로세스 모델 방식이다. 미리 정해진 몇 개의 단계에 따라 엄격한 순서대로 이루어지는 일직선의 과정인 폭포수 프로세스와는 비교가 많이 되는 반대의 개념이다. 이 소프트웨어 개발 방법론을 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;생명주기 모형의 종류&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;폭포수 모형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 문서가 완벽하게 만들어 져야함, 되돌아 갈 수 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 계획 &amp;rarr; 요구사항 분석 &amp;rarr; 설계 &amp;rarr; 구현 &amp;rarr; 테스트 &amp;rarr; 유지보수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로토타입 모형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 실제 개발될 시스템의 견본(prototype)을 미리 만들어 최종 결과물을 예측하는 모형&lt;br /&gt;나선형 모형&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 계획&amp;nbsp;&amp;rarr; 위험 분석 &amp;rarr; 개발 &amp;rarr; 평가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RAD: CASE 도구를 사용해서 빨리빨리 개발함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CASE(Computer Aid Software Engineering)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상위 CASE: 분석 설계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하위 CASE: 개발 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;애자일(Agile) 방법론&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XP(eXtreme Programming)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 의사소통, 단순성, 피드백, 용기, 존중('의사'선생님 저 약 '피''존''용기'에 '단'아주세요)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 고객과 함께 2주 정도의 반복 개발을 하고, 테스트와 우선 개발이 특징&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SCRUM&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 프로젝트를 30일마다 동작 가능한 제품을 제공하는 스프린트로 분리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 매일 15분 정도 회의를 한다&lt;/p&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;2. 다음은 데이터베이스 설계의 순서이다. 빈 칸에 해당하는 설계 순서를 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요구사항 분석 &amp;rarr; (&amp;nbsp; &amp;nbsp;) &amp;rarr; (&amp;nbsp; &amp;nbsp;) &amp;rarr; (&amp;nbsp; &amp;nbsp;) &amp;rarr; 구현&lt;/p&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;개념적 설계: ERD 그리기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논리적 설계: 목표 DBMS에 맞는 설계, Transation Interface 만들기, 정규화 &amp;rarr; JOIN 연산 발생 &amp;rarr; 계산이 기하 급수적 증가&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물리적 설계: 성능에 대한 고려(인덱스, 클러스터링, 파티션, 뷰,,,, 반정규화)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;3. 다음 빈칸에 알맞은 용어를 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일반적으로 널리 알려진 HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜이다. (&amp;nbsp; &amp;nbsp;) 은 웹 서비스에서 기본적인 메시지를 전달하는 기반이 되는데, (&amp;nbsp; &amp;nbsp;) 에는 몇 가지 형태의 메시지 패턴이 있지만, 보통의 경우 원격 프로시져 호출(Remote Procedure Call: RPC) 패턴으로, 네트워크 노드(클라이언트)에서 다른 쪽 노드(서버)로 메시지를 요청하고, 서버는 메시지를 즉시 응답하게 되는 형식이다. 즉 (&amp;nbsp; &amp;nbsp;)는 XML을 이용해서 분산처리 환경에서 정보교환을 쉽게 할 수 있도록 도와준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EAI 공부하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WSDL: 데이터를 주고받기 위한 설명서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;UDDI: WSDL을 모아놓은 도서관&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SOAP: WSDL, UDDI를 기반으로 실제로 데이터를 주고받는 프로토콜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTP(80포트): ID, PW 를 입력했을 때 평문으로 날라감&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTTPS(443 포트): ID, PW를 입력했을 때 암호문으로 날라감&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SMTP: 메일을 주고받는 프로토콜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답 : SOAP&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;4. 다음 빈 칸 안에 공통으로 들어갈 가장 적합한 용어를 쓰시오&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;(&amp;nbsp; &amp;nbsp;)는 소프트웨어의 변경사항을 체계적으로 추적하고 통제하는 것으로, (&amp;nbsp; &amp;nbsp;) 는 일반적인 단순 버전관리 기반의 소프트웨어 운용을 좀 더 포괄적인 학술 분야의 형태로 넓히는 근간을 이야기한다.&lt;/li&gt;
&lt;li&gt;(&amp;nbsp; &amp;nbsp;)란 소프트웨어 소스 코드 뿐 아니라 개발 환경, 빌드 구조 등 전반적인 환경 내역에 대한 관리 체계를 정의하고 있다.&lt;/li&gt;
&lt;li&gt;이를 지원하는 도구로 GIT, SVN, CVS 등이 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;형상관리 절차(식통감기)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;형상 식별 &amp;rarr; &lt;b&gt;형상 통제(baseline 설정)&lt;/b&gt;&amp;nbsp;&amp;rarr; 형상 감사 &amp;rarr; 형상 기록&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CVS, SVN &amp;rarr; 중앙 통제, 클라이언트/서버 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GIT &amp;rarr; 분산 저장소 방식&lt;/p&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;5. 웹 페이지 전체를 다시 로딩하지 않고도, 웹 페이지의 일부분만을 갱신할 수 있는 비동기 방식 처리 기술의 약어를 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동기: 데이터가 다 들어올 때 까지 기다려야 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비동기: 데이터를 불러오면서 다른 작업도 할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: AJAX&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;6. 다음은 UI 설계 원칙 4가지이다. 빈 칸에 알맞은 용어를 쓰시오.&lt;/h4&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;b&gt;설계 원칙&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;b&gt;설명&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;직관성&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;누구나 쉽게 이해하고 사용할 수 있어야 한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;(&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; )&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;사용자의 목적을 정확하게 달성하여야 한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;학습성&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;누구나 쉽게 배우고 익힐 수 있어야 한다.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;유연성&lt;/td&gt;
&lt;td style=&quot;width: 50%;&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 data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;직유학유&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답 : 유효성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;7. 프로그램을 실행 시키지 않고, 소스코드에 대한 코딩 표준, 코딩 스타일, 복잡도, 보안 취야점, 잠재적인 결함을 찾는 테스트 활동이 무엇인지 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;V모델(단통시인)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단위 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 정적 테스트: 소스 코드 내부를 봄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 동적 테스트: 모듈을 실행시켜서 입력값에 대한 출력값이 올바른지 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통합 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 상향식 테스트: 작은 모듈 부터, 위에 모듈이 없으면 드라이버로 대체&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하향식 테스트: 메인 함수 부터, 아래 모듈이 없으면 스텁으로 대체&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 빅뱅 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기능 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 비기능 테스트: 안정성, 성능,,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인수 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 알파 테스트: 개발자&amp;nbsp; + 사용자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 베타 테스트: 사용자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;애플리케이션 테스트 유형 분류&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그램 실행 여부&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 정적 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 동적 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 화이트박스 테스트: 소스 내부를 봄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 블랙박스 테스트: 동작 방식을 봄, 동등 분할 기법, 경계값 분석, 원인 효과 그래프 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트에 대한 시각&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 검증 테스트: 잘 만들고 있는지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 확인 테스트: 만든 후 잘 만들었는지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 목적&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 회복 테스트: 일부러 장애를 발생 시킨 후에 잘 회복 되는지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 안전 테스트: 보안 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 강도 테스트: 스트레스 테스트, 일부러 과한 용량을 집어놓고 잘 버티는지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 성능 테스트: 성능 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 구조 테스트: 구조 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 회귀 테스트: 수정 후 잘 돌아가는지 확인&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 병행 테스트: 두개 실행 시키고 두개의 결과가 똑같은지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 기반&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 명세 기반 테스트: 문서 보고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 구조 기반 테스트: 코드 보고&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 경험 기반 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 단위테스트&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;8. 아래 보기의 &amp;lt;학생&amp;gt; 테이블을 대상으로 &amp;lt;요구사항&amp;gt;을 적용하여 출력하는 SQL 을 작성하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;요구사항&amp;gt;&lt;br /&gt;3학년이거나 4학년 학생의 학번과 이름을 검색하시오&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단, 주건절 작성 시 in 예약어를 사용하여 작성하시오&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-filename=&quot;temp.png&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;213&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nXSbk/btsJ34Ym2Uu/PU3XmCy4puazeJRG0YzmsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nXSbk/btsJ34Ym2Uu/PU3XmCy4puazeJRG0YzmsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nXSbk/btsJ34Ym2Uu/PU3XmCy4puazeJRG0YzmsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnXSbk%2FbtsJ34Ym2Uu%2FPU3XmCy4puazeJRG0YzmsK%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;423&quot; height=&quot;213&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;423&quot; data-origin-height=&quot;213&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;답:&lt;br /&gt;SELECT 학번, 이름&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FROM 학생&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WHERE 학년 IN (3, 4);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;9. 다음 주어진 student 테이블의 name 속성을 오름차순하여 idx_name를 인덱스명으로 하는 인덱스를 생성하는 SQL 명령문을 작성하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답:&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;CREATE INDEX idx_name&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ON student(name asc);&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;10. 보안의 취약점 중 하나인 SQL Injection에 대해 간략히 서술하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 웹 프로그램에 SQL 구문을 삽입하여, 서버의 데이터베이스를 공격할 수 있는 공격방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XSS(Cross Site Script): 자바스크립트를 삽입하여 다른사용자들의 쿠키정보 등을 탈취함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;11. SQL 제어어 (DCL) 중 ROLLBACK 명령에 대해 간략히 설명하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DDL: CREATE ALTER DROP TRUNCATE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DML: INSERT, UPDATE, DELETE&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DCL: GRANT ~ TO, REVOKE ~ FROM&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;TCL: COMMIT, ROLLBACK&lt;/p&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;12. 네트워크 계층(Network Layer, 3계층)인 IP 계층에서 IP 패킷 단위의 데이터 변조 방지 및 암호화 기능을 제공하는 통신 규약을 쓰시오.&lt;b&gt;&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;OIP.jpg&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;227&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dxxhVs/btsJ27PmnEG/EQitb35s6B6F9cFdC1ix7K/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dxxhVs/btsJ27PmnEG/EQitb35s6B6F9cFdC1ix7K/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dxxhVs/btsJ27PmnEG/EQitb35s6B6F9cFdC1ix7K/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdxxhVs%2FbtsJ27PmnEG%2FEQitb35s6B6F9cFdC1ix7K%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;397&quot; height=&quot;227&quot; data-filename=&quot;OIP.jpg&quot; data-origin-width=&quot;397&quot; data-origin-height=&quot;227&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;table style=&quot;border-collapse: collapse; width: 100.116%; height: 167px;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.5803%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;OSI 7&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 22.5588%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;특징&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 20.5873%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;장치&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 19.4763%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;PDU&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 16.9136%; height: 20px; text-align: center;&quot;&gt;&lt;b&gt;프로토콜&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.5803%; height: 20px;&quot;&gt;응용 계층&lt;/td&gt;
&lt;td style=&quot;width: 22.5588%; height: 20px;&quot;&gt;프로그램&lt;/td&gt;
&lt;td style=&quot;width: 20.5873%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 19.4763%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.9136%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.5803%; height: 20px;&quot;&gt;표현 계층&lt;/td&gt;
&lt;td style=&quot;width: 22.5588%; height: 20px;&quot;&gt;압축, 암호화&lt;/td&gt;
&lt;td style=&quot;width: 20.5873%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 19.4763%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.9136%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.5803%; height: 20px;&quot;&gt;세션 계층&lt;/td&gt;
&lt;td style=&quot;width: 22.5588%; height: 20px;&quot;&gt;연결 설정&lt;/td&gt;
&lt;td style=&quot;width: 20.5873%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 19.4763%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.9136%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.5803%; height: 20px;&quot;&gt;전송 계층&lt;/td&gt;
&lt;td style=&quot;width: 22.5588%; height: 20px;&quot;&gt;양 종단 간의 신뢰성 있는 정보 전달 담당, 흐름제어 오류 제어&lt;/td&gt;
&lt;td style=&quot;width: 20.5873%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 19.4763%; height: 20px;&quot;&gt;Header/Data = Segment&lt;/td&gt;
&lt;td style=&quot;width: 16.9136%; height: 20px;&quot;&gt;TCP(연결 확립), UDP(연결 미확립)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.5803%; height: 20px;&quot;&gt;네트워크 계층&lt;/td&gt;
&lt;td style=&quot;width: 22.5588%; height: 20px;&quot;&gt;빠르게 전달하기 위한 목적, 비연결성, 비신뢰성&lt;/td&gt;
&lt;td style=&quot;width: 20.5873%; height: 20px;&quot;&gt;라우터&lt;/td&gt;
&lt;td style=&quot;width: 19.4763%; height: 20px;&quot;&gt;Header/Segment = packet&lt;/td&gt;
&lt;td style=&quot;width: 16.9136%; height: 20px;&quot;&gt;IP, ICMP, ARP, RARP,,,&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 20px;&quot;&gt;
&lt;td style=&quot;width: 20.5803%; height: 20px;&quot;&gt;데이터링크 계층&lt;/td&gt;
&lt;td style=&quot;width: 22.5588%; height: 20px;&quot;&gt;인접한 노드 간의 신뢰성 있는 정보 전달&lt;/td&gt;
&lt;td style=&quot;width: 20.5873%; height: 20px;&quot;&gt;스위치, 브리지&lt;/td&gt;
&lt;td style=&quot;width: 19.4763%; height: 20px;&quot;&gt;Heaer/Packet = Frame&lt;/td&gt;
&lt;td style=&quot;width: 16.9136%; height: 20px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;height: 27px;&quot;&gt;
&lt;td style=&quot;width: 20.5803%; height: 27px;&quot;&gt;물리 계층&lt;/td&gt;
&lt;td style=&quot;width: 22.5588%; height: 27px;&quot;&gt;비트로 바꿔서 전달&lt;/td&gt;
&lt;td style=&quot;width: 20.5873%; height: 27px;&quot;&gt;NIC, 허브, 리피터&lt;/td&gt;
&lt;td style=&quot;width: 19.4763%; height: 27px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;td style=&quot;width: 16.9136%; height: 27px;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;IPSec의 헤더 프로토콜&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AH(Authentication Header): 인증, 무결성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ESP(Encapsulation Security Payload): 인증, 무결성, 기밀성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: IPSec&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;13. 리눅스 커널을 기반으로 동작하며 자바와 코틀린 언어로 개발된 핸드폰이나 소형기기에 사용되는 오픈소스 플랫폼인 모바일 운영체제는 무엇인지 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 안드로이드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;14. 리눅스 또는 유닉스에서 a.txt 파일에 대해 다음 조건을 만족하는 권한을 부여하고자 한다. 다음 &amp;lt;조건&amp;gt;을 준수하여 적합한 명령어를 작성하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;조건&amp;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;/li&gt;
&lt;li&gt;그룹에게는 읽기, 실행 두개의 권한을 부여한다&lt;/li&gt;
&lt;li&gt;그룹 외 사용자에게는 실행 권한을 부여한다.&lt;/li&gt;
&lt;li&gt;한 줄로 명령문이 작성되어야 하며, 8진수로 권한을 부여한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;권한을 설정: chmod&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소유자를 변경: chown&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;chmod + 8진수(0~7) 3개(소유자, 그룹, other)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8진수는 2진수 기준 3비트 &amp;rarr; 첫번째 비트는 Read, 두번째 비트는 Write, 세번째 비트는 Execute&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 4 는 100(2) 로 표시하고 Read만 할수 있다, 6은 110(2) 이므로&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: chmod 751 a.txt&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;15. 다음은 IP 인프라 서비스 관리 실무와 관련된 &amp;lt;실무 사례&amp;gt;에 대한 설명이다. 가장 적합한 용어를 한글 또는 영문으로 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;lt;실무 사례&amp;gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;A는 (주)한국아이티 보안관제실에서 정보시스템의 정보관리를 위해 모니터링을 담당하며 근무하고 있다. 시스템 운영 중 자연재해나 시스템 장애 등이 이유로 대고객 서비스가 불가능한 경우가 종종 발생한다. A는 이런 장애 발생시 서비스를 정상적으로 수행하기 위해 구축 시스템을 관리하는 역할을 한다. 이 용어는 이런 비상 상황이 발생 했을 때, &quot;서비스 중단 시점과 서비스 복원 시점 간에 허용되는 최대 지연 시간&quot;을 가리킨다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RTO(Recovery Time Objective): 서비스 중단 시점부터 서비스 복원 시점까지 허용되는 최대 지연 시간, 목표 복구 시간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RPO(Recovery Point Objective): 서비스 중단 시점부터 서비스 복원 시점까지 손실 허용되는 데이터의 양, 목표 복구 지점)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체 백업&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;증분 백업 : 월요일 꺼 둔 상태에서 화요일꺼 추가, 월화꺼 둔 상태에서 수요일꺼 추가..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;차등 백업: 월요일 꺼 다 뜨고, 화요일꺼 다 뜨고,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;16. 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고, 자동으로 내용이 갱신되는 방식으로 일대다(one-to-many) 의존성을 정의하는 디자인 패턴명을 영문으로 쓰시오.&lt;/h4&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;정답: Observer Pattern&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;17. 다음에서 설명하는 용어를 쓰시오.&lt;/h4&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자유롭게 사용이 가능하며, 저작권 표시 및 변경 허락 조건하에 재배포 가능한 링크 기반 개방형 데이터&lt;/li&gt;
&lt;li&gt;연계 데이터(Linked data)와 오픈 데이터(Open data)가 결합된 단어로 웹에 게시되는 데이터에 식별자(URI)를 부여하고 관련 정보를 구조적으로 제공하는 연계 데이터를 저작권 없이 무료로 제공하여 사용자가 정보를 다양하고 효율적으로 활용할 수 있도록 한다&lt;/li&gt;
&lt;li&gt;하이퍼텍스트 전송규약(HTTP), 자원 기술 프레임워크(RDF)와 인터넷 식별자(URI) 등의 웹 표준 기술을 이용하여 시맨틱 웹을 구축하고, 출처가 서로 다르지만 인터넷 식별자(URI)를 통해 데이터를 서로 연결한다.&lt;/li&gt;
&lt;li&gt;데이터를 재사용할 수 있고, 데이터 중복을 줄일 수 있는 장점이 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&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;/li&gt;
&lt;li&gt;컴퓨터가 사람을 대신하여 정보를 읽고, 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록 이해하기 쉬운 의미를 가진 차세대 지능형 웹&lt;/li&gt;
&lt;li&gt;즉, 검색이 잘되게 하기 위함&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;480&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhhnIw/btsJ4NaBrW8/Gst4aKDlL5qaqfhKiskxa0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhhnIw/btsJ4NaBrW8/Gst4aKDlL5qaqfhKiskxa0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhhnIw/btsJ4NaBrW8/Gst4aKDlL5qaqfhKiskxa0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhhnIw%2FbtsJ4NaBrW8%2FGst4aKDlL5qaqfhKiskxa0%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;772&quot; height=&quot;480&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;772&quot; data-origin-height=&quot;480&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;REST&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것&lt;/li&gt;
&lt;li&gt;HTTP URI를 통해 자원(Resource)를 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: Linked Open Data&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;18. 다음은 Python 언어로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오&lt;/h4&gt;
&lt;pre id=&quot;code_1728857057780&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;asia = {'한국', '중국', '일본'} # 중괄호 .. 순서의 의미가 없다, 중복 허용 안함
asia.add('베트남') # 한국 중국 일본 베트남
asia.add('중국')
asia.remove('일본') # 한국 중국 베트남
asia.update(['홍콩', '한국', '태국']) # 한국 중국 베트남 홍콩 태국
print(asia)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;중괄호 = 중복 허용 안함, 정렬 의미 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;19. 다음에 제시된 JAVA 프로그램은 &amp;lt;처리결과&amp;gt;와 같이 출력된다. JAVA 프로그램의 &amp;lt;?&amp;gt;에 들어갈 JAVA 표현을 대소문자를 구별하여 쓰시오&lt;/h4&gt;
&lt;pre id=&quot;code_1728857739570&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Parent {
    void show() {
    	System.out.println(&quot;Parent&quot;);
    }
}
class Child extends Parent {
    void show() {
    	System.out.println(&quot;Child&quot;); // 메서드 오버라이딩
    }
}
public class Exam {
    public ststic void main(String[] args) {
    	Parent pa = &amp;lt;?&amp;gt; Child();
        pa.show()
    }
}&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;정답: new&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;20. 다음에 JAVA로 작성된 프로그램이다. 이를 실행한 출력 결과를 쓰시오.&lt;/h4&gt;
&lt;pre id=&quot;code_1728858445250&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class A {
    int a;
    public A(int n) {
        a = n;
    }
    public void print() {
    	System.out.println(&quot;a=&quot;+a);
    }
}
class B extends A {
	public B(int n) { // 클래스 이름과 같은 것이 생성자
    	super(n); // 생성자 호출,,, super() 형태로 호출
        super.print(); // 메서드, 변수를 이용할 때는 . 사용
    }
}
public class Exam {
	public static void main(String[] args) {
     	B obj = new B(10); // B에 변수가 없으므로 A 클래스의 a를 변수로 가짐
     }
 }&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;System.out.println() 은 문자열을 만나면 그 뒤는 다 문자열 취급을 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;System.out.println(7+5+3+&quot;a&quot;+3+5);&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;15a35&amp;nbsp;&lt;/span&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;정답: a=10&lt;/p&gt;</description>
      <category>정보처리기사</category>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/141</guid>
      <comments>https://daily-stack.tistory.com/141#entry141comment</comments>
      <pubDate>Sun, 13 Oct 2024 21:33:08 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] 2020년 1회 실기 기출문제 풀이</title>
      <link>https://daily-stack.tistory.com/140</link>
      <description>&lt;h4 data-ke-size=&quot;size20&quot;&gt;1. 데이터베이스 모델링 과정 중 비정규화(반정규화, 역정규화)의 개념을 간력히 서술하시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터베이스 3단계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개념 : ERD 만들기 (개체: 사각형, 속성: 동그라미, 관계: 마름모)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논리 : 목표 DBMS에 맞는 설계, Transaction Interface, 정규화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물리 : 성능을 고려 &amp;rarr; 이때 반정규화 하게 됨(최후의 보루)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정규화 복습하기 (3정규형 까지) &lt;b&gt;두부이결다줘&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 도메인 원자성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 부분함수 종속 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 이행적 함수 종속 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;BCNF : 결정자이면서 후보키가 아닌 것 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 다치 종속 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. 조인 종속 제거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 너무 많이 쪼개게 되면 조인 연산을 했을 때 성능이 떨어짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 데이터베이스 정규화 이후, &lt;b&gt;성능향상&lt;/b&gt;과 개발 편의성 등 정규화 기법에 위배되는 수행 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;2. 다음 설명에 부합하는 마크업 언어는 무엇인지 영문으로 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(&amp;nbsp; ) 은 SGML의 단순화 된 부분집합으로, 다른 많은 종류의 데이터를 기술하는 데 사용할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(&amp;nbsp; ) 은 주로 다른 종류의 시스템, 특히 인터넷에 연결된 시스템끼리 데이터를 쉽게 주고 받을 수 있게하여 HTML의 한계를 극복할 목적으로 만들어졌다.&lt;/p&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;마크업 랭기지: HTML, SGML, XML&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HTML: 구조 담당, 한계가 있음 &amp;rarr; 사용할 수 있는 태그가 정해져 있음. ex) a, href, div...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SGML: 더럽게 복잡함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;XML: 확장된 마크업 랭기지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: XML&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;3. 소프트웨어 테스트 방법의 원리 중 하나인 살충제 패러독스(Pesticide Paradox)의 개념을 간략히 설명하시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 - &lt;b&gt;v모델&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단위테스트 - 정적 테스트(코드를 봄), 동적 테스트&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통합테스트 - 하향식(메인부터, 스텁), 상향식 테스트(드라이버), 빅뱅 테스트, 백본 테스트&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시스템 테스트 - 기능 테스트, 비기능(속도, 저장공간, 자원 효율, 보안, 등) 테스트&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인수테스트 - 알파 테스트(개발자 + 사용자), 베타 테스트(사용자)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;파레토 법칙: 20%의 핵심모듈에서 80%의 오류가 발생한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 오라클: 미리 정의된 참 값을 대입해서 테스트 하는 기법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(참 오라클, 샘플 오라클, 휴리스틱 오라클, 일관성 검사 오라클)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 동일한 테스트 케이스로 동일한 절차를 반복 수행하면 새로운 결함을 찾을 수 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;4. 프로그램 모듈화와 모듈의 독립성에 대한 설명이다. 빈칸에 들어갈 용어를 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모듈의 독립성을 판단하는 두 가지 지표이다. ( 1 )는 모듈과 모듈간의 상호 의존 정도, ( 2 ) 는 모듈 내부의 기능적인 집중 정도이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모듈의 독립성을 높이기 위해서는 모듈 간의 상호 의존 정도를 나타내는 ( 1 )를 낮추고 모듈이 독립적으로 자체 기능만을 수행하도록 ( 2 )를 높여야 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;소프트웨어 공학의 3R&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재공학: 유지보수의 생산성으로 소프트웨어의 위기를 극복해보자&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;역공학: 소스코드를 보고 역으로 문서를 추출해내는 과정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재사용: 잘 만들어진 모듈을 재사용하자 &amp;rarr; 모듈의 독립성이 높여야 함&lt;/p&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;&lt;b&gt;응집도&lt;/b&gt;: 하나의 기능을 수행하기 위해 모듈의 구성 요소가 똘똘뭉친다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(우논시절통순기, '우'리 '놀'던 '시''절'에 먹었던 '통'통한 '순'대 '기'가막혔지)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기능적 응집도: 제일 좋음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;순차적 응집도: &lt;u&gt;순차적으로 수행된다라는 의미가 아님,&lt;/u&gt; 하나의 모듈 내부에서 이전 결과값을 다음의 입력값으로 사용하는 것을 말함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통신적 응집도: 동일한 입력이나 출력을 사용함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;절차적 응집도: &lt;u&gt;순차적으로 수행됨&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시간적 응집도: 비슷한 시간대에 동작함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;논리적 응집도: 비슷한 일을 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우연적 응집도: 아무 상관이 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;결합도&lt;/b&gt;: 모듈간 호출 시, 도 모듈 간의 관계&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(데스제외공내, '데''스'형 '제''외'저래 '공'유랑 '내'가 닮았대)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터(자료): 값만 가지고 호출 함 call by value&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스탬프: 배열 자료구조 포인터 이런것들(주소값)을 넘길때&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제어: 제어 요소를 넘김 (if문에서 사용되는 값을 넘김)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;외부: 외부 변수를 넘김(extern 변수)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공통: 전역변수를 넘김&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용: 최악임, 스파게티 코드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 결합도(Coupling) 응집도(Cohesion)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;5. 다음은 어떤 프로그램의 구조를 나타낸다 Fan-in의 수가 2 이상인 모듈의 이름을 쓰시오.&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;367&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1xkE1/btsJ2872gwL/ljmLnSxADhlCvxLCRQttC0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1xkE1/btsJ2872gwL/ljmLnSxADhlCvxLCRQttC0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1xkE1/btsJ2872gwL/ljmLnSxADhlCvxLCRQttC0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1xkE1%2FbtsJ2872gwL%2FljmLnSxADhlCvxLCRQttC0%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;588&quot; height=&quot;367&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;588&quot; data-origin-height=&quot;367&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;Fan - IN : 모듈 기준으로 들어오는거, 모듈 머리에 꽂히는거&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Fan - Out: 모듈로부터 나가는거, 모듈의 다리 수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;B: in - 1 out - 2,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;C: in - 1 out - 1,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;F: in - 3 out - 1,&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;H: in - 2 out - 0&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답 : F, H&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;주의! 모듈의 이름을 쓰는 것인지, Fan -in (의 수)를 쓰는 것인지 잘 구분하기&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;6. 다음 설명 중 빈 칸에 가장 부합하는 용어를 영문약어로 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Javascript 객체 문법으로 구조화된 데이터를&amp;nbsp; 표현하기 위한 문자 기반의 표준 포멧&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(&amp;nbsp; &amp;nbsp;) 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 (&amp;nbsp; &amp;nbsp;)이 XML을 대체해서 데이터 전송 등에 많이 사용한다.&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; &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;JSON, YAML(직렬형 언어)..XML(확장된 마크업 랭기지, 태그로 구분되어 있음), CSV(콤마로 구분)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: JSON&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Framework: 개발할 때 기본적인 틀을 제공, 반제품 형태의 소프트웨어, 해당 언어로 만든 기본 틀&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) Spring, 전자 정부 프레임웍&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;lib: 내부 라이브러리(C언어에서 기본적으로 제공하는 모듈), 외부 라이브러리(공유 정신이 투철한 개발자들이 만든 모듈)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;API: Framework, lib 를 이용한 개발 형태. 입력값 출력값을 명시해서 외부에서 받은 입력값에 따른 출력값을 리턴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;7. 다음 설명 중 빈 칸 (1) ~ (3)에 가장 부합하는 애플리케이션 성능 측정을 위한 지표를 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(1) : 일정 시간 내에 애플리케이션이 처리하는 일의 양&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(2) : 애플리케이션에 요청을 전달한 시간부터 응답이 도착할 때까지 걸린 시간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;(3) : 애플리케이션에 요청을 전달한 시간부터 처리가 완료될 때까지 걸린 시간&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자원 사용률(Resource Usage) : 애플리케이션이 작업을 처리하는 동안의 CPU 사용량, 메모리 사용량, 네트워크 사용량 등 자원 사용률&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 처리량(Throughput), 응답 시간(Response Time), 경과 시간(Turn Around Time)&lt;/p&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;친구가 응이라고 대답하는데 걸린 시간 = 응답 시간(Response Time)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 사과를 가져오는 데 걸린 시간 = 경과 시간, 반환 시간(Turn Around Time)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;8. 학생(STUDENT) 테이블에 전자과 학생 50명, 전기과 학생 100명, 건축과 학생 50명의 정보가 저장되어 있을 때, 다음 1 ~ 3 SQL 문의 실행 결과 튜플 수를 쓰시오 (DEPT 칼럼은 학과 명이다)&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. SELECT DEPT FROM STUDENT;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. SELECT DISTINCT DEPT FROM STUDENT;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. SELECT COUNT(DISTINCT DEPT) FROM STUDENT WHERE DEPT='건축과';&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답:&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 200&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 1&lt;/p&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;열 = 칼럼 = 필드 = 속성 = 차수(degree)&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;SELECT 문 구조&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SELECT *&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;FROM ~&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;WHERE AND/OR&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;GROUP BY .. 집계함수(COUNT, SUM, MIN, MAX, AVG)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;HAVING SUM(영어) &amp;gt;= 200&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ORDERY BY A ASC, B DESC&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;집계함수는 SELECT절 , HAVING 절 밖에 사용할 수 없다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DISTINCT는 SELECT 절에만 들어갈 수 있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;9. 다음에 가장 부합하는 네트워크 공격 유형을 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출발지 IP와 목적지 IP가 같은 패킷을 만들어 보내는 공격 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수신자가 응답을 보낼 때, 목적지 주소가 자기 자신이므로 SYN 신호가 계속 자신의 서버를 돌게 되어 서버의 자원을 고갈 시 켜 &lt;b&gt;가용성&lt;/b&gt;을 파괴한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방화벽에서 출발지와 목적지가 같은 패킷은 모두 제거하여 대응한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DoS 공격 중 Land attack에 해당하는 설명이다&lt;/p&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;DoS(Denial of Service, 서비스 거부) 가용성을 해치는 공격&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Smurf Attack: IP, ICMP(데이터 전송 실패시 알려주는 프로토콜), 내 IP 주소를 속임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를 들어 네이버 IP 주소가 2번이고 내 IP 주소가 1번일때, 내 IP 주소를 2번이라고 속인 후 실패를 유도해서 ICMP 프로토콜이 신호를 보내게 유도함. 이 신호는 내가 아닌 NAVER에게 전송됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SYN flooding: SYN 신호를 계속해서 보냄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- UDP flooding: UDP 패킷을 계속해서 보냄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Ping flooding: Ping 관련된 ICMP 패킷을 계속해서 보냄&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Ping of Death: &lt;b&gt;규정 크기 이상의 패킷&lt;/b&gt;을 보내서 죽여버림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Teardrop Attack: &lt;b&gt;재조립 불가&lt;/b&gt;, 패킷을 보낼 때 잘라서 보내게 되는데, 이 자른 패킷을 다시 조립할 수 없게 fragment number를 바꿔버림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Land Attack: 출발지, 목적지 ip 주소를 같게 해서 서버 내에서 계속 돌게함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정보보안의 3요소&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 기밀성: 아무나 보지 못함, 암호화&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 무결성: 인가된 사용자만 수정할 수 있음, 접근제어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 가용성: 인가된 사용자가 정보 자산을 언제든지 이용할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DDoS vs DoS&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DOS: 내가 공격의 주체가 됨, 공격 유형의 특징 알아두기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DDoS: 쫄병을 만들어서 공격을 시키고 나는 구경함, TFN, 슈타실드(?) 이런 도구들이 있음 알아두기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;10. 통신 프로토콜 또는 통신 규약은 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계이다. 통신 프로토콜의 기본 요소 3가지를 쓰시오.&lt;/h4&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;구문(Syntax)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;타이밍(Timing)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의미(Semantic)&lt;/p&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;11. HRN(Highest Response-ratio Next) 우선순위를 결정하는 계산식을 쓰시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;범위: process scheduling&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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 data-ke-size=&quot;size16&quot;&gt;SJF(Shortest Job First)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SRT(Shortest Remain Time)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;은 실행시간이 짧은것들을 먼저 올리기 때문에 실행 시간이 길어지는 것들은 기아 현상이 발생할 수 있음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;rarr; 기아 현상 예방을 위해 대기 시간이 길어진 것들에 힘을 실어주는 방식이 HRN&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&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 data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;프로세스 스케쥴링&lt;/b&gt;&lt;/p&gt;
&lt;table style=&quot;border-collapse: collapse; width: 100%;&quot; border=&quot;1&quot; data-ke-align=&quot;alignLeft&quot; data-ke-style=&quot;style13&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;b&gt;비선점 스케줄링&lt;/b&gt;&lt;/td&gt;
&lt;td style=&quot;width: 50%; text-align: center;&quot;&gt;&lt;b&gt;선점 스케줄링&lt;/b&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;FCFS&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;SRT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;SJF&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;RR&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;HRN&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;MLQ(다단계 큐)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;기한부&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;MFQ(다단계 피드백 큐)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;우선순위&lt;/td&gt;
&lt;td style=&quot;width: 50%;&quot;&gt;&amp;nbsp;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;비선점 스케줄링&lt;/b&gt; &amp;rarr; 먼저 처리되고 있는 프로세스가 있으면 기존 프로세를 빼낼 수 없음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- FCFS: 먼저 들어온거 먼저 처리함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SJF: 실행시간이 짧은걸 먼저 실행함, SRT랑 비슷함&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;- 기한부: 기간을 정해 놓고 그 시간 내에 못하면 버림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 우선순위: 우선순위를 줌&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;선점 스케줄링&lt;/b&gt; &amp;rarr; 운영체제가 강력한 제어권을 가짐, 급한 프로세스가 들어오면 기존 작업을 빼내고 급한거 먼저 수행 가능&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SRT(Shrotest Remain Time): 실행시간(=서비스 시간)이 짧은 것을 먼저 집어넣음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- RR(Round Robin): 타임 슬라이스를 할당하여 시간 만큼 돌림&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- MLQ(다단계 큐): 여러 개의 큐를 두어 해당하는 큐에 프로세스를 배치, 상위 큐에 있는 프로세스가 모두 실행 되면 하위 큐에 있는 프로세스 실행, 중간에 상위 큐에 프로세스가 들어오면 상위 큐 갔다가 다시 내려옴&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- MFQ(다단계 피드백 큐): 일정 시간 동안만 해당 큐에 남겨서 실행하고 그 시간 동안 수행을 완료하지 못하면 하위 큐로 넘겨버림. 마지막 큐는 RR&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;중요!&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기아현상 발생 가능 스케줄링: SRT, MLQ, SJF, 우선순위&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기아현상 방지를 위해 에이징 기법을 도입: MFQ, HRN&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;223&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/VCi2V/btsJ4pUUHE3/3ksr5dledx9D4KpnujLlZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/VCi2V/btsJ4pUUHE3/3ksr5dledx9D4KpnujLlZ0/img.png&quot; data-alt=&quot;MFQ, MLFQ&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/VCi2V/btsJ4pUUHE3/3ksr5dledx9D4KpnujLlZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FVCi2V%2FbtsJ4pUUHE3%2F3ksr5dledx9D4KpnujLlZ0%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;235&quot; height=&quot;223&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;235&quot; data-origin-height=&quot;223&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;MFQ, MLFQ&lt;/figcaption&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;어떤 프로그램은 보조기억장치(HDD, SSD)에 저장되었다가 실행을 시키면 메모리(주기억장치, RAM)로 올라가게 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행중인 프로그램은 프로세스 라고 부름.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로세스 - 스레드(경량 프로세스)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로세스는 코드, 데이터(전역변수, 정적변수), 힙(동적할당), 스택(지역변수)를 가짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스레드는 각각의 스택 영역만 가짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행중인 프로세스는 CPU(프로세서)에 할당됨 이때 운영체제가 프로세스 스케줄링을 하게 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배치 프로그램: 한번에 모아서 처리(한번에 하나씩 처리하던 옛날 방식)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실시간 프로그램: 요청이 들어오면 그 시점에 처리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다중 프로그래밍: 여러개의 프로세스가 동시에 수행 됨, 실제로 동시에 수행되는 건 아니고 시분할 처리 혹은 다중 처리 시스템을 이용함 됨,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;시분할은 여러개의 프로세스에 실행할 시간을 할당하는 것을 의미&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다중 처리 시스템은 여러개의 처리기(프로세서)를 두는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;12. 다음은 트랜잭션(Transcation)의 주요 특성 4가지이다. 빈칸 1 ~ 2에 알맞은 용어를 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 1 ) : 트랜잭션의 가장 기본적인 특성으로, 트랜잭션 내의 연산은 반드시 모두 수행되어야 하며 그렇지 못한 경우 모두 수행되지 않아야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일관성 : 트랜젝션이 정상적으로 완료된 후 언제나 일관성 있는 데이터베이스 상태가 되어야 하며, 결과에 모순이 생겨서는 안 됨&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;( 2 ) : 하나의 트랜잭션이 수행 중에는 다른 트랜젝션이 접근할 수 없고 각각의 트랜잭션은 독립적이어야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;영속성 : 지속성이라고 하며, 트랜잭션이 성공적으로 완료된 후 결과는 지속적으로 유지되어야 함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ACID&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Atomicity 원자성, commit rollback 과 연관&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Consisteny 일관성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Isolation 독립성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Durability 영속성&lt;/p&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;병행 제어&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;locking, 2단계 locking, time stamp&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;병행 제어 하지 않았을 때 문제점: 갱신 분실, 비완료 의존성, 모순성, 연쇄 복귀, 등..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;13. OSI 7 참조 모델 중 다음이 설명하는 계층을 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;통신 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터를 전달할 뿐, 데이터가 무엇인지 어떤 에러가 있는지 신경쓰지 않는다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응표세전네데물&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;응용 계층: 프로그램&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;표현 계층: 암호화, 압축&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세션 계층: 연결 설정, 연결 유지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;------------------------------------------------------ 위에 3 계층에서 데이터(D)가 만들어짐, PDU: 전송 단위, 아래부터 정말 중요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전송 계층: 양 종단 간의 신뢰성 있는 정보 전달Header/Data -&amp;gt; Segment, 로드 밸런싱 가능(L4 장비), &lt;b&gt;TCP(연결 확립, 신뢰성)/UDP(빠른 전송)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크 계층: 비연결성, 비신뢰성, 빨리빨리 보내는 역할, Header/Segment &amp;rarr; Packet, 라우터(L3 스위치), &lt;b&gt;IP&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터링크 계층: 인접한 노드간의 신뢰성 있는 데이터 전달 Header/Packet &amp;rarr; Frame, 스위치(L2 스위치, 똘똘함), 브릿지&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;물리 계층: 비트로 바꿔서 전송, NIC, 허브, 리피터(증폭기)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터링크 계층 + 물리 계층 = LAN&lt;/p&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;14. 릴리즈 노트 작성 항목 중 문서 이름(릴리스 노트 이름), 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등을 기술하는 작성 항목은 무엇인지 쓰시오.&lt;/h4&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;정답: Header&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;15. 데이터 마이닝(Data mining)의 개념을 간략히 서술하시오&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 웨어하우스: 데이터 마트를 모아서 관리하는 큰 덩어리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 마트: 작은 덩어리&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;데이터 마이닝: 데이터 웨어하우스에서 의미있는 데이터 찾기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&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;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;16. 1990년 R.Rivert가 MD4를 일방향 해시 함수로 개선한 알고리즘으로, 임의의 길이의 값을 입력받아서 128 비트 길이의 해시값을 출력하는 알고리즘은 무엇인지 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: MD5&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;암호화 알고리즘(대칭키 알고리즘 VS 비대칭키 알고리즘)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대칭키 알고리즘: 암호화 키와 복호화 키가 같다 &amp;rarr; 키 분배의 문제 발생, 많은 양을 암호화 시킬 수 있음, 속도가 빠름, key의 길이가 짧음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- DES&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- AES&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- ARIA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- SEED&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- IDEA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- LEA&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- JKIJACK&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비대칭키(공개키) 알고리즘: 많은 양을 암호화 시키지 못함, 속도가 느림, key의 길이가 길다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 소인수 분해: RSA, Rabin&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이산 대수: Diffie-Hellman, DSA, ELGamal&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 타원 곡선+이산대수: ECC&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 해시 알고리즘(단방향 알고리즘, 복호화 불가능, 암호, 무결성 검증에 사용): SHA, MD5, HAS-160&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;역상 저항성: 암호문으로 평문을 알 수 없어야 함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제2 역상 저항성: 다른 평문으로 같은 암호문이 나올 수도 있는데 이를 서로가 몰라야함&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 data-ke-size=&quot;size16&quot;&gt;해시 알고리즘의 취약점&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;레인보우 테이블: 해커들이 평문과 암호문에 대한 정보를 가지고있음, 방어전략 - 솔팅: 뒤에 회사만의 추가 평문을 넣음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;무차별 대입 공격: ㅈㄴ게 대입함, 방어전략 - 키 스트레칭&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;17. LOC 기법에 의하여 예측된 총 라인 수가 30,000라인일 경우 개발에 투입될 프로그래머 수가 5명이고, 프로그래머들의 평균 생산성이 월당 300라인일 때, 개발에 소요되는 기간을 구하는 계산식과 기간(개월)을 구하여 쓰시오.&lt;/h4&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정답: 30000 / (5 * 300) = 20&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;일정 산정 - WBS 작성 - P/C 작성, 임계경로 구하기(가장 긴 시간이 임계경로) - 간트 차트 작성&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;비용 산정&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 상향식: LOC&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하향식: 전문가 기법, 델파이&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 수학적 기법: COCOMO(라인 수 기반), PUTNAM(레일리 노든 곡선), FUCTION POINT(외부~),&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;18. 다음은 C언어로 작성된 프로그램이다. 이를 실행한 결과를 쓰시오.&lt;/h4&gt;
&lt;pre id=&quot;code_1728783991189&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;stdio.h&amp;gt;
int main() {
    int a[] = {95, 75, 85, 10, 50);
    int i, j, temp;
    int n = sizeof(a) / sizeof(int); // 20 / 4
    
    for(i=0; i &amp;lt; n-1; i++) {
    	for(j=0; j &amp;lt; 4-i; j++) {
        	if(a[j] &amp;gt; a[j+1]) { // 버블정렬
                temp = a[j]
                a[j] = a[j+1];
                a[j+1] = temp;
        	}
    	}
	}
    
    for(i=0; i&amp;lt;5; i++) {
    	printf(&quot;%d&quot;, a[i]); // 10 50 75 85 95
    }
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;19. 다음은 JAVA로 작성된 프로그램이다. 이를 실행한 결과를 쓰시오.&lt;/h4&gt;
&lt;pre id=&quot;code_1728784514377&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;public static int[] makeArray(int n) {
    int[] t = new int[n];
    for(int i = 0; i &amp;lt; n; i++){
		t[i] = i;
    }
    return t; // t는 지워지지만 t 배열의 주소를 return으로 넘기므로 배열은 지워지지 않고 메인의 a에 저장된다
}

public static void main(String[] agrs) {
    int[] a = makeArray(4);
    for(int i = 0; i &amp;lt; a.length; i++) // a.length = 4
    	System.out.print(a[i]+&quot; &quot;); // 0 1 2 3
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size20&quot;&gt;20. 다음은 JAVA로 작성된 프로그램이다. 이를 실행한 결과를 쓰시오.&lt;/h4&gt;
&lt;pre id=&quot;code_1728784792757&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;int i = 3, c = 1;
switch(i) {
    case 1: c++;
    case 2: c += 3;
    case 3: c = 0;
    case 4: c += 3;
    case 5: c-= 10;
    default: c--;
}
System.out.print(c); // -8

// break 가 없으므로 해당 case로 간 다음 아래쪽으로 쭉 흐른다 default 포함
// break가 없는 경우 case 3, case 1 이런식으로 내림차순으로 나와도 무조건 아래쪽으로 흐름&lt;/code&gt;&lt;/pre&gt;</description>
      <category>정보처리기사</category>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/140</guid>
      <comments>https://daily-stack.tistory.com/140#entry140comment</comments>
      <pubDate>Fri, 11 Oct 2024 13:05:12 +0900</pubDate>
    </item>
    <item>
      <title>[정보처리기사] JAVA 상속, 오버로딩, 하이딩</title>
      <link>https://daily-stack.tistory.com/139</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;상속&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부모의 메서드나 속성을 자식이 물려받음&lt;/p&gt;
&lt;pre id=&quot;code_1728600086061&quot; class=&quot;cpp&quot; data-ke-language=&quot;cpp&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;class Parent{

}
class Child extends Parent{

}

interface Parent{ // 모든 메서드가 추상

}
class Child increments Parent{

}&lt;/code&gt;&lt;/pre&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;오버로딩&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;오버라이딩&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아버지가 나를 낳는 형태&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부모의 생성자를 먼저 호출하고 자식의 생성자 호출하기&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오버라이딩은 자식이 가지고 있는 값을 출력&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;부모가 가지고 있지 않는것을 자식이 정의할 수 없음&lt;/p&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-filename=&quot;temp.png&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;461&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/NqFNp/btsKazcCwxW/1krRY6jNhMjoqYCVXMgGx0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/NqFNp/btsKazcCwxW/1krRY6jNhMjoqYCVXMgGx0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/NqFNp/btsKazcCwxW/1krRY6jNhMjoqYCVXMgGx0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNqFNp%2FbtsKazcCwxW%2F1krRY6jNhMjoqYCVXMgGx0%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;802&quot; height=&quot;461&quot; data-filename=&quot;temp.png&quot; data-origin-width=&quot;802&quot; data-origin-height=&quot;461&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <author>jaeheon0520</author>
      <guid isPermaLink="true">https://daily-stack.tistory.com/139</guid>
      <comments>https://daily-stack.tistory.com/139#entry139comment</comments>
      <pubDate>Fri, 11 Oct 2024 07:42:01 +0900</pubDate>
    </item>
  </channel>
</rss>