분류 전체보기(115)
-
[Node.js_4기] 최종프로젝트 2주차_GPT파인튜닝 (24/04/01)
목차 1. 문제 2. 시도 3. 결과 4. 배운점 1. 문제 문제라기 보다는 진행사항. GPT로 프롬프트 작업하고, 원하는 형식에 맞게 응답 받는것 까지는 성공. 이제 본격적으로 학습시키기 시작 2. 시도 데이터 찾기 - AI 데이터찾기 - AI-Hub (aihub.or.kr) 데이터셋은 위의 링크. 일단은 xlsx파일에 담긴 400여종의 식품으로 영양소, 칼로리 등을 받는것 까지 1차 목표로 진행. 3. 결과 담당 튜터님과의 면담 - (일단 텍스트로 진행하고, 추후에 이미지 학습을 시킬 예정입니다. 그런데 용량이 커서 고민입니다.) 저희 파인튜닝에 기본 5테라씩 씁니다 이미지만 아마 데이터가 부족할거에요 여러 사이트에서 크롤링도 하고 챗 지피티로 이미지 재생성해서 유사 이미지 여러개로 더 만들어서 양 ..
2024.04.01 -
[면접 준비] 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