1월11일 시험 (관리적 보안 구축/운영) 및 프로그래밍 (교육 37일차)

SW·2023년 1월 11일

미션20230111-1> 아래 조건에 맞는 프로그래밍 환경을 설치하시오.
우리반 게시판을 참고한다.

1. 개요
화이트 해커가 되기 위해서는 프로그래밍 언어는 필수이고 그중에서도 C, C++, Python 언어는 필수이므로 윈도우에서 C, C++, Python 언어를 제작하기 위한
개발 툴을 설치한다.

2. 용어 설명
Visual Studio: MS사에서 만든 상용 개발 툴
Community 2022버전: 개인이 무료로 다운로드 받아서 사용
Visual Studio Code: MS사에서 만든 무료 편집기로 다양한 언어(C, Python, PHP, HTML ...) 와 조합해서 개발하는 편집기

o C/C++ 프로그래밍 언어
Visual Studio Community 2022 버전 설치하기

참고: https://cafe.naver.com/linuxmasternet/1698









o 파이썬 프로그래밍 언어
윈도우용 파이썬 설치하기

-설치 버전은 예전 버전으로 되어 있으므로 최신버전으로 받아서 설치한다.

https://cafe.naver.com/linuxmasternet/1232

VSCode 설치하기

-설치 버전은 예전 버전으로 되어 있으므로 최신버전으로 받아서 설치하고 파이썬과 연동한다.​

https://cafe.naver.com/linuxmasternet/856

미션20230111-2> 리눅스마스터 기출문제 풀기
우리반 게시판을 참고한다.

미션20230111-3> 이전 내용 복습하기
우리반 게시판을 참고한다.

솔루션
-프로젝트1
-프로젝트2
:
:

실습> 코딩 사이트 소개

화이트 해커가 되기 위한 코딩 사이트

https://w3schools.com
http://www.tcpschool.com/
https://dojang.io/
https://wikidocs.net/book/1
https://modoocode.com/187
https://modoocode.com/130

실습> vi에서 자동 실행환경 구성하기

https://linuxmaster.net/vi에서자동실행환경구성하기.txt
https://cafe.naver.com/linuxmasternet/1968

[root@localhost ~]# yum -y install gcc tags make gdb gcc-c++ java-1.8.0-openjdk java-1.8.0-openjdk-devel vim
yum -y install gcc tags make gdb gcc-c++ java-1.8.0-openjdk java-1.8.0-openjdk-devel vim centos-release-scl yum -y install rh-python38
[root@localhost ~]# alias vi=vim
[root@localhost ~]# vi .bashrc
alias vi=vim <-- 추가

[root@localhost ~]# vi /etc/vimrc
:
:(생략)
" 아래 설정은 기본 세팅값이다.
set nu " 번호
set bg=dark " 백그라운드
set ai " 자동 들여쓰기
set ci " C언어 자동 들여쓰기
set sw=4 " 들여쓰기, 내어쓰기 4칸
set ts=4 " 탭크기 4칸
set expandtab " 탭을 공백으로 변경
set cursorline " 커서라인 출력
set fileencodings=utf8,euckr
set tags=./tags,../tags,../../tags,../../../tags,/usr/include/tags

" ##### 단축키 설정 #####
" : 엔터키
" % : 현재 문서 (절대 경로)
" %:t : 현재 문서 (상대 경로)
" %< : 현재 문서에서 확장자를 버린 이름 ex) hello.c -> hello
" %:t:r : 현재 문서에서 확장자를 버린 이름 ex) hello.c -> hello
" F1 : 도움말(이미 정의되어 있다)
" F2 : 쉘스크립트 실행
" F3 : 파이썬 실행
" F4 : C 실행
" F5 : C++ 실행
" F6 : Java 실행
"
" 쉘스크립트 실행
" chmod 755 파일명; ./파일명
"
" 파이썬 실행
" python3 파일명
" chmod 755 파일명; ./파일명
"
" C언어 컴파일
" 소스코드 -> 실행파일(바이너리)
" gcc 형식 : gcc 소스파일 -o 실행파일; ./실행파일
"
" C++ 컴파일
" 소스코드 -> 실행파일(바이너리)
" g++ 형식 : g++ 소스파일 -o 실행파일; ./실행파일
"
" Java 컴파일
" 소스코드 -> 클래스파일(바이너리)
" Java 형식: javac 소스파일; java 클래스파일
"
"
" 단축키 지정 형식
" map <function키> :명령어
"
"
" 멀티창 생성
"
" :20vs.: 멀티창 생성
" Ctrl + w + w: 멀티창 이동 키
" Shift + p: 파일을 오른쪽에 오픈한다.
" 소스코드에 해당하는 단축키를 눌러서 실행시킨다.

map :w:!clear;./%:t
map :w:!clear;python3 %:t
map :w:!clear;gcc -Wall %:t -o ./%:t:r:!./%:t:r
map :w:!clear;g++ -Wall %:t -o ./%:t:r:!./%:t:r
map :w:!clear;javac %:t:!java %:t:r

[root@localhost ~]# vi
:20vs .

Ctrl + w + w

#include <stdio.h>

int main()
{
printf("Hello C!\n");
return 0;
}

:w hello.c

F4를 눌러서 컴파일하고 실행한다.

Ctrl + w + w 로 이동하면 hello.c 파일이 생긴다.

:n 파일명.c
:new 파일명.c

실습> Visual C++로 설정하기

https://cafe.naver.com/linuxmasternet/941

실습> 윈도우 디펜더에서 exe 폴더 제외하기

https://cafe.naver.com/linuxmasternet/981

실습> 하나의 프로젝트에서 main()함수 2개 사용하기

하나의 프로젝트에는 1개의 main()함수만 존재한다.

1. 주석처리
-이전 소스를 주석 처리한다.

2. 빌드 제외 (추천)
https://cafe.naver.com/linuxmasternet/982

실습> C언어 이스케이프 문자

주로 printf() 함수에서 사용됨.

백 슬래시() 뒤에 하나의 문자를 조합하여 사용 하는 문자를 이스케이프 시퀀스라고 함
-일반적으로 아스키코드(ASCII) 문자 중 제어 문자를 표현 하기 위해 사용 함
-백 슬래시() 뒤의 문자와 함께 두 문자를 하나의 단일 문자로 취급

ESCAPE 문자 기능
‘\n’ New Line(새로운 줄로 이동)
‘\r’ Carriage Return(줄의 처음으로 이동)
‘\b’ Back Space(한 문자 왼쪽으로 이동)
‘\t’ Tab(탭 크기만큼 이동)
‘\a’ Alarm(벨 소리 냄)
‘\’ \ 문자를 화면에 출력

실습> 아래 소스 파일을 생성하고 컴파일한 후 실행하시오.

-- test2.c --
#include <stdio.h>

int main()
{
printf("Welcome To C Class~!!\r");
printf("Very Easy \n");
printf("Hello B\b");
printf("C\n");
printf("Hello\tC\n");
printf("Hi\tC\n");
_getch();

return 0;

}
-- test2.c --

-- test3.c --
#include <stdio.h>

int main()
{
int year = 2023;

printf("오늘은 %d년 입니다. \n", year);
_getch();

return 0;

}
-- test3.c --

C언어에서는 문자는 작은 따옴표를 사용한다.
ex) 'A' , 'Z'

C언어에서는 문자가 2개 이상 모여있으면 문자열이라고 한다.
문자열은 큰 따옴표를 사용한다.
ex) "Hello", "안녕하세요", "A"

실습> 아래 소스 코드를 작성해서 실행결과를 확인하시오.

파일명 : test4.c

-- test4.c --
#include <stdio.h>
int main()
{
printf("10진수출력 : %d %d %d\n",180 , 0264 , 0xb4);
printf("8진수출력 : %o %o %o\n",180 , 0264 , 0xb4);
printf("16진수출력 : %x %x %x\n",180 , 0264 , 0xb4);
printf("16진수출력 : %X %X %X\n",180 , 0264 , 0xb4);
printf("단일문자출력: %c \n",'A');
//printf("단일문자출력: %s \n",'A'); 다음 페이지
printf("문자열출력 : %s \n","Apple");
printf("문자열출력 : %s \n","Apple");
printf("문자열출력 : %c \n","Apple");
printf("원주율은? %f \n",3.141592);
printf("원주율은? %d \n",3.141592);
printf("문자%c의ASCII 코드값은%d 이다.\n", 'a', 'a');
printf("ASCII 코드값이%d인문자는%c 이다.\n", 98, 98);
_getch();

return 0;

}
-- test4.c --

실습> 아래 출력 결과를 서식 문자로 바꾸어서 출력하시오.

파일명 : test5.c

========== 출력 결과 ==========
이름 : 홍길동
나이 : 20
Tel : 010-1234-1234
키 : 178.5
몸무게 : 75
혈액형 : O

-- test5.c --
#include <stdio.h>

int main()
{
printf("이름 : %s\n", "홍길동");
printf("나이 : %d\n", 20);
printf("Tel : %s\n", "010-1234-1234");
printf("키 : %3.1f\n", 178.5);
printf("몸무게 : %d\n", 75);
printf("혈액형 : %c\n", 'O');
_getch();

return 0;

}

-- test5.c --

profile
정보보안 전문가

0개의 댓글