공부(111)
-
[면접 준비] ORM을 사용하면서 쿼리가 복잡해지는 경우에는 어떻게 해결하는게 좋을까요? (24/04/01)
ORM 데이터베이스와 객체 지향 프로그래밍 언어 간의 호환되지 않는 데이터를 변환하는 프로그래밍 기법으로, db와의 작업을 보다 객체지향적으로 처리할 수 있지만, 쿼리가 복잡해질 경우 성능 문제가 발생할 수 있습니다. 대응 방법 쿼리 최적화 ORM으로 생성된 쿼리를 분석하고, 필요한 경우 최적화를 진행합니다. 불필요한 join, 서브쿼리를 제거하고, 인덱스를 활용하는 등의 작업을 수행할 수 있습니다. 로우 쿼리 사용 로우 레벨 쿼리(SQL문)를 사용하는 것이 더육 효율적일 수 있다. 복잡한 쿼리의 경우 ORM을 통한 처리보다 로우 쿼리를 작성하는 것이 성능적으로 더 좋을 수 있습니다, 배치 처리 여러개의 DB작업을 한 번에 처리하여 네트워크 오버헤드를 줄일 수 있습니다. 캐싱 자주 사용되는 데이터나 쿼리..
2024.04.01 -
[면접 준비] 대용량 트래픽 발생 시 어떻게 대응해야 하나요? (24/04/01)
대용량 트래픽 웹사이트에 대한 갑작스러운 수요증가를 의미하며, 사이트 성능 저하나 다운타임을 유발할 수 있습니다. 대응 방법 스케일 아웃 (scale out) : 로드밸런서를 사용해 서버자원을 추가해 트래픽 부하를 분산시키는 방법 입니다. 캐싱 : 정적 콘텐츠를 캐싱하여 서버 부하를 줄이고 응답 속도를 개선합니다. CDN(content deliver network)을 사용해 사용자와 가까운 서버에서 콘텐츠를 전송함으로서 웹 트래픽을 줄일 수도 있습니다. 코드 최적화 : 코드를 개선합니다. 비효율적인 코드는 서버 부하를 높일 수 있습니다. DB최적화 : 쿼리를 최적화하여 더 빠르고 효율적으로 실행되게 합니다. 인덱스 추가, 쿼리 재구성 등의 방법이 있습니다. 모니터링 및 스케일 인(scale in) : 실..
2024.04.01 -
[면접 준비] Primary Key, Foreign Key에 대해 설명해주세요 (24/03/29)
Primary Key 기본키는 관계형 데이터베이스 테이블에서 각 레코드를 고유하게 식별하는데 사용되는 필드 또는 필드의 집합 입니다. 테이블 내에서 각 레코드는 오직 하나의 Primary Key 값을 가져야 합니다. (user테이블의 경우, id) Primary Key는 테이블에서 기본 식별자 역할을 하며, 빠른 검색을 가능케 합니다. 테이블 생성 시 지정되며, 변경이 어렵습니다. Foreign Key 외래키는 관계형 데이터베이스 테이블에서 한 테이블의 필드로 다른 테이블의 Primary Key 값을 가리키는데 사용되는 필드 입니다. Foreing Key를 사용하여 여러 테이블을 연결하고, 데이터간의 관계를 정의할 수 있다. 이를 통해 데이터의 무결성을 유지하고 참조 무결성을 강제할 수 있다. 기본 키외..
2024.03.29 -
[면접 준비] RDBMS의 정규화에 대해 설명해주세요 (24/03/29)
RDBMS(관계형 데이터베이스 관리 시스템)의 정규화 데이터베이스 설계에서 데이터의 중복을 제거하고 최소화 하여 더욱 효율적으로 저장하기 위한 과정입니다. 이를 통하여 데이터의 일관성, 유지보수성, 확장성 등을 개선하여 데이터의 일관성과 무결성을 유지할수 있습니다. 정규화 단계 제 1 정규화 (필드값 중복 제거) 각 테이블이 하나의 원자 값으로만 구성되도록 합니다. 즉, 필드(열)의 중복을 제거합니다. 제 2 정규화 (부분 함수 종속 제거) 부분적 종속성이란 기본 키가 아닌 부분집합의 열이 기본 키에 종속되는 경우를 말합니다. 기본 키가 아닌 모든 속성이 기본 키에 완전 함수 종속 되어야 합니다. 제 3 정규화 (이행적 함수 종속 제거) 이행적 종속성이란 A -> B, B -> C의 관계에서 A -> C..
2024.03.29 -
[Node.js_4기] TIL : OpenAI_v4에서 생긴 버전 호환성 문제 (24/03/28)
목차 1. 학습 내용 2. 내용 정리 3. 예제 4. 생각 정리 1. 학습 내용 검색을 통해 찾은 다음과 같은 openai.config.ts import { Injectable } from '@nestjs/common'; import { ConfigService } from '@nestjs/config'; import { JwtService } from '@nestjs/jwt'; import { Configuration, OpenAIApi, ChatCompletionRequestMessage } from 'openai'; @Injectable() export class GptService { private readonly openAiApi: OpenAIApi; constructor( private con..
2024.03.28 -
[HTTP] GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요. (24/03/2
목차 1. 질문 2. 내용 정리 3. 답변 1. 질문 GET, POST의 개념과 함께 데이터 흐름에 대해서 설명해주세요. 2. 내용 정리 GET 방식 GET은 요청하는 데이터가 HTTP URL의 일부로 포함되어 전송됩니다. 리소스를 조회할 때 사용되는 메서드 입니다. 사용자가 브라우저에서 URL을 입력하거나 링크를 클릭 브라우저가 URL에 포함된 파라미터와 함께 서버에 요청을 보냄 서버가 요청을 처리하고 브라우저에게 응답을 보냄 브라우저가 서버의 응답을 받아 사용자에게 표시 POST 방식 POST는 요청 데이터를 HTTP 메시지 본문에 담아 전송하며, 서버의 상태를 변경하거나 데이터를 추가하는 작업에 사용됩니다. 사용자가 웹 폼에 데이터를 입력하고 제출 버튼을 클릭(body로 메시지를 보낸다) 브라우저가..
2024.03.28