[정보처리기사/예상문제] - 2023 정보처리기사 실기 예상 문제 모음

[2023 정보처리기사 실기 예상 문제] IT용어 100문제 1탄

[2023 정보처리기사실기  예상 문제] IT용어 100문제 2탄

[2023 정보처리기사 실기 예상 문제] IT용어 16문제 3탄

[2023 정보처리기사 실기 예상 문제] 2020년 개정 이전 기출 IT용어 문제

 

1. 인터넷상의 개인 식별 번호. 웹 사이트에서 주민등록번호 대신 이용할 수 있는 사이버 신원 식별 번호로 13자리의 임의의 숫자로 구성한다.

더보기

아이핀 [I-PIN;Internet Personal Identification Number]


2. 클라우드 서비스 제공자가 하드웨어, 소프트웨어 자원 뿐 아니라 애플리케이션 구동에 필요한 주변 응용 소프트웨어 기능을 가상화로 제공하여, 사용자는 애플리케이션 핵심 기능만 개발하면 되는 클라우드 서비스. 

더보기

서버리스 컴퓨팅 [serverless computing]


3. 위조된 ARP(Address Resolution Protocol)의 응답 패킷을 네트워크에 주기적으로 브로드캐스트(Broadcast)하여 네트워크상의 다른 모든 호스트들이 공격자 호스트를 라우터로 믿게 하면서 네트워크상의 모든 트래픽이 공격자의 호스트를 경유하게 하여 훔쳐보는(Sniffing) 공격 기법.

더보기

ARP 우회 공격 [ARP Redirect Attack;Address Resolution Protocol Redirect Attack] 


4. 인터넷에서 자극적인 제목이나 이미지 등을 사용해 가치가 떨어지는 콘텐츠의 클릭을 유도하는 행위

더보기

클릭베이트 [Clickbait]


5. 전달하려는 기밀 정보를 이미지 파일이나 MP3 파일 등에 암호화해 숨기는 심층암호 기술

더보기

스테가노그래피(Steganography


6. SB메모리 정도의 크기로 모니터 단자와 연결해 사용하는 초소형 PC

더보기

스틱PC [Stick PC;PC-on-a-stick]


7. 네트워크 해킹 공격의 일종으로, 어떤 특수 목적을 얻기 위해 한 사람의 행위를 여러 사람의 행위인 것처럼 속이는 공격

더보기

시빌 공격[Sybil Attack]


8. 인터넷상에서 빠른 속도로 원하는 파일을 공유하기 위해 만들어진 방식으로, 사용자 사이에 직접 파일을 여러 조각으로 나누어 공유하는 프로토콜 또는 프로그램을 말한다. 

더보기

비트 토렌트 [Bit Torrent]


9. 윈도우 기반 PC에서 하드웨어·소프트웨어의 오류가 발생했을 때 나타나는 대표적인 현상

더보기

블루 스크린 [Blue Screen]


10. 사물이나 데이터를 군집화하거나 분류하는 데 사용하는 기술

더보기

딥러닝(deep learning)


11. 인터넷을 사용하지만, 접속을 위해서는 특정 프로그램을 사용해야 하는 웹으로 일반적인 방법으로 접속자나 서버를 확인할 수 없기 때문에 사이버상에서 범죄에 활용된다.

더보기

다크 웹 [Dark Web]


12. 물리적으로 존재하진 않지만 실제 작동하는 컴퓨터 안에서 작동하는 또 하나의 컴퓨터를 만들 수 있는 기술

더보기

데스크톱 가상화(VDI, Virtual Desktop Infrastructure)


13. 월드와이드웹 같은 하이퍼링크 구조를 가지는 문서에 상대적 중요도에 따라 가중치를 부여하는 방법.

더보기

페이지랭크 [pagerank]


14. 컴퓨터가 스스로 방대한 데이터를 분석해서 미래를 예측하는 기술

더보기

머신러닝 [machine learning]


15. 정보 시스템의 특정 응용에서 사용하는 암호학적 개인정보.

더보기

크리덴셜 [credential]

 

[정보처리기사/예상문제] - 2023 정보처리기사 실기 예상 문제 모음

[2023 정보처리기사 실기 예상 문제] IT용어 100문제 1탄

[2023 정보처리기사실기  예상 문제] IT용어 100문제 2탄

[2023 정보처리기사 실기 예상 문제] IT용어 16문제 3탄

[2023 정보처리기사 실기 예상 문제] 2020년 개정 이전 기출 IT용어 문제

1. PHP에서 한 줄을 주석 처리하는 데 사용되는 기호는 무엇인가?

① <? 

② // 

③ /* 

④ <!--

더보기

답 ② //


2. PHP에서 두 줄 이상을 주석 처리하는 데 사용되는, 시작과 끝을 나타내는 기호는 각각 무엇인가?

① /*, */ 

② #, # 

③ <!--,--> 

④ “”“, ”“”

더보기

답 ① /*, */


3. 다음 중 PHP의 변수명으로 옳지 않은 것은?

① $bus 

② $my age 

③ this_year 

④ font7

더보기

답 : ② $my age


4. 자신의 이름, 휴대폰 번호, 주소, 이메일 주소를 출력하는 프로그램을 작성하시오.

 

출력 포맷

- 이름 : ***
- 휴대폰 번호 : ###-####-####
- 주소 : *****************************
- 이메일 : ######@######.###
더보기
<?php
	$name = '홍길동';
	$phone = '010-1234-5678';
	$addr = '한국대학교';
	$email = 'adsf@korea.co.kr';

	echo "- 이름 : $name <br>";
	echo "- 휴대폰 번호 : $phone <br>";
	echo "- 주소 : $addr <br>";
	echo "- 이메일 : $email <br>";
?>

5. HTML의 <table> 태그를 이용하여 4번 문제의 출력 결과를 다음과 같이 나타내시오.

 

출력 포맷

이름 휴대폰 번호 주소 이메일
*** ###-####-#### *************** ######@#####.###
더보기
<?php
	$name = '홍기돌';
	$phone = '01012345678';
	$addr = '한국대학교';
	$email = 'ADSF@ADSF.AD';
?>

<html>
	<style type="text/css">
		table {
			border: 1px solid black; border-collapse : collapse; width:40%;
		}
		td {
			border: 1px solid black; padding: 3px
		}
	</style>
	<table>
		<tr>
			<td>이름</td>
			<td>휴대폰 번호</td>
			<td>주소</td>
			<td>이메일</td>
		</tr>
		<tr>
			<td> <?=$name?> </td>
			<td> <?=$phone?> </td>
			<td> <?=$addr?> </td>
			<td> <?=$email?> </td>
		</tr>
	</table>
</html>

6. PHP의 이스케이프 문자 중 줄 바꿈을 의미하는 것은 무엇인가?

① \n 

② \\ 

③ \t 

④ \$

더보기

답 : ① \n


7. 변수 $name을 출력하는 <?php echo $name?>의 약식 표현은 무엇인가?

① <?=$name?> 

② <?/*$name?> 

③ <?//$name?> 

④ <?$name?>

더보기

답 ① <?=$name?>


8. 하나 또는 여러 개의 문자로 구성된 데이터형은 무엇인가?
① 정수 

② 불 

③ 배열 

④ 문자열

더보기

답 : ④ 문자열


9. %는 어떤 수를 나눈 나머지를 구하는 나머지 연산자이다. 3%10의 결과는 무엇인가?
① 3 

② 0 

③ 10 

④ 1

더보기

답 : ① 3


10. 2개의 문자열을 연결하는데 사용되는 연산자는 무엇인가?
① ** 

② ++ 

③ . 

④ +

더보기

답 : ③ .


11. “3479.0”의 데이터형은 무엇인가?
① 실수형 

② 정수형

③ 배열

④ 문자열

더보기

답 : ① 실수형


12. 논리 연산자 중 두 조건이 모두 참이어야만 그 결과가 참이 되는 연산자는 무엇인가?
① ! 

② == 

③ && 

④ ||

더보기

답 : ③ &&


13. 다음은 공원 입장료를 계산하는 프로그램이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
	$child_fee = 5000; 
	$adult_fee = 8000; 
	$num_child = 3;	
	$num_adult = 2;	

	$total_fee = (가) * $num_child + (나) * (다);
	
	echo "전체 입장료 : (라) 원"; 
?>
더보기

(가) $child_fee

(나) $adult_fee

(다) $num_adult

(라) $total_fee

<?php
	$child_fee = 5000; 
	$adult_fee = 8000; 
	$num_child = 3;	
	$num_adult = 2;	

	$total_fee = $child_fee * $num_child + $adult_fee * $num_adult;

	echo "전체 입장료 : $total_fee 원";
?>

14. 다음은 거스름돈을 계산하는 프로그램이다. 빈칸을 채워 프로그램을 완성하시오.

<?php
	$money = 3000;	
	$price = 800;	
	$num = 3;		

	$change = (가) - $price * $num;
	
	echo ("물건 가격 : $price <br>");
	echo ("구매 개수 : (나) <br>");
	echo ("지불액 : $money <br>");
	echo ("거스름돈은 (다) 원 입니다.<br>");
?>
더보기

(가) $money

(나) $num

(다) $change

<?php
	$money = 3000;	
	$price = 800;	
	$num = 3;	

	$change = $money - $price * $num;

	

	echo ("물건 가격 : $price <br>");
	echo ("구매 개수 : $num <br>");
	echo ("지불액 : $money <br>");
	echo ("거스름돈은 $change 원 입니다.<br>");
?>

15. 다음은 거스름돈을 계산하는 프로그램이다. 빈칸을 채워 프로그램을 완성하시오.

 

출력포맷

주민등록번호 : 991111-1010111
이메일 주소 : master@codingschool.info
<?php
	$num1 = "991111";
	$num2 = "1010111";
	$id = $num1(가)"-".$num2; 
	echo "주민등록번호 : $id"."<br>"; 

	$email1 = "master";
	(나) = "codingschool.info";
	$email = $email1."@"(다)$email2; 
	echo "이메일 주소 : $email"; 
?>
더보기

(가) . 

(나) $email2

(다) .

<?php
	$num1 = "991111";
	$num2 = "1010111";
	$id = $num1."-".$num2; 
	echo "주민등록번호 : $id"."<br>";

	$email1 = "master";
	$email2 = "codingschool.info";
	$email = $email1."@".$email2; 
	echo "이메일 주소 : $email"; 
?>

16. 다음 프로그램의 실행 결과가 웹 브라우저 화면에 어떻게 출력될지 예측하시오.

<?php
	$a = 3;
	$b = 2;

	$a = $a + $b;
	$b = $a + 5;
	$c = $a * $b;

	$c = $c % 2;
	$a = $b + $c;
	$b = $a * $b;

	echo "a : $a, b : $b, c : $c";
?>
더보기

답 : a : 10, b : 100, c : 0

1. 라스무스 레도로프가 웹 프로그래밍 언어인 PHP를 개발한 것은 언제인가?

① 1974년 

② 1984년 

③ 1994년 

④ 2004년

더보기

답 : ③ 1994년


2. 다음 중 PHP의 특징으로 옳지 않은 것은?

① 윈도우, 매킨토시, 유닉스, 리눅스 등 대부분의 운영체제에서 잘 동작한다.

② MySQL, mSQL, Oracle, Sybase 등의 데이터베이스와 연동해서 사용할 수 있다.

③ C 언어와 유사하지만 C 언어보다 익히기 어려운 것이 단점이다.

④ 일반적인 인터프리터 방식 언어인 ASP나 Peal보다 처리 속도가 훨씬 더 빠르다.

더보기

답 : ③  C 언어와 유사하지만 C 언어보다 익히기 어려운 것이 단점이다.


3. 다음 중 XAMPP 프로그램에 포함되지 않은 프로그램 모듈은 무엇인가?

① PHP 

② MySQL 

③ Apache 

④ 크롬 브라우저

더보기

답 : ④ 크롬 브라우저


4. XAMPP 프로그램을 이용하여 프로그램을 개발할 때 PHP 파일을 저장하는 기본 폴더는 무엇인가?

① htdocs 

② www 

③ phpMyAdmin 

④ sublimetext

더보기

답 : ① htdocs


5. XAMPP 프로그램을 로컬 컴퓨터인 C:\xampp에 설치한 상태에서 PHP 실습 파일인 company.php의 실행 결과를 확인하기 위해 웹 브라우저 주소 창에 입력하는 URL 주소는 무엇인가?

① http://localhost

② http://localhost/htdocs/company.php

③ http://localhost/company.php

④ http://localhost/htdocs/company.php

더보기

답 : ③ http://localhost/company.php

 

 

2024년에도 계속 업데이트할 예정입니다

 

목차
1) 정보처리기사 공부법
2) 최신 경향
3) 산업기사 기출문제(22년 1, 2, 3회차)
4) 코딩 기출문제 + 예상문제
5) SQL 기출문제 + 예상문제
6) 이론 기출문제+ 예상문제

 

예상문제는 기출문제를 제외하고는 제가 직접 만든 문제이므로 유일하게 이 블로그에서만 볼 수 있습니다


1) 정보처리기사 공부법
정보처리기사 공부법-네이버블로그

코딩 6문제 + SQL 2~3문제 + 이론 3문제 찍신 => 60점 커트라인

2023 정보처리기사 실기 요약 PDF


2) 정보처리기사 최신 경향

관련 파트 23년 1회 23년 2회 23년 3회
C언어 4 7 4
자바
3
1
3
파이썬 1 1 1
 SQL
계획
요구 분석  0 1
패키지 
설계, 화면설계 1
디자인 패턴(proxy) 
1
디자인 패턴(Singleton, Visitor) 
테스트 1
화이트박스 제어흐름 
2
스텁, 드라이버
화이트박스 제어 흐름 
 1
equivalence partitioning
패키징  0  0
 DB 2
튜플/인스턴스/카디널리티 
외부/개념/내부 스키마
 1
데이터베이스 설계순서
1
참조 무결성 
 네트워크
 4
가상회선/데이터그램
SSH
L2TP
ICMP
2
HDLC 프레임
오류 검출 방식(해밍, 패리티, CRC) 
4
NAT
lass/Pass/SaaS
ATM
RIP
 웹
 1
AJAX
 보안
 1
바이러스/웜/트로이목마
3
템퍼프루핑
대칭키/비대칭키
해시 
2
OAuth
MAC/RBAC/DAC
운영체제
 1
chmod 751
 자료구조와 정렬
 0

3) 산업기사 기출문제(22년 1, 2, 3회차)
일단 정보처리산업기사 문제가 정보처리기사보다 쉽긴 하지만 거의 똑같은 출제범위에 거의 똑같은 내용이라 도움이 무조건 됩니다.
[2022년 1회] 정보처리산업기사 실기 기출문제

[2022년 2회] 정보처리산업기사 실기 기출문제

[2022년 3회] 정보처리산업기사 실기 기출문제

「23년 1회」정보처리산업기사 실기 기출문제

「23년 2회」정보처리산업기사 실기 기출문제

 


4) 코딩 기출문제
C언어 기출문제 모음

JAVA 기출문제 모음

Python 기출문제 모음

 

정보처리산업기사(정처산기) 실기 C언어 기출문제 모음

정보처리산업기사(정처산기) 실기 Java 기출문제 모음

정보처리산업기사(정처산기) 실기 Python 기출문제 모음


4-1) 비전공자용 코딩 요약

비전공자용 C언어 요약 1탄

비전공자용 C언어 요약 2탄(조건문, 반복문, 배열)

비전공자용 C언어 요약 3탄(함수, 포인터)

비전공자용 C언어 요약 4탄(포인터 심화, 구조체)

 

비전공자용 Java 요약 1탄

비전공자용 JAVA 요약 2탄(객체지향, 클래스)

비전공자용 JAVA 요약 3탄(객체 생성, 생성자, 접근제어자)

비전공자용 JAVA 요약 4탄(this, 배열, 상속, super)


4-2) 코딩 예상문제

 

(예상문제는 아니지만 파이썬 예제를 통해 기본 상기시키고 내장함수도 알아놓기)

22년 3회차에 map이라는 내장함수가 나왔음

정보처리기사 실기 Python 기초 문제 정리 : 네이버 블로그

001 ~ 010 - 초보자를 위한 파이썬 300제 (wikidocs.net)

05-5 내장 함수 - 점프 투 파이썬 (wikidocs.net)

3.5 람다(lambda) - 왕초보를 위한 Python: 쉽게 풀어 쓴 기초 문법과 실습 (wikidocs.net)


5) SQL 기출문제 
정보처리기사 실기 SQL 기출문제 모음

정보처리산업기사(정처산기) 실기 SQL 기출문제 모음


5-1) SQL 예상문제
SQL의 최신경향은 결과값을 물어보는 문제인데, 그 문제마저도 SQLD라는 시험에 나오는 SQL문제와 완전 동일하게 출제되고 있습니다. 
SQL은 DDL(CREATE, ALTER, DROP), DCL(GRANT, REVOKE), DML(SELECT, DELETE, UPDATE, INSERT)의 기본적인 사용법은 필수로 아셔야하며 그 중 가장 중요한 것은 역시 SELECT입니다
+ JOIN 개념
+ NULL 연산 문제
+DISTINCT, UNIQUE, ALL
+UNION ALL , UNION 
이렇게까지만 대비하면 정처기 SQL문제 대비는 문제없습니다.

이제 쓰는것까지 연습하셔야합니다
 
[2023 정보처리기사 실기 예상 문제] SQL 문제


6) 이론 기출문제
단원별로 기출문제를 나눠서 정리했습니다. 20년 1회, 21년 3회 뭐 이런 식으로 한 회차를 그냥 풀어보고 60점나왔네.. 80점나왔네.. 하시는데 그런 방식은 아무의미없고 어차피 똑같이 나오지도 않습니다
같은 단원의 문제를 한꺼번에 보시면서 이런 느낌으로 이 파트에서 출제가 되고 있는구나를 깨달으면서 뭐가 시험에 나올지 유추하시면서 문제를 풀어보시기 바랍니다.
특히나 예를들어 데이터베이스 파트를 예로 들면 정규화파트가 전회차에 나왔다면 이번에는 반정규화문제를 보는 그런 느낌으로 공부하시면 됩니다.
 
진짜 하고싶은 방법은 기출문제를 소프트웨어공학, 보안, 네트워크, 데이터베이스 이런식으로 나누는게 제일 좋긴할텐데 그러기에는 시간이 너무 많이 걸릴 것 같아서 일단 그냥 단원별로 정리돼있는데 그냥 회차를 풀어보는 것보다는 이렇게 단원별로 보는게 훨씬 효과가 좋은 것 확실합니다.
 
추가로 정처기 필기 문제도 보면서 딱봐도 실기에 안나올 것 같은 문제는 버리고 그외 필기문제들을 다시한번 보시는 것을 추천드립니다. 필기문제에서 살짝 변형돼서도 출제되고 있습니다.
 

1. 소프트웨어 공학 파트 문제 모음

2. 데이터베이스 파트 문제 모음

3. 웹 파트 문제 모음

4. 테스트 파트 기출문제 모음

5. 보안 파트 기출문제 모음

6. 네트워크+운영체제 기출문제 모음


 
 
6-1) 이론 예상문제(필기 변형문제는 매우매우 매우 매우 매우 매우 중요하니 꼭 보세요)
[2023 정보처리기사 실기 예상 문제] IT용어 100문제 1탄

[2023 정보처리기사실기  예상 문제] IT용어 100문제 2탄

[2023 정보처리기사 실기 예상 문제] IT용어 16문제 3탄

[2023 정보처리기사 실기 예상 문제] 2020년 개정 이전 기출 IT용어 문제



[2023 정보처리기사 실기 예상 문제] 필기 1과목 변형(객체지향)

[2023 정보처리기사 실기 예상 문제] 필기 2과목 변형

[2023 정보처리기사 실기 예상 문제] 필기 4과목 변형(네트워크+운영체제)

[2023 정보처리기사 실기 예상 문제] 필기 5과목 변형(보안+IT용어)

 

[2023 정보처리기사 실기 예상 문제] 데이터베이스(DB) 파트 문제

[2023 정보처리기사 실기 예상 문제] 결합도&응집도 문제

[2023 정보처리기사 예상 문제] 테스트 파트 문제

[2023 정보처리기사 실기 예상 문제] 네트워크 파트 문제

 

이클립스(Eclipse) 한글 깨짐 - "UTF-8" 인코딩 설정 :: 컴퓨터가 할 일을 사람이 하지말자 (tistory.com)

[Error:Eclipse] 한글깨짐 해결법(UTF-8로 변경해도 해결되지 않을경우) (tistory.com)

이클립스 콘솔 한글깨짐 해결 방법 (tistory.com)

 

위링크보고 다 해봤는데 안됐습니다. 

저는 아래 방법을 사용해서 해결했습니다.

 

1) Run->Run configurations

 

 

 

2) Common 

 

 

3) Encoding에서 Use system encoding(x-windows-949) 클릭

이러니 해결됐습니다

저와 같이 Expresson:result_pointer !=nullptr

에러가 나는 경우는 scanf("%d", a); 입력받을 변수에 &를 붙이지않아서 생기는 오류였습니다.

scanf("%d", a); 를

scanf("%d", &a);

해주시면 해결됩니다

 

저처럼 바보 같은 실수하시지 않기를 바랍니다 ㅎㅎ 

Debug Assertion Failed!

Expresson:result_pointer !=nullptr
For information on how your program can cause an assertion failure, see the Visual C++ documentation on asserts.
(Press Retry to debug the application)

[정보처리기사/예상문제] - 2023 정보처리기사 실기 예상 문제 모음

[2023 정보처리기사 실기 예상 문제] IT용어 100문제 1탄

[2023 정보처리기사실기  예상 문제] IT용어 100문제 2탄

[2023 정보처리기사 실기 예상 문제] IT용어 16문제 3탄

[2023 정보처리기사 실기 예상 문제] 2020년 개정 이전 기출 IT용어 문제

 

1. 검색 작업이 복잡한 데이터를 임시로 저장하여 네트워크 응용 서버에서 데이터베이스의 호출 없이 데이터를 전송하는 서비스

더보기

캐싱 서비스 [cashing service] 


2. 컴퓨터에서 운영 체계(OS) 위의 응용 프로그램을 동작시키고 결과를 화면에 표시하는 작은 그래픽 사용자 인터페이스(GUI) 도구

더보기

위젯 [widget]


3. 가중치가 있는 그래프의 최단 경로를 구하는 알고리듬

더보기

다이크스트라 알고리듬 [Dijkstra algorithm] 


4. #(샤프 기호)와 특정 단어(들)을 붙여 쓴 것으로, 해시태그는 트위터, 페이스북 등 소셜 미디어에서 특정 핵심어를 편리하게 검색할 수 있도록 하는 메타데이터의 한 형태이다.

더보기

해시태그 [Hashtag]


5. 구조화되지 않은 대량의 데이터를 효율적으로 검색하고 관리하기 위하여 주제(topic)에 따라 데이터를 분류하고 의미적 연관성에 따라 연결하여 지도(map)와 같이 표현하는 기술. 

더보기

토픽 맵 [topic maps]


6. 단순한 질문에 대해 상투적이고 획일적인 방법으로 대답하는 대량의 응답 또는 응답에 사용되는 데이터.

더보기

브레인 덤프 [brain dump]


7. 소스 코드가 공개되며, 누구나 자유롭게 사용할 수 있는 소프트웨어

더보기

자유·공개 소프트웨어 [FOSS; Free and Open Source Software]


8.  작동 시스템에 대한 아무런 지식이 없더라도 기능을 수행할 수 있도록 하는 기술

더보기

애그노스틱 기술 [agnostic technology]


9. 컴퓨터 시스템에 상주하여 응용 프로그램이나 시스템이 특정한 상태로 되었을 때 자동적으로 각종 서비스를 제공하는 시스템 프로그램

더보기

디몬 [demon]


10. 서비스 거부 공격(DOS)의 하나. 공격 대상 컴퓨터에 헤더가 조작된 일련의 IP 패킷 조각(IP fragments)들을 전송함으로써 컴퓨터의 OS를 다운시키는 공격

더보기

티어드롭 공격 [Teardrop Attack]


11. 정보의 전달을 빠르게 하기 위하여 전달하고자 하는 내용이나 개념을 직관적으로 알 수 있도록 하는 기법

더보기

메타포어 [metaphor]


12. 시스템 보안이 제거된 비밀 통로로, 서비스 기술자나 유지 보수 프로그램 작성자의 액세스 편의를 위해 시스템 설계자가 고의로 만들어 놓은 시스템의 보안 구멍. 백 도어(back door)라고도 한다. 

더보기

트랩도어 [trapdoor]


13. 네트워크에 접속된 복수의 컴퓨터를 1대의 가상적인 컴퓨터를 사용해서 대규모 연산을 수행하도록 하는 중간 웨어.

더보기

PVM [parallel virtual machine] 


14. 원자료(raw data)를 쉽고 효율적으로 가공하고 분석할 수 있도록 변환하는 과정

더보기

데이터 랭글링 [data wrangling]


15. 하나의 물리적인 코어 네트워크 인프라(infrastructure)를 서비스 형태에 따라 다수의 독립적인 가상 네트워크로 분리하여 각각의 슬라이스를 통해 다양한 맞춤형 서비스를 제공하는 네트워크 기술

더보기

네트워크 슬라이싱 [network slicing] 


16. 개인에게 피해를 줄 수 있는 파일이나 정보를 미끼로 금전을 요구하는 악성코드

더보기

독스웨어 [doxware]


17. 컴퓨터 보안에서 인간 상호 작용의 깊은 신뢰를 바탕으로 사람들을 속여 정상 보안 절차를 깨트리기 위한 비기술적 침입 수단

더보기

사회 공학 [social engineering]


18. 웹상의 다양한 정보를 자동으로 검색하고 색인하기 위해 검색 엔진을 운영하는 사이트에서 사용하는 소프트웨어.

더보기

웹 크롤러 [web crawler]


19. 실제로는 공인되지 않은 무선 접속 장치(Access Point)이면서도 공인된 무선 접속 장치인 것처럼 가장하여 접속한 사용자들의 신상 정보를 가로채는 인터넷 해킹 수법.

더보기

이블 트윈 [Evil Twins]


20. 인터넷상에서 자기 이름이 얼마나 나오는지를 알아보기 위해 사용하는 검색 엔진

더보기

에고서핑 [egosurfing]


21. 비식별화(de-identification)된 개인정보를 다른 정보와 조합, 분석, 또는 처리하여 특정 개인을 다시 식별할 수 있게 하는 일련의 과정 또는 방법

더보기

재식별화 [re-identification]


22. 컴퓨터 통신망상에 구축된 가상적 세계를 뜻하는 사이버 공간과 비행 청소년 또는 불량배 등을 뜻하는 펑크의 합성어로, 컴퓨터 시스템에 무단 침입하여 비행을 저지르는 온라인 불량배나 해커, 하이테크 지혜와 기지(機智)를 발휘하여 인터넷을 서핑하는 사람들.

더보기

사이버펑크 [cyberpunk]


23. 이미지, 영상, 문자, 숫자 등에서 다른 공개된 정보와 결합되어 개인을 식별하는 데 사용될 수 있는 민감 데이터(예: 식별자)를 보이지 않도록 처리하여 식별할 수 없도록 하는 것.

더보기

데이터 마스킹 [data masking]


24. 프로세서(processor) 안에 독립적인 보안 구역을 따로 두어 중요한 정보를 보호하는 하드웨어 기반의 보안 기술.
암(ARM: Advanced RISC Machine)사에서 개발하였다. 하드웨어에서 직접 실행되며 하나의 CPU를 2개의 가상 공간, 즉 일반 구역(normal world)과 보안 구역(secure world)으로 분할하여 관리한다. 보안이 필요하지 않은 작업은 일반 구역에서 실행되고, 보안이 필요한 작업은 보안 구역에서 실행된다.

더보기

트러스트존 기술 [TrustZone technology]


25. 인터넷상에서 동의 없이 부지불식간에 컴퓨터에 침입하는 각종 악성 소프트웨어. 스파이웨어, 애드웨어, 내그웨어, 멀웨어 및 각종 바이러스를 망라한 일반적인 소프트웨어로, 공유웨어나 프리웨어 패키지와 함께 침입한다.

더보기

스컴웨어 [scumware]


26. 가장 최근에 다운로드된 웹 페이지들을 저장하는 디스크나 메모리의 임시 저장 구역.

더보기

브라우저 캐시 [browser cache]


27. 즐겨찾기 아이콘. 즐겨찾기(favorites)와 아이콘(icon)의 합성어로, 주소창에 조그만 아이콘으로 표시되어 있다. 

더보기

파비콘 [favicon]


28. 양자 통신을 위해 비밀키를 분배·관리하는 기술. 

더보기

양자 암호키 분배 [QKD;Quantum Key Distribution]


29. 웹 서버가 웹 브라우저에 보내어 저장했다가 서버의 부가적인 요청이 있을 때 다시 서버로 보내 주는 문자열 정보

더보기

쿠키 [cookie]


30. 네티즌들이 사이트에 접속할 때 주소를 잘못 입력하거나 철자를 빠뜨리는 실수를 이용하기 위해 이와 유사한 유명 도메인을 미리 등록하는 일. URL 하이재킹(hijacking)이라고도 한다.

더보기

타이포스쿼팅 [typosquatting]


31. 개인용 스마트 기기에서 패스워드 방식보다 간편하고 보안성 높은 사용자 인증 서비스를 제공하기 위해 개발된 개방형 인증 표준 기술

더보기

FIDO [Fast IDentity Online]


32. 저속, 저전력, 저성능의 특징을 갖는 사물들로 구성된 사물 인터넷

더보기

소물 인터넷 [IoST, Internet of Small Things]


33. 카메라로 촬영되는 영상에서 사람, 동물, 차량 등 특정 객체(object)의 위치 변화를 찾는 컴퓨터 비전(computer vision) 기술. 이미지나 영상에서 객체를 찾아내는 것은 객체 검출(object detection) 기술이다.

더보기

객체 추적 [object tracking]


34. 인터넷 프로토콜(IP)을 이용해 저장 장치를 통합 관리하는 기술. 인터넷 표준인 IP를 활용해 SAN (storage area network)의 거리적 제약성 문제를 해결해 주는 기술

더보기

SoIP [Storage over IP] 


35. 인터넷상의 가상 사설 통신망(VPN)에서 데이터를 IP 패킷화할 때, 각 통신망 환경에서 사용되고 있는 통신망 통신 규약을 IP 통신 규약으로 캡슐화함과 동시에 안전성을 높이기 위한 기술

더보기

IP 터널링 [IPT;IP tunneling]


36. 데이터 중복 제거(디듀플리케이션) 솔루션.

더보기

SIR [Single Instance Repository]


37. 에지 장치(edge equipment)에서 인공지능 기술을 활용하여 실시간으로 데이터 분석과 처리 및 자원 관리 기능을 제공하는 에지 컴퓨팅 기술.

더보기

지능형 에지 컴퓨팅 [intelligent edge computing]


38. 사람의 사고 과정 알고리즘과 비슷하게 작동하도록 모사한 컴퓨팅 방식.

더보기

뉴로모픽 컴퓨팅 [neuromorphic computing]


39. 네트워크에서 공격 서명을 찾아내어 자동으로 모종의 조치를 취함으로써 비정상적인 트래픽을 중단시키는 보안 솔루션

더보기

침입 방지 시스템 [IPS;intrusion prevention system]


40. 하나의 물리적인 코어 네트워크 인프라(infrastructure)를 서비스 형태에 따라 다수의 독립적인 가상 네트워크로 분리하여 각각의 슬라이스를 통해 다양한 맞춤형 서비스를 제공하는 네트워크 기술

더보기

네트워크 슬라이싱 [network slicing]


41. 참가자들이 실제로 같은 방에 있는 것처럼 느낄 수 있는 가상 화상회의 시스템. 실제로 상대방과 마주하고 있는 것과 같은 착각을 일으키게 하는 가상현실(디지털 디스플레이) 기술과 인터넷 기술이 결합된 영상회의 시스템

더보기

텔레프레즌스 [Telepresence]


42. 운영 중인 시스템에서 시스템 전체의 동작에는 하등 영향을 미치지 않으면서 장치나 부품을 교체하는 것. 

더보기

핫스와프 [hot swap]


43. 웹 사이트(website)에 존재하는 데이터 중에서 필요한 데이터만을 추출하도록 만들어진 프로그램. 각 웹 사이트에서 데이터를 수집해 오는 기술, 일정 포맷으로 변환하는 기술, 스크레이핑 구동 기술이 핵심이다.

더보기

스크린 스크래핑 [screen scraping]


44. 편집하거나 저장하기 위해 원래의 영상이나 음성 또는 이미지 정보중에서 필요한 부분만을 따로 떼어 놓는 것

더보기

캡처 [capture]


45. 사람의 몸 자체 또는 주변에서 정보 교환이 이루어질 수 있도록 구성한 통신망

더보기

인체 영역 통신망 [BAN; Body Area Network]


46. 사용자에게 데이터를 효과적으로 제공하기 위해 데이터 생성부터 소비까지의 데이터 흐름을 원활하게 제공해주고 적합한 데이터를 적시에 필요한 장소로 가져올 수 있는 프로세스를 자동화하여 데이터의 잠재력을 최대한 발휘하도록 하는 데이터 관리 방법론.

더보기

데이터옵스 [DataOps]


47. 이동통신 서비스를 이용하려는 사용자와 가까운 곳에 서버를 위치시켜 데이터가 수집되는 현장에서 바로 데이터를 처리하여 초저지연성을 제공하고 초대용량 데이터 처리와 저장을 효율적으로 처리하는 컴퓨팅 방식

더보기

모바일 에지 컴퓨팅 [MEC;Mobile Edge Computing] 


48. 인터넷의 노드, 사이트, 네트워크 등이 다중 IP 주소를 사용하여 동종 또는 이종 링크와 다중으로 접속을 유지하는 기술.

더보기

멀티호밍 [multihoming]


49. 공격자가 자신의 인터넷 프로토콜(IP) 주소를 변조하거나 속여서 접근 제어 목록(ACL: Access Control List)을 우회하거나 회피하여 공격하는 것.

더보기

IP 스푸핑 [Internet Protocol spoofing]


50. 웹 브라우저와 웹 서버 사이에 전송 제어 프로토콜(TCP) 연결(80번 포트) 한 개만 생성하여 전이중(full-duplex) 통신을 제공하는 프로토콜

더보기

웹소켓 [WebSocket]


51. 포털 페이지상의 세분화되어 있는 작은 창. 포틀릿 기술은 포털 업체나 최종 사용자가 내부적으로 보다 쉽게 사용할 수 있도록 포털 페이지를 작은 창들로 꾸미는 것이다.

더보기

포틀릿 [portlet] 


52. 인터넷 프로토콜 허용 범위(6만 5536바이트) 이상의 큰 패킷을 고의로 전송하여 발생한 서비스 거부(DoS) 공격

더보기

죽음의 핑 [ping of death] 


53. 고객의 웹 사이트를 포워딩 업체가 등록한 간략하고 편리한 도메인 주소로 연결하여 서비스되도록 해주는 것.

더보기

도메인 포워딩 [domain forwarding] 


54. 인터넷에서 특정 앱 다운로드 수, 상품 조회 수 등을 조작하기 위해 가짜 클릭을 대량으로 생산하는 곳.

더보기

가짜 클릭 농장 [click farm]


55. 프로그램, 문서, 웹사이트 등에서 사용자의 탐색 경로를 시각적으로 제공해 주는 그래픽 사용자 인터페이스(GUI : Graphical User Interface).

더보기

브레드크럼즈 [breadcrumbs] 


56. 하나의 문자열을 보다 빨리 찾을 수 있도록 주소에 직접 접근할 수 있는 짧은 길이의 값이나 키로 변환하는 것

더보기

해싱 [hashing]


57. 비밀 번호나 데이터 암호 표준(DES) 키를 풀기 위해 소모적인 방법으로 프로그램에 의해 사용되는 시행착오 식의 침입 방법. 이것은 프로그램을 사용하여 모든 가능한 문자의 조합을 시행하고 틀리면 다른 문자를 적용해 보는 반복에 의해 시도되는 침입 방법

더보기

무차별 대입 공격 [BFC;brute force cracking]


58. 속성(attribute)이나 특징(feature), 분류(classification) 그리고 포함하고 있는 객체(object)가 무엇인가 등의 추가적인 정보를 알려주는 라벨이 붙어 있는 데이터.

더보기

라벨 데이터 [labeled data] 


59. 분산 컴퓨팅(distributed computing)에서 대용량 데이터를 병렬 처리(parallel processing)하기 위해 개발된 소프트웨어 프레임워크(framework) 또는 프로그래밍 모델.

더보기

맵리듀스 [MapReduce] 


60. 인간과 컴퓨터가 교감하는 감성 기반의 지능형 컴퓨팅 기술

더보기

감성 컴퓨팅 [Affective Computing]


61. 자신이 사용하고 있는 애플리케이션의 최신 버전을 수시로 인터넷이나 PC 통신의 자료실에서 업데이트해 주는 프로그램

더보기

캐치 업 [catch up]


62. 원자료(raw data)를 쉽고 효율적으로 가공하고 분석할 수 있도록 변환하는 과정.

더보기

데이터 랭글링 [data wrangling]


63. 온라인 거래 정보를 수정할 수 없도록 데이터를 블록(block)으로 만들고 암호기술을 사용한 고리 모양의 체인(chain)으로 연결하여 분산 컴퓨팅 기술로 저장 · 관리하는 방식. 

더보기

블록체인 [Blockchain]


64. 애플리케이션 개발에 관련된 정보를 보관해 둔 데이터베이스

더보기

리포지토리 [repository] 


65. 시스템을 부분적으로 사용하여 각 부분적 시스템이 어느 정도까지 견딜 수 있는지를 확인하는 시험

더보기

파일럿 시험 [pilot test]


66. 주소 결정 프로토콜(ARP) 메시지를 변조시켜 공격하고자 하는 특정 IP 주소를 해커 자신의 매체 접근 주소(MAC: Media Access Control) 주소로 연결시켜 해당 IP로 전달되는 개인정보 등의 데이터를 중간에서 가로채기하는 공격

더보기

ARP 스푸핑 [Address Resolution Protocol spoofing]


67. 정보를 수집한 후, 저장만 하고 분석에 활용하고 있지 않는 다량의 데이터. 다크 데이터는 처리되지 않은 채 미래에 사용할 가능성이 있다는 이유로 삭제되지 않고 방치되어 있어, 저장 공간만 차지하고 보안 위험을 초래할 수 있다.

더보기

다크 데이터 [dark data]


68. 시험 사용 기간 후에 사용료를 지불하는 조건으로 저작자(개발자)가 무상으로 배포하는 컴퓨터 프로그램

더보기

셰어웨어 [shareware]


69. 컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록, 이해하기 쉬운 의미를 가진 차세대 지능형 웹

더보기

시맨틱 웹 [semantic web]


70. 다른 사람의 세션 상태를 훔치거나 도용하여 액세스하는 해킹 기법. 일반적으로 세션 ID 추측 및 세션 ID 쿠키 도용을 통해 공격이 이루어진다.

더보기

세션 하이재킹 [session hijacking]


71. 소비자의 감성과 관련된 텍스트 정보를 자동으로 추출하는 텍스트 마이닝(Text Mining) 기술의 한 영역. 문서를 작성한 사람의 감정을 추출해 내는 기술로 문서의 주제보다 어떠한 감정을 가지고 있는가를 판단하여 분석한다.

더보기

감성 분석 [Sentimental Analysis]


72. 원시 프로그램이나 시험 프로그램 등을 시험하는 일. 즉, 프로그램을 실제로 운용하기 전에 오류 또는 부족한 점을 찾기 위하여, 실제 상황과 유사한 조건에서 시험 가동하는 행위

더보기

파일럿 [pilot]


73. 본격적인 테스트의 수행에 앞서, 시스템, 컴포넌트, 소프트웨어 프로그램 등 테스트 대상이나 제품의 빌드(제품 설치 패키지)가 구축된 테스트 환경에서 테스트가 가능한지 여부를 판단하기 위해 주요 모듈이나 시스템을 간단하게 테스트 하는 것

더보기

스모크 테스트 [Smoke Test]


74. 인터넷이 연결되지 않아도 웹 브라우저에서 이용할 수 있고 모바일 앱의 푸시 알림 기능 등을 지원하는 애플리케이션.

더보기

프로그레시브 웹 앱 [Progressive Web App] 


75. 대용량 데이터에서 의미 있는 통계적 패턴이나 규칙, 관계를 찾아내 분석하여 유용하고 활용할 수 있는 정보를 추출하는 기술.

더보기

데이터 마이닝 [data mining] 


76. 개발을 기다리는 프로그램. 기업의 시스템 등에서 경리나 통계 업무뿐만 아니라 경영 전략적으로 개발이 필요한 프로그램이 해마다 증가하고 있다. 그런데 설계나 개발에 필요한 인적, 기술적 자원이 충분하지 못하여 프로그램 개발이 이루어지지 못하고 미개발 프로그램이 적체하는 수가 있는데 이것을 가리킨다.

더보기

수주 잔량 [backlog]


77. 무선랜 침입방지 시스템. 감시 센서로 액세스포인트(AP) 사용 현황을 실시간으로 관찰하고 허용하지 않은 접속을 막고, 보안 취약점을 야기할 수 있는 부적절한 접속을 방지한다.

더보기

무선 침입 방지 시스템 [Wireless Intrusion Prevention System]


78. 자신의 컴퓨터가 인터넷을 통해 목적지에 찾아가면서 거치는 구간의 정보를 기록하는 유틸리티

더보기

트레이스라우트 [traceroute]


79. 인터넷 검색 엔진에서 웹사이트 검색 순위를 정하는 알고리즘.

더보기

페이지랭크 [PageRank] 


80. 게시판, 웹 메일 등에 삽입된 악의적인 스크립트에 의해 페이지가 깨지거나 다른 사용자의 사용을 방해하거나 쿠키 및 기타 개인 정보를 특정 사이트로 전송시키는 공격.

더보기

크로스 사이트 스크립팅 [XSS;Cross Site Scripting] 


81. 단말의 종류와 화면 크기에 실시간 반응하여 웹 페이지를 최적화된 화면 구성으로 보여주는 웹

더보기

반응형 웹 [Responsive Web]


82. 문서의 문구와 단어를 분석하여 중요도나 사용 빈도를 직관적으로 파악할 수 있도록 시각화하는 표현 기법

더보기

핵심 단어 시각화 [word cloud]


83. 부활절 달걀이라는 뜻으로, 프로그램을 만들 때 프로그램 작성자가 몰래 프로그램 안에 숨겨 놓은 여러 가지 재미있는 기능

더보기

이스터 에그 [easter egg]


84. 컴퓨터에서 특정 통신 포트를 개방하여 통신이 되도록 하는 것.

더보기

포트 포워딩 [port forwarding]


85. 개발하는 소프트웨어가 복잡해짐으로 인해 보안상 취약점이 발생할 수 있는 부분을 보완하여 프로그래밍하는 것

더보기

시큐어 코딩 [secure coding] 


86. 복잡한 정보를 쉽고 빠르게 전달하기 위해 차트, 그래픽 등으로 축약해서 표현한 것.

더보기

인포그래픽스 [Infographics]


87.  소프트웨어, 스토리지, 서버 등 가상화한 물리 자원을 네트워크를 통해 누구나 공유할 수 있는 풀(pool) 형태로 제공하는 컴퓨팅.

더보기

클라우드 컴퓨팅 [cloud computing]


88. 현실에 존재하는 객체(사물, 공간, 환경, 공정, 절차 등)를 컴퓨터상에 디지털 데이터 모델로 표현하여 똑같이 복제하고 실시간으로 서로 반응할 수 있도록 한 것

더보기

디지털 트윈 [digital twin]


89. 웹사이트(website), 하이퍼링크(hyperlink), 데이터(data), 정보 자원을 자동화된 방법으로 수집, 분류, 저장하는 것

더보기

크롤링 [crawling]


90.  ‘해킹(Hacking)’과 ‘마라톤(Marathon)’의 합성어. 마라톤처럼 일정한 시간과 장소에서 프로그램을 해킹하거나 개발하는 행사

더보기

해커톤 [Hackathon]


91. 하이브리드 컴퓨팅이란 기존의 컴퓨터(호스트 기반 시스템)와 이종적인 기기의 결합을 통해 새로운 연산 능력이 강화된 컴퓨터를 만들어내거나 그에 관련된 기술

더보기

하이브리드 컴퓨팅 [Hybrid Computing] 


92. 인터넷에서 각종 정보를 암호화하는 데 쓰이는 오픈소스 암호화 라이브러리인 오픈SSL(OpenSSL)에서 발견된 심각한 보안 결함

더보기

하트블리드 [Heartbleed]


93. 추천이라는 뜻으로 빅데이터 분석을 통해 개인 맞춤 정보를 제공하는 행위

더보기

큐레이션 [Curation]


94. 사람이 인지하지 못한 상태에서 일상생활 환경에 센서, 컴퓨터, 네트워크 장비를 보이지 않게 내장해 각종 서비스를 제공하는 기술

더보기

캄테크 [Calmtech]


95. 사람과 컴퓨터를 구별하기 위한 ‘자동 계정 생성 방지 기술

더보기

캡차 [CAPTCHA; Completely Automated Public Turing test to tell Computers and Humans Apart] 


96. 공격 대상이 방문할 가능성이 가장 높거나 가장 많이 쓰는 웹사이트를 감염시킨 후 잠복하면서 피해자 컴퓨터(PC)에 악성코드를 추가로 설치하는 공격이다. 사자가 먹이를 습격하기 위해 물웅덩이에 매복하고 있는 형상을 빗댄 것으로 표적 공격이라고도 한다. (이미 기출에서 출제)

더보기

워터링 홀 [Watering Hole]


97. 인터넷상에서 음성이나 영상, 애니메이션 등을 실시간으로 재생하는 기법

더보기

스트리밍 [Streaming]


98. 그다지 중요하지 않은 정보(데이터)가 인터넷에 지나치게 많이 퍼진 상태를 일컫는 말.

더보기

데이터 스모그 [data smog] 


99. 테슬라 창업자인 일론 머스크가 세운 오픈에이아이(Open AI)가 2022년 11월 30일 공개한 대화 전문 인공지능 챗봇

더보기

챗GPT[ChatGpt]


100. 텍스트 데이터에서 가치와 의미가 있는 정보를 찾아내는 기법.많은 정보들이 온라인 뉴스 기사, 기술문서, 도서, 전자 우편(이메일) 메시지, 마이크로 블로그(micro-blog), 소셜 네트워킹 서비스(SNS) 및 웹페이지와 같은 텍스트 형식으로 저장된다.

더보기

텍스트 마이닝 [text mining] 

 

 

[정보처리기사/예상문제] - 2023 정보처리기사 실기 예상 문제 모음

[2023 정보처리기사 실기 예상 문제] IT용어 100문제 1탄

[2023 정보처리기사실기  예상 문제] IT용어 100문제 2탄

[2023 정보처리기사 실기 예상 문제] IT용어 16문제 3탄

[2023 정보처리기사 실기 예상 문제] 2020년 개정 이전 기출 IT용어 문제

★ C언어를 알아보기 전 기본 개념

1) 프로그래밍 언어

프로그래밍 언어는 컴퓨터의 시스템을 구동시키는 소프트웨어를 작성하기 위한 언어를 의미하며 크게 저급 언어(low-level language)와 고급 언어(high-level language)로 나뉜다.
저급, 고급 언어는 기계가 이해하기 쉬운가(저급 언어), 사람이 이해하기 쉬운가(고급 언어)를 상대적으로 나눈 개념이라고 할 수 있다.

 

2) 저급 언어

저급 언어는 컴퓨터가 이해하기 쉽게 작성된 프로그래밍 언어

대표적인 언어로는 기계어(machine language)와 어셈블리어(assembly language) 등이 있다.
이 언어는 실행 속도가 매우 빠르지만, 사람이 배우기에는 매우 어려워 프로그램의 유지보수가 힘들다.

 

3) 고급 언어는 컴퓨터보다는 사람이 알기 쉽도록 작성된 프로그래밍 언어
고급 언어는 컴파일러나 인터프리터에 의해 기계가 이해 할 수 있는 언어로 번역되어 실행 되므로 저급 언어보다 상대적으로 실행 속도가 느리다. 대신 저급 언어에 비해 가독성이 높고 다루기가 쉽다.

대표적인 예시 : 자바, 파이썬 등


1. C언어의 뜻

C언어는 현재 사용하고 있는 거의 모든 컴퓨터 시스템에서 사용할 수 있는 프로그래밍 언어

C언어는 저급 언어와 고급 언어의 특징을 모두 가지고 있는 절차 지향 프로그래밍 언어(procedure-oriented programming language)이다.

 

▶절차 지향 언어(Procedural Programming)

순차적으로 처리되고 프로그램 전체가 유기적으로 연결되도록 만드는 방법이며 대표적인 예로 C언어가 있다. 컴퓨터의 처리구조와 유사해 실행 속도가 빠른 장점이 있지만 실행 순서가 정해져 있으므로 코드의 순서가 바뀌면 동일한 결과를 보장하기 어려워 유지보수가 어렵다. (c언어도 절차 지향 언어이긴 하나 c언어는 코드가 복잡하지 않아 상대적으로 유지보수가 쉽다고 한다)

(프로그램 전체가 유기적으로 연결돼있으므로 일부분이 고장이 나도 전체를 수리해야 한다(매우 비효율적이다)

절차지향과 비슷한 예로는 자동차 제조가 있다. 자동차는 엔진, 차제, 핸들, 의자, 바퀴 순으로 차례대로 만들어져야 하고 순서도 틀리면 안된다고 한다.

이와 대조되는 개념으로는 객체 지향 언어가 있다. (대표적으로 자바)

 


2. C언어의 탄생 배경

C언어 이전에 유닉스 운영체제는 어셈블리어라는 저급 언어를 사용했는데 어셈블리어는 특정 하드웨어에 종속적인 언어여서, 이 언어로 작성된 프로그램은 다른 하드웨어로 이식할 수 없어 하나의 기능을 하는 프로그램을 CPU의 종류만큼 여러 번 작성해야만 했다. 따라서 이식성도 좋고 어셈블리어보다 쉬운 언어가 필요해졌고, 그래서 개발된 언어가 바로 C언어이다.


3. C언어의 컴파일 과정

① 소스 파일(source file) 작성

C언어를 사용하여 문법에 맞게 논리적으로 작성된 프로그램을 원시 파일 또는 소스 파일이라고 한다.

C언어를 통해 작성된 소스 파일의 확장자는 .c가 된다.

 

②선행처리기(preprocessor)에 의한 선행처리

선행처리란 소스 파일 중에서도 선행처리 문자(#)로 시작하는 선행처리 지시문의 처리 작업을 의미한다.

선행처리기는 코드를 생성하는 것이 아닌, 컴파일하기 전 컴파일러가 작업하기 좋도록 소스를 재구성해주는 역할만 한다.

출처는 아래 참고

 

③ 컴파일러(compiler) 에 의한 컴파일

컴퓨터는 0과 1로 이루어진 이진수로 작성된 기계어만 이해할 수 있는데 소스 파일은 이해할 수 없으므로 소스 파일을 컴퓨터가 알아볼 수 있는 기계어로 변환시키는 작업을 컴파일이라고 한다. 

컴파일이 끝나 기계어로 변환된 파일을 오브젝트 파일이라고 한다. 

 

④ 링커(linker)에 의한 링크

컴파일러에 의해 생성된 오브젝트 파일은 운영체제와의 인터페이스를 담당하는 시동코드를 가지고 있지 않고 또한 대부분의 C 프로그램에서 사용하는 C 표준 라이브러리 파일도 포함되어 있지 않다.

이때 하나 이상의 오브젝트 파일과 라이브러리 파일, 시동 코드 등을 합쳐 하나의 파일로 만드는 작업을 링크라고 한다.

 

링크가 끝나면 하나의 새로운 실행 파일이나 라이브러리 파일이 생성된다.

⑤실행 파일(executable file)의 생성

소스 파일은 선행처리기, 컴파일러 그리고 링커에 의해 위와 같은 과정을 거쳐 실행 파일로 변환 된다.

이렇게 생성된 실행파일의 확장자는 .exe가 된다.

출처는 아래 참고


출처 : 코딩의 시작, TCP School


4. C 표준 라이브러리

① 라이브러리(library)

라이브러리란 다른 프로그램의 구성 요소로 사용하기 위해 미리 만들어 둔 프로그램 조각이다. 즉, 자주 사용하는 기능을 모듈·패키지로 만들어 둔 것이다. 한 번 만들어 놓으면 여러 프로그램에서 재사용할 수 있고, 다른 사람과 공유할 수도 있다.
② 표준 라이브러리(standard library)

대다수 프로그래밍 언어는 프로그램을 만들 때 공통적으로 필요한 기능을 미리 만들어 라이브러리로 제공한다. 프로그래밍 언어가 공식적으로 제공하는 라이브러리를 표준 라이브러리라고 한다. 표준 라이브러리는 프로그래밍에 필요한 가장 중요한 기능을 제공하며, 신뢰성도 다른 라이브러리에 비해 매우 높다.

출처  : 11장 다양한 작업을 돕는 라이브러리 | 연오의 파이썬 프로그래밍 입문서 (bakyeono.net)

 

③ C 표준 라이브러리

C언어를 위한 표준 라이브러리이다. C 표준 라이브러리의 API는 많은 헤더 파일들에 정의되어 있다. 각 헤더 파일은 하나 이상의 함수 정의와 데이터 타입 정의 그리고 매크로들을 포함한다.

C 표준 라이브러리 안에 헤더파일도 들어있는데 그 중에 대표적인 예가 <stdio.h>이고 표준 라이브러리 안에 있는 이 헤더파일을 사용함으로써 손쉽게 그 헤더파일안에 있는 함수를 쓸 수 있게 되는 것이다.

출처 : C 표준 라이브러리 - 위키백과, 우리 모두의 백과사전 (wikipedia.org)

출처는 아래 참고

사진 출처 : C언어 이론 11. 표준 라이브러리(정의~문자열 처리 함수) (tistory.com)

▶API

응용 프로그램 프로그래밍 인터페이스)는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스라고 한다.

 

도통 무슨 말인지 감이 안오는데 이 개념을 이해하기 위해서 우선 UI(User Interface) 개념을 생각해보도록 하자.

UI는 말 그대로 컴퓨터와 사람이 상호작용할 수 있도록 도와주는 매개체인데 쉽게 생각해서 그냥 사용자가 PC나 휴대폰을 볼 때 보게되는 화면을 UI라고 생각할 수 있다.

UI가 사람과 컴퓨터를 연결한다면 API는 프로그램과 다른 프로그램을 연결해주는 매개체라고 생각하면 된다. 

먼저 UI를 먼저 생각해보자. 스마트폰 화면에는 사람이 이용하기 편하도록 버튼이 있다. 만약 버튼이 없으면 어떻게 될까..

사용자는 스마트폰과 상호작용할 수 있는 방법을 몰라 헤매게 된다. 이런 헤매는 사용자를 도와주는 것이 바로 UI이다.

같은 방식으로 API도 이해해보자. 

지도를 이용한 맛집찾기 프로그램을 만들고자 한다고 생각해보자. 

일반인들은 이런 지도 기능들을 제공할만한 기반이 되는 데이터도 없고 관련 프로그램도 없다.

그리고 일반인들 입장에서는 그런 지도 데이터를 공개해도 여러 문제점 때문에 그 지도데이터를 사용하기 어려울 것이다. 

그래서 이 지도 데이터를 일종에 스마트폰의 버튼처럼 그 지도 데이터를 접근하기 쉽게 만들어 사용자들에게 공개한 것이 바로 지도API이다. (어떻게 보면 오픈 소스랑 비슷한 느낌이라고 볼 수 있다)

 

출처 설명이 대박이니 무조건 한번 보시는 것을 추천드립니다. 

출처 : API 란?. 저도 API가 무엇인지 자세히 알지 못하였기 때문에 검색을 하며 스스로… | by 초보개발자 | Medium

 

▶헤더 파일

헤더파일은 메뉴판이다. 대표적인 헤더파일로 stdio.h가 있는데 이 헤더파일을 사용함으로써 헤더파일이라는 메뉴판에 적혀있는 메뉴, 즉 여러가지 함수를 사용할 수 있었던 것이다. 

 

간단한 프로그램을 작성해보자. 

출처는 아래 참고

더하기 기능을 사용하기 위해서 sum 이라는 함수를 만들어낸 것인데 실제로 프로그램을 만들 때는 함수를 많이 만들어야 하기 때문에 이렇게 정리를 하게 되면 뭐가 뭔지 눈에 들어오지도 않고 가독성이 떨어질 것이다. 

그래서 파일을 분리한다.

head.h라는 헤더파일에는 함수이름만 적고 함수 기능은 또 다른 소스파일을 만들어서 거기에 저장한다.

그리고 마지막으로 main 소스파일에는 #include "head.h"라고 서서 헤더파일을 불러온다.(예시로 설명하면 "head.h"를 선언해줌으로써 sum함수를 main 소스파일에서 사용할 수 있게 되었다.)

 

이런식으로 만들게 되면 실제 프로그램을 작동하도록 만드는 사람은 새로 기능을 추가할 때 헤더파일만 불러오면 되며 여러 사람이 분업을 해서 만들기 좋아졌다.

출처는 아래 참고

내용 출처, 사진출처 : [C언어]18. 헤더파일이란 무엇인가 ( 헤더파일을 만드는 법 ) (tistory.com)

 

▶#include에서 #의 의미

#은 컴파일러에게 명령을 하는 키워드 전처리기라고 한다.

#include는 ~을 포함해라라는 의미이다. 

출처 : [C언어]19.#include 가 어떻게 작동하는가. (#include , #의 의미 ) (tistory.com)

+ Recent posts