[Network] 프로토콜(OSI, TCP/IP), 네트워크 장치에 관하여
·
Study/Network
책 '그림으로 배우는 네트워크 프로토콜 활용'을 읽고 정리한 내용입니다.0. 들어가며 호스트: 네트워크 상의 IP 주소를 가진 컴퓨터노드: 호스트에 네트워크 장치를 추가한 용어 스탠드 얼론: 한 대의 단말기가 독립적으로 존재, 작업자는 차례를 기다려 사용 TSS(time sharing system: 시분할 시스템): 한 대의 컴퓨터를 여러 사람이 사용, 로컬 단말기에서 원격으로 액세스 가능 ARPANET: 세계 최초의 패킷 교환 방식의 네트워크패킷 교환 방식(Packet Switching): 전송할 데이터를 패킷 단위로 나누어 전송하고, 수신한 단말기에서 원래 데이터로 복원하는 방식장점: 필요한만큼만 회선을 이용할 수 있고, 여러 사람이 회선을 공유할 수 있다. 회선 교환 방식: 컴퓨터끼리 통신할 때 ..
[SQL] SELECT, FROM, WHERE, 비교 연산자, 문자열 검색에 관하여
·
Study/SQL
책 '그림으로 배우는 SQL 입문'을 읽은 후 정리한 글입니다. 데이터베이스에는 몇 가지 종류가 있는데, 그 중 가장 많이 이용되는 것은 Relational Database(관계 데이터베이스: RDB 형식) RDB는 행(record)과 열(column)으로 구성된 표(table)로 데이터를 다룸테이블 안의 1개의 요소를 ‘필드’라고 부름 RDB를 관리하기 위한 DBMS를 관계 데이터베이스 관리 시스템, RDBMS라고 부름 SQL: 데이터베이스 조작이나 정의를 시행하기 위한 언어1. SELECT, FROM데이터베이스에서 데이터를 가져오기 위해서는 SQL에서 SELECT라는 구문을 사용(SELECT 구문을 사용한 SQL을 SELECT 문이라고 함) 예시) product_id와 product_name을 pro..
[프롬프트 엔지니어링] 함수 호출, 프롬프트 평가, LLM 보안, Autonomous Agent에 대하여
·
Study/프롬프트 엔지니어링
김진중(골빈해커)님의 '최고의 프롬프트 엔지니어링 강의'를 읽고 정리한 글입니다.함수 호출호출할 수 있는 함수(기능)를 미리 설정해두면 사용자의 필요에 따라 해당 함수 이름을 호출하여 요청에 응답하는 기능→ 프로그램 내의 함수를 직접 호출하는 것이 아니라 어떤 함수와 파라미터가 필요한지를 JSON 형식으로 응답해줌{ "name": "get_current_weather", "description": "주어진 위치의 현재 날씨를 가져옵니다.", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "도시 또는 지역, 예) 서울", }, "unit": {"type"..
[프롬프트 엔지니어링] 프롬프트 작성 도움, 환각 줄이기, 외부 지식 주입에 대하여
·
Study/프롬프트 엔지니어링
김진중(골빈해커)님의 '최고의 프롬프트 엔지니어링 강의'를 읽고 정리한 글입니다.모델을 선택할 때 고려해야 할 것들성능이 높은 모델일수록 속도는 떨어진다. 즉, 성능이 낮은 모델일수록 속도는 빨라짐->비용과 성능은 비례하지만 성능이 올라가는 것에 비해서는 비용이 훨씬 더 크게 높아지는 편 입력 토큰(프롬프트)에 대한 가격보다 결과물로 생성한 토큰 가격이 보통 두세 배 정도 비싸기 때문에 답변이 길어야하는 작업이라면 더 큰 비용이 발생하므로 주의 필요 비용을 최대한 정확하게 예측해야 할 경우에는 샘플 결과를 모아 토크나이저로 먼저 계산해보면 됨 성능(추론 능력)여러 기관에서 제공하는 LLM 모델의 성능 순위 리더 보드를 참조해 성능 비교 가능벤치마크 점수가 높아도 실제 사례에서는 원하는 만큼 성능이 안나올..
[JS Deep Dive] 27장 정리 - 배열에 관하여
·
Study/Modern JS Deep Dive
배열은 여러 개의 값을 순차적으로 나열한 자료구조 요소(element): 배열이 가지고 있는 값자바스크립트의 모든 값은 배열의 요소가 될 수 있음배열의 요소는 배열에서 자신의 위치를 나타내는 0 이상의 정수인 인덱스를 갖는다(0부터 시작)배열은 요소의 개수, 배열의 길이를 나타내는 length 프로퍼티를 가짐배열이라는 타입은 존재하지 않으며, 배열은 객체 타입이다.배열은 배열 리터럴, Array 생성자 함수, Array.of, Array.from 메서드로 생성 가능배열의 생성자 함수는 Array이며, 배열의 프로토타입 객체는 Array.prototype이다.일반 객체와 배열을 구분하는 가장 명확한 차이는 “값의 순서”와 “length 프로퍼티” 자바스크립트의 배열은 자료구조에서 말하는 일반적인 의미의 배..
[프롬프트 엔지니어링] 프롬프트 엔지니어링 기법들에 대하여
·
Study/프롬프트 엔지니어링
김진중(골빈해커)님의 '최고의 프롬프트 엔지니어링 강의'를 읽고 정리한 글입니다.프롬프트 엔지니어링이란 AI로 원하는 결과를 생성하기 위해 컴퓨터와 대화하는 방법 1. 프롬프트 엔지니어링의 가장 대표적인 다섯 가지 방법제로샷 프롬프팅LLM에게 아무런 데이터나 예시를 주지 않고 바로 특정 작업을 수행하도록 지시하는 것원샷 러닝LLM에게 명령을 내릴 때 실행 방법에 대한 예시 한 개를 동시에 제공ex) 영어를 한국어로 번역해줘. This is an apple을 한국어로 번역하면 ‘이것은 사과입니다’야.퓨샷 러닝LLM에게 명령을 내릴 때 2~3개부터 수십 개 정도의 예시를 함께 제공하는 것데이터가 부족하거나 특정 작업에 대한 사례가 많지 않을 때 유용CoT(Chain of Thought)LLM에게 문제 해결 ..
[프롬프트 엔지니어링] AI와 LLM에 대하여
·
Study/프롬프트 엔지니어링
김진중(골빈해커)님의 '최고의 프롬프트 엔지니어링 강의'를 읽고 정리한 글입니다.0.  소프트웨어의 발전소프트웨어는 데이터와 알고리즘, 두 가지로 구성 소프트웨어 1.0: 데이터를 알고리즘으로 조작해서 결과를 도출하는 방식소프트웨어 2.0: 데이터를 학습시킨 머신러닝 모델을 만들고, 이 모델을 통해 결과를 도출하는 방식소프트웨어 3.0: 머신러닝 모델을 프롬프트로 제어하는 것 소프트웨어 1.0은 결정론적인 방법 → 입력값에 대해 항상 동일한 출력값 반환소프트웨어 2.0은 머신러닝 모델이 상황에 맞게 스스로 논리 구조를 생성하는 비결정론적 방법 프로그래밍 = 컴퓨터와 상호작용하는 방법프롬프트 엔지니어링 = 자연어로 컴퓨터와 상호작용하는 방법1.  AI의 구분AI는 규칙 기반 AI와 머신러닝으로 구분 규칙 ..
[JS Deep Dive] 24, 25, 26장 정리 - 클로저, 클래스, ES6 함수의 추가 기능에 관하여
·
Study/Modern JS Deep Dive
클로저클로저는 함수와 그 함수가 선언된 렉시컬 환경과의 조합 자바스크립트 엔진은 함수를 어디서 호출했는지가 아니라 함수를 어디에 정의했는지에 따라 상위 스코프를 결정→ 렉시컬 스코프(정적 스코프) 렉시컬 환경의 “외부 렉시컬 환경에 대한 참조”에 저장할 참조값,즉 상위 스코프에 대한 참조는 함수 정의가 평가되는 시점에 함수가 정의된 환경(위치)의 해 결정 렉시컬 스코프가 가능하려면 함수는 자신이 정의된 환경, 즉 상위 스코프(함수 정의가 위치하는 스코프)를 기억해야→ 함수는 자신의 내부 슬롯 [[Environment]]에 자신이 정의된 환경, 상위 스코프의 참조를 저장 함수 객체의 내부 슬롯 [[Environment]]에 저장된 현재 실행 중인 실행 컨텍스트의 렉시컬 환경의 참조가 상위 스코프이며, 자신..
[JS Deep Dive] 20, 21장 정리 - strict mode, 빌트인 객체에 대하여
·
Study/Modern JS Deep Dive
Strict Modefunction foo() { x = 10;}foo();console.log(x); // ?전역 스코프에도 x 변수의 선언이 존재하지 않기 때문에 ReferenceError를 발생시킬 것 같지만 자바스크립트 엔진은 암묵적으로 전역 객체에 x 프로퍼티를 동적 생성→ 전역 객체의 x 프로퍼티는 마치 전역 변수처럼 사용 가능→ 암묵적 전역(implicit global)이라고 함→ 오류를 발생시키는 원인이 될 가능성이 큼 ES5부터 strict mode(엄격 모드)가 추가→ 자바스크립트 언어의 문법을 좀 더 엄격히 적용하여 오류를 발생시킬 가능성이 높거나 자바스크립트 엔진의 최적화 작업에 문제를 일으킬 수 있는 코드에 대해 명시적인 에러를 발생시킨다.(ESLint 같은 린트 도구를 사용해도 ..
[JS Deep Dive] 19장 정리 - 프로토타입에 대하여
·
Study/Modern JS Deep Dive
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어(클래스 기반 객체지향 프로그래밍 언어보다 효율적이며 더 강력한 객체지향 프로그래밍 능력을 지니고 있는 프로토타입 기반의 객체지향 프로그래밍 언어) 자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 “모든 것이” 객체객체지향 프로그래밍객체지향 프로그래밍은 프로그램을 명령어 또는 함수의 목록으로 보는 전통적인 명령형 프로그래밍의 절차지향적 관점에서 벗어나 여러 개의 독립적 단위, 즉 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임 추상화: 다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것객체 : 속성을 통해 여러 개의 값을 하나의 단위로 구성한..