기술 면접 준비(25)
-
[CS 모의면접 스터디] 스프링 편
23.11.30 CS 모의면접 스터디 에서 사용할 질문&예상답변을 정리하였습니다. 키워드 JPA(ORM), Hibernate, Spring Data JPA JPA의 N+1문제 필터와 인터셉터 주요 어노테이션(@Component, @Service, @Repository, @Controller) Spring Security WAS vs. WS 프로그래밍 패러다임(객체지향 프로그래밍, 절차형 프로그래밍, 함수형 프로그래밍..) Q. JPA, Hibernate, Spring Data JPA 차이점에 대해 말씀해 주세요. JPA는 Java에서 객체-관계 매핑(ORM)을 위한 표준 명세인 인터페이스입니다. JPA는 Java Persistence API의 약자로, 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 ..
2023.11.30 -
[기술면접] 알고리즘 - 2/2
1편에 이어서 작성해 보겠습니다. 😎 동적 프로그래밍(Dynamic Programming)이란? 주어진 문제를 풀기 위해서, 문제를 여러 개의 하위 문제(subproblem)로 나누어 푼 다음, 그것을 결합하여 해결하는 방식입니다. 동적 프로그래밍에서는 어떤 부분 문제가 다른 문제들을 해결하는 데 사용될 수 있어, 답을 여러 번 계산하는 대신 한 번만 계산하고 그 결과를 재활용하는 메모이제이션(Memoization) 기법으로 속도를 향상 시킬 수 있습니다. ▶ 동적 프로그래밍(Dynamic Programming)의 두 가지 조건에 대해 말씀해 주세요. 동적 프로그래밍(Dynamic Programming)으로 문제를 해결하기 위해서는 주어진 문제가 다음의 조건을 만족해야 합니다. Overlapping Su..
2023.05.22 -
[기술면접] 알고리즘 - 1/2 (6개 정렬 알고리즘)
😎 시간복잡도를 빅오표기법으로 나타내시오. 😎 거품 정렬, 버블정렬 (Bubble Sort) 서로 인접한 두 원소의 대소를 비교하고, 조건에 맞지 않다면 자리를 교환하며 정렬하는 알고리즘입니다. 가장 쉬운 정렬 알고리즘이지만 시간복잡도가 좋은 퍼포먼스를 내지 못해서 실제로는 잘 사용되지 않습니다. 시간복잡도는 O(n²)이며 공간복잡도는 하나의 배열만 사용하여 정렬을 진행하기 때문에 O(n)입니다. 정렬이 돼있던 안돼있던, 2개의 원소를 비교하기 때문에 최선, 평균, 최악의 경우 모두 시간복잡도가 O(n²)으로 동일하다. 과정(오름차순) 1회전에 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를, 세 번째 원소와 네 번째 원소를, … 이런 식으로 (마지막-1) 번째 원소와 마지막 원소를 비..
2023.05.22 -
[기술면접] 자료구조 - 2/2
1편에 이어서 작성해 보겠습니다. 😎 해시 테이블(Hash Table)과 시간 복잡도에 대해 설명해주세요. 해시 테이블은 (Key, Value)로 데이터를 저장하는 자료구조 중 하나로 빠르게 데이터를 검색할 수 있는 자료구조입니다. 빠른 검색 속도를 제공하는 이유는 내부적으로 배열(버킷)을 사용하여 데이터를 저장하기 때문입니다. 각 Key값은 해시함수에 의해 고유한 index를 가지게 되어 바로 접근할 수 있으므로 평균 O(1)의 시간 복잡도로 데이터를 조회합니다. 하지만 index값이 충돌이 발생한 경우 Chanining에 연결된 리스트들까지 검색해야 하므로 O(N)까지 증가할 수 있습니다. ▶ 결국 데이터가 많아지면, 다른 데이터가 같은 해시 값으로 충돌 나는 현상이 발생하는데도 해시 테이블을 사용하..
2023.05.16 -
[기술면접] 자료구조 - 1/2
😎 Array(List)의 가장 큰 특징과 그로 인해 발생하는 장점과 단점에 대해 설명해 주세요. Array의 가장 큰 특징은 순차적으로 데이터를 저장한다는 점입니다. 데이터에 순서가 있기 때문에 0부터 시작하는 index가 존재하며, index를 사용해 특정 요소를 찾고 조작이 가능하다는 것이 Array의 장점입니다. 순차적으로 존재하는 데이터의 중간에 요소가 삽입되거나 삭제되는 경우 그 뒤의 모든 요소들을 한 칸씩 뒤로 밀거나 당겨줘야 하는 단점도 있습니다. 이러한 이유로 Array는 정보가 자주 삭제되거나 추가되는 데이터를 담기에는 적절치 않습니다. ▶ Array를 적용시키면 좋을 데이터의 예를 들어주세요. Array를 적용하면 좋은 이유, 그리고 Array를 사용하지 않으면 어떻게 되는지 함께 설..
2023.05.16 -
[기술면접] 운영체제 - 2/2
1편에 이어서 작성하겠습니다. ⭐ 데드락(DeadLock) 이란? 데드락(DeadLock) 또는 교착상태란 한정된 자원을 여러 프로세스가 사용하고자 할 때 발생하는 상황으로, 프로세스가 자원을 얻기 위해 영구적으로 기다리는 상태입니다. ▶ 데드락의 4가지 조건에 대해 설명해 주세요. 1. 상호 배제(Mutual Exclusion) : 한 번에 한 프로세스만 공유 자원에 접근 가능합니다. 2. 점유 대기 (Hold & Wait) : 공유 자원에 대한 접근 권한을 가진 채로 다른 자원에 대한 접근 권한을 요구. 3. 비선점 (Nonpreemptive) : 다른 프로세스의 자원을 뺏을 수 없음. 4. 순환 대기 (Circular wait) : 두 개 이상의 프로세스가 자원 접근을 기다릴 때, 관계가 순환적 구..
2023.04.04