-
소프트웨어 개발 방법론 · 테스트 · 자료구조 & 알고리즘 완전 정리기타 2026. 7. 11. 16:37
Part 1. 소프트웨어 개발 방법론
소프트웨어를 어떤 절차와 방식으로 개발할 것인가를 정의한 것이 개발 방법론이다.
프로젝트 규모, 요구사항 변화 빈도, 팀 구성에 따라 적합한 방법론이 달라진다.
1. 소프트웨어 생명주기 모델 (SDLC)
소프트웨어 개발의 전체 과정을 단계로 나눈 모델.
폭포수 모델 (Waterfall)
각 단계를 순차적으로 진행. 이전 단계로 돌아갈 수 없다는 전제.
요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수- 장점: 단계별 산출물 명확, 관리 용이
- 단점: 요구사항 변경 대응 어려움, 완성 전까지 결과물 확인 불가
- 적합: 요구사항이 명확하고 변경이 거의 없는 프로젝트
프로토타이핑 모델 (Prototyping)
핵심 기능의 시제품(프로토타입)을 먼저 만들어 사용자 피드백을 반영하며 개발.
요구사항 → 프로토타입 개발 → 사용자 평가 → 피드백 반영 → 반복- 장점: 요구사항 불명확할 때 유용, 사용자 만족도 높음
- 단점: 프로토타입을 버리는 비용 발생, 관리 어려움
나선형 모델 (Spiral)
위험 분석을 중심으로 점진적으로 개발. Boehm이 제안.
계획 수립 → 위험 분석 → 개발 및 검증 → 고객 평가 → (반복)- 장점: 위험 최소화, 대규모 프로젝트에 적합
- 단점: 위험 분석 전문가 필요, 관리 복잡
V 모델
폭포수 모델의 확장. 개발 단계와 테스트 단계를 1:1 대응시킨 모델.
요구사항 분석 ────────────────── 인수 테스트 설계 ──────────────── 시스템 테스트 상세 설계 ────── 통합 테스트 구현 ── 단위 테스트애자일 모델 (Agile)
고객 요구사항 변화에 유연하게 대응. 짧은 반복 주기(Sprint)로 동작하는 소프트웨어를 지속 전달.
- 장점: 변화 대응 빠름, 고객 참여 높음
- 단점: 문서화 부족, 대규모 프로젝트 적용 어려움
- 종류: 스크럼(Scrum), XP(eXtreme Programming), 칸반(Kanban)
2. 애자일 방법론 상세
스크럼 (Scrum)
팀이 자율적으로 기능하며 Sprint 단위로 반복 개발하는 프레임워크.
핵심 용어:
용어 설명 스프린트 (Sprint) 1~4주 단위의 반복 개발 주기 제품 백로그 (Product Backlog) 개발해야 할 기능 목록 전체 (우선순위 정렬) 스프린트 백로그 해당 스프린트에서 처리할 작업 목록 번다운 차트 남은 작업량을 시간 축으로 나타낸 그래프 데일리 스크럼 매일 15분 이내 진행 상황 공유 회의 스크럼 3가지 역할:
역할 설명 제품 책임자 (Product Owner) 제품 백로그 관리, 우선순위 결정, 비즈니스 가치 책임 스크럼 마스터 (Scrum Master) 스크럼 원칙·가치 지원, 장애 요소 제거, 팀 보호. 업무 강요 X 개발팀 (Development Team) 실제 개발 수행, 자율적으로 조직 스크럼 마스터 ≠ 프로젝트 매니저. 업무를 지시하는 게 아니라 팀이 스스로 움직이도록 지원하는 역할.
XP (eXtreme Programming)
5가지 핵심 가치를 기반으로 고품질 소프트웨어를 빠르게 전달.
암기: 피존의 용기는 단순하게 소통한다
가치 설명 피드백 (Feedback) 지속적인 테스트와 반복적 결함 수정 존중 (Respect) 팀원의 기여를 존중 용기 (Courage) 고객 요구사항 변화에 능동적 대처 단순성 (Simplicity) 불필요한 기능과 알고리즘 배제 소통 (Communication) 개발자·관리자·고객 간 원활한 소통 XP 주요 실천 방법:
실천법 설명 TDD (테스트 주도 개발) 테스트 코드를 먼저 작성 후 구현 페어 프로그래밍 두 명이 함께 한 컴퓨터로 개발 리팩토링 기능 변경 없이 코드 구조 개선 지속적 통합 (CI) 코드를 자주 통합해 충돌 최소화 소규모 릴리즈 작은 단위로 자주 배포
3. 소프트웨어 비용 산정 모형
구분 방법 설명 하향식 델파이 기법 전문가들의 경험적 판단으로 산정. 합의 도출 상향식 LOC, COCOMO, Man Month 세부 작업 단위부터 합산 LOC (Lines of Code):
예측치 = (낙관치 + 4×중간치 + 비관치) / 6COCOMO (Boehm 제안):
유형 규모 특징 Organic (조직형) 소규모 (5만 라인 이하) 소규모 팀, 익숙한 환경 Semi-detached (반분리형) 중간 규모 중간 복잡도 Embedded (내장형) 대규모 HW·SW 통합, 제약 많음 Man Month: 1명이 1개월 동안 할 수 있는 작업량 기준.
Brooks의 법칙: "지체되는 소프트웨어 개발 프로젝트에 인력을 추가하면 오히려 더 늦어진다."
4. 소프트웨어 품질 모델
CMMi 5단계
암기: 초관정정최
단계 이름 특징 1 초기 프로세스 없음, 혼돈 2 관리 기본 프로젝트 관리 3 정의 조직 전체 표준 프로세스 4 정량적 관리 정량적 측정으로 통제 5 최적화 지속적 프로세스 개선 ISO/IEC 25000 품질 특성 6가지
암기: 기신사효유이
특성 설명 기능성 요구 기능을 정확히 수행 신뢰성 일정 조건에서 기능 유지 사용성 사용자가 쉽게 사용 가능 효율성 자원 대비 성능 유지보수성 수정·개선 용이 이식성 다른 환경으로 이전 용이
5. 요구사항 분석
종류 설명 예시 기능적 요구사항 시스템이 무엇을 해야 하는가 로그인, 검색 기능 비기능적 요구사항 시스템이 어떻게 동작해야 하는가 응답시간 1초, 가용성 99.9% DFD 구성요소:
기호 이름 의미 원/타원 프로세스 자료 처리 과정 화살표 자료 흐름 데이터 이동 방향 직선(이중선) 자료 저장소 파일, DB 사각형 단말 외부 입출력 개체
6. 소프트웨어 재공학
재공학 과정 순서:
분석 → 구성 → 역공학 → 이식- 역공학 (Reverse Engineering): 완성된 SW를 분석해 설계 문서를 역으로 도출
- 리팩토링 (Refactoring): 기능 변경 없이 코드 구조·가독성 개선
Part 2. 소프트웨어 테스트
테스트는 소프트웨어의 결함을 발견하고 품질을 보증하는 과정이다.
테스트 기법의 종류와 특징 구분, V모델의 단계 대응, 커버리지 종류가 주로 출제된다.
7. 테스트의 기본 원칙
원칙 설명 결함 집중 80%의 결함이 20%의 모듈에서 발생 (파레토 법칙) 살충제 패러독스 같은 테스트를 반복하면 새로운 결함 발견 불가 → 테스트 케이스를 지속 개선 오류-부재의 궤변 결함을 모두 제거해도 요구사항 미충족 시 품질이 높다 할 수 없음 테스팅은 결함 없음을 증명 불가 결함이 있음만 증명 가능 완벽한 테스팅은 불가능 리스크 기반으로 우선순위 결정
8. 정적 분석 vs 동적 분석
구분 정적 분석 동적 분석 프로그램 실행 ❌ 실행 안 함 ✅ 실행함 대상 소스코드, 명세서, 설계서 실행 중 동작, 메모리, 스레드 종류 워크스루, 인스펙션, 코드 검사 화이트박스, 블랙박스 테스트 정적 분석 기법:
기법 설명 워크스루 명세서 배포 후 사전 검토, 비공식적, 작성자가 설명 인스펙션 작성자 제외 전문가들이 검토, 공식적, 엄격한 절차 기술 리뷰 정의된 계획·명세 준수 여부 검토 관리 리뷰 진행 상황 전반 검토, 통제 및 의사결정 워크스루 vs 인스펙션: 워크스루는 작성자가 설명하는 비공식 검토 / 인스펙션은 작성자 제외 전문가가 엄격하게 검토
9. 화이트박스 테스트
소스코드를 오픈한 상태에서 내부 로직 기반으로 테스트. 개발자 관점.
테스트 기법:
기법 설명 기초 경로 검사 논리적 복잡도를 측정해 실행 경로 수 결정 조건 검사 논리적 조건(True/False) 테스트 반복(루프) 검사 반복 구조에 초점 데이터 흐름 검사 변수 정의~사용 위치 추적 커버리지 (강 → 약):
커버리지 기준 설명 다중 조건 모든 조합 조건식의 모든 가능한 조합 100% 실행 조건/결정 분기 + 조건 결정 + 조건 커버리지 동시 만족 결정(분기) 모든 분기 각 분기의 True/False 최소 1번씩 구문(문장) 모든 문장 모든 명령문 최소 1번 실행 강도: 다중 조건 > 조건/결정 > 결정(분기) > 구문(문장)
10. 블랙박스 테스트
소스코드를 보지 않고 기능이 명세대로 동작하는지 테스트. 사용자/QA 관점. 기능 테스트라고도 함.
기법 설명 핵심 키워드 동치 분할 검사 입력값을 유효/무효 그룹으로 나눠 대표값으로 테스트 입력 자료 초점 경계값 분석 입력 조건의 경계값(최솟값, 최댓값, 경계±1)으로 테스트 경계에서 오류 많음 원인-효과 그래프 입력(원인)과 출력(효과) 관계를 그래프로 표현 후 케이스 도출 입출력 관계 분석 오류 예측 검사 과거 경험이나 직관으로 오류 발생 가능 부분 테스트 경험·감각 기반 비교 검사 여러 버전의 프로그램에 동일 데이터 입력해 결과 비교 여러 버전 비교 경계값 분석이 가장 자주 출제. 1~100 범위라면 0, 1, 100, 101을 테스트.
11. 개발 단계별 테스트 (V 모델)
[개발] [테스트] 요구사항 분석 ←────────→ 인수 테스트 시스템 설계 ←────────→ 시스템 테스트 상세 설계 ←────────→ 통합 테스트 구현(코딩) ←────────→ 단위 테스트테스트 단계 설명 기준 단위 테스트 모듈/컴포넌트 단위. 가장 먼저 수행 상세 설계서 통합 테스트 모듈 결합 후 인터페이스 테스트 시스템 설계서 시스템 테스트 전체 시스템 요구사항 충족 여부 요구사항 명세서 인수 테스트 사용자가 직접 요구사항 충족 확인 사용자 요구사항 인수 테스트 종류:
종류 설명 알파 테스트 개발자 앞에서 사용자가 테스트. 통제된 환경 베타 테스트 실제 환경에서 사용자가 직접 테스트. 개발자 없이 진행
12. 통합 테스트 방식
구분 상향식 (Bottom-Up) 하향식 (Top-Down) 시작 위치 가장 하위 모듈부터 가장 상위 모듈부터 진행 방향 하위 → 상위 상위 → 하위 필요 도구 드라이버 (Driver) 스텁 (Stub) 특징 초기 프로토타입 불가 초기 프로토타입 가능 - 드라이버: 하위 모듈을 호출하는 가상의 상위 모듈
- 스텁: 상위 모듈이 호출하는 가상의 하위 모듈 (더미 응답만 반환)
13. 테스트 하네스 & 오라클
테스트 하네스 구성요소:
구성요소 설명 테스트 드라이버 하위 모듈 호출, 파라미터 전달, 결과 확인 테스트 스텁 임시 하위 모듈. 조건만 가진 더미 테스트 슈트 테스트 케이스들의 집합 테스트 케이스 입력값 + 실행조건 + 기대결과로 구성된 명세서 테스트 시나리오 테스트 케이스의 실행 순서를 정의한 문서 테스트 스크립트 자동화된 테스트 실행 절차 목(Mock) 오브젝트 사전에 행위를 정의해둔 가짜 객체 테스트 오라클:
종류 설명 참 오라클 모든 입력에 대해 정확한 결과 생성. 모든 오류 검출 가능 샘플링 오라클 특정 몇 개 입력값에 대해서만 기대 결과 제공 휴리스틱(추정) 오라클 일부는 정확, 나머지는 추정 처리. 샘플링 개선 일관성 검사 오라클 이전 버전과 결과가 일치하는지 비교 애플리케이션 성능 측정 지표:
지표 설명 처리량 (Throughput) 단위 시간당 처리하는 작업 수 응답 시간 (Response Time) 요청 전송 ~ 응답 도착까지 걸린 시간 경과 시간 (Turn Around Time) 작업 의뢰 ~ 처리 완료까지 걸린 시간 자원 사용률 (Resource Usage) CPU, 메모리, 네트워크 사용량
Part 3. 자료구조 & 알고리즘
자료구조는 데이터를 효율적으로 저장·관리하는 방법이고, 알고리즘은 문제를 해결하는 절차다.
최근 시험에서 비중이 높아진 영역으로, 개념 암기와 손으로 추적하는 연습이 동시에 필요하다.
14. 자료구조 분류
자료구조 ├── 선형 구조 — 데이터가 일렬로 나열 │ ├── 배열 (Array) │ ├── 연결 리스트 (Linked List) │ ├── 스택 (Stack) │ └── 큐 (Queue) │ └── 비선형 구조 — 데이터가 계층적/망형으로 연결 ├── 트리 (Tree) └── 그래프 (Graph)
15. 스택 (Stack)
후입선출 (LIFO). 나중에 들어온 것이 먼저 나간다.
push(1) → push(2) → push(3) → pop() → 3 반환push— 삽입 (top에 추가)pop— 삭제 및 반환 (top에서 제거)peek— top 확인 (삭제 안 함)
활용: 함수 콜스택, 후위 표기법 변환, 브라우저 뒤로가기, DFS
수식 표기법 변환 — 단골 문제
표기법 설명 예시 중위 (Infix) 연산자가 피연산자 사이 A + B전위 (Prefix) 연산자가 피연산자 앞 + A B후위 (Postfix) 연산자가 피연산자 뒤 A B +중위 → 후위 변환:
수식: A + B * C 1) A 출력 → 출력: A 스택: [] 2) + push → 출력: A 스택: [+] 3) B 출력 → 출력: A B 스택: [+] 4) * 는 + 보다 높음 → 출력: A B 스택: [+, *] 5) C 출력 → 출력: A B C 스택: [+, *] 6) 스택 전부 pop → 출력: A B C * + 결과: A B C * +우선순위:
*,/>+,-
16. 큐 (Queue)
선입선출 (FIFO). 먼저 들어온 것이 먼저 나간다.
enqueue(1) → enqueue(2) → enqueue(3) → dequeue() → 1 반환enqueue— rear에 삽입dequeue— front에서 삭제 및 반환
활용: 프린터 대기열, BFS, 프로세스 스케줄링
종류 설명 원형 큐 배열 끝과 시작을 연결. 공간 낭비 없음 덱 (Deque) 양쪽 끝에서 삽입·삭제 가능 우선순위 큐 우선순위가 높은 것이 먼저 나옴
17. 연결 리스트 (Linked List)
각 노드가 데이터 + 다음 노드의 주소(포인터) 를 가지는 구조.
[데이터|포인터] → [데이터|포인터] → [데이터|NULL]종류 설명 단순 연결 리스트 단방향 (다음 노드만 가리킴) 이중 연결 리스트 양방향 (이전·다음 모두 가리킴) 원형 연결 리스트 마지막 노드가 첫 노드를 가리킴 배열 vs 연결 리스트:
구분 배열 연결 리스트 접근 O(1) 직접 접근 O(n) 순차 접근 삽입/삭제 O(n) (이동 필요) O(1) (포인터만 변경) 메모리 연속 공간 필요 비연속 공간 사용 크기 고정 동적 변경 가능
18. 트리 (Tree)
계층적 구조. 노드와 간선으로 구성되며 사이클이 없다.
기본 용어:
용어 설명 루트 노드 최상위 노드 (부모 없음) 단말 노드 (Leaf) 자식이 없는 노드 차수 (Degree) 한 노드의 자식 수 레벨 루트를 1로 시작한 깊이 높이 루트에서 가장 깊은 단말까지의 레벨 이진 트리 종류
종류 설명 포화 이진 트리 모든 레벨이 꽉 찬 이진 트리. 노드 수 = 2^k - 1 완전 이진 트리 마지막 레벨만 제외하고 꽉 차있고 왼쪽부터 채워진 트리 편향 이진 트리 한쪽 방향으로만 자식을 가지는 트리 (최악의 경우) 이진 트리 순회 — 핵심 출제 포인트
순회 순서 특징 전위 (Preorder) V → L → R 루트 먼저 중위 (Inorder) L → V → R 루트 중간. BST에서 오름차순 후위 (Postorder) L → R → V 루트 마지막 예시 트리 & 순회 결과:
A / \ B C / \ \ D E F- 전위 (VLR): A B D E C F
- 중위 (LVR): D B E A C F
- 후위 (LRV): D E B F C A
풀이 팁 — 괄호 방법:
전위: 루트를 괄호 앞에 쓴다 → A(B(D)(E))(C(F)) → A B D E C F 중위: 루트를 괄호 중간에 쓴다 → (D)B(E))A((C(F))) → D B E A C F 후위: 루트를 괄호 뒤에 쓴다 → ((D)(E)B)((F)C)A → D E B F C A
19. 그래프 (Graph)
노드(정점)와 간선(엣지)으로 구성. 사이클 가능, 루트 없음 (트리와 차이).
탐색 방식 자료구조 특징 DFS (깊이 우선) 한 방향으로 끝까지 스택 (재귀) 미로 탐색, 사이클 감지 BFS (너비 우선) 인접 노드부터 큐 최단 경로 탐색 그래프: 1-2, 1-3, 2-4, 2-5 DFS(1): 1 → 2 → 4 → 5 → 3 BFS(1): 1 → 2 → 3 → 4 → 5
20. 정렬 알고리즘
알고리즘 평균 최악 공간 안정성 버블 정렬 O(n²) O(n²) O(1) 안정 선택 정렬 O(n²) O(n²) O(1) 불안정 삽입 정렬 O(n²) O(n²) O(1) 안정 퀵 정렬 O(n log n) O(n²) O(log n) 불안정 병합 정렬 O(n log n) O(n log n) O(n) 안정 힙 정렬 O(n log n) O(n log n) O(1) 불안정 기수 정렬 O(kn) O(kn) O(n+k) 안정 안정 정렬: 같은 값의 원소가 정렬 후에도 원래 순서 유지. 버블/삽입/병합이 안정.
동작 방식 한 줄 요약:
버블: 인접한 두 원소 비교해 큰 것을 오른쪽으로 → 매 패스마다 최댓값 확정 선택: 전체에서 최솟값 선택해 맨 앞과 교환 삽입: 앞부분을 정렬됐다고 가정, 새 원소를 올바른 위치에 삽입 퀵 : 피벗 기준 좌(작은 값) 우(큰 값) 분할 후 재귀. 최악 O(n²) 병합: 반으로 분할 후 각각 정렬 → 병합. 항상 O(n log n), 추가 메모리 O(n)
21. 탐색 & 시간 복잡도
알고리즘 시간복잡도 조건 순차 탐색 O(n) 정렬 불필요 이진 탐색 O(log n) 정렬 필수 Big-O 순서 (빠름 → 느림):
O(1) < O(log n) < O(n) < O(n log n) < O(n²) < O(2ⁿ) < O(n!)표기 예시 O(1) 배열 인덱스 접근, 해시테이블 O(log n) 이진 탐색, BST 탐색 O(n) 순차 탐색, 배열 순회 O(n log n) 퀵/병합/힙 정렬 O(n²) 버블/선택/삽입 정렬, 이중 반복문 O(2ⁿ) 재귀적 피보나치
22. 해시 (Hash)
키를 해시 함수로 변환해 인덱스를 구하고 저장. 평균 탐색 O(1).
해시 충돌 해결:
방법 설명 체이닝 (Chaining) 같은 주소에 연결 리스트로 연결 개방 주소법 (Open Addressing) 충돌 시 다른 빈 슬롯 탐색
빠른 암기 정리 — 전체
━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Part 1. 소프트웨어 개발 방법론 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 생명주기 모델 폭포수 : 순차 진행, 이전 단계 복귀 불가 프로토타입 : 시제품 먼저, 피드백 반영 나선형 : 위험 분석 중심, Boehm 제안 V모델 : 개발 단계 ↔ 테스트 단계 1:1 대응 애자일 : 짧은 반복, 변화 대응 스크럼 역할 : PO(백로그 관리) / SM(장애제거·지원) / 개발팀(자율) 스크럼 산출물 : 제품백로그 / 스프린트백로그 / 번다운차트 XP 5가치 : 피존의 용기는 단순하게 소통 (피드백/존중/용기/단순성/소통) 비용산정 델파이 : 전문가 경험, 하향식 LOC : (낙관 + 4×중간 + 비관) / 6 COCOMO : LOC 기반, 조직형/반분리형/내장형 Man Month : 1인 1개월 작업량 기준 Brooks 법칙: 인력 추가 → 오히려 지연 CMMi 5단계 : 초관정정최 (초기→관리→정의→정량→최적화) ISO 25000 : 기신사효유이 (기능성/신뢰성/사용성/효율성/유지보수성/이식성) 요구사항 : 기능적(무엇을) / 비기능적(어떻게) DFD 요소 : 프로세스(원) / 자료흐름(화살표) / 저장소(직선) / 단말(사각형) 재공학 순서 : 분석 → 구성 → 역공학 → 이식 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Part 2. 소프트웨어 테스트 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 테스트 원칙 : 결함집중(파레토) / 살충제패러독스 / 오류부재의궤변 정적 분석 : 실행 X → 워크스루 / 인스펙션 / 기술리뷰 / 관리리뷰 동적 분석 : 실행 O → 화이트박스 / 블랙박스 화이트박스 : 코드 오픈, 내부 로직 → 기초경로/조건/루프/데이터흐름 블랙박스 : 코드 비공개, 기능 → 동치분할/경계값/원인효과/오류예측/비교 커버리지 강도 : 다중조건 > 조건결정 > 결정(분기) > 구문(문장) V모델 대응 요구사항 ↔ 인수테스트 시스템설계 ↔ 시스템테스트 상세설계 ↔ 통합테스트 구현 ↔ 단위테스트 알파 vs 베타 : 알파(개발자 앞, 통제 환경) / 베타(실제 환경, 개발자 없음) 통합테스트 : 상향식(드라이버, 하위→상위) / 하향식(스텁, 상위→하위) 드라이버 : 가상 상위 모듈 / 스텁: 가상 하위 모듈 / 목: 행위 사전 정의 가짜 객체 테스트 오라클 : 참(전체) / 샘플링(일부) / 휴리스틱(추정) / 일관성(버전비교) 성능 지표 : 처리량 / 응답시간 / 경과시간 / 자원사용률 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Part 3. 자료구조 & 알고리즘 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 선형 구조 : 배열 / 연결리스트 / 스택 / 큐 비선형 구조 : 트리 / 그래프 스택 LIFO : push / pop → DFS, 후위표기법, 콜스택 큐 FIFO : enqueue / dequeue → BFS, 프린터, 스케줄링 수식 표기법 : 중위(A+B) / 전위(+AB) / 후위(AB+) 트리 순회 전위 VLR : 루트 → 왼 → 오 중위 LVR : 왼 → 루트 → 오 (BST = 오름차순) 후위 LRV : 왼 → 오 → 루트 정렬 O(n²) : 버블(인접비교) / 선택(최솟값선택) / 삽입(위치삽입) 정렬 O(nlogn): 퀵(피벗분할, 최악 n²) / 병합(분할정복, 안정) / 힙 안정 정렬 : 버블 / 삽입 / 병합 탐색 : 순차 O(n) / 이진 O(logn, 정렬 필수) Big-O 순서 : O(1) < O(logn) < O(n) < O(nlogn) < O(n²) < O(2ⁿ) 해시 충돌 : 체이닝(연결리스트) / 개방주소법(빈슬롯) DFS : 스택/재귀 / BFS: 큐, 최단경로'기타' 카테고리의 다른 글
소프트웨어 설계 · 인터페이스 · UI · 패키징 · 신기술 정리하기 ☺️ (0) 2026.07.14 디자인 패턴 완전 정리 — 23가지 핵심 개념 (0) 2026.07.13 운영체제 핵심 개념과 계산 문제 완전 정복 👨🚀 (1) 2026.07.11 개발자가 알아야 할 보안 핵심 개념 정리..,, (0) 2026.07.10 개발자가 알아야 할 네트워크 핵심 개념 정리... (0) 2026.07.08