전체 글(105)
-
트러블 슈팅 (스케줄 코드관련)
💡프로젝트 진행중 트러블슈팅 * 상황 - 스케줄 관리 코드 작성중 substoryhistory 테이블에 담긴 nextPayAt 날짜 하루 전날 알람을 보내주기 위해 알람일을 설정하던중 nextPayAt 날짜와 tomorrow 변수가 일치할 하도록 코드를 작성했는 데 1. 문제 데이터베이스상 내일이 결제일인 데이터가 있는 데 ' 내일인 결제이력 '이 빈 배열로 나오는 상황 확인.const tomorrow = new Date(); tomorrow.setDate(tomorrow.getDate() + 1); // nextPayAt: 결제날짜 const subscriptionHistories = await this.subscriptionHistoriesRepository.find({..
2024.08.02 -
TIL ( 스택과 큐 )
💡스택(Stack)과 큐(Queue) 기본 개념 • 스택 (Stack)- 스택은 LIFO(Last In, First Out) 구조로, 가장 나중에 들어온 데이터가 가장 먼저 나가는 구조입니다. [ 주요 연산 ]- push: 스택의 맨 위에 요소를 추가합니다.- pop: 스택의 맨 위에서 요소를 제거하고 반환합니다.- peek: 스택의 맨 위에 있는 요소를 반환하지만 제거하지는 않습니다. • 큐 (Queue)- 정의: 큐는 FIFO(First In, First Out) 구조로, 가장 먼저 들어온 데이터가 가장 먼저 나가는 구조입니다. [ 주요 연산 ]- enqueue: 큐의 맨 뒤에 요소를 추가합니다.- dequeue: 큐의 맨 앞에서 요소를 제거하고 반환합니다.- front: 큐의 맨 앞에 있는 ..
2024.08.01 -
TIL ( 3차 모의면접 )
💡 3차 모의면접 질문과 답변 & 피드백 첫 번째 질문 • Async/Await & Promise 에 대해 설명하고 차이를 알려주세요. - Promise는 비동기 작업의 완료 또는 실패를 나타내는 객체로 비동기 작업을 쉽게 처리 할 수 있도록 도입되었습니다. promise 객체는 pending, fulfilled, rejected 3가지 상태를 가지고 있으며, 작업이 성공적으로 완료했을 경우 실행할 콜백을 정의하는 then과 실패했을때 실행할 콜백을 정의하는 catch, 성공여부와 상관없이 실행할 콜백을 정의하는 finally 세가지 메서드를 제공합니다.이러한 메서드를 통해 비동기작업을 순차적으로 실행시킬수 있습니다. - Async/Await은 비동기 작업을 쉽게 작성하고 관리할 수 있도록 하는 문법..
2024.07.31 -
TIL ( nodejs는 싱글스레드인가에 대하여 )
💡nodejs는 싱글스레드인가에 대하여 node.js node.js는 브라우저가 아닌 환경에서도 자바스크립트를 돌릴 수 있는 런타임 환경으로, 스레드를 활용하지 않고 비동기 I/O를 이용한 방식으로 고안 되었다. node.js는 싱글스레드인가? - node.js는 싱글스레드가 아니지만 node.js에서 자바스크립트 부분은 단일스레드 환경에서 돌아간다.- 그렇기때문에 자바스크립트 부분은 단일스레드이지만, node.js에서 자바스크립트를 제외한 부분은 멀티스레드인 것이다. node.js에서의 자바스크립트 부분 - 비동기 작업 수행시 js는 이벤트 루프에 작업을 던지는 역할을 하므로 논블로킹으로 계속 돌아갈 수 있다. node.js에서의 자바스크립트 이외의 부분 - 자바스크립트 이외의 부분은 멀티..
2024.07.30 -
TIL ( 해시테이블과 이진검색트리 )
📑 해시 테이블 (Hash Table) 의의 해시 테이블은 키-값 쌍을 저장하는 데이터 구조로, 해시 함수를 사용하여 키를 해시 값으로 변환하고, 이를 기반으로 데이터를 저장한다. 장점 - 빠른 검색 속도:평균적으로 O(1) 시간 복잡도로 데이터를 검색할 수 있어 매우 빠르다- 직관적인 키-값 쌍 저장: 데이터 삽입 및 검색이 키를 통해 직관적으로 이루어져 사용하기 쉽다.- 유연한 크기 조정: 데이터 수가 증가하면 해시 테이블의 크기를 동적으로 조정할 수 있다. ( 💡 O(1)은 "상수 시간"이라고 하며, O(1) 시간 복잡도는 어떤 작업을 하는 데 걸리는 시간이 항상 일정하다는 의미한다. 입력 데이터의 크기와는 상관없이 같은 시간에 작업이 끝남을 의미한다. )단점 - 충돌 처리: 두 개 이상의 키..
2024.07.29 -
TIL ( 깊은 복사와 얕은 복사 & jwt )
💡면접카타 질의응답 깊은 복사와 얕은 복사의 차이와 구현하는 방법 깊은 복사와 얕은 복사는 객체를 복사하는 방식에 따라 다르다. 얕은 복사는 객체의 최상위 속성만 복사하고, 중첩된 객체들은 원본 객체와 참조를 공유한다. 그렇기때문에 복사된 객체의 중첩된 객체를 변경하면 원본 객체의 중첩된 객체도 영향을 받는다. 얕은 복사 방법으로는 object.assign() 과 Spread Operator 를 사용합니다. 깊은 복사는 객체의 모든 속성을 재귀적으로 복사하여 중첩되 객체도 새로운 객체로 생성한다.그렇기 때문에 객체를 변경해도 원본 객체는 변경되지 않는다. 깊은 복사의 방법으로는 JSON.parse() 와 JSON.stringify() 를 사용하는데 이 방법은 함수,undefinded, Symbol..
2024.07.26