All
8 posts
[#5] AWS 전체 구조와 서비스

컴퓨팅 서비스 용어 정리 : 사용자가 관리하는 시설 내에 서버 등의 기기를 설치해 운용하는 환경. 기기 구매나 인건비 등과 같은 초기 투자 비용이 크고 구축에 시간이 소요돼 준비 기간이 길다는 단점이 있지만, 자유롭게 이용 가능하고 형태에 맞게 자유롭게 구성할 수 있다는 장점이 있음 : 클라우드 서비스 제공가작 서버 등의 기기를 준비하고 거기에 구축된 가상 서버나 응용 프로그램 등을 사용자에게 제공하여 이용료를 받는 형태 서비스 제공 형태에 따른 클라우드 분류 SaaS(Software as a Service) : 응용 프로그램을 서비스로 제공하는 형태 e.g: Gmail, Office365, Zoom 등 PaaS(Platform as a Service) : 응용 프로그램을 만들기 위한 기능을 서비스로 제공. 클라우드 서비스 제공자가 OS 및 미들웨어까지 관리하고 필수 기능만 사용자에게 제공 e.g: RDS, DynamoDB, Lambda 등 IaaS(Infrastructure …

[#3] 일정 관리

우리 팀의 일정 관리 방식 매주 월요일 오전 9시에 진행하는 스크럼 회의에서 한 주 동안의 공통 일정을 에 정리한다. e.g: 공통 일정은 산출물 작성, 회의, 기업 미팅 등이 있다. 이후 남은 시간에는 개인 업무를 1시간 단위로 나눠 정리한다. 정리한 일정을 기반으로 에 등록한다. Jira 컨벤션 Epic 공통 업무 혹은 도메인 e.g: 회의, 발표, 로드맵, 산출물 등 Story 프론트엔드는 페이지 단위로 나눈다. e.g: 메인 페이지, 커뮤니티 상세 페이지 등 백엔드는 도메인별 단계로 나눈다. 챗봇 크롤링, 챗봇 api 설계 등 Task [스토리명] 상세 업무 와 같은 형식으로 등록 스토리 별 task를 확인할 수 있도록 링크 e.g: [API 설계] 로드맵 전체 조회 API를 설계합니다. jira

[#2] 챗봇 설계하기

chatGPT는 학습한 데이터를 기반으로 질문에 가장 근접한 답변을 내놓지만, 이에 대한 진위를 매번 정확하게 확인하지 못하기 때문에 현상이 발생하기도 한다. 할루시네이션이란 훈련된 데이터나 현실에 근거하지 않은 출력을 생성하는 경우를 말한다. 여기에는 잘못된 주장, 존재하지 않는 사실 생성, 처리하는 정보의 맥락이나 의미를 오해하거나 잘못 표현하는 것이 포함되기도 한다. (출처 : 한국강사신문) 이러한 문제를 극복하고 답변의 정확을 제고하기 위해선 질문에 대한 답변을 제공하기 전에 인터넷이나 믿을만한 소스에서 검색하고 찾아낸 후에 그것을 기반으로 답변을 하면된다. 이 아이디어를 기반으로 한 구조가 이다. 실행 순서는 다음과 같다. Prompt + Query: 서비스를 사용하는 사용자의 질문과 그 질문을 어떤식으로 받아들일지에 대해 개발자나 구성하는 사람이 미리 짜놓은 LLM(Large Language Model) 프롬프트 Query: 해당 유저가 검색 검색 결과로 나온 유관 …

[#1] VectorDB

VectorDB 기반 application 구조 VectorDB의 파이프라인을 간단히 정리하자면 다음과 같다. 우선, (비정형 데이터)를 의미를 가진 형상()인 embedding vector로 변환하는 과정()을 거친다. 이후에 embedding을 통해 변환한 vector들을 에 저장하고, 에서는 이를 사용 목적에 맞게 사용한다. Text Embedding 이란? 기존의 비정형 데이터 형태의 자연어 데이터를 n차원의 수치형 벡터로 표상화 시킨 데이터이다. 단순히 텍스트 -> 숫자 매핑이 아니라, 해당 언어가 가지는 의미적 컨텍스트를 나타낸다.

MySQL vs mongoDB

목차 vs vs 기존에 사용하던 RDBMS인 MySQL과 NoSQL인 mongoDB는 어떤 차이가 있는지에 대해 정리해보고자 한다. MySQL Oracle Corporation에서 만든 Relational Database Management System 관계형 데이터베이스 관리 시스템(RDBMS) 데이터베이스 액세스를 위해 structured query language(SQL)을 사용하여 테이블 형태로 데이터를 저장 데이터에 접근할 때, 을 통해 다수의 테이블을 병합 데이터베이스 스키마를 미리 정의하고, 테이블에서 필드 사이의 관계를 제어하는 규칙을 설정 ACID 기반의 트랜잭션으로 데이터의 일관성을 보장하고, 복잡한 트랜잭션 처리를 안전하게 수행할 수 있도록 지원 MongoDB 데이터를 JSON-like documents로 저장하는 NoSQL 데이터베이스 document는 관계된 정보를 함께 저장하고 을 사용하여 접근 document별로 필드는 다를 수 있으며 do…

mongoDB vs Redis

mongoDB에 대해 알아보던 도중 같은 noSQL인 Redis와의 차이는 무엇일지 궁금해 찾아본 내용들을 정리해보고자 한다. 차이점을 표로 간단히 정리하자면 다음과 같다. mongoDB는 메모리맵 형태의 파일 엔진 db이기 때문에 메모리에 의존적이라 메모리 크기가 성능을 좌우하며 메모리를 넘어서는 경우 성능이 급격히 저하된다. 참고 mongoDB 공식 문서 - mongoDB vs Redis

[#1] mongoDB 도입기

들어가기에 앞서 프로젝트의 기획 배경은 다음과 같다. 기존 사이트의 직관적이지 못한 UI 가장 인기 있는 영상 파악의 어려움 나에게 적합한 지, 역할(직무)별로 적합한 지 알기 어려움 대부분이 영어로 되어 있어, 제목 또는 소개를 통해 컨텐츠가 어떤 내용을 내포하는지 알기 어려움 컨텐츠 이용 혹은 영상을 들으며 생기는 질문을 실시간으로 대응해줄 수 있는 시스템의 부재 기획 배경을 바탕으로 우리 팀은 직관적인 페이지로 사용자들의 접근성 낮추고, 일회성 학습이 아닌, 동기를 부여하여 사이트를 계속 방문 하게끔 하는 학습 플랫폼을 기획하게 되었다. 이 목표를 위해 우리 팀은 다음과 같은 기능을 제공하기로 하였다. 현재 내 상황에 맞춘 실시간으로 궁금증을 해결할 수 있는 강의 검색 시 오타 교정 및 자동완성 기능을 통한 QNA, 강의 소개, 서비스 소개 DB를 연동한 RAG 시스템으로 로드맵 및 강의 현황 대시보드 기능으로 mongoDB를 도입해보자꾸나 우리 서비스는 크롤링 한 …

객체지향 5대 원칙 SOLID

SOLID (객체 지향 설계) 시간이 지나도 유지 보수와 확장이 쉬운 시스템을 만들고자 할 때 이 원칙들을 함께 적용 가능 단일 책임 원칙 (SRP; Single Responsiblity Principle) 한 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화 해야한다. 어떤 클래스나 모듈은 변경하려는 단 하나 이유만을 가져야 한다. 개방-폐쇄 원칙 (OCP; Open-Closed Principle) SW의 구성 요소 (모듈, 컴포넌트, 클래스, 메서드)는 확장에는 열려있고 변경에는 닫혀있어야 한다. OCP를 가능하게 하는 중요 매커니즘은 추상화와 다형성이다. 새로운 기능이 추가되는 경우, 기존에 제공하던 클래스(또는 메서드)를 수정하는 것이 아니라 새로운 클래스(또는 메서드)를 추가해서 기능을 확장한다. 리스코프 치환 원칙 (LSP; Liskov Subsitution Principle) 서브 클래스는 언제나 슈퍼 클래스를 대체할 수 있어야 한다. 슈퍼 클래스가 들…