일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- OOP의 특징
- MySQL RIGHT()
- 이코테2021
- MySQL LEFT()
- finalize 수동 호출
- @RequestMapping과 @GetMapping
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- 기사단원의 무기 제곱근
- 정규화 장단점
- 알고리즘 1000000007 나누기
- commit message convention
- 달리기 경주 파이썬 시간초과
- Python 1000000007
- 달리기 경주 파이썬
- java 동기화
- 프로그래머스 142086
- Spring Security 5
- RDBMS와 NoSQL 차이
- 빌드관리도구 차이
- build.gradle 설정 오류
- DDL DML DCL 차이
- 웹 동작 과정
- www.google.com 검색하면 일어나는 일
- 모듈로 연산
- 백트래킹
- 기사단원의 무기 파이썬
- Spring Security 버전 문제
- 빌드관리도구
- PCB
- 프로세스
- Today
- Total
목록Tech Interview (20)
BUILD_SSO
👉🏻CORS(Cross Origin Resource Sharing)란 CORS(Cross-Origin Resource Sharing)는 교차 출처 리소스 공유로 출처가 다른 자원들을 공유한다는 뜻이며, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념이다. 동작원리: 추가 HTTP 헤더를 사용하여, 한 출처에서 실행 중인 웹 애플리케이션이 다른 출처의 선택한 자원에 접근할 수 있는 권한을 부여하도록 브라우저에 알려주는 체제입니다. 웹 애플리케이션은 리소스가 자신의 출처(도메인, 프로토콜, 포트)와 다를 때 교차 출처 HTTP 요청을 실행합니다. 과정: 1. 서버로 요청을한다. 2. 서버의 응답이 왔을때 브라우저가 요청한 Origin과 응당한 Access-Control-Request-..
HTTP 👉🏻HTTP에 대해 설명해주세요. HTTP(Hyper Text Transfer Protocol)이란 데이터를 주고 받기 위한 프로토콜이며, 서버/클라이언트 모델을 따릅니다. HTTP는 상태 정보를 저장하지 않는 Stateless의 특징과 클라이언트의 요청에 맞는 응답을 보낸 후 연결을 끊는 Connectionless의 특징을 가지고 있습니다. 80번 포트를 사용한다. http서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보낸다. 애플리케이션 레벨의 프로토콜/ TCP/IP위에서 작동한다. method, path, version, headers, body등으로 구성되어있다. 👉🏻Stateless와 Connectionless에 대해 설명해 주세요. 무상태 State..
힙 Heap 힙에 대해 설명하고, Heap Sort에 대해 설명해 주세요. 최솟값 또는 최댓값을 빠르게 찾아내기 위해 완전이진트리 형태로 만들어진 자료구조이다. 우선순위 큐를 위해서 만들어졌다. 각 노드의 키값이 자식의 키값보다 작지 않거나(최대힙) 그 자식의 키값보다 크지 않은(최소힙) 완전이진트리 입니다. 우선 순위 큐 란, 우선순위의 개념을 큐에 도입한 자료구조 -> 데이터들이 우선순위를 가지고 있으며, 우선순위가 높은 데이터가 큐에서 먼저 빠져 나간다. Heap Sort 공간복잡도: 힙을 배열로 구현한다고 가정하면, 어떻게 값을 저장할 수 있을까요? 힙을 저장하는 표준적인 자료구조는 배열이다. 배열로 구현한다고 할 때 root 노드를 0번째에 저장하고 그다음부터 자식 노드를 저장하면, 왼쪽 1번 ..
시간복잡도와 공간복잡도에 대해 설명해 주세요. 알고리즘의 성능 평가를 위한 척도라고 할 수 있다. 알고리즘 성능을 평가하기 위해 '복잡도(Complexity)'의 척도를 사용하는데, 이때 시간복잡도와 공간복잡도가 사용된다. 복잡도가 낮을수록 좋은 알고리즘으로 평가한다. 시간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석 공간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 메모리(공간) 사용량 분석 시간복잡도 표기법 빅오, 빅오메가, 빅세타를 설명해 주세요. Big-O(빅 오) 표기법 알고리즘 최악의 실행 시간을 표기한다. 가장 많이 사용하는 표기법이다. Big-Ω(빅 오메가) 표기법 알고리즘 최상의 실행 시간을 표기한다. Big-θ(빅 세타) 표기법 알고리즘 평균 실행 시간을 표기한다..
전위 중위 후위 표기법(Prefix, Infix, Postfix) 에 대해 설명하고, 이를 스택을 활용해서 계산하는 방법에 대해 설명해 주세요. 전위표기법(Prefix) 형태: +AB 연산자를 먼저 표시하고 연산에 필요한 피연산자를 나중에 표기하는 방법이다. 중위표기법(Infix) 형태: A+B 연산자를 두 피연산자 사이에 표기하는 방법으로 가장 일반적으로 사용되는 표현 방법이다. 후위표기법(Postfix) 형태: AB+ 피연산자를 먼저 표시하고 연산자를 나중에 표시하는 방법이다. 컴파일러가 사용하는 것으로 스택을 사용하는 예들 중 가장 빈번하게 등장한다. 스택을 사용한 계산 방법 숫자를 만나면 전부 스택에 집어 넣는다. -> 연산자가 나오면 스택에서 두 수를 꺼내 계산하고 다시 스택에 집어 넣는다. 스..
스택과 큐 Stack과 Queue는 선형 자료구조의 일종이며, Array와 LinkedList로 구현할 수 있다. 스택과 큐 사용사례를 설명해주세요. Stack 주로 FILO가 필요한 환경에서 사용된다. 자바의 Stack 메모리 영역: 지역변수와 매개변수 데이터 값이 저장되는 공간이며, 메소드 호출시 메모리에 할당되고 종료되면 메모리가 해제되며, LIFO(Last In First Out)구조를 가진다. 웹 브라우저 방문기록 (뒤로 가기) : 가장 나중에 열린 페이지부터 다시 보여준다. 역순 문자열 만들기 : 가장 나중에 입력된 문자부터 출력한다. 실행 취소 (undo) : 가장 나중에 실행된 것부터 실행을 취소한다. 수식의 괄호 검사 (연산자 우선순위 표현을 위한 괄호 검사) Queue 주로 데이터가 입..
Array vs List 차이점 Array와 List 모두 선형자료구조이지만, Array는 메모리 상에 데이터가 연속적으로 저장되고, List는 메모리 상에 데이터가 비연속적으로 저장된다. Array는 선언할 때 크기와 데이터 타입을 지정해야 한다. 대신, 배열을 사용하면 index가 존재하기 때문에 위치를 바로 알 수 있어 검색에 편한 장점이 있다. List는 array처럼크기를 정해주지 않아도 된다. 대신 array에서 index가 중요했다면, List에서는 순서가 중요하다. 하지만, 중간에 데이터를 추가 및 삭제할 때 시간이 오래걸리는 단점이 존재한다. Array vs ArrayList vs LinkedList의 차이점과 특징 Array는 index로 빠르게 값을 찾는 것이 가능함 LinkedLis..
파일 시스템 컴퓨터에서 파일이나 자료를 쉽게 발견할 수 있도록, 유지 및 관리하는 방법이다. 저장매체에는 수많은 파일이 있기 때문에, 이런 파일들을 관리하는 방법을 말한다. 👉🏻File Descriptor 에 대해 설명해 주세요.(Linux) 파이프, FIFO, 소켓, 터미널, 디바이스, 일반파일 등 종류에 상관없이 모든 열려있는 파일을 참조할 때 쓴다. 유닉스 시스템에서 프로세스가 이 파일들을 접근할때 파일 디스크립터(File Descriptor)라는 개념을 이용한다. 👉🏻0 1 2 stdi / stdo / err 프로그램이 프로세스로 메모리에서 실행을 시작 할 떄, 기본적으로 할당되는 파일 디스크립터들이 있다. 바로 표준 입력, 표준 출력, 표준 에러이다. 이들에게 각각 0,1,2라는 정수가 할당되며..
페이징 교체 알고리즘 페이징 교체 알고리즘이란 페이지 부재가 발생했을 때, 새로운 페이지를 할당해야 하는데 이때 현재 할당된 페이지중 어떤 것을 교체할지 결정하는 방법이다. 👉🏻Page Fault를 줄이는 방법에 대해서 설명하세요. Page Fault 란? 프로그램을 실행하기 위해 요청한 page가 메모리에 있는지 없는지를 확인하기 위해 page table에 valid-invalid bit를 추가하여 확인한다. 만약 있다면 valid고 없다면 invalid로 세팅되는데, 없을 때를 page fault라고 부른다. (cache에서의 miss와 유사하다.) 이렇게 보면 page fault가 발생했을 때 생각보다 너무 많은 overhead가 발생된다. 메모리의 접근이 너무 많이 일어난다. page fault를..
Paging vs Segmentation 페이징과 세그멘테이션은 둘 다 가상메모리를 관리하는 기법이다. 프로세스가 사용하는 메모리 공간을 잘게 나누어 비연속적으로 실제 메모리에 할당하는 메모리 관리 기법이다. 간단하게 말해 실제 메모리 주소가 아닌 가상의 메모리 주소를 주는 방식을 뜻한다. 👉🏻세그멘테이션과 페이징의 차이점은? 둘의 차이는 프로그램을 분할하는 방식이다. 페이징과 세그멘테이션 모두 프로그램을 실행하기 위해 디스크에 있는 내용을 분할하여 메모리에 적재하는 불연속 메모리 관리 기법이지만, 페이징의 경우 프로그램을 같은 크기의 페이지로 분할하는 데에 비해, 세그멘테이션은 논리적 의미를 기준으로 세그먼트를 분할한다. 👉🏻세그멘테이션과 페이징의 두 가지 장단점 페이징 장점 - 논리 메모리는 물리 메..