전체 글87 llama 사용법 Feat: ollama EP : 1 llama를 도입하게 되었고 llama 를 원하는대로 커스텀하는데 꽤나 애를 먹었기 때문에 개발일지를 작성할 겸 설명서를 작성해봅니다 Meta의 llama는 Meta 홈페이지에서 llama를 다운로드 하려고 하면 한국은 다운로드 대상 국가가 아니지만 오픈소스이기 때문에 구할 수 있다면 (ex. Meta 홈페이지 내의 협력사 사이트 ) 사용해도 무관하다. 현재 ollama 사용법의 블로그는 많지만 EC2 인스턴스 까지의 과정이 상세히 작성된 블로그를 보기가 힘들어 작성합니다. ollama를 이용해 llama를 구동하고 EC2 인스턴스에서 구동하는 방법을 알아보자. 일단 ollama를 다운 받는다. https://ollama.com/download Download Ollama on macOSDownload.. 2025. 2. 11. RESTful API 에 대해서.. 나는 RESTful API가 무엇이냐! 라고 질문한다면 RESTful API는 이것이다! 라고 명쾌하게 답을 할 수 있지 않다. 하지만 어떤것이 RESTful API에 부합하는지는 얼추 알고 있다고 생각했지만 그 생각이 잘못되었다는 사실을 깨달았다. RESTful API 에 대해서 구글에 검색을 한다면 가장 먼저 반겨주는 것이 aws의 설명이다, 처음 개발에 대해서 공부할때는 이 글을 보아도 이해되지 않았지만 이젠 이해가되기 시작했다. 우연한 계기로 RESTful API에 대해서 돌아보고 한번 더 찾아보게 되었을때 REST에 대한 제약 조건을 상세히 들여다보게 되었고 눈여겨보지 않았던 제약조건을 찾아보게 되었다. aws 홈페이지에서는 한국어를 지원해주기 때문에 한국어로만 보고 판단하였지만 무언가 설명이 .. 2023. 11. 16. NodeJS는 논블로킹 모델이지만 asnyc/await을 사용하면 블로킹이 되는 것이 아닌가요? Node.js는 기본적으로 싱글스레드 논블로킹 모델이다. 하지만 asnyc/await 함수를 사용하게되면 블로킹 처리가 되는것이 아닌가요? 라는 질문을 받았을때 멍해졌다... 무엇이 맞는건지 블로킹 처리로 봐야하는건지, Node.js는 논블로킹 모델이 맞는데... 내가 잘못알고 있는것인가? Node.js가 블로킹 모델인가? 뭐라 대답해야 하는것인지 하나도 생각이 나지 않았고 시간과 여유를 가지고 곱씹어 보아도 나는 시원하게 대답하지 못하는 질문이었기 때문에 어떤 대답을 해야 했는지 찾아보았다 async/await은 JavaScript의 비동기 처리를 위한 문법적인 편의성을 제공하는 기능이다. 이를 사용하면 비동기 작업을 동기적으로 작성할 수 있지만, async/await를 사용하는 함수는 비동기 함수이다.. 2023. 6. 29. 데이터베이스 정규화란 데이터베이스 정규화는 데이터베이스 설계 과정 중 데이터를 구조화하고 조작화하는 프로세스이다. 이를 통해 데이터베이스의 성능과 유지보수성을 향상시킬 수 있다. 정규화는 데이터 중복을 최소화하고 일관성,무결성,효율성을 보장하기 위해 데이터를 특정 규칙에 따라 분해하는 과정이다. 관계형 데이터베이스에서 주로 사용되는 정규화 기법은 제1 정규화, 제2 정규화, 제3 정규화 이다. 각각의 정규화 단계는 다음과 같은 목적을 가지고 있다 1. 제1 정규화 중복 데이터를 제거하고 각 열을 원자값(Atomic Value, 하나의 값)을 갖도록 분해한다. 이를 통해 데이터의 중복을 최소화하고 데이터베이스의 일관성을 확보한다. 2. 제2 정규화 제1 정규화를 진행한 테이블이 대해 부분 함수 종속성(Partial Functi.. 2023. 6. 8. 인덱스를 사용하는 경우와 사용하지 않는 경우 인덱스는 데이터베이스에서 데이터를 검색하고 조회하는 데에 사용되는 기술이다 인덱스는 데이터베이스 내의 특정 열(Column) 또는 여러 열(Column)의 값에 대한 정렬된 데이터 구조로서 데이터를 빠르게 찾을 수 있도록 도와준다 인덱스를 사용하는 경우 데이터베이스에서 데이터를 자주 검색하는 경우 특정 열을 기준으로 데이터를 자주 검색하거나 정렬해야 할 때 인덱스를 사용하면 검색 속도가 향상된다. 검색 쿼리의 성능을 개선하여 응답 시간을 단축 시킬 수 있다. 대량의 데이터가 있는 경우 인덱스를 사용하면 데이터베이스가 전체 데이터를 스캔하는 대신 인덱스 구조를 참조하여 원하는 결과를 더 빠르게 찾을 수 있다. 유일한 값을 가져야 하는 경우 특정 열이 유일한 값을 가져야 하는 경우에는 해당 열에 대한 고유 .. 2023. 6. 6. 동시성이란? 동시성(Concurrency)은 동시에 여러 작업을 수행할 수 있는 능력이다 동시성은 한번에 하나의 작업만 처리하는 순차적인 방식과 달리 여러 작업을 동시에 처리할 수 있도록 하는 개념이다 동시성은 실제로 동시에 실행되는 것처럼 보이도록 여러 작업을 교대로 실행하고 관리하는 방식을 의미한다 이러한 작업들은 동시성 컨텍스트 내에서 독립적으로 진행되어야 한다 이때, 동시성을 구현하는 방법은 여러가지가 있다. 1. 멀티 스레딩 스레드(Thread)를 사용하여 여러 작업을 동시에 처리하는 방식이다. 여러 스레드를 동시에 실행시키면 하나의 프로세스에서 여러 작업을 병렬로 처리할 수 있다. 2. 병렬 처리 여러개의 프로세서나 코어를 사용하여 작업을 동시에 처리하는 방식이다. 병렬 처리는 동시성을 달성하기 위한 하나.. 2023. 6. 6. 트랜잭션(Transaction) 이란? 트랜잭션(Transaction)은 데이터베이스에서 수행되는 논리적인 작업의 단위를 말한다. 트랜잭션은 데이터베이스의 일관성과 무결성을 유지하기 위해 사용된다. 일련의 데이터 조작 작업을 묶어서 하나의 작업으로 처리하고 작업이 모두 성공적으로 수행되거나 전혀 수행되지 않는 원자성(Atomicity)을 보장한다. 트랙잭션의 특징 1. 원자성(Atomicity) 트랜잭션은 작업의 단위로서 작업들은 모두 성공적으로 완료되거나 아예 수행되지 않아야 한다. 즉, 트랜잭션 중간에 어떠한 작업도 완료되지 않은 상태로 남지 않아야 한다. 2. 일관성(Consistency) 트랜잭션이 수행되기 전과 수행된 후의 데이터베이스 상태는 일관성이 유지되어야 한다. 트랜잭션이 수행되는 동안에도 데이터의 무결성 조건이 항상 만족되어.. 2023. 6. 5. RDBMS(Relation Database Management System)과 NoSQL(Non-SQL)의 차이점이 무엇인가요? RDBMS와 NoSQL은 데이터를 저장하고 관리하기 위한 다른 종류의 데이터베이스 시스템이다. 이들은 데이터 모델, 스키마, 일관성, 확장성 등 다양한 측면에서 차이가 있다. 1. 데이터 모델 RDBMS RDBMS는 관계형 데이터 모델을 기반으로 한다. 데이터는 테이블(Table) 형태로 구성되며 각 테이블은 레코드(Recode)로 구성된다. 테이블 간에는 관계(RelationShip)를 정의하여 데이터를 관리한다. NoSQL NoSQL은 다양한 데이터 모델을 사용할 수 있다. 주로 키-값(Key-Value), 문서(Document), 열(Column), 그래프(Graph) 등의 모델을 사용합니다. 데이터는 스키마 없이 자유롭게 저장될 수 있다. 2. 스키마 RDBMS RDBMS는 정적인 스키마를 가지고.. 2023. 6. 4. 성능 개선의 수치화 - 4 (Overfetching 성능 개선) 이전 글에서 JMeter를 다루어 보니 성능의 객관화가 가능하여 성능의 좋고,나쁨을 볼 수 있어서 좋았다. 기존 프로젝트의 DB에서 불필요한 데이터를 받아오는 Overfetching 문제가 확인되었다. 현재 프로젝트에서는 불필요한 컬럼을 받아오는 이슈가 있기 때문에 불필요한 데이터를 걸러준다면 성능의 개선이 될까 궁금해졌다. 아래는 기존의 코드 이며 select하여 불필요한 데이터를 받지 않는 것으로 수정해보겠다. 수정 결과는 아래와 같다 수정 전 수정 후 27.3%의 개선이 이루어졌다. 단순 select를 하여 불필요한 데이터를 받지 않는 것 만으로도 유의미한 차이가 확인되었다. 2023. 6. 2. 이전 1 2 3 4 ··· 10 다음