
| 항목 | 설명 |
|---|---|
new 키워드 | Java에서 힙(heap) 메모리에 새로운 객체를 생성함 |
| 배열 인수 전달 | 배열 이름을 인수로 지정하면, 배열의 시작 주소가 전달됨 (C/C++ 개념) |
A.equals(B) | 두 문자열 내용이 같은지 비교함 (참/거짓 반환) |
for(String z : x) | x에서 문자열 요소들을 하나씩 z에 담아 반복 |
sum(lst[::2]) | Python 문법: 리스트에서 2칸 간격으로 슬라이싱하여 합산 예: [6,5,4,3,2,1] → 6 + 4 + 2 = 12 |
GROUP BY project_id HAVING count(*) < 2 | project_id 기준 그룹화 후 2개 미만인 그룹만 추출 |
WHERE p.project in 20 | project_id가 20인 데이터만 조회 |
FROM employee AS e JOIN project AS p ON e.project_id = p.project_id | employee와 project를 project_id 기준으로 JOIN |
| LRU | 가장 오래 사용하지 않은 데이터를 우선적으로 교체하는 캐시 알고리즘 |
b = 100.0 | Python에서 실수형 자료형 할당 |
| 연관 관계 | 두 사물이 지속적으로 관련되어 있을 때, UML에서 실선으로 표현 |
| 일반화 관계 | 구체적인(하위) → 일반적인(상위) 속이 빈 삼각 화살표로 표현 |
| 의존 관계 | 필요 시 한 객체가 다른 객체에 일시적으로 의존, 점선 화살표로 표현 |
class D extends B | D 클래스가 B 클래스를 상속받음 |
B a = new D(); | B 타입 참조 변수에 D 객체 생성 → 업캐스팅 발생 |
| 형변환 메커니즘 | 업캐스팅 후, 자식 클래스에서 오버라이딩된 메서드만 영향 |
static void func() throws Exception | 메서드에서 예외를 발생시킬 수 있음을 선언 |
NullPointerException | null을 참조하려 할 때 발생하는 예외 |
try → catch → finally | 예외 처리 순서: 시도 → 예외 발생 시 처리 → 마무리 작업 |
| 제네릭 & 타입소거 | 컴파일 시점에만 적용되고, 런타임에는 Object로 소거됨 |
| 오버로딩 | 이름이 같지만 매개변수의 타입이나 개수가 다른 여러 메서드 정의 |
| 용어 | 설명 |
|---|---|
| 스머핑 (Smurfing) | ICMP Echo Request를 이용해 공격 대상에게 대량의 트래픽을 유발하는 DDoS 공격 기법 중 하나 |
| VPN (Virtual Private Network) | 공용 인터넷을 통해 사설 네트워크에 안전하게 접속하게 해주는 기술, 암호화된 터널로 데이터 전송 |
| 행위 패턴 (Behavioral Pattern) | 객체지향 설계 패턴 중 하나로, 객체 간의 상호작용과 책임 분배 방식을 정의하는 패턴 (예: 옵저버, 전략, 상태 등) |
| 커버리지 (Coverage) | 소프트웨어 테스트에서 코드가 얼마나 테스트되었는지를 측정 → ㅂ(전체/문장), ㄹ(조건식/분기), ㄷ(개별/조건) 등으로 구분 |
| 객체 (Entity) | 데이터베이스 또는 시스템 설계에서 속성과 식별자를 가진 독립적인 개체 (ex: 사용자, 제품 등) |
| 애드혹 네트워크 (Ad-hoc Network) | 중앙 서버 없이 디바이스들끼리 직접 연결되어 통신하는 네트워크, 주로 무선 환경에서 사용됨 (예: 군사, 재난 구조 등) |
✅ 애자일(Agile) 대표 개발 모형 정리표
| 이름 | 주요 특징 | 핵심 개념 및 방식 |
|---|---|---|
| 스크럼 (Scrum) | 가장 널리 사용되는 애자일 방식 | - 정해진 기간(스프린트) 동안 개발 진행 - 스크럼 마스터, PO(Product Owner), 개발팀 역할 분담 - 매일 스탠드업 미팅, 백로그 기반 개발 |
| XP (Extreme Programming) | 코드 품질 중심, 개발자 친화 | - 테스트 주도 개발(TDD) - 쌍 프로그래밍(Pair Programming) - 지속적인 통합(CI) - 고객과의 긴밀한 협력 및 빠른 피드백 |
| 칸반 (Kanban) | 작업 흐름 시각화에 초점 | - 작업 항목을 보드에 카드 형태로 시각화 - 작업 제한(WIP Limit) 설정 - 흐름 기반의 지속적 개선 및 유연한 업무 처리 |
| Lean (린 개발) | 낭비 제거, 효율 극대화 | - 불필요한 활동 제거 - 빠른 피드백 & 지속적 개선 - **가치 흐름(Value Stream)**에 집중한 경량 개발 방식 |
| FDD (Feature-Driven Development) | 기능 단위 개발 중심 | - 기능 중심의 반복적 개발 - 도메인 모델링 강조 - 5단계 프로세스 (모델링 → 기능 목록 작성 → 기능 계획 → 설계 → 구현) |
| 항목 | 설명 |
|---|---|
| 가용성 (Availability) | 시스템이 장애 없이 지속적으로 서비스할 수 있는 능력 |
| 정합성 (Consistency) | 데이터 간에 모순이 없이 일관된 상태를 유지하는 성질 |
| 상호 호환성 (Interoperability) | 다른 시스템, 기기, 소프트웨어와 연동/호환이 가능한 능력 |
| 대응성 (Responsiveness) | 사용자 요청에 대해 빠르고 적절하게 반응하는 능력 |
| 이식성 (Portability) | 다른 환경에서도 쉽게 설치 및 실행할 수 있는 능력 |
| 확장성 (Scalability) | 사용자 증가나 데이터 증가에 따라 확장 가능한 구조를 갖춘 정도 |
| 보안성 (Security) | 데이터 보호, 접근 통제, 위변조 방지 등 보안 기능의 적절성 |
| 개념 | 설명 |
|---|---|
| 배열 인수 전달 | 배열 이름을 인수로 지정하면 배열의 시작 주소가 전달됨 (C/C++) |
| f-string 포맷 | f"문자열{표현식}" 형태로, 문자열 내 중괄호 안의 표현식을 평가한 결과를 삽입 (Python) |
| 인터페이스 메서드 | 인터페이스에 선언된 메서드는 본문 없는 추상 메서드이며, 자식 클래스에서 반드시 재정의해야 함 |
| 추상 메서드의 의무 | 추상 메서드는 자식 클래스가 구현해야 하는 의무이며, 미구현 시 컴파일 오류 발생 |
| 인터페이스 다형성 | 자식 클래스는 동일한 추상 메서드명을 각기 다른 기능으로 재정의할 수 있음 |
boolean[] seen = new boolean[256] | 256개의 논리형 배열 선언, 각 요소는 true 또는 false, 기본값은 false |
char c = str.charAt(index); | 문자열 str의 index번째 문자를 문자형 변수 c에 저장 |
| 재귀 함수의 리턴 | 재귀 함수에서 return은 제어를 호출한 지점으로 복귀시킴 |
seen[c] 예시 | c = 'a'일 때, 아스키 코드 97이므로 seen[97] 확인 가능 |
int arr[3][3] = {...} | 3행 3열의 2차원 정수 배열 선언 및 초기화 |
int* parr[2] = {arr[1], arr[2]} | 두 개의 포인터를 담는 배열 선언, 각각 arr[1], arr[2]의 시작 주소 저장 |
| 2차원 배열 주소 | 2차원 배열에서 배열명은 첫 번째 행의 시작 주소를 의미 |
**parr 의미 | *parr은 parr[0], **parr은 parr[0][0]을 의미함 |
| SQL: INSERT 구문 | INSERT INTO ... SELECT ... FROM ... WHERE : 조건에 맞는 데이터를 다른 테이블에서 삽입 |
| SQL: UPDATE 구문 | UPDATE ... SET ... WHERE : 조건에 따라 기존 데이터 수정 |
| SRT 스케줄링 | 남은 실행 시간이 가장 짧은 프로세스에게 CPU를 할당하는 선점형 스케줄링 기법 |
| SRT 대기시간 계산 | 대기시간 = 완료시간 - 도착시간 - 실행시간 |
| RIP 프로토콜 | 홉 수(라우터 수)가 가장 적은 경로를 최적 경로로 선택하는 거리 벡터 라우팅 프로토콜 |
| 개념 | 설명 |
|---|---|
| 반정규화 (Denormalization) | 데이터베이스의 성능 향상을 위해 정규화된 테이블을 일부러 통합하거나 중복 데이터를 허용하여 구조를 단순화하는 것 |
| IPsec (IP Security) | IP 계층에서 데이터의 무결성, 인증, 암호화 등을 제공하는 보안 프로토콜 VPN에서도 사용됨 |
| Virtual Circuit (가상 회선) | 실제 물리적 회선 없이도 논리적으로 연결된 연결지향형 네트워크 통신 방식 → 예: ATM, 프레임 릴레이 |
| Iterator (반복자) | 컬렉션 객체의 요소들을 하나씩 순차적으로 접근할 수 있도록 도와주는 객체 → hasNext(), next() 등의 메서드 사용 |
| 유형 | 설명 |
|---|---|
| 순차적 응집도 (Sequential Cohesion) | 모듈 내의 한 작업의 출력이 바로 다음 작업의 입력으로 전달되는 경우. 작업이 순차적으로 연결됨 |
| 절차적 응집도 (Procedural Cohesion) | 여러 기능이 하나의 모듈 안에 있지만, 일정한 절차나 순서에 따라 실행될 때의 응집도 → 출력·입력 관계는 약하고 순서 중심 |
| 제어 결합도 (Control Coupling) | 어떤 모듈이 다른 모듈의 내부 제어 흐름에 영향을 주는 제어 신호를 전달하는 결합도 → 권리 전도가 발생할 수 있음 (하위 모듈이 상위 모듈의 흐름을 제어) |
| 구분 | 응집도 (Cohesion) | 결합도 (Coupling) |
|---|---|---|
| 기준 | 모듈 내부의 구성 요소들 간의 관계 | 모듈 간의 의존 관계 |
| 의미 | 모듈 안의 기능들이 얼마나 연관되어 있는가 | 모듈이 다른 모듈에 얼마나 연결되어 있는가 |
| 이상적인 상태 | 높을수록 좋음 (기능이 하나로 뭉쳐 있음) | 낮을수록 좋음 (독립적이고 영향이 적음) |
| 목표 | 관련 있는 기능들만 묶기 | 불필요한 연결을 최소화하기 |
| 비유 | 잘 정돈된 책장 (주제별 정리됨) | 서로 선이 꼬여 있는 전선 (엉켜 있으면 곤란) |
| 핵심 키워드 | 연관성, 통일성 | 의존성, 독립성 |
| 좋은 상태 | 하나의 모듈이 하나의 책임만 갖는 것 | 모듈이 다른 모듈 없이도 작동 가능 |