1. 프로그래밍 방식 / 패러다임
프로그래밍 방식 종류
| 구분 | 핵심 | 특징 | 자주 나오는 포인트 |
|---|---|---|---|
| 구조적 프로그래밍 | 순차/선택/반복 | Top-Down, 모듈화, 유지보수 쉬움 | GOTO 사용 X |
| 절차적 프로그래밍 | 순서 중심 | 절차를 순서대로 실행 | C 언어 느낌 |
| 객체지향 프로그래밍 | 객체 중심 | 캡슐화, 상속, 다형성, 추상화 | 클래스/객체/메서드 |
| 이벤트 중심 프로그래밍 | 이벤트 발생 중심 | 클릭, 입력, 선택에 반응 | GUI 프로그램 |
| 함수형 프로그래밍 | 함수 중심 | 부작용 최소화, 함수 조합 | 람다, 순수 함수 |
외우기
구조적 = 순차/선택/반복
객체지향 = 객체 중심
이벤트 중심 = 클릭하면 실행
함수형 = 함수 중심
객체지향 구성 요소
| 개념 | 의미 |
|---|---|
| 클래스 | 객체를 만들기 위한 설계도 |
| 객체 | 실제로 만들어진 대상 |
| 속성 | 객체가 가진 데이터 |
| 메서드 | 객체가 수행하는 기능 |
| 메시지 | 객체에게 작업을 요청하는 것 |
객체지향 특징
| 특징 | 의미 |
|---|---|
| 캡슐화 | 데이터와 기능을 묶고 숨김 |
| 정보 은닉 | 외부에서 내부 데이터 접근 제한 |
| 상속 | 부모 기능을 자식이 물려받음 |
| 다형성 | 같은 이름이 상황에 따라 다르게 동작 |
| 추상화 | 중요한 특징만 뽑아 표현 |
외우기
객체 = 속성 + 메서드
클래스 = 설계도
캡슐화 = 정보 은닉
2. 변수명 표기법
표기법 종류
| 표기법 | 특징 | 예시 |
|---|---|---|
| 헝가리안 표기법 | 변수명 앞에 자료형/의미 표시 | strName, intAge |
| 카멜 케이스 | 첫 단어 소문자, 다음 단어부터 대문자 | studentName |
| 파스칼 케이스 | 모든 단어 첫 글자 대문자 | StudentName |
| 스네이크 케이스 | 단어 사이를 _로 연결 | student_name |
| 케밥 케이스 | 단어 사이를 -로 연결 | student-name |
| 상수 표기법 | 모두 대문자 + _ | MAX_VALUE |
시험 포인트
| 나오면 | 답 |
|---|---|
| 변수명에 자료형 표시 | 헝가리안 표기법 |
studentName | 카멜 케이스 |
StudentName | 파스칼 케이스 |
student_name | 스네이크 케이스 |
student-name | 케밥 케이스 |
MAX_VALUE | 상수 표기법 |
외우기
헝가리안 = 자료형
카멜 = 중간 대문자
파스칼 = 처음도 대문자
스네이크 = 밑줄
케밥 = 하이픈
상수 = 대문자
3. 프로그래밍 언어 / 스크립트 언어
언어 실행 방식
| 구분 | 의미 | 예시 |
|---|---|---|
| 컴파일 언어 | 전체를 번역 후 실행 | C, C++, Java |
| 인터프리터 언어 | 한 줄씩 해석하며 실행 | Python, JavaScript |
| 스크립트 언어 | 해석해서 바로 실행하는 성격 강함 | JavaScript, PHP, ASP, JSP |
클라이언트용 / 서버용 스크립트
| 구분 | 실행 위치 | 언어 |
|---|---|---|
| 클라이언트용 | 사용자 브라우저 | JavaScript, VBScript |
| 서버용 | 서버 | PHP, JSP, ASP, Python |
외우기
클라이언트 = 브라우저
서버 = 서버에서 처리 후 결과 전달
4. 자료형 / Python 자료형
Python 자료형 분류
| 분류 | 자료형 | 핵심 |
|---|---|---|
| 숫자형 | int, float | 숫자 |
| 문자열 | str | 문자들의 순서 |
| 시퀀스형 | list, tuple, range, str | 순서 있음 |
| 매핑형 | dict | key-value |
| 집합형 | set | 중복 X, 순서 X |
| 논리형 | bool | True/False |
시퀀스 자료형
| 자료형 | 수정 가능 | 특징 |
|---|---|---|
| list | O | 여러 값 저장, 수정 가능 |
| tuple | X | 여러 값 저장, 수정 불가 |
| str | X | 문자열 |
| range | X | 연속된 숫자 범위 |
외우기
시퀀스 = 순서 있음
list만 대표적으로 수정 가능
5. 예외 처리
예외 처리 구문
| 구문 | 의미 |
|---|---|
| try | 오류가 날 수 있는 코드 |
| catch | 오류가 났을 때 처리 |
| finally | 오류 여부와 관계없이 실행 |
| throw | 예외를 직접 발생 |
| throws | 예외 발생 가능성을 선언 |
실행 순서
| 상황 | 순서 |
|---|---|
| 오류 없음 | try → finally |
| 오류 있음 | try → catch → finally |
외우기
try = 시도
catch = 잡기
finally = 무조건
6. 자료구조 전체
자료구조 분류
| 구분 | 자료구조 | 특징 |
|---|---|---|
| 선형 구조 | 리스트, 스택, 큐, 데크 | 한 줄 구조 |
| 비선형 구조 | 트리, 그래프 | 계층/연결 구조 |
선형 자료구조
| 자료구조 | 핵심 | 특징 |
|---|---|---|
| 리스트 | 순서 저장 | 일반적인 목록 |
| 스택 | LIFO | 후입선출 |
| 큐 | FIFO | 선입선출 |
| 데크 | 양쪽 가능 | 양쪽 끝 삽입/삭제 |
비선형 자료구조
| 자료구조 | 핵심 |
|---|---|
| 트리 | 부모-자식 계층 구조 |
| 그래프 | 정점과 간선 구조 |
| 힙 | 완전 이진 트리 기반 |
| 이진 트리 | 자식이 최대 2개 |
트리 순회
| 순회 | 순서 |
|---|---|
| 전위 순회 | 루트 → 왼쪽 → 오른쪽 |
| 중위 순회 | 왼쪽 → 루트 → 오른쪽 |
| 후위 순회 | 왼쪽 → 오른쪽 → 루트 |
외우기
전위 = 루트 먼저
중위 = 루트 가운데
후위 = 루트 마지막
7. 수식 표기 / 정렬 알고리즘
수식 표기법
| 구분 | 위치 | 예시 |
|---|---|---|
| 중위식 | 연산자가 가운데 | A+B |
| 전위식 | 연산자가 앞 | +AB |
| 후위식 | 연산자가 뒤 | AB+ |
외우기
전위 = 앞
중위 = 가운데
후위 = 뒤
정렬 알고리즘
| 정렬 | 핵심 | 자주 나오는 말 |
|---|---|---|
| 선택 정렬 | 가장 작은 것 선택 | 최솟값 선택 |
| 버블 정렬 | 옆끼리 비교 | 큰 값이 뒤로 이동 |
| 삽입 정렬 | 알맞은 위치에 삽입 | 끼워 넣기 |
| 퀵 정렬 | 피벗 기준 분할 | 분할 정복, 피벗 |
| 힙 정렬 | 힙 이용 | 최대 힙, 최소 힙 |
외우기
퀵 = 피벗
힙 = 완전 이진 트리
버블 = 옆 비교
삽입 = 끼워 넣기
선택 = 골라서 앞으로
8. 데이터베이스 전체
DBMS 기능
| 기능 | 의미 |
|---|---|
| 정의 기능 | DB 구조 정의 |
| 조작 기능 | 검색/삽입/수정/삭제 |
| 제어 기능 | 보안/권한/무결성/회복 |
DB 설계 단계
| 순서 | 단계 | 핵심 |
|---|---|---|
| 1 | 요구 조건 분석 | 원하는 것 파악 |
| 2 | 개념적 설계 | 현실 세계 표현 |
| 3 | 논리적 설계 | 테이블 구조 설계 |
| 4 | 물리적 설계 | 저장 방법/성능 설계 |
| 5 | 구현 | 실제 DB 생성 |
관계형 DB 용어
| 용어 | 의미 |
|---|---|
| 릴레이션 | 테이블 |
| 튜플 | 행 |
| 속성 | 열 |
| 도메인 | 속성이 가질 수 있는 값의 범위 |
| 차수 | 속성 개수 |
| 기수 | 튜플 개수 |
키 종류
| 키 | 의미 |
|---|---|
| 슈퍼키 | 유일성 O, 최소성 X 가능 |
| 후보키 | 유일성 O, 최소성 O |
| 기본키 | 후보키 중 대표로 선택 |
| 대체키 | 기본키로 선택되지 않은 후보키 |
| 외래키 | 다른 테이블의 기본키를 참조 |
외우기
슈퍼키 = 유일하면 됨
후보키 = 유일 + 최소
기본키 = 대표 후보키
대체키 = 남은 후보키
외래키 = 다른 표 참조
DB 모델
| 모델 | 구조 |
|---|---|
| 계층형 | 트리 |
| 망형 | 그래프 |
| 관계형 | 테이블 |
| 객체지향형 | 객체 |
View
| 개념 | 의미 |
|---|---|
| View | 가상 테이블 |
| 장점 | 보안, 편리성 |
| 단점 | 갱신 제한 가능 |
9. 네트워크 전체
OSI 7계층
| 계층 | 이름 | 핵심 |
|---|---|---|
| 7 | 응용 | FTP, SMTP, HTTP |
| 6 | 표현 | 암호화, 압축, 코드 변환 |
| 5 | 세션 | 연결 유지, 대화 제어 |
| 4 | 전송 | TCP, UDP |
| 3 | 네트워크 | IP, 라우팅 |
| 2 | 데이터링크 | MAC, 프레임 |
| 1 | 물리 | 비트, 케이블 |
TCP / UDP
| 구분 | TCP | UDP |
|---|---|---|
| 연결 | 연결형 | 비연결형 |
| 신뢰성 | 높음 | 낮음 |
| 속도 | 느림 | 빠름 |
| 제어 | 오류/흐름/혼잡/순서 | 적음 |
IPv6 주소 방식
| 방식 | 의미 |
|---|---|
| Unicast | 1대1 |
| Multicast | 특정 그룹 |
| Anycast | 가까운 하나 |
| Broadcast | IPv6에는 없음 |
전송 관련 개념
| 개념 | 의미 |
|---|---|
| 캡슐화 | 헤더/트레일러 붙임 |
| 흐름 제어 | 송수신 속도 조절 |
| 오류 제어 | 오류 검출/수정 |
| 혼잡 제어 | 네트워크 과부하 조절 |
10. 운영체제 전체
OS 기본
| 개념 | 의미 |
|---|---|
| 운영체제 | 사용자와 하드웨어 사이 중개 |
| 프로세스 | 실행 중인 프로그램 |
| 스케줄링 | CPU 배정 |
| 로더 | 프로그램을 메모리에 올림 |
| 쉘 | 명령어 해석기 |
| 커널 | OS의 핵심 |
로더 기능
| 기능 | 의미 |
|---|---|
| 할당 | 메모리 공간 확보 |
| 연결 | 필요한 코드 연결 |
| 재배치 | 실제 주소에 맞게 변경 |
| 적재 | 메모리에 올림 |
페이지 교체 알고리즘
| 기법 | 의미 |
|---|---|
| FIFO | 먼저 들어온 것 교체 |
| LRU | 가장 오래 안 쓴 것 교체 |
| LFU | 사용 횟수 가장 적은 것 교체 |
| OPT | 앞으로 가장 늦게 쓸 것 교체 |
| NUR | 최근 사용하지 않은 것 교체 |
DOS / UNIX
| 구분 | 내용 |
|---|---|
| DOS 내부 명령어 | DIR, COPY, DEL, CD |
| DOS 외부 명령어 | FORMAT, CHKDSK, BACKUP, RESTORE |
| UNIX 쉘 | Bourne, C, Korn |
| UNIX 파일 | 일반, 디렉터리, 특수 |
11. 테스트 / 소프트웨어 공학
확인과 검증
| 구분 | 영어 | 의미 |
|---|---|---|
| 확인 | Validation | 사용자 요구사항 만족? |
| 검증 | Verification | 명세서대로 만들었나? |
테스트 종류
| 구분 | 의미 | 기법 |
|---|---|---|
| 화이트박스 | 내부 구조 확인 | 기초 경로, 조건, 루프 |
| 블랙박스 | 입력/출력 확인 | 동치 분할, 경계값, 원인-효과 그래프 |
알파 / 베타
| 구분 | 의미 |
|---|---|
| 알파 검사 | 개발자 환경에서 사용자 테스트 |
| 베타 검사 | 실제 사용자 환경에서 테스트 |
CI / CD
| 구분 | 의미 |
|---|---|
| CI | 자동 빌드 + 자동 테스트 |
| CD | 자동 배포 |
최종적으로 노션 페이지는 이렇게 나누면 됨
| 페이지 | 넣을 내용 |
|---|---|
| 1. 프로그래밍 방식 | 구조적, 절차적, 객체지향, 이벤트 중심, 함수형 |
| 2. 표기법 | 헝가리안, 카멜, 파스칼, 스네이크, 케밥, 상수 |
| 3. 언어/스크립트 | 컴파일, 인터프리터, 클라이언트/서버 스크립트 |
| 4. Python/자료형 | 시퀀스, list, tuple, str, range, dict, set |
| 5. 자료구조 | 선형/비선형, 스택, 큐, 데크, 트리, 그래프 |
| 6. 알고리즘 | 중위/전위/후위, 정렬, 통신회선, 간선 수 |
| 7. DB | DBMS 기능, 설계 단계, 관계형 용어, 키, View |
| 8. 네트워크 | OSI, TCP/UDP, IPv6, 캡슐화 |
| 9. 운영체제 | 프로세스, 스케줄링, 로더, 페이지 교체, DOS/UNIX |
| 10. 테스트/소공 | 확인/검증, 알파/베타, 화이트/블랙, CI/CD |
이렇게 해야 문제 하나가 바뀌어도 같은 파트에서 잡을 수 있음.