javascript
-
면접카타 9일차javascript 2024. 4. 30. 10:03
MVC패턴이란 무엇인가?mvc 패턴은 model-view-controller의 약자로 소프트웨어 설계에서 사용되는 일종의 아키텍처 패턴입니다이 패턴은 애플리케이션을 세 가지 주요 구성요소로 분리하여 관리합니다 모델 뷰 그리고 컨트롤러 이러한 분리는 코드의 재사용성을 높이고 유지보수를 용이하게 하며 개발 과정에서의 복잡성을 줄이는데 도움을 줍니다1. 모델 : 데이터와 비즈니스 로직을 관리합니다 . 모델은 데이터의 접근과 수정 , 그리고 그 데이터를 처리하는 규칙이나 로직을 포함합니다. 데이터가 변경될 때 모델은 보통 뷰에게 그 변경 사항을 알려 상태를 갱신하도록 합니다2. 뷰 : 사용자 인터페이스 요소를 담당하고 데이터를 시작적으로 표현합니다 뷰는 모델로부터 데이터를 받아 사용자에게 보여주는 역활을 하며 ..
-
면접카타 8일차javascript 2024. 4. 29. 14:19
Join이 무엇인지 설명해주 세요 join은 데이터베이스 관리 시스템에서 두 개 이상의 테이블을 결합하여 관련 정보를 연결하는 작업을 말합니다각각의 조인 유형에 따라 테이블들이 어떻게 결합되는지 그 방법이 달라집니다. 조인의 유형에대해 알아보자inner두 테이블의 교집합만을 결과로 반환두 테이블 모두에서 일치하는 데이터가 있는 경우에만 해당 데이터를 결과에 포함시킵니다즉, 조건이 맞는 데이터가 양쪽 테이블에 모두 있어야 결과에 나타납니다left join주로 사용하는 테이블을 왼쪽 테이블 이라 하고 이 테이블의 기준으로 조인을 수행합니다왼쪽 테이블의 모든 데이터와 오른쪽 테이블에서 조건에 마즌ㄴ 데이터를 함께 반환합니다왼쪽 테이블에는 데이터가 있지만 오른쪽 테이블에는 해당 데이터가 없는 경우 오른쪽 테이블..
-
면접카타 7일치javascript 2024. 4. 26. 09:43
BIG O에 대해서 설명해 주세요 빅오 표기법은 알고르즘의 성능을 나타내는 방법 중 하나로 알고리즘의 시간 복잡도나 공간 복잡도를 표현할 떄 사용됩니다 이 표기법은 주로 최악의 경우를 기준으로 알고리즘의 실행 시간이나 필요한 메모리 공간이 이렵 크기에 대해 어떻게 증가하는지를 나타냅니다 빅 오 표기법의 기본적인 개념은 알고리즘의 효울성을 이해하고 비교하는 데 중요한 도구입니다 예를 들어 O는 알고리즘이 입력 크기 n에 비례하ㅣ여 시간이 증가함을 의미하며 O은 입력 크기와 상관없이 일정한 시간이 걸림을 나타냅니다 또한 o는 시간이나 공간이 입력 크기의 제곱에 비례하여 즈ㅇ가함을 의미합니다 다음은 몇 가지 일반적인 빅 오 표기법 예시입니다 O(1): 상수 시간(complexity) — 입력 크기에 상관없이 ..
-
면접카타 6일차javascript 2024. 4. 25. 20:57
이벤트루프이벤트 루프는 비동기 방식의 작업을 처리하는 메커니즘으로 nodejs가 단일 스레드 환경에서도 높은 성능을 발휘할수 있게 합니다 이벤트 루프는 js의 런타임 환경에서 중심적인 역활을 담당하며, 여러 비동기 api의 결과를 관리하고 적절한 순간에 사용자 코드에 전달하는 기능을 수행합니다이벤트 루프의 필요성1. 비동기 처리 : js는 비동기 i/o를 지원하기 때무 ㄴ에 파일 시스템 접근, 네트워크 요청드으이 작업을 비동기적으로 수행할 수 있습니다. 이렇게 하면 해당 작업이 완료될 때까지 프로그램 전체가 멈추지 않고 다른 작업을 계속 처리할 수 있습니다2. 높은 처리 성능 : 이벤트 루프를 사용함으로써 많은 수의 동시 연결이나 요청을 효율적으로 처리 할 수 있습니다 작동 방식1. timer 일정시간이..
-
면접카타5일차javascript 2024. 4. 24. 21:24
해시테이블과 이진 검색트리를 비교하고 장단점을 이야기해주세요 해시테이블과 이진 검색트리는 데이터를 저장하고 검색하기 위해 사용되는 자료 구조이다 해시테이블 해시테이블은 키를 값에 매핑하여 데이터를 저장하는 자료구조이다. 이때 사용되는 해시 함수가 키를 해시테이블의 주소로 변환해줍니다 장점 : 평균 시간 복잡도가 O: 적절한 해시 함수와 충분한 크기의 버킷을 사용하면, 대부분의 경우 키에 대한 데이터의 검색 삽입, 삭제가 매우빠름직접 ㅈ접근이 가능 : 키를 통해 데이터에 바로 접근할 수 있어 검색 속도가 매우 빠릅니다 단점공간효율성 : 일반적으로 충돌을 줄이기 위해 많은 메모리 공간을 필요로 합니다순서 유지 불가 : 데이터의 순서를 유지하지 않습니다. 키의 순차적인 처리가 필요할 때..
-
면접카타 4일차javascript 2024. 4. 23. 10:20
객체지향 프로그래밍이란? 객체지향 프로그래밍은 컴퓨터 프로그랭의 한 패러다임으로 , 실제 세계의 사물을 모델링하여 소프트웨어를 개발하는 방법. 객체라는 기본 단위로 구성하고, 이 객체들이 상호 작용하면서 전체 프로그램이ㅏ 동작하도록 설계 객체 지향 프로그래밍의 주요 특징 1. 캡슐화 : 객체의 데이터와 그 데이터를 처리하는 함수를 하나의 단위로 묶는것 이는 데이터의 직접적인 접근을 제한, 메소드를 통해서만 데이터를 조작할수 있습니다 2. 상속 : 한 클래스의 특성을 다른 클래스가 물려받을수 잇는기능 이를 통해 기존 코드의 재사용성을 높이고, 유지 보수의 효율성을 증가시킬수 있음 3. 다형성 같은 이름의 메소드가 다른 클래스에서 다른 동작을 하는것을 의미 이를 통해 인터페이스의 일관성을 유지하며ㅛㄴ서도 다..
-
코드카타2javascript 2024. 4. 19. 21:02
그래프와 트리를 설명하고 둘의 차이를 설명하시오 그래프 그래프는 노드들과 이들을 연결하는 간선들로 구성된 집합 방향성:그래프는 방향서이 잇는 엣지와 방향성이 없는 엣지를 모두 포함 사이클 : 그래프는 사이클을 포함할수 있다. 즉 노드를 시작점으로 하여 엣지를따라 다시 같은 노드로 돌아올수잇다 연결성:그래프는 완전히 연결되어 있지 않을 수 있으며 여러 개의 분리된 부분 그래프로 구성될 수 잇습니다 트리 트리는 그래프의 한 유형으로, 계층적인 구조를 가지며 특정 규칙을 따릅니다 방향성 : 트리는 일반적으로 방향성이 있는 구조, 부모에서 자식 노드로 단방향 사이클: 사이클x 루트 노드 : 모든 트리는 하나의 루트 노드를 가지며 이 루트 노드는 트리의 최상위 위치합니다 부모-자식 관계 : 각 노드는 최대 하나의..
-
면접카타javascript 2024. 4. 17. 21:34
promise가 뭔지 설명하세요 JavaScript에서 Promise는 비동기 연산의 최종 완료 또는 실패를 나타내는 객체입니다. 주로 시간이 걸리는 작업을 다룰 때 사용되며, 이 객체를 통해 비동기 작업의 결과를 후속 코드에 쉽게 연결할 수 있습니다. 예를 들어, 서버에서 데이터를 가져오거나 파일 시스템에서 파일을 읽는 작업 등이 있습니다. Promise는 세 가지 상태를 가질 수 있습니다: Pending(대기 중): 비동기 작업이 아직 완료되지 않은 상태입니다. Fulfilled(이행됨): 비동기 작업이 성공적으로 완료되어 Promise가 결과 값을 반환한 상태입니다. Rejected(거부됨): 비동기 작업이 실패한 상태로 Promise가 오류를 반환한 상태입니다. Promise를 생성할 때는 new..