<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://devhrxoobm.itwiki.kr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%EA%B8%B0%EC%82%AC%EB%8F%84</id>
	<title>IT 위키 - 사용자 기여 [ko]</title>
	<link rel="self" type="application/atom+xml" href="https://devhrxoobm.itwiki.kr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=%EA%B8%B0%EC%82%AC%EB%8F%84"/>
	<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/w/%ED%8A%B9%EC%88%98:%EA%B8%B0%EC%97%AC/%EA%B8%B0%EC%82%AC%EB%8F%84"/>
	<updated>2026-09-16T05:25:13Z</updated>
	<subtitle>사용자 기여</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C&amp;diff=28678</id>
		<title>운영체제</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C&amp;diff=28678"/>
		<updated>2022-05-19T06:23:43Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[분류:운영체제]]&lt;br /&gt;
&lt;br /&gt;
;Operating System&lt;br /&gt;
;컴퓨터의 시스템 자원을 관리 및 운영함으로써 사용자 지향적인 환경을 제공하는 시스템 소프트웨어&lt;br /&gt;
&lt;br /&gt;
==역할==&lt;br /&gt;
&lt;br /&gt;
*사용자 인터페이스 제공&lt;br /&gt;
*사용자 프로그램 제어 및 관리&lt;br /&gt;
*입ㆍ출력에 대한 보조역할 수행&lt;br /&gt;
*사용자들 간 하드웨어 자원의 공동 사용을 위한 자원 분배 및 관리&lt;br /&gt;
&lt;br /&gt;
==발달 과정==&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;일괄 처리 시스템(1950년대)&#039;&#039;&#039;&lt;br /&gt;
#*필요한 정보를 모아 한꺼번에 처리하는 초기 정보처리 시스템&lt;br /&gt;
#*현대에서도 배치 프로그램은 사용된다. 은행의 이자 정산, 학교의 성적 처리 등&lt;br /&gt;
#&#039;&#039;&#039;실시간 처리 시스템(1960년대)&#039;&#039;&#039;&lt;br /&gt;
#*입출력 장치의 개선으로 대화식으로 실시간 정보 처리 수행&lt;br /&gt;
#*&#039;&#039;&#039;사용자가 필요한 연산을 바로바로 입력하고 결과를 받아본다.&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;시분할 시스템(1960년대)&#039;&#039;&#039;&lt;br /&gt;
#*다중 프로그래밍 시스템이라고도 한다.&lt;br /&gt;
#*짧은 주기로 여러 프로그램을 번갈아가면서 실행하여 여러 사용자가, 여러 프로그램을 동시에 사용할 수 있게 함&lt;br /&gt;
#*현대의 멀티 프로세싱, 멀티 스레드도 시분할 처리다.&lt;br /&gt;
#&#039;&#039;&#039;다중처리 시스템(1980년대)&#039;&#039;&#039;&lt;br /&gt;
#*하나의 메모리에 복수의 연산장치를 이용하여 작업을 처리하는 방식&lt;br /&gt;
#*2코어, 4코어 등의 멀티 프로세서 시스템을 말한다.&lt;br /&gt;
#&#039;&#039;&#039;[[분산 처리 시스템]](1980년대)&#039;&#039;&#039;&lt;br /&gt;
#*여러 컴퓨터를 네트워크로 묶어 높은 성능을 구현하는 방식&lt;br /&gt;
#*클러스터링이 분산 처리 시스템에 해당된다.&lt;br /&gt;
&lt;br /&gt;
==[[운영체제 유형|유형]]==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;싱글 태스킹 시스템:&#039;&#039;&#039; 컴퓨터가 한 번에 하나의 작업만을 처리&lt;br /&gt;
*&#039;&#039;&#039;멀티 스위칭 시스템 :&#039;&#039;&#039; 다수의 작업이 동시 실행되나 포그라운드 프로그램만 동작하는 형태&lt;br /&gt;
*&#039;&#039;&#039;멀티 태스킹 시스템:&#039;&#039;&#039; 여러개의 작업을 동시에 처리가능한 시스템&lt;br /&gt;
*&#039;&#039;&#039;멀티 유저 시스템:&#039;&#039;&#039; 단일 시스템에서 여러 사용자가 동시에 프로그램을 이용가능한 시스템&lt;br /&gt;
*&#039;&#039;&#039;일괄처리 시스템:&#039;&#039;&#039; 여러 개의 작업을 묶어 한꺼번에 처리하는 시스템&lt;br /&gt;
*&#039;&#039;&#039;대화형 처리 시스템:&#039;&#039;&#039; 사용자와 컴퓨터가 명령과 결과 응답을 주고 받으며 구동되는 시스템&lt;br /&gt;
&lt;br /&gt;
==기능적 구분==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;제어 프로그램(Control Program)&#039;&#039;&#039;&lt;br /&gt;
**감시 프로그램(Supervisor Program)&lt;br /&gt;
**작업 관리 프로그램(Job Management Program)&lt;br /&gt;
**데이터 관리 프로그램(Data Management Program)&lt;br /&gt;
*&#039;&#039;&#039;처리 프로그램(Process Program)&#039;&#039;&#039;&lt;br /&gt;
**[[언어 번역 프로그램|언어 번역 프로그램(Language Translator Program)]]&lt;br /&gt;
**문제 처리 프로그램(Problem Processing Program)&lt;br /&gt;
**서비스 프로그램(Service Program)&lt;br /&gt;
&lt;br /&gt;
==[[운영체제 5계층|자원 관리 5계층]]==&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;프로세서 관리&#039;&#039;&#039;(1계층): 동기화 및 프로세서 스케줄링&lt;br /&gt;
#&#039;&#039;&#039;메모리 관리&#039;&#039;&#039;(2계층): 메모리 할당 및 회수&lt;br /&gt;
#&#039;&#039;&#039;프로세스 관리&#039;&#039;&#039;(3계층): 프로세스 생성,제거&lt;br /&gt;
#&#039;&#039;&#039;주변장치 관리&#039;&#039;&#039;(4계층): 주변장치 상태파악&lt;br /&gt;
#&#039;&#039;&#039;파일 관리&#039;&#039;&#039;(5계층): 파일의 생성과 소멸, 파일의 열기와 닫기&lt;br /&gt;
&lt;br /&gt;
==[[운영체제 성능평가 기준|성능평가 기준]]==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;처리능력(Throughput)&#039;&#039;&#039;&lt;br /&gt;
**일정 시간 내에 시스템이 처리하는 일의 양&lt;br /&gt;
*&#039;&#039;&#039;반환 시간(Turn Around Time)&#039;&#039;&#039;&lt;br /&gt;
**시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간&lt;br /&gt;
*&#039;&#039;&#039;사용 가능도(Availability)&#039;&#039;&#039;&lt;br /&gt;
**시스템을 사용할 필요가 있을때 즉시 사용 가능한 정도&lt;br /&gt;
*&#039;&#039;&#039;신뢰도(Reliability)&#039;&#039;&#039;&lt;br /&gt;
**시스템이 주어진 문제를 정확하게 해결하는 정도&lt;br /&gt;
&lt;br /&gt;
==대표적 운영체제==&lt;br /&gt;
&lt;br /&gt;
*아래 운영체제에 공통적인 사항&lt;br /&gt;
**다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.&lt;br /&gt;
**백그라운드에서 작업을 수행할 수 있다.&lt;br /&gt;
**다양한 유틸리티 프로그램이 존재한다.&lt;br /&gt;
&lt;br /&gt;
===[[윈도우|윈도우(Windows)]]===&lt;br /&gt;
&lt;br /&gt;
*Microsoft사의 운영체제&lt;br /&gt;
*GUI기반 운영체제이다.&lt;br /&gt;
*트리 디렉터리 구조를 가진다.&lt;br /&gt;
*선점형 멀티태스킹 방식을 사용한다.&lt;br /&gt;
&lt;br /&gt;
===[[유닉스|유닉스(UNIX)]]===&lt;br /&gt;
&lt;br /&gt;
*시분할 시스템을 위해 설계된 대화식 운영체제&lt;br /&gt;
*소스가 공개된 개방형(Open) 시스템&lt;br /&gt;
*대부분 [[C언어]]로 작성되어 있어 이식성이 높다.&lt;br /&gt;
&lt;br /&gt;
===[[리눅스|리눅스(Linux)]]===&lt;br /&gt;
&lt;br /&gt;
*유닉스로부터 파생된 운영체제&lt;br /&gt;
*소스가 공개된 개방형(Open) 시스템&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C&amp;diff=28677</id>
		<title>운영체제</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C&amp;diff=28677"/>
		<updated>2022-05-19T06:23:25Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[분류:운영체제]]&lt;br /&gt;
&lt;br /&gt;
;Operating System&lt;br /&gt;
;컴퓨터의 시스템 자원을 관리 및 운영함으로써 사용자 지향적인 환경을 제공하는 시스템 소프트웨어&lt;br /&gt;
&lt;br /&gt;
==역할==&lt;br /&gt;
&lt;br /&gt;
*사용자 인터페이스 제공&lt;br /&gt;
*사용자 프로그램 제어 및 관리&lt;br /&gt;
*입ㆍ출력에 대한 보조역할 수행&lt;br /&gt;
*사용자들 간 하드웨어 자원의 공동 사용을 위한 자원 분배 및 관리&lt;br /&gt;
&lt;br /&gt;
==발달 과정==&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;일괄 처리 시스템(1950년대)&#039;&#039;&#039;&lt;br /&gt;
#*필요한 정보를 모아 한꺼번에 처리하는 초기 정보처리 시스템&lt;br /&gt;
#*현대에서도 배치 프로그램은 사용된다. 은행의 이자 정산, 학교의 성적 처리 등&lt;br /&gt;
#&#039;&#039;&#039;실시간 처리 시스템(1960년대)&#039;&#039;&#039;&lt;br /&gt;
#*입출력 장치의 개선으로 대화식으로 실시간 정보 처리 수행&lt;br /&gt;
#*&#039;&#039;&#039;사용자가 필요한 연산을 바로바로 입력하고 결과를 받아본다.&#039;&#039;&#039;&lt;br /&gt;
#&#039;&#039;&#039;시분할 시스템(1960년대)&#039;&#039;&#039;&lt;br /&gt;
#*다중 프로그래밍 시스템이라고도 한다.&lt;br /&gt;
#*짧은 주기로 여러 프로그램을 번갈아가면서 실행하여 여러 사용자가, 여러 프로그램을 동시에 사용할 수 있게 함&lt;br /&gt;
#*현대의 멀티 프로세싱, 멀티 스레드도 시분할 처리다.&lt;br /&gt;
#&#039;&#039;&#039;다중처리 시스템(1980년대)&#039;&#039;&#039;&lt;br /&gt;
#*하나의 메모리에 복수의 연산장치를 이용하여 작업을 처리하는 방식&lt;br /&gt;
#*2코어, 4코어 등의 멀티 프로세서 시스템을 말한다.&lt;br /&gt;
#&#039;&#039;&#039;[[분산 처리 시스템]](1980년대)&#039;&#039;&#039;&lt;br /&gt;
#*여러 컴퓨터를 네트워크로 묶어 높은 성능을 구현하는 방식&lt;br /&gt;
#*클러스터링이 분산 처리 시스템에 해당된다.&lt;br /&gt;
&lt;br /&gt;
==[[운영체제 유형|유형]]==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;싱글 태스킹 시스템:&#039;&#039;&#039; 컴퓨터가 한 번에 하나의 작업만을 처리&lt;br /&gt;
*&#039;&#039;&#039;멀티 스위칭 시스템 :&#039;&#039;&#039; 다수의 작업이 동시 실행되나 포그라운드 프로그램만 동작하는 형태&lt;br /&gt;
*&#039;&#039;&#039;멀티 태스킹 시스템:&#039;&#039;&#039; 여러개의 작업을 동시에 처리가능한 시스템&lt;br /&gt;
*&#039;&#039;&#039;멀티 유저 시스템:&#039;&#039;&#039; 단일 시스템에서 여러 사용자가 동시에 프로그램을 이용가능한 시스템&lt;br /&gt;
*&#039;&#039;&#039;일괄처리 시스템:&#039;&#039;&#039; 여러 개의 작업을 묶어 한꺼번에 처리하는 시스템&lt;br /&gt;
*&#039;&#039;&#039;대화형 처리 시스템:&#039;&#039;&#039; 사용자와 컴퓨터가 명령과 결과 응답을 주고 받으며 구동되는 시스템&lt;br /&gt;
&lt;br /&gt;
==기능적 구분==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;제어 프로그램(Control Program)&#039;&#039;&#039;&lt;br /&gt;
**감시 프로그램(Supervisor Program)&lt;br /&gt;
**작업 관리 프로그램(Job Management Program)&lt;br /&gt;
**데이터 관리 프로그램(Data Management Program)&lt;br /&gt;
*&#039;&#039;&#039;처리 프로그램(Process Program)&#039;&#039;&#039;&lt;br /&gt;
**[[언어 번역 프로그램|언어 번역 프로그램(Language Translator Program)]]&lt;br /&gt;
**문제 처리 프로그램(Problem Processing Program)&lt;br /&gt;
**서비스 프로그램(Service Program)&lt;br /&gt;
&lt;br /&gt;
==[[운영체제 5계층|자원 관리 5계층]]==&lt;br /&gt;
&lt;br /&gt;
#&#039;&#039;&#039;프로세서 관리&#039;&#039;&#039;(1계층): 동기화 및 프로세서 스케줄링&lt;br /&gt;
#&#039;&#039;&#039;메모리 관리&#039;&#039;&#039;(2계층): 메모리 할당 및 회수&lt;br /&gt;
#&#039;&#039;&#039;프로세스 관리&#039;&#039;&#039;(3계층): 프로세스 생성,제거&lt;br /&gt;
#&#039;&#039;&#039;주변장치 관리&#039;&#039;&#039;(4계층): 주변장치 상태파악&lt;br /&gt;
#&#039;&#039;&#039;파일 관리&#039;&#039;&#039;(5계층): 파일의 생성과 소멸, 파일의 열기와 닫기&lt;br /&gt;
&lt;br /&gt;
===[[운영체제 성능평가 기준|성능평가 기준]]===&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;처리능력(Throughput)&#039;&#039;&#039;&lt;br /&gt;
**일정 시간 내에 시스템이 처리하는 일의 양&lt;br /&gt;
*&#039;&#039;&#039;반환 시간(Turn Around Time)&#039;&#039;&#039;&lt;br /&gt;
**시스템에 작업을 의뢰한 시간부터 처리가 완료될 때까지 걸린 시간&lt;br /&gt;
*&#039;&#039;&#039;사용 가능도(Availability)&#039;&#039;&#039;&lt;br /&gt;
**시스템을 사용할 필요가 있을때 즉시 사용 가능한 정도&lt;br /&gt;
*&#039;&#039;&#039;신뢰도(Reliability)&#039;&#039;&#039;&lt;br /&gt;
**시스템이 주어진 문제를 정확하게 해결하는 정도&lt;br /&gt;
&lt;br /&gt;
==대표적 운영체제==&lt;br /&gt;
&lt;br /&gt;
*아래 운영체제에 공통적인 사항&lt;br /&gt;
**다중 사용자(Multi-User), 다중 작업(Multi-Tasking)을 지원한다.&lt;br /&gt;
**백그라운드에서 작업을 수행할 수 있다.&lt;br /&gt;
**다양한 유틸리티 프로그램이 존재한다.&lt;br /&gt;
&lt;br /&gt;
===[[윈도우|윈도우(Windows)]]===&lt;br /&gt;
&lt;br /&gt;
*Microsoft사의 운영체제&lt;br /&gt;
*GUI기반 운영체제이다.&lt;br /&gt;
*트리 디렉터리 구조를 가진다.&lt;br /&gt;
*선점형 멀티태스킹 방식을 사용한다.&lt;br /&gt;
&lt;br /&gt;
===[[유닉스|유닉스(UNIX)]]===&lt;br /&gt;
&lt;br /&gt;
*시분할 시스템을 위해 설계된 대화식 운영체제&lt;br /&gt;
*소스가 공개된 개방형(Open) 시스템&lt;br /&gt;
*대부분 [[C언어]]로 작성되어 있어 이식성이 높다.&lt;br /&gt;
&lt;br /&gt;
===[[리눅스|리눅스(Linux)]]===&lt;br /&gt;
&lt;br /&gt;
*유닉스로부터 파생된 운영체제&lt;br /&gt;
*소스가 공개된 개방형(Open) 시스템&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%9D%B4%EC%A7%84_%EA%B2%80%EC%83%89&amp;diff=28676</id>
		<title>이진 검색</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%9D%B4%EC%A7%84_%EA%B2%80%EC%83%89&amp;diff=28676"/>
		<updated>2022-05-19T06:13:26Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: &amp;#039;&amp;#039;&amp;#039;Binary Search&amp;#039;&amp;#039;&amp;#039;  * 탐색 효율이 좋고 탐색 시간이 적게 소요된다. * 검색할 데이터가 정렬되어 있어야 한다. * 비교횟수를 거듭할 때마다 검...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Binary Search&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 탐색 효율이 좋고 탐색 시간이 적게 소요된다.&lt;br /&gt;
* 검색할 데이터가 정렬되어 있어야 한다.&lt;br /&gt;
* 비교횟수를 거듭할 때마다 검색 대상이 되는 데이터의 수가 절반으로 줄어든다.&lt;br /&gt;
&lt;br /&gt;
== 참고 문헌 ==&lt;br /&gt;
&lt;br /&gt;
* [https://q.fran.kr/문제/13710 정보처리기사 2021년 1회 기출문제]&lt;br /&gt;
* [https://q.fran.kr/문제/20304 정보처리기사 2022년 2회 기출문제]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98_%EC%84%A4%EA%B3%84&amp;diff=28675</id>
		<title>소프트웨어 아키텍처 설계</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98_%EC%84%A4%EA%B3%84&amp;diff=28675"/>
		<updated>2022-05-19T06:05:31Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: * 상위 문서: 소프트웨어 아키텍처  == 설계 과정 ==  # 설계 목표 설정 # 시스템 타입 결정 # 스타일 적용 및 커스터마이즈 # 서브시스템의...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 상위 문서: [[소프트웨어 아키텍처]]&lt;br /&gt;
&lt;br /&gt;
== 설계 과정 ==&lt;br /&gt;
&lt;br /&gt;
# 설계 목표 설정&lt;br /&gt;
# 시스템 타입 결정&lt;br /&gt;
# 스타일 적용 및 커스터마이즈&lt;br /&gt;
# 서브시스템의 기능, 인터페이스 동작 작성&lt;br /&gt;
# 아키텍처 설계 검토&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[소프트웨어 아키텍처]]&lt;br /&gt;
* [[소프트웨어 아키텍처 스타일]]&lt;br /&gt;
* [[소프트웨어 아키텍처 평가]]&lt;br /&gt;
* [[소프트웨어 아키텍처 품질]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84&amp;diff=28674</id>
		<title>객체지향 설계</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84&amp;diff=28674"/>
		<updated>2022-05-19T05:59:37Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[분류:소프트웨어 공학]]&lt;br /&gt;
&lt;br /&gt;
;Object Oriented Designing; Object Oriented Architecting&lt;br /&gt;
&lt;br /&gt;
==특징==&lt;br /&gt;
&lt;br /&gt;
*객체지향 설계에서 중요한 것은 시스템을 구성하는 객체와 속성, 연산을 정의하는 것이다.&lt;br /&gt;
*객체지향 설계에서는 주어진 객체의 특성을 분석하여 공통된 특징을 갖는 슈퍼클래스를 생성하는 추상화 기법을 통해 객체의 설계 비용과 시간을 줄일 수 있다.&lt;br /&gt;
*객체지향 설계에서는 캡슐화를 통해 객체의 세부내용 변경에 의해 발생될 수 있는 오류의 파급을 줄일 수 있다.&lt;br /&gt;
&lt;br /&gt;
==[[객체지향 설계 원칙|객체지향 설계 5원칙]]==&lt;br /&gt;
&#039;&#039;&#039;단일 책임 원칙(Single Responsiblity Principle; SRP)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*소프트웨어의 컴포넌트는 단 하나의 책임만을 가져야 한다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;개방 폐쇄 원칙(Open Close Principles; OCP)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*확장에 대해선 열려 있어야 하고 수정에 대해선 닫겨 있어야 한다.&lt;br /&gt;
*기존의 코드를 변경하지 않고(Closed) 기능을 수정하거나 추가할 수 있도록(Open) 해야 한다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;리츠코프 치환 원칙(Liskov Substitution Principle; LSP)&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
*자식 클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야 한다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[인터페이스 분리의 원칙]](Interface Segregation Principle; ISP)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*자신이 사용하지 않는 메서드는 구현하지 않도록 해야 한다.&lt;br /&gt;
**이런 경우 인터페이스는 쪼개져야 한다.&lt;br /&gt;
*하나의 일반적인 인터페이스 보단 여러 개의 구체적인 인터페이스가 낫다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;[[의존관계 역전 원칙]](Dependency Inversion Principle; DIP)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*의존 관계를 맺을 때, 변화하기 쉬운것 보단 변화하기 어려운 것에 의존해야 한다.&lt;br /&gt;
*고차원의 모듈은 저차원의 모듈에 의존하면 안된다. 이 두 모듈 모두 다른 추상화된 것에 의존 해야 한다.&lt;br /&gt;
*DIP를 만족한다는 것은 의존관계를 맺을 때, 구체적인 클래스보다 인터페이스나 추상 클래스와 관계를 맺는다는 것을 의미&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[객체지향 기법]]&lt;br /&gt;
* [[객체지향 분석 방법론]]&lt;br /&gt;
* [[객체지향 언어]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84_%EC%9B%90%EC%B9%99&amp;diff=28673</id>
		<title>객체지향 설계 원칙</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84_%EC%9B%90%EC%B9%99&amp;diff=28673"/>
		<updated>2022-05-19T05:56:52Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* 상위 문서: [[객체지향 설계]]&lt;br /&gt;
;객체지향 설계 시 지켜져야 하는 설계 원칙 5가지를 말하며, 줄여서 SOLID라고 부른다.&lt;br /&gt;
&lt;br /&gt;
===단일 책임 원칙===&lt;br /&gt;
&lt;br /&gt;
;Single Responsiblity Principle; SRP&lt;br /&gt;
&lt;br /&gt;
*소프트웨어의 컴포넌트는 단 하나의 책임만을 가져야 한다.&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
;AS-IS&lt;br /&gt;
&lt;br /&gt;
*복합기 Class&lt;br /&gt;
**copy()&lt;br /&gt;
**scan()&lt;br /&gt;
&lt;br /&gt;
;TO-BE&lt;br /&gt;
&lt;br /&gt;
*복사기 Class { copy() }&lt;br /&gt;
*스캐너 Class { scan() }&lt;br /&gt;
&lt;br /&gt;
===개방 폐쇄 원칙===&lt;br /&gt;
&lt;br /&gt;
;Open Close Principles; OCP&lt;br /&gt;
&lt;br /&gt;
*확장에 대해선 열려 있어야 하고 수정에 대해선 닫겨 있어야 한다.&lt;br /&gt;
*기존의 코드를 변경하지 않고(Closed) 기능을 수정하거나 추가할 수 있도록(Open) 해야 한다.&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
*Class Car { drive() }&lt;br /&gt;
*확장은 허용&#039;&#039;&#039;(O)&#039;&#039;&#039;: Class SUV() extends Car&lt;br /&gt;
**override drive();&lt;br /&gt;
**new method stop();&lt;br /&gt;
*변경엔 폐쇄&#039;&#039;&#039;(X)&#039;&#039;&#039;: Class Plane extends Car&lt;br /&gt;
**change drive() to fly();&lt;br /&gt;
&lt;br /&gt;
===리츠코프 치환 원칙===&lt;br /&gt;
&lt;br /&gt;
;Liskov Substitution Principle; LSP&lt;br /&gt;
&lt;br /&gt;
*자식 클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야 한다.&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
*Class SUV extends Class CAR { run() }&lt;br /&gt;
*SUV suv = new SUV();&lt;br /&gt;
*CAR car = (CAR)suv;&lt;br /&gt;
*car.run();&lt;br /&gt;
&lt;br /&gt;
===[[인터페이스 분리의 원칙]]===&lt;br /&gt;
&lt;br /&gt;
;Interface Segregation Principle; ISP&lt;br /&gt;
&lt;br /&gt;
*자신이 사용하지 않는 메서드는 구현하지 않도록 해야 한다.&lt;br /&gt;
**이런 경우 인터페이스는 쪼개져야 한다.&lt;br /&gt;
*하나의 일반적인 인터페이스 보단 여러 개의 구체적인 인터페이스가 낫다.&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
;AS-IS&lt;br /&gt;
&lt;br /&gt;
*Interface 이동체&lt;br /&gt;
**drive();&lt;br /&gt;
**fly();&lt;br /&gt;
**sail();&lt;br /&gt;
**stop();&lt;br /&gt;
&lt;br /&gt;
;TO-BE&lt;br /&gt;
&lt;br /&gt;
*Interface 자동차 { drive(); stop(); }&lt;br /&gt;
*Interface 비행기 { fly(); stop(); }&lt;br /&gt;
*Interface 배 { sail(); stop(); }&lt;br /&gt;
&lt;br /&gt;
===[[의존관계 역전 원칙]]===&lt;br /&gt;
&lt;br /&gt;
;Dependency Inversion Principle; DIP&lt;br /&gt;
&lt;br /&gt;
*의존 관계를 맺을 때, 변화하기 쉬운것 보단 변화하기 어려운 것에 의존해야 한다.&lt;br /&gt;
*고차원의 모듈은 저차원의 모듈에 의존하면 안된다. 이 두 모듈 모두 다른 추상화된 것에 의존 해야 한다.&lt;br /&gt;
*DIP를 만족한다는 것은 의존관계를 맺을 때, 구체적인 클래스보다 인터페이스나 추상 클래스와 관계를 맺는다는 것을 의미&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
;아래와 같이 하면 Car 클래스는 &#039;겨울 타이어&#039;라는 하위 클래스에 의존성을 가지게 된다. (의존성 역전)&lt;br /&gt;
&lt;br /&gt;
*Class Car {&lt;br /&gt;
**WinterTire wt = new WinterTire();&lt;br /&gt;
**setTireModel(String model) {&lt;br /&gt;
***wt.model = model;&lt;br /&gt;
**}&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
;아래와 같이 하면 타이어에 대한 의존성이 줄어든다.&lt;br /&gt;
&lt;br /&gt;
*Class Car {&lt;br /&gt;
**Tire wt = null;&lt;br /&gt;
**setTire(Tire t) {&lt;br /&gt;
***wt = t;&lt;br /&gt;
**}&lt;br /&gt;
*}&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84_%EC%9B%90%EC%B9%99&amp;diff=28672</id>
		<title>객체지향 설계 원칙</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%EC%84%A4%EA%B3%84_%EC%9B%90%EC%B9%99&amp;diff=28672"/>
		<updated>2022-05-19T05:56:28Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: ;* 상위 문서: 객체지향 설계 ;객체지향 설계 시 지켜져야 하는 설계 원칙 5가지를 말하며, 줄여서 SOLID라고 부른다.  ===단일 책임 원칙===...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;* 상위 문서: [[객체지향 설계]]&lt;br /&gt;
;객체지향 설계 시 지켜져야 하는 설계 원칙 5가지를 말하며, 줄여서 SOLID라고 부른다.&lt;br /&gt;
&lt;br /&gt;
===단일 책임 원칙===&lt;br /&gt;
&lt;br /&gt;
;Single Responsiblity Principle; SRP&lt;br /&gt;
&lt;br /&gt;
*소프트웨어의 컴포넌트는 단 하나의 책임만을 가져야 한다.&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
;AS-IS&lt;br /&gt;
&lt;br /&gt;
*복합기 Class&lt;br /&gt;
**copy()&lt;br /&gt;
**scan()&lt;br /&gt;
&lt;br /&gt;
;TO-BE&lt;br /&gt;
&lt;br /&gt;
*복사기 Class { copy() }&lt;br /&gt;
*스캐너 Class { scan() }&lt;br /&gt;
&lt;br /&gt;
===개방 폐쇄 원칙===&lt;br /&gt;
&lt;br /&gt;
;Open Close Principles; OCP&lt;br /&gt;
&lt;br /&gt;
*확장에 대해선 열려 있어야 하고 수정에 대해선 닫겨 있어야 한다.&lt;br /&gt;
*기존의 코드를 변경하지 않고(Closed) 기능을 수정하거나 추가할 수 있도록(Open) 해야 한다.&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
*Class Car { drive() }&lt;br /&gt;
*확장은 허용&#039;&#039;&#039;(O)&#039;&#039;&#039;: Class SUV() extends Car&lt;br /&gt;
**override drive();&lt;br /&gt;
**new method stop();&lt;br /&gt;
*변경엔 폐쇄&#039;&#039;&#039;(X)&#039;&#039;&#039;: Class Plane extends Car&lt;br /&gt;
**change drive() to fly();&lt;br /&gt;
&lt;br /&gt;
===리츠코프 치환 원칙===&lt;br /&gt;
&lt;br /&gt;
;Liskov Substitution Principle; LSP&lt;br /&gt;
&lt;br /&gt;
*자식 클래스는 부모클래스에서 가능한 행위를 수행할 수 있어야 한다.&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
*Class SUV extends Class CAR { run() }&lt;br /&gt;
*SUV suv = new SUV();&lt;br /&gt;
*CAR car = (CAR)suv;&lt;br /&gt;
*car.run();&lt;br /&gt;
&lt;br /&gt;
===[[인터페이스 분리의 원칙]]===&lt;br /&gt;
&lt;br /&gt;
;Interface Segregation Principle; ISP&lt;br /&gt;
&lt;br /&gt;
*자신이 사용하지 않는 메서드는 구현하지 않도록 해야 한다.&lt;br /&gt;
**이런 경우 인터페이스는 쪼개져야 한다.&lt;br /&gt;
*하나의 일반적인 인터페이스 보단 여러 개의 구체적인 인터페이스가 낫다.&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
;AS-IS&lt;br /&gt;
&lt;br /&gt;
*Interface 이동체&lt;br /&gt;
**drive();&lt;br /&gt;
**fly();&lt;br /&gt;
**sail();&lt;br /&gt;
**stop();&lt;br /&gt;
&lt;br /&gt;
;TO-BE&lt;br /&gt;
&lt;br /&gt;
*Interface 자동차 { drive(); stop(); }&lt;br /&gt;
*Interface 비행기 { fly(); stop(); }&lt;br /&gt;
*Interface 배 { sail(); stop(); }&lt;br /&gt;
&lt;br /&gt;
===[[의존관계 역전 원칙]]===&lt;br /&gt;
&lt;br /&gt;
;Dependency Inversion Principle; DIP&lt;br /&gt;
&lt;br /&gt;
*의존 관계를 맺을 때, 변화하기 쉬운것 보단 변화하기 어려운 것에 의존해야 한다.&lt;br /&gt;
*고차원의 모듈은 저차원의 모듈에 의존하면 안된다. 이 두 모듈 모두 다른 추상화된 것에 의존 해야 한다.&lt;br /&gt;
*DIP를 만족한다는 것은 의존관계를 맺을 때, 구체적인 클래스보다 인터페이스나 추상 클래스와 관계를 맺는다는 것을 의미&lt;br /&gt;
&lt;br /&gt;
====예시====&lt;br /&gt;
&lt;br /&gt;
;아래와 같이 하면 Car 클래스는 &#039;겨울 타이어&#039;라는 하위 클래스에 의존성을 가지게 된다. (의존성 역전)&lt;br /&gt;
&lt;br /&gt;
*Class Car {&lt;br /&gt;
**WinterTire wt = new WinterTire();&lt;br /&gt;
**setTireModel(String model) {&lt;br /&gt;
***wt.model = model;&lt;br /&gt;
**}&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
;아래와 같이 하면 타이어에 대한 의존성이 줄어든다.&lt;br /&gt;
&lt;br /&gt;
*Class Car {&lt;br /&gt;
**Tire wt = null;&lt;br /&gt;
**setTire(Tire t) {&lt;br /&gt;
***wt = t;&lt;br /&gt;
**}&lt;br /&gt;
*}&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=YAML&amp;diff=28671</id>
		<title>YAML</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=YAML&amp;diff=28671"/>
		<updated>2022-05-19T05:40:16Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: &amp;#039;&amp;#039;&amp;#039;YAML&amp;#039;&amp;#039;&amp;#039;은 XML, C, 파이썬, 펄, RFC2822에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 &amp;#039;사람이 쉽게 읽을...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;YAML&#039;&#039;&#039;은 [[XML]], [[C (프로그래밍 언어)|C]], [[파이썬]], [[펄]], [[RFC2822]]에서 정의된 e-mail 양식에서 개념을 얻어 만들어진 &#039;사람이 쉽게 읽을 수 있는&#039; 데이터 직렬화 양식이다. 2001년에 [[클라크 에반스]]가 고안했고, Ingy dot Net 및 Oren Ben-Kiki와 함께 디자인했다.&lt;br /&gt;
&lt;br /&gt;
YAML이라는 이름은 &amp;quot;YAML은 마크업 언어가 아니다 (YAML Ain&#039;t Markup Language)” 라는 [[재귀 약자|재귀적인 이름]]에서 유래되었다. 원래 YAML의 뜻은 “또 다른 마크업 언어 (Yet Another Markup Language)”였으나, YAML의 핵심은 문서 마크업이 아닌 데이터 중심에 있다는 것을 보여주기 위해 이름을 바꾸었다. 오늘날 XML과 [[JSON]]이 데이터 직렬화에 주로 쓰이기 시작하면서, 많은 사람들이 YAML을 &#039;가벼운 마크업 언어&#039;로 사용하려 하고 있다.&lt;br /&gt;
&lt;br /&gt;
== 요소 ==&lt;br /&gt;
YAML은 모든 데이터를 리스트, 해쉬, 스칼라 데이터의 조합으로 적절히 표현할 수 있다는 믿음을 가지고 만들어졌다. 문법은 상대적으로 이해하기 쉽고, 가독성이 좋도록 디자인되었으며, 고급 컴퓨터 언어에 적합하다. 또한 들여쓰기 및 XML의 특수기호를 사용하기 때문에, XML과 거의 비슷하다.&lt;br /&gt;
&lt;br /&gt;
* YAML 문자열은 UTF-8 또는 UTF-16과 같이 출력 가능한 유니코드 문자집합을 이용한다.&lt;br /&gt;
* 공백 문자를 이용한 들여쓰기로 구조체를 구분한다. 그러나 탭문자를 들여쓰기에 사용하지 않는다.&lt;br /&gt;
* 리스트 요소는 여러 줄에 쓸 때에는 하이픈(&#039;&#039;&#039;-&#039;&#039;&#039;)으로 시작하는 한 줄에 하나의 요소를 표현하며, 한 줄에 모아 쓸 때에는 대괄호(&#039;&#039;&#039;[]&#039;&#039;&#039;)를 이용하며 쉼표로 각 요소를 구분한다.&lt;br /&gt;
* 해쉬는 콜론 기호를 이용해서 &#039;&#039;&#039;키:값&#039;&#039;&#039;의 형태로 한 줄에 하나를 표현하거나, 한 줄에 모아 쓸 때에는 중괄호(&#039;&#039;&#039;{}&#039;&#039;&#039;)를 이용하며 쉼표로 각 요소를 구분한다.&lt;br /&gt;
* 간단한 값(스칼라 값)은 보통 아무 표시를 하지 않으나 따옴표(&amp;quot;&amp;quot;)나 작은 따옴표(&amp;lt;nowiki&amp;gt;&#039;&#039;&amp;lt;/nowiki&amp;gt;)를 이용해 둘러쌀 수 있다.&lt;br /&gt;
* 따옴표 안에서 특수 문자는 C언어 스타일(역슬래쉬키와 함께쓰이는 제어문자 예. \n)로 표시한다.&lt;br /&gt;
* 블록 값은 보존(|) 또는 접기(&amp;gt;)의 선택 지시자로 나눈다.&lt;br /&gt;
* 하나의 스트림에 있는 여러 개의 문서는 하이픈 3개(---)로 나누며, 마침표 세개(...)로 스트림의 끝을 나타낸다.&lt;br /&gt;
* 반복되는 노드는 기본적으로 &amp;amp;를 통해 나타내며, * 문자 이후의 내용을 참조한다.&lt;br /&gt;
* 주석은 #으로 표시하며, 한 줄이 끝날 때까지 유효하다.&lt;br /&gt;
* 노드들은 타입과 느낌표로 시작해 URI 주소를 지시하는 태그를 통해 라벨이 붙는다.&lt;br /&gt;
* YAML 문서는 % 문자로 시작되는 몇 개의 지시자를 통해 특정 작업을 수행한다. YAML 1.1에서는 두 개의 지시자가 정의되어 있다.&lt;br /&gt;
** %YAML 지시자는 주어진 문서의 YAML 버전을 나타내는 데 사용한다.&lt;br /&gt;
** %TAG 지시자는 URI 주소를 나타내는 데 주로 사용하며, 이들 주소는 노드 타입 태그에 사용한다.&lt;br /&gt;
&lt;br /&gt;
YAML은 공백과 스칼라 값을 가지고 있는 리스트 구분자를 위해 쉼표와 콜론이 필요하다. 미래의 표준화를 위해 YAML에서는 @, 엑센트 기호 ‘ 2개의 기호 문자를 예약해두고 있다.&lt;br /&gt;
&lt;br /&gt;
== 예제 ==&lt;br /&gt;
=== 리스트 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 --- # Favorite movies, block format&lt;br /&gt;
 - Casablanca&lt;br /&gt;
 - Spellbound&lt;br /&gt;
 - Notorious&lt;br /&gt;
 --- # Shopping list, inline format&lt;br /&gt;
 [Casablanca, Spellbound, Notorious]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 해시 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 --- # Block&lt;br /&gt;
 name: John Smith&lt;br /&gt;
 age: 33&lt;br /&gt;
 --- # Inline&lt;br /&gt;
 {name: John Smith, age: 33}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Block Literals ===&lt;br /&gt;
&lt;br /&gt;
==== Newlines preserved ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 --- |&lt;br /&gt;
   There was a young fellow of Warwick&lt;br /&gt;
   Who had reason for feeling euphoric&lt;br /&gt;
       For he could, by election&lt;br /&gt;
       Have triune erection&lt;br /&gt;
   Ionic, Corinthian, and Doric 11&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Newlines folded ====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 --- &amp;gt;&lt;br /&gt;
   Wrapped text&lt;br /&gt;
   will be folded&lt;br /&gt;
   into a single&lt;br /&gt;
   paragraph&lt;br /&gt;
&lt;br /&gt;
   Blank lines denote&lt;br /&gt;
   paragraph breaks&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 해시의 리스트 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 - [name: John Smith, age: 33]&lt;br /&gt;
 - name: Mary Smith&lt;br /&gt;
   age: 2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
=== 리스트의 해시 ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;yaml&amp;quot;&amp;gt;&lt;br /&gt;
 men: [John Smith, Bill Jones]&lt;br /&gt;
 women:&lt;br /&gt;
   - Mary Smith&lt;br /&gt;
   - Susan Williams&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 구현 ==&lt;br /&gt;
다음 언어에서 YAML을 이용할 수 있다:&lt;br /&gt;
* [[자바스크립트]]&lt;br /&gt;
* [[오브젝티브-C]]&lt;br /&gt;
* [[펄]]&lt;br /&gt;
* [[PHP]]&lt;br /&gt;
* [[파이썬]]&lt;br /&gt;
* [[루비 (프로그래밍 언어)|루비]] (YAML을 사실상의 직렬화 형식으로 이용한다. YAML은 버전 1.8 이후로부터 표준 라이브러리에 포함되었다.)&lt;br /&gt;
* [[자바 (프로그래밍 언어)|자바]]&lt;br /&gt;
* [[하스켈]]&lt;br /&gt;
* [[XML]]&lt;br /&gt;
* [[러스트 (프로그래밍 언어)|러스트]]&lt;br /&gt;
&lt;br /&gt;
== 따로 볼 것들 ==&lt;br /&gt;
다른 단순화된 마크업 언어들이 있다:&lt;br /&gt;
* [[JSON]] : YAML과 같은 철학의 구현이며, 주석 스타일을 제외하고 매우 비슷하다.&lt;br /&gt;
* [[Simple Outline XML]]&lt;br /&gt;
* [[OGDL]]&lt;br /&gt;
* [[S-expression]]s&lt;br /&gt;
* [[프로퍼티 리스트|plist]], [[NEXTSTEP]]의 객체 직렬화 형식이다.&lt;br /&gt;
&lt;br /&gt;
== 외부 링크 ==&lt;br /&gt;
* [http://www.yaml.org YAML.org]&lt;br /&gt;
* [http://www.yaml.org/spec/ YAML 명세서]&lt;br /&gt;
* [https://web.archive.org/web/20080509211926/http://yaml4r.sourceforge.net/cookbook/ YAML Cookbook]&lt;br /&gt;
* [https://web.archive.org/web/20060618031422/http://yaml.kwiki.org/?YamlInFiveMinutes YAML in Five Minutes]&lt;br /&gt;
* [https://web.archive.org/web/20080914015703/http://redhanded.hobix.com/inspect/yamlIsJson.html YAML as a superset of JSON]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EC%84%A4%EA%B3%84&amp;diff=28670</id>
		<title>소프트웨어 설계</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EC%84%A4%EA%B3%84&amp;diff=28670"/>
		<updated>2022-05-19T05:35:37Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[분류:소프트웨어 공학]]&lt;br /&gt;
[[분류:정보처리기사]]&lt;br /&gt;
&lt;br /&gt;
==바람직한 설계==&lt;br /&gt;
&lt;br /&gt;
*설계는 모듈적이어야 한다.&lt;br /&gt;
*요구사항을 모두 구현해야 하고 유지보수가 용이해야 한다.&lt;br /&gt;
*모듈의 [[결합도]]는 약하게, [[응집도]]는 강하게 설계해야 한다.&lt;br /&gt;
*설계는 자료와 프로시저에 대해 분명하고 분리된 표현을 포함해야 한다.&lt;br /&gt;
*소프트웨어 요소들 간의 효과적 제어를 위해 설계에서 계층적 조직이 제시되어야 한다.&lt;br /&gt;
*[[소프트웨어 품질|소프트웨어 품질 요구사항]]을 고려해야 한다.&lt;br /&gt;
&lt;br /&gt;
== 문제 분할 ==&lt;br /&gt;
분할과 정복의 원칙을 적용하여 어느 수준까지 분할할지 판단 필요&lt;br /&gt;
&lt;br /&gt;
==== 수평 분할 ====&lt;br /&gt;
&lt;br /&gt;
* 기능들을 분리된 가지에 할당&lt;br /&gt;
* 단순한 형태는 입력, 데이터 변환, 출력 작업 담당하도록 분리&lt;br /&gt;
* 테스트, 유지보수, 확장이 용이하고 부작용의 파급 효과가 줄어듦&lt;br /&gt;
* 많은 데이터가 모듈 인터페이스를 통해 이동되어 전체 제어가 복잡해짐&lt;br /&gt;
&lt;br /&gt;
==== 수직 분할 ====&lt;br /&gt;
&lt;br /&gt;
* 제어와 작업을 위와 아래로 분산함&lt;br /&gt;
* 상위 수준의 모듈들은 제어 기능을, 하위의 모듈들은 실제 작업(입출력과 데이터 변형 작업)을 수행&lt;br /&gt;
* 작업 모듈이 변경되기 쉬우며, 제어 모듈이 변경되면 부작용이 큼&lt;br /&gt;
&lt;br /&gt;
== 추상화 ==&lt;br /&gt;
&lt;br /&gt;
* 모듈들을 추상화하여 표현&lt;br /&gt;
* 추상화란 내부의 상세한 내용을 생략하고 외부 행위만을 기술하는 것. 상세 설계와 구현 작업은 추상화되어 있는 각 모듈의 명세를 구현하는 작업&lt;br /&gt;
* 추상화된 시스템 모델을 통해 시스템의 분석이 가능함&lt;br /&gt;
&lt;br /&gt;
==== 기능 추상화 ====&lt;br /&gt;
&lt;br /&gt;
* 수행하는 기능으로 모듈을 명세하는 것&lt;br /&gt;
* 전체를 작은 기능들로 분해하는 것(기능 중심의 분할 방법)&lt;br /&gt;
&lt;br /&gt;
==== 데이터 추상화 ====&lt;br /&gt;
&lt;br /&gt;
* 데이터와 데이터 조작에 필요한 오퍼레이션을 함께 묶는 것&lt;br /&gt;
* 객체의 상세한 구현 내용이 감추어지며 공개된 오퍼레이션만을 사용해야 함&lt;br /&gt;
&lt;br /&gt;
== 하향식과 상향식 설계 ==&lt;br /&gt;
&lt;br /&gt;
==== 하향식 설계 ====&lt;br /&gt;
&lt;br /&gt;
* 계층 구조상에서 시스템의 주요 컴포넌트들을 찾고 그것을 낮은 수준의 컴포넌트들로 분해하는 것으로 단계적 정제라 하며 메인 모듈의 설계에서 시작하여 단계적으로 구체화시키는 것&lt;br /&gt;
* 하향식 설계에서는 통합 검사 시 인터페이스가 이미 정의되어 있어 통합이 간단하다.&lt;br /&gt;
* 하향식 설계에서 레벨이 낮은 데이터 구조의 세부 사항은 설계초기 단계에서 필요하다.&lt;br /&gt;
* 시스템 명세가 명확한 경우와 모든 것을 새로 개발하는 작업에는 하향식이 적합하다.&lt;br /&gt;
&lt;br /&gt;
==== 상향식 설계 ====&lt;br /&gt;
&lt;br /&gt;
* 가장 기본적인 컴포넌트를 먼저 설계한 다음 이것을 사용하는 상위 수준의 컴포넌트를 설계하는 것&lt;br /&gt;
* 상향식 설계는 최하위 수준에서 각각의 모듈들을 설계하고 이러한 모듈이 완성되면 이들을 결합하여 검사한다.&lt;br /&gt;
* 기존 컴포넌트들을 조합하여 시스템을 개발하는 경우에는 상향식이 적합&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EB%B9%84%EC%84%A0%ED%98%95_%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0&amp;diff=28669</id>
		<title>비선형 자료 구조</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EB%B9%84%EC%84%A0%ED%98%95_%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0&amp;diff=28669"/>
		<updated>2022-05-19T05:30:27Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;NonLinear Data Structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;비선형 자료 구조란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 [[자료 구조]]를 말한다.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*자료들 간의 앞뒤 관계가 1:n, 또는 n:n 의 관계&lt;br /&gt;
*트리와 그래프가 대표적이며 계층적 구조를 나타내기에 적절하다.&lt;br /&gt;
&lt;br /&gt;
==종류==&lt;br /&gt;
&lt;br /&gt;
*[[트리]]&lt;br /&gt;
**[[이진 트리]]&lt;br /&gt;
**[[AVL 트리]]&lt;br /&gt;
**[[B 트리]]&lt;br /&gt;
**[[T 트리]]&lt;br /&gt;
**[[R 트리]]&lt;br /&gt;
**[[힙]]&lt;br /&gt;
**트리 순회&lt;br /&gt;
*[[그래프]]&lt;br /&gt;
**그래프 저장&lt;br /&gt;
***그래프 인접 행렬&lt;br /&gt;
***그래프 인접 연결 리스트&lt;br /&gt;
**그래프 탐색&lt;br /&gt;
***깊이 우선 탐색&lt;br /&gt;
***너비 우선 탐색&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[선형 자료 구조]]&lt;br /&gt;
&lt;br /&gt;
[[분류:자료 구조]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EB%B9%84%EC%84%A0%ED%98%95_%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0&amp;diff=28668</id>
		<title>비선형 자료 구조</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EB%B9%84%EC%84%A0%ED%98%95_%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0&amp;diff=28668"/>
		<updated>2022-05-19T05:28:19Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: &amp;#039;&amp;#039;&amp;#039;NonLinear Data Structure&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;비선형 자료 구조란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 자료 구조를 말한다.&amp;#039;&amp;#039;&amp;#039;  * 자료들 간...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;NonLinear Data Structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;비선형 자료 구조란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 [[자료 구조]]를 말한다.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 자료들 간의 앞뒤 관계가 1:n, 또는 n:n 의 관계&lt;br /&gt;
* 트리와 그래프가 대표적이며 계층적 구조를 나타내기에 적절하다.&lt;br /&gt;
&lt;br /&gt;
== 종류 ==&lt;br /&gt;
&lt;br /&gt;
* [[트리]]&lt;br /&gt;
** [[이진 트리]]&lt;br /&gt;
** [[AVL 트리]]&lt;br /&gt;
** [[B 트리]]&lt;br /&gt;
** [[T 트리]]&lt;br /&gt;
** [[R 트리]]&lt;br /&gt;
** [[힙]]&lt;br /&gt;
** 트리 순회&lt;br /&gt;
* [[그래프]]&lt;br /&gt;
** 그래프 저장&lt;br /&gt;
*** 그래프 인접 행렬&lt;br /&gt;
*** 그래프 인접 연결 리스트&lt;br /&gt;
** 그래프 탐색&lt;br /&gt;
*** 깊이 우선 탐색&lt;br /&gt;
*** 너비 우선 탐색&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%84%A0%ED%98%95_%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0&amp;diff=28667</id>
		<title>선형 자료 구조</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%84%A0%ED%98%95_%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0&amp;diff=28667"/>
		<updated>2022-05-19T05:27:43Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: &amp;#039;&amp;#039;&amp;#039;Linear Data Structure&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;선형 자료 구조란 하나의 자료 뒤에 하나의 자료가 존재하는 형태의 자료 구조를 말한다.&amp;#039;&amp;#039;&amp;#039;  * 자료들 간의 앞...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Linear Data Structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;선형 자료 구조란 하나의 자료 뒤에 하나의 자료가 존재하는 형태의 [[자료 구조]]를 말한다.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 자료들 간의 앞뒤 관계가 1:1의 선형관계&lt;br /&gt;
* 배열과 리스트가 대표적이고 더 나아가서 스택, 큐도 이에 해당된다.&lt;br /&gt;
&lt;br /&gt;
== 종류 ==&lt;br /&gt;
&lt;br /&gt;
* 배열&lt;br /&gt;
* [[스택]]&lt;br /&gt;
* 큐&lt;br /&gt;
** 순환 큐&lt;br /&gt;
* [[연결 리스트]]&lt;br /&gt;
** [[이중 연결 리스트]]&lt;br /&gt;
** 순환 연결 리스트&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[비선형 자료 구조]]&lt;br /&gt;
&lt;br /&gt;
[[분류:자료 구조]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0&amp;diff=28666</id>
		<title>자료 구조</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%9E%90%EB%A3%8C_%EA%B5%AC%EC%A1%B0&amp;diff=28666"/>
		<updated>2022-05-19T05:24:26Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[분류:자료 구조]]&lt;br /&gt;
&lt;br /&gt;
;Data Structure&lt;br /&gt;
;컴퓨터 시스템에서 자료를 저장하는 구조, 또는 효율적인 저장을 위한 방법, 학문&lt;br /&gt;
&lt;br /&gt;
== 구분 ==&lt;br /&gt;
&lt;br /&gt;
=== 선형 자료 구조 ===&lt;br /&gt;
&#039;&#039;&#039;Linear Data Structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;선형 자료구조&#039;&#039;&#039;란 하나의 자료 뒤에 하나의 자료가 존재하는 것이다.&lt;br /&gt;
* 자료들 간의 앞뒤 관계가 1:1의 선형관계&lt;br /&gt;
* 배열과 리스트가 대표적이고 더 나아가서 스택, 큐도 이에 해당된다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;종류&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[[배열]]&lt;br /&gt;
*[[스택]]&lt;br /&gt;
*[[큐]]&lt;br /&gt;
**[[순환 큐]]&lt;br /&gt;
*[[연결 리스트]]&lt;br /&gt;
**[[이중 연결 리스트]]&lt;br /&gt;
**[[순환 연결 리스트]]&lt;br /&gt;
&lt;br /&gt;
== 비선형 자료 구조 ==&lt;br /&gt;
&#039;&#039;&#039;NonLinear Data Structure&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;비선형 자료구조&#039;&#039;&#039;란 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 것이다.&lt;br /&gt;
* 자료들 간의 앞뒤 관계가 1:n, 또는 n:n 의 관계&lt;br /&gt;
* 트리와 그래프가 대표적이며 계층적 구조를 나타내기에 적절하다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;종류&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*[[트리]]&lt;br /&gt;
**[[이진 트리]]&lt;br /&gt;
**[[AVL 트리]]&lt;br /&gt;
**[[B 트리]]&lt;br /&gt;
**[[T 트리]]&lt;br /&gt;
**[[R 트리]]&lt;br /&gt;
**[[힙]]&lt;br /&gt;
**[[트리 순회]]&lt;br /&gt;
*[[그래프]]&lt;br /&gt;
**[[그래프 저장]]&lt;br /&gt;
***[[그래프 인접 행렬]]&lt;br /&gt;
***[[그래프 인접 연결 리스트]]&lt;br /&gt;
**[[그래프 탐색]]&lt;br /&gt;
***[[깊이 우선 탐색]]&lt;br /&gt;
***[[너비 우선 탐색]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%ED%8C%A8%ED%82%A4%EC%A7%95&amp;diff=28665</id>
		<title>소프트웨어 패키징</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%ED%8C%A8%ED%82%A4%EC%A7%95&amp;diff=28665"/>
		<updated>2022-05-19T05:17:45Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: &amp;#039;&amp;#039;&amp;#039;Software Packaging&amp;#039;&amp;#039;&amp;#039;  &amp;#039;&amp;#039;&amp;#039;소프트웨어 패키징이란 모듈로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다.&amp;#039;&amp;#039;&amp;#039;  * 신규 및 변...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Software Packaging&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;소프트웨어 패키징이란 모듈로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것을 말한다.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 신규 및 변경 개발소스를 식별하고, 이를 모듈화하여 상용제품으로 패키징한다.&lt;br /&gt;
* 고객의 편의성을 위해 매뉴얼 및 버전관리를 지속적으로 한다.&lt;br /&gt;
* 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 패키징이 진행된다.&lt;br /&gt;
* 개발자가 아니라 사용자가 중심으로 진행한다.&lt;br /&gt;
* 소스 코드는 향후 관리를 고려하여 모듈화하여 패키징한다.&lt;br /&gt;
* 사용자가 다양한 환경에서 소프트웨어를 손쉽게 사용할 수 있도록 일반적인 배포 형태로 만든다.&lt;br /&gt;
&lt;br /&gt;
== 패키징 시 고려사항 ==&lt;br /&gt;
&lt;br /&gt;
* 사용자를 중심으로 진행되는 작업이므로 사용자의 편의성 및 실행 환경을 우선적 고려한다.&lt;br /&gt;
* 사용자의 시스템 환경, 즉 운영체제(OS), CPU, 메모리 등에 필요한 최소 환경을 정의한다.&lt;br /&gt;
* UI는 매뉴얼과 일치시켜 패키징한다.&lt;br /&gt;
* 하드웨어와 함께 관리될 수 있도록 Managed Service 형태로 제공하는 것이 좋다.&lt;br /&gt;
* 고객의 편의성을 고려한 안정적 배포가 중요하다.&lt;br /&gt;
* 다양한 사용자의 요구사항을 반영할 수 있도록 패키징의 변경 및 개선에 대한 관리를 항상 고려한다.&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[소프트웨어 패키징 도구]]&lt;br /&gt;
&lt;br /&gt;
[[분류:소프트웨어 공학]]&lt;br /&gt;
[[분류:소프트웨어 개발]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EB%AA%A8%EB%93%88&amp;diff=28664</id>
		<title>소프트웨어 모듈</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%EB%AA%A8%EB%93%88&amp;diff=28664"/>
		<updated>2022-05-19T05:10:41Z</updated>

		<summary type="html">&lt;p&gt;기사도: 소프트웨어 모듈화 문서로 넘겨주기&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#넘겨주기 [[소프트웨어 모듈화]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%ED%81%B4%EB%A6%B0_%EC%BD%94%EB%93%9C&amp;diff=28663</id>
		<title>클린 코드</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%ED%81%B4%EB%A6%B0_%EC%BD%94%EB%93%9C&amp;diff=28663"/>
		<updated>2022-05-19T05:08:52Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;Clean Code&lt;br /&gt;
== 조건 ==&lt;br /&gt;
* 단순하고 직접적이다&lt;br /&gt;
* 간단해서 버그가 숨어들지 못한다&lt;br /&gt;
* 하나의 기능만을 제공한다&lt;br /&gt;
* 중복이 최소화된다&lt;br /&gt;
* 잘 쓴 문장처럼 읽힌다&lt;br /&gt;
* 짐작했던 기능을 그래도 수행한다&lt;br /&gt;
* 작성자가 아닌 사람도 읽기 쉽고 고치기 쉽다&lt;br /&gt;
* 단위 테스트와 인수 테스트가 존재한다&lt;br /&gt;
* 모든 테스트를 통과한다&lt;br /&gt;
&lt;br /&gt;
== 참고 문헌 ==&lt;br /&gt;
* 클린 코드 - 로버트 C. 마틴&lt;br /&gt;
&lt;br /&gt;
[[분류:소프트웨어 공학]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%EB%B6%84%EC%84%9D%EA%B8%B0%EB%B2%95&amp;diff=28662</id>
		<title>객체지향 분석기법</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%9D%EC%B2%B4%EC%A7%80%ED%96%A5_%EB%B6%84%EC%84%9D%EA%B8%B0%EB%B2%95&amp;diff=28662"/>
		<updated>2022-05-19T05:08:21Z</updated>

		<summary type="html">&lt;p&gt;기사도: 객체지향 분석 방법론 문서로 넘겨주기&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#넘겨주기 [[객체지향 분석 방법론]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=GoF&amp;diff=28661</id>
		<title>GoF</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=GoF&amp;diff=28661"/>
		<updated>2022-05-19T05:07:29Z</updated>

		<summary type="html">&lt;p&gt;기사도: GoF 디자인 패턴 문서로 넘겨주기&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#넘겨주기 [[GoF 디자인 패턴]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EB%AA%A9%EC%97%85&amp;diff=28660</id>
		<title>목업</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EB%AA%A9%EC%97%85&amp;diff=28660"/>
		<updated>2022-05-19T05:05:29Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: &amp;#039;&amp;#039;&amp;#039;Mockup&amp;#039;&amp;#039;&amp;#039;  * 디자인, 사용방법설명, 평가 등을 위해 실제 화면과 유사하게 만든 정적인 형태의 모형 * 시각적으로만 구성 요소를 배치하는...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Mockup&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 디자인, 사용방법설명, 평가 등을 위해 실제 화면과 유사하게 만든 정적인 형태의 모형&lt;br /&gt;
* 시각적으로만 구성 요소를 배치하는 것으로 일반적으로 실제로 구현되지는 않음&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%95%A0%EC%9E%90%EC%9D%BC&amp;diff=28659</id>
		<title>애자일</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%95%A0%EC%9E%90%EC%9D%BC&amp;diff=28659"/>
		<updated>2022-05-19T04:56:28Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[분류:프로젝트 관리]]&lt;br /&gt;
[[분류:경영학]]&lt;br /&gt;
[[분류:소프트웨어 공학]]&lt;br /&gt;
&lt;br /&gt;
;Agile&lt;br /&gt;
&lt;br /&gt;
==개요==&lt;br /&gt;
&lt;br /&gt;
*1990년 소프트웨어 비즈니스 변화에 따르게 대응하기 위해 시작&lt;br /&gt;
*2001년 애자일 소프트웨어 개발 선언문(The Manifesto for Agile Software Development) 발표&lt;br /&gt;
*4가지 가치(Value), 12가지 원칙(Principle)으로 구성&lt;br /&gt;
&lt;br /&gt;
==4가지 가치==&lt;br /&gt;
&lt;br /&gt;
*1. 프로세스와 도구보다는 개인과 개인간의 상호작용에 더 큰 가치를 둔다.&lt;br /&gt;
&lt;br /&gt;
:Individuals and interactions over processes and tools&lt;br /&gt;
&lt;br /&gt;
*2. 포괄적 문서화보다는 동작하는 소프트웨어에 더 큰 가치를 둔다.&lt;br /&gt;
&lt;br /&gt;
:Working Software over comprehensive documentation&lt;br /&gt;
&lt;br /&gt;
*3. 계약 협상 보다는 고객과의 협력에 더 큰 가지를 둔다.&lt;br /&gt;
&lt;br /&gt;
:Customer collaboration over contract negotiation&lt;br /&gt;
&lt;br /&gt;
*4. 계획을 따르는 것 보다는 변화 대응에 더 큰 가치를 둔다.&lt;br /&gt;
&lt;br /&gt;
:Responding to change over following a plan&lt;br /&gt;
&lt;br /&gt;
==12가지 원칙==&lt;br /&gt;
&lt;br /&gt;
*1. 우리의 최우선 순위는, 가치 있는 소프트웨어를 일찍 그리고 지속적으로 전달해서 고객을 만족시키는 것이다.&lt;br /&gt;
&lt;br /&gt;
:Our highest priority is to satisfy the customer through early and continuous delivery of valuable software.&lt;br /&gt;
&lt;br /&gt;
*2. 비록 개발의 후반부일지라도 요구사항 변경을 환영하라. 애자일 프로세스들은 변화를 활용해 고객의 경쟁력에 도움이 되게 한다.&lt;br /&gt;
&lt;br /&gt;
:Welcome changing requirements, even late in development. Agile processes harness change for the customer&#039;s competitive advantage.&lt;br /&gt;
&lt;br /&gt;
*3. 작동하는 소프트웨어를 자주 전달하라. 2주 ~ 2개월 정도의 간격으로 하되 더 짧은 기간을 선호하라.&lt;br /&gt;
&lt;br /&gt;
:Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale.&lt;br /&gt;
&lt;br /&gt;
*4. 비즈니스 쪽의 사람들과 개발자들은 프로젝트 전체에 걸쳐 날마다 함께 일해야 한다.&lt;br /&gt;
&lt;br /&gt;
:Business people and developers must work together daily throughout the project.&lt;br /&gt;
&lt;br /&gt;
*5. 동기가 부여된 사람들을 중심으로 프로젝트를 구성하라. 그들이 필요로 하는 환경과 지원을 주고 그들이 일을 끝내리라고 신뢰하라.&lt;br /&gt;
&lt;br /&gt;
:Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.&lt;br /&gt;
&lt;br /&gt;
*6. 개발팀으로, 또 개발팀 내부에서 정보를 전하는 가장 효율적이고 효과적인 방법은 면대면 대화이다.&lt;br /&gt;
&lt;br /&gt;
:The most efficient and effective method of conveying information to and within a development team is face-to-face conversation.&lt;br /&gt;
&lt;br /&gt;
*7. 작동하는 소프트웨어가 진척의 주된 척도이다.&lt;br /&gt;
&lt;br /&gt;
:Working software is the primary measure of progress.&lt;br /&gt;
&lt;br /&gt;
*8. 애자일 프로세스들은 지속 가능한 개발을 장려한다. 스폰서, 개발자, 사용자는 일정한 속도를 계속 유지할 수 있어야 한다.&lt;br /&gt;
&lt;br /&gt;
:Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely.&lt;br /&gt;
&lt;br /&gt;
*9. 기술적 탁월성과 좋은 설계에 대한 지속적 관심이 기민함을 높인다.&lt;br /&gt;
&lt;br /&gt;
:Continuous attention to technical excellence and good design enhances agility.&lt;br /&gt;
&lt;br /&gt;
*10. 단순함 -- 즉 하지 않는 일의 양을 최대화하는 기술이 -- 본질이다.&lt;br /&gt;
&lt;br /&gt;
:Simplicity--the art of maximizing the amount of work not done--is essential.&lt;br /&gt;
&lt;br /&gt;
*11. 최고의 아키텍처, 요구사항, 설계는 자기 조직적인 팀에서 창발한다.&lt;br /&gt;
&lt;br /&gt;
:The best architectures, requirements, and designs emerge from self-organizing teams.&lt;br /&gt;
&lt;br /&gt;
*12. 팀은 정기적으로 어떻게 더 효과적이 될지 숙고하고, 이에 따라 팀의 행동을 조율하고 조정한다.&lt;br /&gt;
&lt;br /&gt;
:At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly.&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[애자일 방법론]]&lt;br /&gt;
* [[SCRUM]]&lt;br /&gt;
* [[익스트림 프로그래밍]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=CVS&amp;diff=28658</id>
		<title>CVS</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=CVS&amp;diff=28658"/>
		<updated>2022-05-19T04:50:53Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: &amp;#039;&amp;#039;&amp;#039;Concurrent Versions System&amp;#039;&amp;#039;&amp;#039;  * Client-server 구조 * 파일 단위 커밋 : 여러개 파일을 커밋하면 개별적으로 리비전이 할당됨 * 지원하지 않는 것들...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Concurrent Versions System&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Client-server 구조&lt;br /&gt;
* 파일 단위 커밋 : 여러개 파일을 커밋하면 개별적으로 리비전이 할당됨&lt;br /&gt;
* 지원하지 않는 것들 : 이름 변경, 디렉토리, 심볼릭 링크, 유니코드, Atomic commit&lt;br /&gt;
* 브랜치 활용 가능&lt;br /&gt;
** atomic commit을 지원하지 않기 때문에 branch를 따서 작업하는 경우가 많음&lt;br /&gt;
* 데이터 압축 지원&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[형상 관리]]&lt;br /&gt;
* [[버전 관리 시스템]]&lt;br /&gt;
* [[RCS]]&lt;br /&gt;
&lt;br /&gt;
[[분류:소프트웨어 공학]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=RCS&amp;diff=28657</id>
		<title>RCS</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=RCS&amp;diff=28657"/>
		<updated>2022-05-19T04:48:18Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: &amp;#039;&amp;#039;&amp;#039;Revision Control System&amp;#039;&amp;#039;&amp;#039;  형상이 로컬에서 관리되는 초기 형태의 버전 관리 시스템  * RCS는 기본적으로 Patch Set(파일에서 변경되는 부분)...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Revision Control System&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
형상이 로컬에서 관리되는 초기 형태의 [[버전 관리 시스템]]&lt;br /&gt;
&lt;br /&gt;
* RCS는 기본적으로 Patch Set(파일에서 변경되는 부분)을 관리&lt;br /&gt;
* Patch Set특정한 형식의 파일로 저장&lt;br /&gt;
* 이 Patch Set을 적용해서 모든 파일을 특정 시점으로 되돌릴 수 있다.&lt;br /&gt;
&lt;br /&gt;
[[파일:RCS 관리 구조.png|500x500픽셀]]&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[형상 관리]]&lt;br /&gt;
* [[버전 관리 시스템]]&lt;br /&gt;
* [[CVS]]&lt;br /&gt;
* [[Git]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%ED%8C%8C%EC%9D%BC:RCS_%EA%B4%80%EB%A6%AC_%EA%B5%AC%EC%A1%B0.png&amp;diff=28656</id>
		<title>파일:RCS 관리 구조.png</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%ED%8C%8C%EC%9D%BC:RCS_%EA%B4%80%EB%A6%AC_%EA%B5%AC%EC%A1%B0.png&amp;diff=28656"/>
		<updated>2022-05-19T04:47:26Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Revision Control System&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%88%9C%EC%B0%A8_%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8&amp;diff=28655</id>
		<title>순차 다이어그램</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%88%9C%EC%B0%A8_%EB%8B%A4%EC%9D%B4%EC%96%B4%EA%B7%B8%EB%9E%A8&amp;diff=28655"/>
		<updated>2022-05-19T00:43:18Z</updated>

		<summary type="html">&lt;p&gt;기사도: 시퀀스 다이어그램 문서로 넘겨주기&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#넘겨주기 [[시퀀스 다이어그램]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%80%EC%83%81_%EB%A9%94%EB%AA%A8%EB%A6%AC&amp;diff=28626</id>
		<title>가상 메모리</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EA%B0%80%EC%83%81_%EB%A9%94%EB%AA%A8%EB%A6%AC&amp;diff=28626"/>
		<updated>2022-05-15T03:49:35Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[분류:운영체제]]&lt;br /&gt;
&lt;br /&gt;
;주기억장치의 부족한 물리적 저장공간을 보조기억장치를 이용해서 가상으로 늘려 주는 기술&lt;br /&gt;
&lt;br /&gt;
==장단점==&lt;br /&gt;
&lt;br /&gt;
*메모리 크기의 제약으로부터 자유로워진다.&lt;br /&gt;
**사용자 프로그램이 물리 메모리보다 커져도 실행 가능&lt;br /&gt;
*병행성 및 CPU 이용률 증가&lt;br /&gt;
**사용자 프로그램이 더 작은 메모리를 차지하므로 더 많은 프로그램을 동시에 수행 가능&lt;br /&gt;
**주기억장치의 용량이 확대된 것 처럼 프로그램 실행 가능&lt;br /&gt;
*부가기능 제공&lt;br /&gt;
**[[공유 메모리]]&lt;br /&gt;
**[[Memory mapped file]]&lt;br /&gt;
*전반적인 속도가 느려질 수 있다.&lt;br /&gt;
**가상메모리를 사용할 경우 물리 메모리로 프로그램을 구동하는 것 보다 속도가 느림&lt;br /&gt;
&lt;br /&gt;
==요구 페이지==&lt;br /&gt;
&lt;br /&gt;
;Demand Paging&lt;br /&gt;
;어떤 알고리즘에 따라서 미리 올려 두는 것이 아니라 실제 사용되려고 요구(demand) 될때 메모리에 적재&lt;br /&gt;
&lt;br /&gt;
*어떤 것을 메모리에 올릴 것인가를 판단하는 기준 중 가장 일반적으로 사용되는 기준&lt;br /&gt;
*장점&lt;br /&gt;
**Less I/O needed&lt;br /&gt;
**Less memory needed&lt;br /&gt;
**Faster response&lt;br /&gt;
**More users&lt;br /&gt;
&lt;br /&gt;
===수행 과정===&lt;br /&gt;
&lt;br /&gt;
;Virtual memory는 OS적으로 수행. HW/SW 입장에선 투명성을 가짐&lt;br /&gt;
&lt;br /&gt;
#어떤 명령을 수행하기 위해서 필요한 page로 엑세스를 시도한다.&lt;br /&gt;
#페이지 엑세스가 불가능하다면&#039;&#039;&#039;(page fault)&#039;&#039;&#039;&lt;br /&gt;
#*OS에선 페이지가 존재하지 않는 것인지, 아직 올라오지 않은 것인지 판단한다.&lt;br /&gt;
#*아직 올라오지 않은 것이라면 하드에서 해당되는 페이지를 찾는다.&lt;br /&gt;
#*메모리로 올리고 다시 명령을 수행한다.&lt;br /&gt;
&lt;br /&gt;
==기법==&lt;br /&gt;
&lt;br /&gt;
*페이징(Paging)&lt;br /&gt;
**가상기억장치의 일반적인 구현 방법에는 프로그램을 고정된 크기의 일정한 블록으로 나누는 방식&lt;br /&gt;
*&#039;&#039;&#039;세그멘테이션(Segmentation)&#039;&#039;&#039;&lt;br /&gt;
**가변적인 크기의 블록으로 나누는 방식&lt;br /&gt;
&lt;br /&gt;
==페이지 교체==&lt;br /&gt;
&lt;br /&gt;
;상세 내용은 [[가상메모리 페이지 교체]] 참조&lt;br /&gt;
&lt;br /&gt;
*FIFO(First In First Out)&lt;br /&gt;
**가장 먼저 들어와서 가장 오래 있었던 페이지를 교체&lt;br /&gt;
*LRU(Least Recently Used)&lt;br /&gt;
**최근에 적게 사용된 페이지를 교체&lt;br /&gt;
*NUR(Not Used Recently)&lt;br /&gt;
**LRU의 개선 기법으로, 참조 비트와 변형 비트를 두어 최근에 사용하지 않은 페이지를 교체&lt;br /&gt;
*SCR(Second Chance Replacement)&lt;br /&gt;
**LRU의 개선 기법으로, 회전 주기 내에 두번 연속 사용되지 않을 경우 삭제하는 기법&lt;br /&gt;
*OPT(OPTimal Replacement, Belady&#039;s Algorithm)&lt;br /&gt;
**가장 오랫동안 사용하지 않을 페이지를 교체하는 기법(&#039;최적&#039;을 상정하는 가상의 이론적 기법)&lt;br /&gt;
*LFU(Least Frequency Used)&lt;br /&gt;
**가장 빈번하지 않게 사용된 페이지를 교체한다.&lt;br /&gt;
*MFU(Most Frequency Used)&lt;br /&gt;
**가장 빈번하게 사용된 페이지를 교체한다. 구역성(Locality)에 반하는 것으로, 거의 사용되지 않는다.&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%A0%84%EC%86%A1&amp;diff=28625</id>
		<title>데이터 전송</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EB%8D%B0%EC%9D%B4%ED%84%B0_%EC%A0%84%EC%86%A1&amp;diff=28625"/>
		<updated>2022-05-15T03:47:27Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[분류:데이터 통신]]&lt;br /&gt;
&lt;br /&gt;
;Data Transmission&lt;br /&gt;
&lt;br /&gt;
==방향에 따른 구분==&lt;br /&gt;
===[[단방향 통신]]===&lt;br /&gt;
&lt;br /&gt;
;Simplex Mode&lt;br /&gt;
&lt;br /&gt;
*송수신 방향이 고정되어 있다.&lt;br /&gt;
*이란적으로 통신회선을 2선식으로 구성한다.&lt;br /&gt;
*ex) 라디오, TV 등&lt;br /&gt;
&lt;br /&gt;
===[[반이중 통신]]===&lt;br /&gt;
&lt;br /&gt;
;Half Duplex&lt;br /&gt;
&lt;br /&gt;
*송수신 방향이 정해져있지만, 그 방향을 조정할 수 있다.&lt;br /&gt;
*송수신이 동시에 이루어질 순 없고 교대로 이루어진다.&lt;br /&gt;
*전송 방향 조정 시 Turnaround Time이 소모된다.&lt;br /&gt;
*ex) 무전기&lt;br /&gt;
&lt;br /&gt;
===[[전이중 통신]]===&lt;br /&gt;
&lt;br /&gt;
;Full Duplex&lt;br /&gt;
&lt;br /&gt;
*양방향으로 동시에 송수신이 가능하다.&lt;br /&gt;
*일반적으로 2개의 2선식 채널이 필요하다.&lt;br /&gt;
**반이중 통신을 쌍으로 구성한 것과 같다.&lt;br /&gt;
*회선 비용은 비싸지만 Turnaround Time을 줄임으로써 전송 효율이 높다.&lt;br /&gt;
&lt;br /&gt;
==직렬전송과 병렬전송==&lt;br /&gt;
===[[직렬 전송]]===&lt;br /&gt;
&lt;br /&gt;
;Serial Transmission&lt;br /&gt;
&lt;br /&gt;
*하나의 문자정보를 나타내는 각 데이터 비트를 직렬로 나열한 후 하나의 통신회선에 순차적으로 1비트씩 전송&lt;br /&gt;
*데이터 전송 속도 느림&lt;br /&gt;
*구축이 쉽고 경제적&lt;br /&gt;
&lt;br /&gt;
===[[병렬 전송]]===&lt;br /&gt;
&lt;br /&gt;
;Parallel Transmission&lt;br /&gt;
&lt;br /&gt;
*문자 단위 등 여러 비트를 동시에 전송하는 방식&lt;br /&gt;
*데이터 전송 속도 빠름&lt;br /&gt;
*흐름제어 필요&lt;br /&gt;
**수신측이 현재 데이터 수신중임을 알리기 위해 Busy 신호 사용&lt;br /&gt;
**문자와 문자 단위를 식별하기 위해 Strobe 사용&lt;br /&gt;
&lt;br /&gt;
==동기 전송과 비동기 전송==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!구분&lt;br /&gt;
!동기식 전송 방식&lt;br /&gt;
!비동기식 전송 방식&lt;br /&gt;
|-&lt;br /&gt;
|통신 속도&lt;br /&gt;
|고속&lt;br /&gt;
|저속&lt;br /&gt;
|-&lt;br /&gt;
|회로 복잡도&lt;br /&gt;
|복잡&lt;br /&gt;
|단순&lt;br /&gt;
|-&lt;br /&gt;
|구축 비용&lt;br /&gt;
|고가&lt;br /&gt;
|저가&lt;br /&gt;
|-&lt;br /&gt;
|동기 제어 방식&lt;br /&gt;
|클럭 동기&lt;br /&gt;
|Start bit, Stop bit&lt;br /&gt;
|-&lt;br /&gt;
|전송 단위&lt;br /&gt;
|블럭 단위 전송&lt;br /&gt;
|문자 단위 전송&lt;br /&gt;
|-&lt;br /&gt;
|적용 예&lt;br /&gt;
|전화 교환망, ATM, 데이타 통신망&lt;br /&gt;
|RS-232C&lt;br /&gt;
|}&lt;br /&gt;
===[[비동기식 전송]] 방식===&lt;br /&gt;
&lt;br /&gt;
;Asynchronous Transmission&lt;br /&gt;
&lt;br /&gt;
*작은 비트블럭(보통 5~8비트 문자 단위)의 앞뒤에 각각 start bit와 stop bit를 삽입하여 동기화하는 방식&lt;br /&gt;
**일반적으로 start bit는 1, stop bit는 0&lt;br /&gt;
*start-stop 전송이라고 불리기도 한다.&lt;br /&gt;
*각 문자와 문자의 전송사이에는 휴지기간이 존재하여, 스톱비트를 계속 전송&lt;br /&gt;
*단순하고 저렴하지만 전송 효율이 낮다.&lt;br /&gt;
**start/stop bit, 패리티 bit 사용에 따라 약 80%의 효율을 가진다.&lt;br /&gt;
*300bps ~ 1200bps 정도의 저속 전송에 사용&lt;br /&gt;
&lt;br /&gt;
===[[동기식 전송]] 방식===&lt;br /&gt;
&lt;br /&gt;
;Synchronous Transmission&lt;br /&gt;
&lt;br /&gt;
*한 문자단위가 아니라 여러 문자를 수용하는 데이타블럭 단위로서 전송하는 방식&lt;br /&gt;
*양측에 설치된 모뎀이나 다중화기 등과 같은 기기에 의해 타이밍 조정&lt;br /&gt;
*동기문자나 플래그 등을 사용하여 송수신측간의 데이타블럭을 수신해야 하기 때문에 터미널에는 버퍼장치가 요구됨&lt;br /&gt;
*전송 효율이 높아 대부분의 통신 프로토콜에서 이용&lt;br /&gt;
*2400bps 이상의 전송 속도에 사용&lt;br /&gt;
&lt;br /&gt;
====문자 동기 방식====&lt;br /&gt;
&lt;br /&gt;
;Character Oriented Synchronization&lt;br /&gt;
&lt;br /&gt;
*송수신측 간에 동기화를 위해 동기 문자(SYN=00010110) 사용&lt;br /&gt;
*전송 단위는 보통 8의 정수 배수&lt;br /&gt;
*제어를 위해 별도의 제어 문자가 사용: SYN, STX, ETX 등&lt;br /&gt;
&lt;br /&gt;
====비트 동기 방식====&lt;br /&gt;
&lt;br /&gt;
;Bit Oriented Synchronization&lt;br /&gt;
&lt;br /&gt;
*송수신측의 동기화를 위해 플래그 비트(01111110) 이용&lt;br /&gt;
*플래그와 같은 비트열로 인한 오류를 방지하기 위해 송신측에서 붙이고 수신측에서 삭제&lt;br /&gt;
*전송 에러 검출을 위해 FSC(Frame Check Sequence) 이용&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!시작 플래그&lt;br /&gt;
!주소부&lt;br /&gt;
!제어부&lt;br /&gt;
!데이터부&lt;br /&gt;
!프레임검사부(FCS)&lt;br /&gt;
!종료 플래그&lt;br /&gt;
|-&lt;br /&gt;
|01111110&lt;br /&gt;
|8bit&lt;br /&gt;
|8bit&lt;br /&gt;
|nbit&lt;br /&gt;
|16bit&lt;br /&gt;
|01111110&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EC%A0%84%EC%9D%B4%EC%A4%91_%ED%86%B5%EC%8B%A0&amp;diff=28624</id>
		<title>전이중 통신</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EC%A0%84%EC%9D%B4%EC%A4%91_%ED%86%B5%EC%8B%A0&amp;diff=28624"/>
		<updated>2022-05-15T03:45:37Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: ;;&amp;#039;&amp;#039;&amp;#039;Full Duplex&amp;#039;&amp;#039;&amp;#039;  * 양방향으로 동시에 송수신이 가능하다. * 일반적으로 2개의 2선식 채널이 필요하다. ** 반이중 통신을 쌍으로 구성한 것과...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;;&#039;&#039;&#039;Full Duplex&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 양방향으로 동시에 송수신이 가능하다.&lt;br /&gt;
* 일반적으로 2개의 2선식 채널이 필요하다.&lt;br /&gt;
** 반이중 통신을 쌍으로 구성한 것과 같다.&lt;br /&gt;
* 회선 비용은 비싸지만 Turnaround Time을 줄임으로써 전송 효율이 높다.&lt;br /&gt;
&lt;br /&gt;
==같이 보기==&lt;br /&gt;
&lt;br /&gt;
*[[데이터 전송]]&lt;br /&gt;
*[[단방향 통신]]&lt;br /&gt;
*[[반이중 통신]]&lt;br /&gt;
&lt;br /&gt;
[[분류:데이터 통신]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EB%B0%98%EC%9D%B4%EC%A4%91_%ED%86%B5%EC%8B%A0&amp;diff=28623</id>
		<title>반이중 통신</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EB%B0%98%EC%9D%B4%EC%A4%91_%ED%86%B5%EC%8B%A0&amp;diff=28623"/>
		<updated>2022-05-15T03:44:49Z</updated>

		<summary type="html">&lt;p&gt;기사도: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;; Half Duplex&lt;br /&gt;
&lt;br /&gt;
* 송수신 방향이 정해져있지만, 그 방향을 조정할 수 있다.&lt;br /&gt;
* 송수신이 동시에 이루어질 순 없고 교대로 이루어진다.&lt;br /&gt;
* 전송 방향 조정 시 Turnaround Time이 소모된다.&lt;br /&gt;
* ex) 무전기&lt;br /&gt;
&lt;br /&gt;
==같이 보기==&lt;br /&gt;
&lt;br /&gt;
*[[데이터 전송]]&lt;br /&gt;
*[[단방향 통신]]&lt;br /&gt;
*[[전이중 통신]]&lt;br /&gt;
&lt;br /&gt;
[[분류:데이터 통신]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EB%B0%98%EC%9D%B4%EC%A4%91_%ED%86%B5%EC%8B%A0&amp;diff=28622</id>
		<title>반이중 통신</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EB%B0%98%EC%9D%B4%EC%A4%91_%ED%86%B5%EC%8B%A0&amp;diff=28622"/>
		<updated>2022-05-15T03:44:22Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: ;; Half Duplex  * 송수신 방향이 정해져있지만, 그 방향을 조정할 수 있다. * 송수신이 동시에 이루어질 순 없고 교대로 이루어진다. * 전송 방...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;;; Half Duplex&lt;br /&gt;
&lt;br /&gt;
* 송수신 방향이 정해져있지만, 그 방향을 조정할 수 있다.&lt;br /&gt;
* 송수신이 동시에 이루어질 순 없고 교대로 이루어진다.&lt;br /&gt;
* 전송 방향 조정 시 Turnaround Time이 소모된다.&lt;br /&gt;
* ex) 무전기&lt;br /&gt;
&lt;br /&gt;
==같이 보기==&lt;br /&gt;
&lt;br /&gt;
*[[데이터 전송]]&lt;br /&gt;
*[[반이중 통신]]&lt;br /&gt;
*[[전이중 통신]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
	<entry>
		<id>https://devhrxoobm.itwiki.kr/index.php?title=%EB%8B%A8%EB%B0%A9%ED%96%A5_%ED%86%B5%EC%8B%A0&amp;diff=28621</id>
		<title>단방향 통신</title>
		<link rel="alternate" type="text/html" href="https://devhrxoobm.itwiki.kr/index.php?title=%EB%8B%A8%EB%B0%A9%ED%96%A5_%ED%86%B5%EC%8B%A0&amp;diff=28621"/>
		<updated>2022-05-15T03:43:20Z</updated>

		<summary type="html">&lt;p&gt;기사도: 새 문서: ; Simplex Mode  * 송수신 방향이 고정되어 있다. * 이란적으로 통신회선을 2선식으로 구성한다. * ex) 라디오, TV 등  == 같이 보기 ==  * 데이터...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;; Simplex Mode&lt;br /&gt;
&lt;br /&gt;
* 송수신 방향이 고정되어 있다.&lt;br /&gt;
* 이란적으로 통신회선을 2선식으로 구성한다.&lt;br /&gt;
* ex) 라디오, TV 등&lt;br /&gt;
&lt;br /&gt;
== 같이 보기 ==&lt;br /&gt;
&lt;br /&gt;
* [[데이터 전송]]&lt;br /&gt;
* [[반이중 통신]]&lt;br /&gt;
* [[전이중 통신]]&lt;br /&gt;
&lt;br /&gt;
[[분류:데이터 통신]]&lt;/div&gt;</summary>
		<author><name>기사도</name></author>
	</entry>
</feed>