개발자 기술면접 꼬리물기 질문
  • Welcome
  • 01 Java
    • 01-01. Generic
    • Garbage Collection
    • 자료형과 객체 비교
    • 힙(Heap)과 메모리(Memory)
    • JDK 버전과 JRE
    • 스레드(Thread)
    • 예외(Throwable)
    • Call By Value와 Call By Reference
    • String, equals, StringBuffer
    • Thread와 비동기
  • 02 Spring
    • 02-01. Spring 동작 방식
    • @Autowired, @RequiredArgsConstructor
    • 인증(Authentication)과 인가(Authorization)
    • 트랜잭션(Transaction)
    • QueryDSL과 SQL Injection
    • SecurityContextHolder
    • @EqualsAndHashCode
  • 알고리즘과 자료구조
    • Set 자료구조
    • 정렬 알고리즘
    • 우선순위 큐 (Priority Queue)
    • DFS와 BFS
    • 힙(Heap) 자료구조
    • 스택(Stack)과 큐(Queue)
    • 암호화 알고리즘
    • LinkedList
    • 자료구조 - 해시 테이블(HashTable)
    • 자료구조 - ConcurrentHashMap
  • 데이터베이스
    • 기본
    • 인덱스 (Index)
    • 정규화 (Normalization)
    • 파티셔닝과 샤딩(Partitioning & Sharding)
    • 트랜잭션(Transaction)과 락(Lock)
    • 덤프(Dump)
    • Redis
    • 격리 수준(MySQL)
  • 네트워크
    • 전송 계층 (Transport Layer)
    • 네트워크 계층 (Network Layer)
    • Http와 Https
    • IP(Internet Protocol)
    • 프록시 서버
    • Http Protocol
    • 소켓(Socket)
    • 로드 밸런싱(Load Balancing)
  • 디자인 패턴
    • 전략 패턴 (Strategy Pattern)
    • 싱글톤 패턴 (Singleton Pattern)
    • 템플릿 메서드 패턴과 전략 패턴
    • 데코레이터 패턴 (Decorator pattern)
  • 웹
    • CORS 정책
    • 동시성 제어
    • N+1 문제
    • 웹 브라우저 동작원리
    • URI, URL, URN
    • 채팅 아키텍처 설계
  • 개발자
    • 개발 방법론 TDD
  • 운영체제
    • JIT & AOT 컴파일
    • 컨텍스트 스위칭(Context Switching)
    • 프로세스와 스레드
    • 싱글 스레드와 멀티 스레드
  • 코딩테스트
    • Stack / Queue (스택 / 큐)
    • Heap(우선 순위 큐)
    • DP(동적 계획법)
    • DFS(깊이 우선 탐색)
    • BFS(너비 우선 탐색)
    • Greedy(그리디 알고리즘)
    • 해시(Hash)
    • 투 포인터 알고리즘
    • Shortest path
    • 수학적 사고
Powered by GitBook
On this page
  • Q. Inner Join과 Outer Join의 차이를 설명해주세요.
  • Q. Group By에 대해 설명해주세요.
  • Q. Delete, Truncate, Drop의 차이를 설명해주세요.
  • Q. Union과 Union All의 차이에 대해 설명해주세요.
  • Q. Having과 Where의 차이점을 설명해주세요.
  1. 데이터베이스

기본

Q. Inner Join과 Outer Join의 차이를 설명해주세요.

Inner Join과 Outer Join의 주요한 차이점은 데이터를 결합하는 방식에 있습니다. Inner Join은 두 테이블 간의 교집합을 반환하는데, 즉 양쪽 테이블에서 매칭되는 데이터만을 가져옵니다. 반면 Outer Join은 두 테이블의 합집합을 반환하며, 한쪽 테이블에만 데이터가 있어도 결과에 포함됩니다. Outer Join은 기준 테이블에 따라 Left Outer Join, Right Outer Join, Full Outer Join으로 구분됩니다.

Q. Group By에 대해 설명해주세요.

Group By는 데이터를 특정 컬럼을 기준으로 그룹화하여 집계하는 SQL 명령어입니다. 주로 Count, Sum, Avg, Max, Min 등의 집계 함수와 함께 사용되며, Distinct처럼 중복된 데이터를 제거하는 특성을 가지고 있습니다. 이를 통해 데이터를 원하는 기준으로 분류하고 분석할 수 있습니다.

Q. Delete, Truncate, Drop의 차이를 설명해주세요.

세 명령어는 데이터를 삭제하는 방식과 범위에서 차이가 있습니다. Delete는 특정 데이터만 선택적으로 삭제할 수 있고, 삭제 후에도 복구가 가능하지만 테이블의 용량은 변하지 않습니다. Truncate는 테이블의 모든 데이터를 한 번에 삭제하며, 테이블 용량이 줄어들고 인덱스도 함께 삭제되지만, 복구는 불가능합니다. Drop은 가장 강력한 삭제 명령어로, 테이블 자체를 완전히 삭제하며 공간, 인덱스, 객체 등 모든 것이 제거되고 복구가 불가능합니다.

Q. Union과 Union All의 차이에 대해 설명해주세요.

Union과 Union All은 두 개 이상의 쿼리 결과를 하나로 합치는 연산자입니다. Union은 중복된 행을 제거하고 결과를 반환하는 반면, Union All은 중복을 제거하지 않고 모든 행을 그대로 반환합니다. 따라서 Union All이 Union보다 실행 속도가 더 빠르지만, 중복된 데이터가 필요하지 않은 경우에는 Union을 사용하는 것이 더 적절합니다.

Q. Having과 Where의 차이점을 설명해주세요.

Where와 Having은 모두 조건절이지만 사용되는 시점과 목적이 다릅니다. Where는 개별 행에 대한 조건을 지정하며 그룹화하기 전에 실행됩니다. 반면 Having은 Group By로 그룹화된 이후의 결과에 대한 조건을 지정할 때 사용됩니다. 예를 들어, 부서별 평균 급여가 3000 이상인 부서를 찾을 때는 Having을 사용해야 합니다.

Previous자료구조 - ConcurrentHashMapNext인덱스 (Index)

Last updated 5 months ago