[독서의 기록] 드럼, 드러머, 드러밍 - 강민규,이충섭 지음
·
독서
다른 사람들의 경험과 생각을 글을 통해 읽는다는 것이 매력적이었고, 그 글로부터 나의 세상과 생각을 확장할 수 있다는 점에 이전부터 계속 독서를 취미로 하고싶다는 생각은 해왔었다.여러 가지 주제 -심리학, 뇌과학, 사회과학 등-로 독서를 시도는 해보았으나 번번히 완독에 실패하고.. 독서라는 것을 잠깐 잊고 살아왔다.그러던 와중 최근 드럼이라는 새로운 취미가 생겼고, '독서를 하고싶다'는 마음보다는 '드럼을 더 잘 알고싶다!'는 마음으로 드럼과 관련된 책을 냅다 집어들어 읽기 시작했다.처음부터 드럼에 대해 깊이 이해하고 싶다는 바램으로 시작한 독서이니, 책을 완독한 이후에 목표를 달성해서 기쁨에 더해 글을 읽는 행위에 대한 순수한 즐거움까지 어떤 건지 작게나마 느낄 수 있었던 점이 좋았다.그래서 오늘을 시..
FastAPI, LLM 연동하기 (2) - FastAPI 사용 가이드
·
AI
async, await지난 포스팅에서 FastAPI, ASGI 등에 대해서 알아보았다.비동기 함수 개발을 위한 async, await 키워드에 대해서 알아보도록 하자Flask의 async, awaitFlask에서도 async, await 키워드를 지원하기는 한다고 한다.하지만 ASGI방식으로 동작하는 것은 아니며, 기존에 생각하던 비동기 방식과는 조금 다르게 동작한다.기본적으로 Flask는 WSGI + Thread per Request 구조 비동기 요청이 들어오면 이벤트 루프를 생성해서 처리→ 하지만 다른 스레드와 이벤트 루프를 공유하지는 않는다. 한 Request 내에서 여러 개의 비동기 이벤트를 처리해야 할 때 유용하게 쓸 수 있음참고 링크 : https://teus-kiwiee.tistory.com..
MCP & A2A
·
AI
Agent to Agent의 약자로, 에이전트끼리 통신하기 위한 표준 프로토콜 / SDK / 서버 프레임워크를 말한다.AI Agent란 ?AI 에이전트는 인간의 개입 없이 고객 문의를 이해하고 응답할 수 있는 지능형 시스템입니다. 머신 러닝과 자연어 처리(NLP)를 기반으로 간단한 질문에 대한 답변부터 복잡한 문제 해결, 멀티태스킹까지 다양한 작업을 처리할 수 있습니다.예시를 들어보면 이런 것들이 있을 것이다.업무 보조형 에이전트이메일 요약 Agent → Gmail 같은 곳에서 메일 본문 요약해주기Task 관리 Agent → "회의 잡아줘", "Jira 티켓 생성해줘" 같은 요청 처리정보 검색 & 분석 Agent날씨 검색 Agent → 외부 날씨 API 호출 후 결과 반환뉴스 크롤링 Agent → 특정 ..
FastAPI, LLM 연동하기 (1) - FastAPI 사용 가이드
·
AI
일단 하고 싶은 것 → 채팅(String)을 Input으로 보내서 스트리밍 방식으로 LLM에게 응답 받기 이걸 위해서 필요한 것들에 대해 공부를 해 볼 것이다.외부로부터 채팅을 입력받을 서버가 필요 = FastAPI채팅 내용을 기반으로 LLM에게 질의 = LangChain ? Langgraph ?응답 생성하여 리턴FastAPI, uvicornFastAPI란 현대적이고 빠르며, 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 비동기 웹 프레임워크이다. 이 프레임워크로 작성된 코드를 구동하기 위해서 어떤 명령어가 필요한지 대강 살펴보면 다음과 같다.uvicorn main:app --host 0.0.0.0 --port 8080 --reloadFastAPI 자체는 HTTP를 통해 들..
Comparable과 Comparator
·
알고리즘/자료구조
Comparable과 ComparatorComparable과 Comparator 모두 객체의 정렬 기준을 명시하기 위한 인터페이스 이다. primitive type을 정렬하는 데는 사용하지 않는다.그렇다면 이 인터페이스들은 정확히 어떤 역할을 수행하며 어떻게 사용하는 것인지 알아보도록 하자.이 문서에서 참고하고있는 링크들Java8 API(영문)Java 2 Platform Standard Edition 5.0 API (한글번역)Comparablejava.lang.Comparablejava.lang 패키지 내에 존재하기때문에 별다른 import 없이 사용 가능하다.descriptionComparable은 해당 인터페이스를 구현하는 각 클래스의 객체에 전체 순서를 부과합니다. 이 순서를 클래스의 자연 순서라고..
리눅스마스터 1급 공부 - 운영체제의 개요
·
Computer Science/리눅스마스터
운영체제란 ?사용자와 하드웨어 간의 상호작용을 위한 사용자 인터페이스 → 즉, 하드웨어 제어, 입출력 등의 관리를 수행CPU, MEM, I/O장치 등 하드웨어를 효율적으로 관리한다(자원 스케줄링 등) → 한정된 하드웨어 자원을 다수의 이용자가 공유할 수 있게 하기 위함응용 프로그램이 동작할 수 있는 프로그래밍 인터페이스 또한 제공프로그램에게 system call (커널 기능을 호출할 수 있게 해주는 기능)을 제공한다.오류 복구 기능, 네트워크 기능 등등 …운영체제의 목적효율성 → Throughput, Turnaround Time의 최소화를 목적으로 한다.주어진 문제를 정확하게 처리하는 신뢰도(Reliability) 향상을 목적으로 한다.이용할 수 있는 시스템 자원의 정도를 의미하는 사용 가능도(Avail..
OSI 7계층, 웹소켓
·
Computer Science/네트워크
이번에 서버를 구축하면서 웹소켓을 사용하게 되었다.사용하는 김에 어떤 방식으로 돌아가는지 공부해보자 HTTP와 Websocket은 데이터를 교환하는 방식 중 하나HTTP는 OSI7계층 모델에서 7계층 프로토콜이고, 웹소켓은 TCP 기반이라고 함 그래서 먼저 OSI 7계층과 각 통신 방식에 대해 알아보려고 함OSI 7계층컴퓨터와 컴퓨터 사이 정보를 교환하기 위해서는 네트워크상의 통로를 통해 데이터를 주고받아야 한다. 이 과정을 ISO에서 7단계로 구조화해둔것이 OSI7계층 (실무에서 사용하기 좋도록 단순화한 버전이 TCP/IP 4계층. 나오기는 TCP/IP가 먼저 나왔지만..)모델시기특징TCP/IP1970년대 후반실제 인터넷 프로토콜 기반, 실용적OSI 7계층1980년대 중반표준화/교육 목적, 계층별 역할..
[Stream과 I/O] 1. Byte와 Stream,ASCII 코드
·
Backend
현재 서버에서 대용량 파일을 업로드하고 이후 로직을 최적화해야하는 상황이다.어떻게 하면 File IO/비동기 및 병렬 처리를 효율적으로 할 수 있을지에 대해 고민하며 공부한 내용을 적어보았다 개요File I/O에 대해서 알아보기 전에, 우선 Java의 입출력 I/O에 대해서 알아보자프로그램에서는 어떻게 파일, 키 입력 등의 데이터를 입력하고 처리하는걸까 ? 컴퓨터의 데이터 처리 단위1. Bit & Byte사람이 언어를 통해 의사소통을 주고받듯이, 컴퓨터도 연산을 이해하기 위한 언어가 존재한다.그 최소 단위가 Bit와 Byte이다.1.1. Bit란 ?비트(bit)는 Binary Digit의 줄임말로 컴퓨터에서 처리하는 정보의 최소 표현 단위이다.비트는 2진수로서, on/off를 의미하는 0과 1의 두 가지..
백준6593: 상범 빌딩(Java)
·
알고리즘/문제풀이
https://www.acmicpc.net/problem/6593 6593번: 상범 빌딩 당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다. 각 정육면체는 금으로 이루어져 있어 www.acmicpc.net 3차원 배열의 그래프 탐색 문제였다. 특별한 알고리즘은 없었고 차원 하나만 더해주면 되는 단순한 탐색 문제였다. 문제푸는데 넘 오래걸린다,, package BOJ; import java.io.*; import java.util.*; public class BOJ6593 { private static final char WALL = '#'; private static final char ESCAPE = ..
홈서버 구축 일기1 - 하이퍼바이저?
·
Computer Science/네트워크
개인 플젝 진행을 위해 서버가 한 대 필요했음처음에는 클라우드 서버로 편하게 사용하려고 AWS 프리티어로 알아봤는데, 돈이 청구된다고 하더라 이게 완전 무료가 아니고 어디까지 범위는 무료고, 사용하는 서비스가 많아질수록 또 청구되는 금액이 발생하는 모양인데, 그거를 알아보고 완벽하게 관리하기가 너무 어려워보였음 그래서 일반적인 클라우드 서버의 월간 사용료를 알아보니, 최소 사양으로 월평균 6-7만원 정도 나오더라,,,아직 모아야 할 돈이 많은 사회 초년생인 나에게 저정도 고정지출은 꽤나 타격이 클거라고 생각했음. (넉넉잡아 연 100만원이니,,, 일본을 한 번 더 다녀올 수 있는 금액이었다 ㅡ.ㅡ)어차피 고사양이 필요한 것도 아니고, 아직까지는 개인 공부용 플젝이기 때문에 집에서 놀고있는 노트북을 홈서버..