본문 바로가기

분류 전체보기377

[자료구조] 해시 테이블이란? (해시 함수, 해시 충돌과 해결 방법, 자바에서 HashMap과 HashTable) 목차 해시 테이블이란? 해시 함수 해시 충돌과 해결 방법 Seperate Chaining 방식 Open Address 방식 Resizing (테이블 크기 재할당) 자바에서 HashMap, HashTable 1. 해시테이블이란? 해시 테이블은 key-value 형태로, 각각의 key 값에 해시 함수를 적용해 배열의 인덱스를 생성하고, 인덱스에 데이터를 저장하거나 검색할 수 있는 자료구조이다. 해시 테이블은 내부적으로 배열을 이용하고 있고 key를 통해 배열의 인덱스에 접근할 수 있기 때문에, 속도가 매우 빠르다는 장점을 가지고 있다. 하지만 해시 함수에 의존하고 있기 때문에, 충돌이 일어나지 않고 빠르게 해시를 만들어내는 해시 함수의 역할이 중요하다. (특징) 삽입, 삭제, 검색 모두 평균적으로 O(1)의.. 2024. 3. 13.
[네트워크] 웹 캐시, Outh 면접 질문 및 답변 정리 쿠키와 세션, 웹캐시에 대해 설명해주세요. 더보기 쿠키와 세션은 웹 상에서 서버와 클라이언트의 상태 정보를 저장해두기 위해 사용됩니다. 쿠키는 클라이언트에 저장되고 브라우저를 종료할 때까지 데이터가 남아있기 때문에, 보안에 취약하다는 단점을 가지고 있습니다. 이에 반해 세션은 서버에 저장되고, 데이터베이스를 이용해 세션을 관리할 수 있어 로그인 인증을 위해 사용됩니다. 이 두 개념과 별개로 웹캐시는 HTTP 요청에 대한 응답 속도를 높이기 위해 로컬 스토리지에 접속한 사이트에 대한 css, 이미지 등의 정적 데이터를 저장해두는 방식입니다. HTTP 헤더의 e-tag를 통해 업데이트된 정적 데이터가 존재하는지 확인하고, 로컬에서 메타 데이터를 가져올 수 있습니다. 웹 캐시란 무엇인가요? 더보기 웹 캐시는 .. 2024. 3. 13.
[네트워크] 쿠키, 세션, 토큰 면접 질문 및 답변 정리 쿠키와 세션에 대해 설명해주세요. 더보기 쿠키와 세션은 웹 상에서 클라이언트와 서버의 상태 정보를 저장하기 위해 사용됩니다. HTTP는 Stateless한 특성으로 서버와 클라이언트 사이에 상태 정보를 저장해두지 않기 때문에, 이러한 상태 정보를 저장하기 위해 쿠키와 세션이 필요합니다. 쿠키는 클라이언트에 저장되고 브라우저를 종료할 때까지 남아있기 때문에, 보안에 취약하다는 단점을 가지고 있습니다. 따라서 팝업 창에서 오늘하루보지않기, 혹은 장바구니 등의 기능에서 사용됩니다. 세션은 서버에 저장되고 서버가 관리할 수 있기 때문에, 보안성이 좋다는 장점을 가지고 있습니다. 일반적으로 사용자가 로그인을 하면 서버는 세션ID를 생성해 데이터베이스에 저장하고, 클라이언트는 부여받은 세션ID를 이용해 권한이 필요.. 2024. 3. 13.
[네트워크] HTTP 메서드와 Restful API 면접 질문 및 답변 정리 HTTP 요청 메시지에 포함된 필드를 알고 있는 대로 말씀해주세요. 더보기 HTTP 요청 메서지에는 URL 경로, HTTP 메서드, HTTP 버전, User-Agent, Content-type, Accept-Language, Accept-Encoding 등의 필드가 존재합니다. HTTP 메서드는 무엇인가요? 더보기 HTTP 메서드는 웹 상에서 데이터를 어떻게 주고받고 수행하도록 할지를 결정합니다. GET, POST, PUT, DELETE 등의 메서드가 존재합니다. GET과 POST 차이에 대해 설명해주세요. 더보기 GET은 URL 경로에 데이터를 담아 전송합니다. 데이터가 노출되어 전달되기 때문에, 단순한 게시판 조회 같은 기능에서 파라미터에 게시판 번호를 담아 요청합니다. POST는 HTTP 바디에 데.. 2024. 3. 13.
[알고리즘] 그리디 알고리즘이란? (크루스칼 알고리즘, 프림 알고리즘, 다익스트라 알고리즘) 목차 그리디 알고리즘이란? 그리디 알고리즘 정당성 그리디 알고리즘 종류 그리디 알고리즘 예시 그리디 알고리즘과 DP 비교 1. 그리디 알고리즘이란? 그리디 알고리즘은 현재 이 순간에서 가장 최적의 해를 선택하는 알고리즘이다. 앞으로 진행될 선택에 끼칠 영향을 고려하지 않고 매 순간 선택에서 현재가 항상 최적의 해를 가져야 하기 때문에, 욕심쟁이 알고리즘이라고도 부른다. 현재 문제에서 가질 수 있는 최적의 해를 선택하면 다음 부분적인 문제에 대한 선택이 이뤄진다. 다시 말해, Top-Down 방식으로 더 작은 문제에 대한 최적의 해를 선택하고, 한번 선택된 결정은 다시 번복할 수 없다. 이러한 이유로 부분 문제는 최적의 해를 가지지만, 모든 전체 문제에서 최적의 해를 가진다고 말할 수 없다. 2. 그리디 .. 2024. 3. 8.
[네트워크] HTTP와 HTTPS, HTTP 헤더 면접 질문 및 답변 정리 HTTP와 HTTPS에 대해 설명해주세요. 더보기 HTTP는 웹 상에서 서버와 클라이언트 사이에 데이터를 전달할 때 사용되는 프로토콜입니다. HTTP는 데이터를 평문으로 전달하기 때문에 보안에 취약하다는 단점을 가지고 있는데, 이를 개선한 방식이 HTTPS입니다. HTTPS는 SSL 인증서를 이용해 데이터의 암호화를 제공하고 있으며, CA라는 서드파티에게 SSL 인증서를 검증함으로써 클라이언트는 서버의 신뢰성을 확인하고 공개키를 전달받을 수 있습니다. HTTP와 HTTPS는 각각 몇 번 포트를 이용하나요? 더보기 HTTP는 80번 포트, HTTPS는 443번 포트를 이용합니다. HTTP 요청 헤더에 있는 필드를 아는 대로 말씀해주세요. 더보기 HTTP 요청 헤더에는 제일 위쪽 URL경로, HTTP 메서드.. 2024. 3. 7.