본문 바로가기

반응형

Etc

[ChatGPT] Chat completions API를 활용한 질문에 최적화된 ai 답장 기능(프롬프트 개선) Chat completions Api Chat completions API 는 openAi의 gpt-3.5-turbo 모델 기반의 api 이다. 이 API는 텍스트 기반의 자연어 이해, 생성 기능을 제공하며, 자연스러운 대화를 생성할 수 있는 인공지능 챗봇을 만드는데 주로 활용된다. openai.com 으로 접속하여 일반적으로 chatGPT 라고 칭하여 사용하는 기능을 api 형태로 사용한다고 생각하면 된다. 해당 api 를 사용하는것이 openai 채팅창을 통해 사용하는것 보다 이점은 다음과 같다. 자체 시스템에 사용자에게 적절한 질문만을 할 수 있도록 제약을통해 원하는 분야의 응답만 받도록 커스텀 제작 가능 유저의 첫번째 질문임에도 이전 대화를 임의로 작성하여 다음 대화의 답을 어느정도 유도 가능 s.. 더보기
[SQLD] 2과목 정리 - SQL 최적화의 원리 옵티마이저와 실행 계획 옵티마이저 SQL을 작성하여 실행할 때 SQL을 어떻게 실행할 것인지를 계획 실행계획을 수립하고 SQL 실행하는 DBMS의 소프트웨어 SQL의 성능에 중요한 역할 옵티마이저 특징 데이터 딕셔너리에 있는 오브젝트 통계, 시스템 통계 등의 정보를 사용해 예상 비용 산정 여러 개의 실행 계획 중 최저비용을 가지고 있는 계획을 선택해 SQL을 실행 옵티마이저의 필요성 두 개의 크기가 다른 테이블 A, B 에서(A > B) 동일한 행을 조회 하는 차는 연산이 있을 때 A 테이블의 행을 먼저 읽고 B테이블에 동일한 행을 찾게될 때 보다 B 테이블의 행을 먼저 읽고 A테이블에 동일한 행을 찾으면 결과는 동일하지만 불필요한 비교 횟수를 줄일 수 있게 된다. 이 때 옵티마이저가 비효율적인 실행 계.. 더보기
[SQLD] 1과목 정리 - 데이터 모델과 성능 정규화 데이터의 일관성, 최소한의 중복, 최대한의 유연성을 위한 방법으로 데이터를 분해하는 과정 데이터 중복을 제거하고 데이터 모델의 독립성을 확보하기 위한 방법 테이블을 분해해 데이터 중복을 제거하기 때문에 데이터 모델의 유연성을 높인다. 비즈니스에 변화가 발생해도 데이터 모델의 변경을 최소화할 수 있다. 제1 정규화부터 제5 정규화까지 있지만 실질적으로 제3 정규화까지만 수행 * 이상 현상 - 정규화를 수행하지 않아 입력, 수정 등에 문제가 발생하는 상황 정규화 절차 제1정규화 속성의 원자성을 확보, 기본키를 설정 함수적 종속성을 통해 기본키를 도출, X가 Y를 함수적으로 종속하고있고 X가 변경될 때 Y도 변경되면 X가 기본키가 된다. 제2정규화 기본키가 2개 이상의 속성으로 이루어진 경우 부분함수종.. 더보기
[SQLD] 1과목 정리 - 데이터 모델링 데이터 모델링 현실 세계를 DB로 표현하기 위해 추상화 데이터 모델링을 하기 위해 고객과의 의사소통을 통해 고객의 업무 프로세스를 이해 필요 고객의 업무 프로세스를 이해한 후 데이터 모델링 표기법을 사용해 모델링 고객이 쉽게 이해할 수 있도록 복잡하지 않게 모델링 고객의 업무 프로세스를 추상화하고, 소프트웨어를 분석.설계하며 점점 상세 고객의 비즈니스 프로세스를 이해하고 비즈니스 프로세스의 규칙을 정의 -> 정의된 비즈니스 규칙을 데이터 모델로 표현 데이터 모델링의 특징 추상화 - 현실 세계를 간략하게 표현, 공통적인 특징을 찾고 간략하게 표현 단순화 - 복잡한 문제를 피하고 이해하기 쉽게 표현 명확화 - 의미적 해석이 모호하지 않고 한 가지 의미만 가지며 명확한 해석 필요 데이터 모델링 단계 개념적 모.. 더보기
[클린 아키텍처] 프로그래밍 패러다임 패러다임 - 패러다임이란 프로그래밍을 하는 방법 - 어떤 프로그래밍 구조를 사용할지, 언제 이 구조를 사용해야하는지를 결정 - 언어에 독립적 - 구조적, 객체 지향, 함수형 프로그래밍 세 종류가 있다. 구조적 프로그래밍 - 초기 프로그래밍은 많은 세부상들을 검증을 하기 위해 작은 단위로 분해하려했다. - 하지만 goto 문장이 모듈을 더 작은 단위로 재귀적으로 분해하는 과정에 방해가 되는 경우가 있다는것을 발견 - 그 중 if, then, else, do, while 과 같은 분기와 반복 제어문은 검증가능한 단위로 재귀적으로 세분화 - 즉 거대한 기획에 대해 고수준의 기능들로 분해하고 다시 각 기능을 저수준의 함수들로 분해할 수 있게 되었다. - 또한 세분화된 기능들의 테스트가 용이해졌다. 객체 지향 프.. 더보기
[클린 아키텍처] 아키텍처와 설계 아키텍처와 설계 둘 사이에는 차이가 없다고 볼 수 있다. 아키텍처가 조금 더 거시적인 관점, 설계는 미시적인 관점 아키텍처 - 저수준의 세부사항과는 분리된 고수준의 무언가를 가르킬 때 사용 설계 - 저수준의 구조 또는 결정사항 등을 의미 소프트웨어에서 설계 - 저수준의 세부사항과 고수준의 구조는 모두 소프트웨어의 전체 설계의 구성요소 - 필요한 시스템을 만들고 유지보수하는데 투입되는 인력 최소화를 목표 - 비용이 낮고 시스템 수명이 다할 때까지 낮게 유지할 수 있다면 좋은 설계 - 새로운 기능이 출시할 때마다 비용이 증가하면 나쁜 설계 소프트웨어 시스템의 두 가지 가치 행위 - 이해관계자의 기능 명세서나 요구사항 문서를 구체화 하도록 코드를 작성 - 이를 위해 이해관계자는 프로그래머를 고용 - 기능이 있.. 더보기
SSL이란?, SSL과 TLS 정의 및 차이 SSL 원래 웹에서의 데이터는 가로채면 누구나 읽을 수 있는 일반 텍스트 형태로 전송 되었다. 이러한 문제때문에 인터넷 통신의 개인정보 보호, 인증, 데이터 무결성을 보장하기 위해 Netscape가 1995년 처음으로 SSL을 개발하였다. SSL(Secure Scokets Layer)은 암호화 기반 인터넷 보안 프로토콜이다. 전달되는 모든 데이터를 암호화하고 특정한 유형의 사이버 공격도 차단한다. SSL은 TLS(Transport Layer Security) 암호화의 전신이기도 한다. SSl/TLS 를 사용하는 웹사이트 URL은 HTTP 대신 HTTPS가 사용된다. SSL은 1996년 SSL 3.0 이후 업데이트되지 않았으며, 앞으로 사라지게 될 것으로 여기지고 있다. 또한 알려진 취약성이 여러가지 있으.. 더보기

반응형