공부(111)
-
[면접준비] 자료구조 (24/04/15)
Array와 Linked List의 비교Array정적 자료구조. 특정 크기의 연속적인 메모리 공간에 데이터를 저장하는 자료구조.생성시 크기가 정해지며, 동적으로 변경하기 어렵다.연결된 메모리 주소를 할당 받기 때문에 index를 가지게 되고, 임의 접근이 가능하다는 장점을 가진다.index를 가지기 때문에 접근과 탐색이 용이하다.크기를 미리 정했기 때문에 수정이 불가능하며, 정해진 크기 이상의 데이터를 저장할 수 없다. Linked List동적 자료구조. 크기를 정할 필요도 없으며, 메모리 주소또한 연속되지 않는다.데이터와 다음 데이터를 가리키는 주소가 담긴 노드(Node)를 가지고 노드끼리 연결된 형태이다.크기를 정해놓지 않았기 때문에 크기 제한이 없으며, 데이터 추가 삭제가 자유롭다.연속적인 메모리 ..
2024.04.15 -
[Node.js_4기] 최종 프로젝트 3주차_day_5 (24/04/12)
24/04/11 튜터님과의 면담 1. 면접카타 : 면접 연습이다. 면접 본다 생각하고 임해주시면 좋겠다. 2. node.js : 잘 모르더라? -> 공부좀 하시오... (node.js가 뭔지 설명해보라) node.js의 장점 -> 그래서 이걸 쓴다. (스토리텔링) / 단점은 어떻게 하면 커버칠 수 있다. "왜" -> 중요하다.(express를 쓰는 이유, nest를 쓰는 이유 처럼.) 내 논리와, 이유가 중요하다. keyword : V8엔진(+libUV) = 브라우저 외에서 js를 사용할 수 있는 런타임 환경을 셋팅 libUV : 비동기 I/O처리 (이벤트 루프) -> 공식문서 보시길. / 근데 왜 내장 스레드가 4개? 빠른 I/O, nonblocking, 싱글 스레드 -> "키워드"와 연결지어 설명 3..
2024.04.12 -
[면접준비] 정렬 알고리즘을 설명해 주세요. (24/04/11)
선택 정렬(Selection Sort) 특징: 배열의 각 위치에 대해 나머지 부분에서 최소값을 찾아 위치를 교환한다. 장점: 구현이 간단하다. 단점: 시간 복잡도 O(n^2), 대규모 데이터셋에 비효율적이다. 메모리 사용: 추가 메모리 사용이 거의 없음 (In-place). function selectionSort(arr) { for (let i = 0; i < arr.length; i++) { let minIdx = i; for (let j = i + 1; j < arr.length; j++) { if (arr[j] < arr[minIdx]) { minIdx = j; } } [arr[i], arr[minIdx]] = [arr[minIdx], arr[i]]; } return arr; } 버블 정렬(Bub..
2024.04.11 -
[면접준비] Array, LinkedList에 대해 설명해주시고 각각 어떻게 사용하는지 말씀해주세요. (24/04/08)
Array 정의 고정된 크기의 연속적인 메모리 공간에 원소들을 저장하는 자료구조 특징 고정된 크기 : 생성시 크기가 정해지며, 이후에 크기를 동적으로 변경하기는 어렵다. 인덱싱 : 인덱스를 사용해 접근, 접근에 O(1)시간이 걸림. 메모리 사용 : 연속적인 메모리 공간을 사용하므로 메모리 관리에 용이함. LinkedList 정의 노드들의 집함. 각 노드는 데이터와 데이터를 가리키는 포인터로 구성되어 있음. 특징 동적 크기 : 크기를 동적으로 변경할 수 있기 때문에 노드를 추가하거나 삭제하면서 크기 조절 가능. 포인터 : 링크드 리스트에서 각 노드들은 다음 노드를 가리키는 포인터를 포함하고 있다. 메모리 사용 : 비연속적인 메모리 공간을 사용한다. 답변 Array와 LinkedList는 데이터를 저장하는 ..
2024.04.08 -
[면접준비] NoSQL과 RDBMS의 특징과 차이점에 대해서 장, 단점을 들어 설명해주세요. (24/04/08)
NoSQL 특징 유연성 : 스키마 선언 없이 필드 추가, 삭제가 자유로운 schema-less 구조 확장성 : 스케일 아웃에 의한 서버 확장 용이 고성능 : 대용량 데이터를 처리하는 성능이 뛰어남 가용성 : 여러 백업 서버 구성이 가능하여 장애 발생 시에도 무중단 서비스 가능 장점 수직 및 수평적 확장(샤딩)이 가능하므로 데이터베이스가 어플이 발생시키는 모든 CRUD 처리 가능. 데이터가 어플이 필요로 하는 형식으로 저장되며, 이로 인해 읽어오는 속도가 빠르다. 비구조화된 데이터 처리와 대량의 분산 데이터 처리에 효율적임. 필요에 따라 스키마를 정의할수도 있다. 단점 데이터베이스 일관성에 약하다. 일관성을 가용성, 분할 용인, 속도와 맞바꾸었다. 복잡한 쿼리는 지원하지 않을 수 있다. BASE특성 RDB..
2024.04.08 -
[Node.js_4기] 최종프로젝트 2주차_day5_부하테스트와 정신나갈것 같은 api 요청 한계 (24/04/07)
목차 1. 문제 2. 시도 3. 결과 4. 배운점 1. 문제 이전에 작성했던 코드가 artillery 시나리오 테스트를 전혀 통과하지 못하는 문제 발생. public async processImageAndManageDiet( processImageAndManageDietDto: ProcessImageAndManageDietDto, ): Promise { const imageText = await imageToText(this.openai, { prompt: processImageAndManageDietDto.imageUrl, }); const csvDataArray = await this.readLocalCsv(); const csvDataString = JSON.stringify(csvDataArray..
2024.04.07