핵심 CS/웹 개념 비교 요약표
2025. 10. 7. 22:06

 

주제 개념 / 키워드 헷갈리기 쉬운 개념 차이·핵심 포인트
JVM 메모리 구조 Method / Heap / Stack / Native / PC 스택·힙 구분 스택: 함수 호출, 지역변수 / 힙: new객체 저장 / 메서드영역: static·클래스정보
GC (Garbage Collection) Young(Eden↔Survivor), Old 마이너 vs 메이저 GC Young은 자주, Mark-Copy / Old는 드물게, Mark-Sweep-Compact
String vs Builder/Buffer 불변/가변 thread-safe 여부 String 불변(결과적으로 안전), Buffer 동기화O, Builder 단일스레드 빠름
컴포지션 vs 상속 has-a / is-a 코드 재사용 방식 컴포지션: 유연성↑ / 상속: 재사용↑, 결합도↑
오버로딩 vs 오버라이딩 동일이름 다른형태 / 상속관계 재정의 매개변수/리턴타입 오버로딩: 파라미터 다름 / 오버라이딩: 시그니처 동일, 구현만 다름
Checked vs Unchecked Exception 컴파일/런타임 예외 처리 강제 여부 Checked: 반드시 try-catch / Unchecked: 선택적
Servlet vs DispatcherServlet 웹 요청 처리 핵심 Spring MVC 진입점 Servlet: 기본 HTTP 처리 / DispatcherServlet: Controller로 분배
IoC / DI 제어권 역전 / 의존성 주입 싱글톤과 혼동 IoC는 프레임워크가 제어, DI는 외부 객체 주입
AOP 공통관심사 분리 @Transactional 혼동 트랜잭션, 로깅 등 횡단 관심사 처리
트랜잭션 All or Nothing ACID 개념 Atomicity(전부/전무), Consistency, Isolation, Durability
쿠키 vs 세션 클라이언트 / 서버 JWT와 혼동 쿠키는 클라 저장, 세션은 서버 저장 (보안·부담 트레이드오프)
Lazy vs Eager Loading (JPA) 지연 / 즉시 로딩 Batch Fetch와 혼동 Lazy: 참조 시점 쿼리 / Eager: 즉시 JOIN
N+1 문제 연관 쿼리 반복 fetch join 1:N 관계 조회 시 추가 쿼리 발생 → fetch join으로 해결
Redis vs DB Cache 인메모리 / 영속 영속성 컨텍스트 Redis는 외부 캐시, 속도 중심 / 영속성컨텍스트는 JPA 내부 캐시
DB 인덱스 B-tree 구조 PK와 혼동 WHERE·JOIN 자주 쓰는 컬럼에 설정, 읽기↑ 쓰기↓
JS Hoisting 선언이 위로 끌려감 TDZ(Temporal Dead Zone) var는 선언+초기화, let/const는 선언만 호이스팅됨
Lexical Scope 선언위치 기준 스코프 this 바인딩 함수가 ‘어디서 선언됐는가’로 스코프 결정
this 바인딩 호출한 주체 화살표함수 기본함수: 호출자 기준 / 화살표함수: 선언위치 기준(렉시컬 this)
Event Loop 콜스택 + 큐 멀티스레드 착각 JS는 단일스레드, 비동기 처리를 큐로 관리
브라우저 렌더링 과정 파싱→DOM→CSSOM→Render Tree→Repaint SSR, CSR 혼동 DOM과 CSSOM 결합 후 그려짐, JS 실행이 블로킹됨
HTTP vs HTTPS 암호화 여부 REST와 혼동 HTTPS는 TLS로 암호화, REST는 설계 스타일
REST API 자원 중심 설계 단순한 HTTP 요청 자원(URL), 행위(Method), 표현(Body)의 조합
React 렌더링 Virtual DOM diff CSR/SSR 혼동 변경된 부분만 비교(diff) 후 최소 렌더링 수행