C/Java 자료형
- char(1), int(4), long(8), boolean(1, Java)
C언어의 구조체
- 자료의 종류가 다른 변수의 모임, struct를 이용해 정의
Python의 시퀀스 자료형
- 리스트: 필요에 따라 개수를 늘리거나 줄일 수 있음
- 튜플: 요소의 추가, 삭제, 변경은 불가능함
- range: 연속된 숫자 생성
변수명 작성 규칙
- 영문자, 숫자 _사용, 첫 글자 숫자 X, 특수문자 X, 공백 X, 대소문자 구분, 예약어 변수명 X
가비지 컬렉터
- 선언만하고 사용하지 않는 변수들이 점유한 메모리 공간을 강제로 제거
산술 연산자
- %, ++, —
비트 연산자
- &(and), ^(xor), |(or), ~(not), <<, >>
논리 연산자
- !, &&, ||
조건 연산자
- 조건에 따라 다른 수식 수행
연산자 우선순위
주요 서식 문자열
- %d, %c, %s
printf()
- 인수로 주어진 값을 화면에 출력
자바의 출력함수
- printf(), print(), println()
단순 if문
- 조건 1개
switch
- 조건에 따라 분기할 곳이 여러 곳인 경우 간단하게 처리할 수 있는 제어문
- break문 또는 switch문이 종료될 때까지 모든 문장이 실행
for문
- 초기값, 최종값, 증가값을 지정하는 수식을 이용해 정해진 횟수를 반복하는 제어문
while문
- 조건이 참인 동안 실행할 문장을 반복 수행하는 제어문
do~while문
- 조건이 참인동안 정해진 문장을 반복 수행
- 실행할 문장을 무조건 한 번은 실행
1차원 배열
- 일직선상의 개념으로 조합한 배열
2차원 배열
- 행과 열로 조합한 배열
배열 형태의 문자열 변수
- C언어에서는 큰따옴표로 묶인 글자는 글자수에 상관없이 문자열로 처리
- 배열에 문자열을 저장하면 문자열의 끝을 알리기 위한 널 문자가 문자열 끝에 삽입
포인터와 포인터 변수
- 선언 시, 간접 연산자*
- 포인터 변수에 주소를 저장하기 위해 & 사용
- *를 붙이면 해당 포인터 변수가 가리키는 곳의 값을 말함
포인터와 배열
- 포인터를 이용해 배열의 요소에 접근 가능
- 배열의 대표명만 지정하면 배열의 첫 번째 요소의 주소를 지정하는 것과 같다
- a[0] = *(a+0)
Python의 input() 함수
- 키보드로 입력받아 변수에 저장하는 함수, 입력되는 값은 문자열로 취급되어 저장
Python의 print()함수
- 인수로 주어진 값을 화면에 출력하는 함수
입력 값의 형변환
- input() 함수는 입력되는 값을 무조건 문자열로 저장하므로 숫자로 사용하기 위해서는 형변환을 해야 함
- a = int(input()) a, b = map(int, intput().split())
Python의 리스트(List)
- 선언할 때 크기를 적지 않고
- 다양한 자료형을 섞어서 저장 가능
- 리스트의 위치는 0부터 시작
Python의 딕셔너리
- 연관된 값을 묶어서 저장
- 딕셔너리에서는 사용자가 원하는 키를 직접 지정한 후 사용 a = dict ({이름:홍길동, 나이:25, ..})
Python의 Range
- 연속된 숫자 생성 a = list(range(5) , 0, 1, 2, 3, 4)
- b = list(range(4, 9), 4, 5, 6, 7, 8)
- c = list(range(1, 15, 3), 1, 4, 7, 10, 13))
Python의 슬라이스
- 문자열이나 리스트와 같은 순차형 객체에서 일부를 잘라서 반환하는 기능
Python의 for문
- range
- for i in range (1, 11)
- list
- for i in a
Python의 while문
- while i ≤ 10;
- i = i + 1
Python의 클래스
- 클래스 이름을 정하고 객체 생성을 위한 속성과 메서드를 정의한 후, 객체를 선언하면 된다
Python의 클래스 없는 메소드
- C언어의 사용자 정의 함수와 같이 클래스 없이 메서드만 단독으로 사용 가능
스크립트 언어의 종류
- 자바스크립트, PHP, 파이썬, 쉘 스크립트, Basic
쉘 스크립트에서 사용되는 제어문
- 선택형: if, case
- 반복형: for, while, until
라이브러리
- 표준 라이브러리: 프로그래밍 언어에 기본적으로 포함되어 있는 라이브러리
- 외부 라이브러리: 개발자들이 필요한 기능들을 만들어 인터넷 등에 공유해 놓은 것
C언어 stdlib.h
- 자료형 변환, 난수 발생, 메모리 할당에 사용되는 기능 제공
Unix의 특징
- 이식성, 호환성이 높고, 다중 사용자, 작업을 지원, 트리구조
Unix Kernel 기능
- 프로세스 관리
- 기억장치 관리
- 파일 시스템 관리
- 입, 출력관리
Unix - 쉘
- 사용자의 명령어를 인식하여 프로그램을 호출하고 명령을 수행하는 명령어 해석기
- 시스템과 사용자 간의 인터페이스를 담당
기억장치의 배치 전략
- 최초 적합(첫 번째 분할 영역), 최적 적합(단편화 최소), 최악적합(단편화 최대)
페이지 교체 알고리즘 - FIFO
- 가장 오래 있었던 페이지를 교체하는 기법
스레싱
- 프로세스 처리 시간보다 페이지 교체에 소요되는 시간이 더 많아지는 현상
프로세스 상태 및 상태 전이
- 프로세스의 상태: 제출(Submit), 접수(Hold), 준비(Ready), 실행(Run), 대기(Wait, 보류, 블록), 종료(Terminated, Exit)
- 프로세스 상태 전이: Dispatch, Wake-up, Spooling
스케줄링 - SJF
- 실행 시간이 가장 짧은 프로세스에게 먼저 CPU를 할당하는 기법
스케줄링 - HRN
UNIX 명령어
- fork: 새로운 프로세스 생성
- uname: 시스템 정보 표시
- wait: 상위 프로세스가 하위 프로세스 종료 등의 event를 기다림
- chmod: 파일의 보호 모드를 설정
- ls: 현재 디렉터리 내의 파일 목록을 확인함
- cat: 파일 내용 화면에 출력
- chown: 소유자 변경
IPv4
- 8bit 4 부분, 총 32비트로 구성
- A ~ E 클래스까지 총 5단계로 구성
IPv6
- 16bit 8 부분, 총 128비트로 구성
- 16진수로 표현, :(콜론)으로 구분
- 주소의 확장성, 융통성, 연동성이 뛰어나고, 품질 보장이 용이
- IPv6 주소 체계: 유니캐스트, 멀티캐스트, 애니캐스트
OSI 7계층 - 데이터 링크 계층
- 인접한 개방 시스템들 간에 신뢰성 있고 효율적인 정보 전송을 할 수 있도록 함
- 기능: 흐름 제어, 프레임 동기화, 오류 제어, 순서 제어 등
- 프로토콜: HDLC, LAPB, PPP, LLC
OSI 7계층 - 네트워크 계층
- 개방 시스템들 간의 네트워크 연결을 관리하고 데이터를 교환 및 중계
- 기능: 경로 설정, 트래픽 제어, 패킷 정보 전송
OSI 7계층 - 전송 계층
- 종단 시스템(end-to-end) 간에 투명한 데이터 전송을 가능하게 함
- 기능: 전송 연결 설정, 데이터 전송, 연결 해제 기능, 주소 설정, 다중화, 오류 제어, 흐름 제어
OSI 7계층 - 세션 계층
- 송, 수신 간의 관련성을 유지하고 대화 제어를 담당
- 대화의 생성, 관리, 종료를 위해 토큰을 사용함
- 기능: 대화 구성 및 동기 제어, 데이터 교환 관리 등
네트워크 관련 주요 장비
- 리피터: 원래의 신호 형태로 재생하여 다시 전송
- 브리지: LAN - LAN 연결, LAN 안에서의 컴퓨터 그룹을 연결
- 라우터: 데이터 전송의 최적 경로를 선택
- 스위치: LAN - LAN을 연결하여 훨씬 더 큰 LAN을 만드는 장치
- 브라우터: 브리지와 라우터의 기능을 모두 수행하는 장치로, 브리지 기능은 내부 네트워크를 분리하는 용도로 사용하고 라우터 기능은 외부 네트워크에 연결하는 용도로 사용
TCP/IP 프로토콜 - MQTT
- 발행 - 구독 기반의 메세징 프로토콜로, IoT 환경에서 자주 사용됩니다
TCP/IP 프로토콜 - TCP
- 신뢰성 있는 연결형 서비스를 제공
- 양방향 연결형 서비스를 제공
- 기능: 패킷의 다중화, 순서 제어, 오류 제어, 흐름 제어, 스트림 전송
TCP/IP 프로토콜 - UDP
- 비연결형 서비스를 제공
- 흐름 제어나 순서 제어가 없어 전송 속도가 빠르다
- 실시간 전송에 유리
TCP/IP 프로토콜 - ARP
- 호스트와 IP주소를 호스트와 연결된 네트워크 접속 장치의 물리적 주소(MAC Address)로 바꿈
CSMA/CD
- IEEE 802.3 LAN에서 사용되는 전송 매체 접속 제어 (MAC) 방식