분류 전체보기(115)
-
[면접준비] 해시테이블과 이진 검색 트리 (24/04/24)
해시 테이블해시 테이블은 키를 기반으로 요소에 매우 빠른 액세스를 제공하는 데이터 구조입니다. 해시 함수를 사용하여 원하는 값을 찾을 수 있는 버킷 또는 슬롯 배열에 대한 인덱스를 계산합니다. 이상적으로 해시 함수는 각 키를 고유한 버킷에 할당하지만 대부분의 해시 테이블 디자인은 어떤 형태의 충돌 해결을 사용합니다. 장점:빠른 조회: 검색, 삽입 및 삭제에 대해 O(1)의 평균 시간 복잡도를 제공합니다.시간 측면에서 효율적: 특히 해시 함수가 좋고 부하율(요소 수/버킷 수)을 관리할 수 있는 경우.직접 액세스: 계산된 해시 키를 사용하여 데이터에 직접 액세스할 수 있습니다. 단점:공간 비효율성: 해시 테이블에는 구조를 위한 추가 공간이 필요하며 충돌 처리를 위한 오버헤드가 발생할 수 있습니다.해시 함수에..
2024.04.24 -
[면접준비] 프로그래밍 패러다임 (24/04/23)
객체지향 프로그래밍 프로그램 설계방법론의 일종으로, 에 속한다.프로그램을 단순히 데이터와 처리 방법으로 나누는 것이 아니라, 프로그램을 수많은 '객체(object)'라는 기본 단위로 나누고 이들의 상호작용으로 서술하는 방식이다. 객체란 '메소드, 변수'를 가지며, 특정 역할을 수행하도록 인간이 정의한, 추상적인 개념. 다 프로그램의 상태에 대한 문장들을 작성하는 스타일을 일컫는다.객체지향형 프로그래밍이란 객체를 먼저 만들고 이렇게 만들어진 여러 객체들을 조립해서 하나의 완성된 프로그램을 만드는 프로그래밍 방법론이다.가장 큰 장점은 프로그램을 보다 유연하고 변경이 용이하게 만들 수 있다는 점이다.소프트웨어를 설계할 때 객체 지향적 원리를 잘 적용해 둔 프로그램은 각각의 부품들이 각자의 독립적인 역할을 가지..
2024.04.23 -
[면접준비] 아침 면접 준비 - 정규화, 무결성 (24/04/18)
정규화정규화는 데이터베이스 무결성 제약 조건에 따라 종속성이 적절하게 적용되는 방식으로 데이터를 테이블로 구성하여 중복성을 줄이고 데이터 무결성을 향상시키기 위해 데이터베이스 설계에 사용되는 체계적인 접근 방식이다.정규화의 주요 목적중복 데이터 제거: 여기에는 저장 공간을 낭비할 뿐만 아니라 데이터 처리 중에 불일치를 초래할 수 있는 중복 데이터를 방지하는 것이 포함됩니다. 데이터 종속성을 보장하려면: 이는 모든 데이터가 논리적으로 저장되도록 하여 데이터베이스의 논리적 일관성을 유지하는 데 도움이 됩니다. 데이터를 보호하려면: 정규화는 중복성을 최소화하고 데이터 종속성을 보장함으로써 삽입, 삭제 및 업데이트 작업 중에 데이터 무결성 손실과 이상 현상으로부터 데이터를 보호하는 데 도움이 됩니다. 정규화에는..
2024.04.22 -
[면접준비] 동기/비동기, deadlock (24/04/22)
동기/비동기동기(Synchronous)순차적/직렬적으로 태스크를 수행한다요청을 보냈다면, 응답을 받아야 다음 동작이 이루어진다순차적으로 실행되므로, 어떤 작업이 수행중이라면 뒤의 작업은 대기한다블로킹(작업 중단)이 발생한다동기적으로 데이터를 서버로부터 받아오는 앱을 만든다고 가정하면, 데이터를 받아오기 까지 기다린 후 앱이 실행될 것이고 서버에 가져오는 데이터 양이 늘어날수록 실행 속도가 느려질 것이다.이러한 불편함을 해결하기 위해 데이터 수신과 페이지 표시가 비동기적으로 처리되어야 한다.stTimeout과 AJAXfunction func1() { console.log('첫번째 펑션!'); func2();}function func2(){ console.log('두번째 펑션!'); f..
2024.04.22 -
[면접준비] 아침 면접 준비 (24/04/17)
1. Promise란 무엇입니까?Promise는 비동기 작업의 미래 완료 또는 실패와 그 결과 값을 나타내는 객체입니다. Promise가 생성될 때 반드시 알 수 없는 값에 대한 대리자로, 비동기 연산 종료 이후 결과 값과 실패 사유를 처리하기 위한 처리기를 연결할 수 있다. 프로미스를 사용하여 비동기 메서드를 마치 동기 메서드처럼 다룰 수 있다. 다만, 최종 결과를 반환하는게 아니라 어느 미래 시점에 결과를 제공하겠다는 약속(promise)를 반환한다.대기(pending): Promise의 초기 상태입니다. 결과는 아직 결정되지 않았습니다. 이행(fulfilled): 작업이 성공적으로 완료되었으며 이제 Promise는 결과 값을 보유합니다. 거부(rejected): 작업이 실패했으며 Promise에는 ..
2024.04.17 -
[면접준비] Day78 아침 면접 준비 (24/04/16)
웹 브라우저에 URL을 입력했을때 일어나는 과정웹 브라우저에 URL을 입력하면 요청한 웹 페이지를 가져와 표시하기 위해 여러 단계가 발생합니다. URL 입력: 사용자가 웹 브라우저에 URL을 입력하고 Enter 키를 누릅니다. 도메인명의 IP 주소 조회: 브라우저는 입력한 도메인을 IP 주소로 변환하기 위해 DNS를 조회합니다. TCP 연결 시작: 브라우저는 서버와 TCP 연결을 설정하여 통신을 시작합니다. HTTP 요청 전송: 브라우저는 서버에 HTTP 요청을 보냅니다. 요청에는 요청 라인, 헤더, 본문이 포함됩니다. 서버 응답: 서버는 요청을 받고 처리한 후 응답을 보냅니다. 응답에는 상태 라인, 헤더, 리소스(HTML, CSS, Javascript 등)가 포함됩니다. 콘텐츠 렌더링: 브라우저는 받은..
2024.04.16