[프롬프트 엔지니어링] 프롬프트 엔지니어링 기법들에 대하여
·
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
자바스크립트는 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어(클래스 기반 객체지향 프로그래밍 언어보다 효율적이며 더 강력한 객체지향 프로그래밍 능력을 지니고 있는 프로토타입 기반의 객체지향 프로그래밍 언어) 자바스크립트는 객체 기반의 프로그래밍 언어이며 자바스크립트를 이루고 있는 거의 “모든 것이” 객체객체지향 프로그래밍객체지향 프로그래밍은 프로그램을 명령어 또는 함수의 목록으로 보는 전통적인 명령형 프로그래밍의 절차지향적 관점에서 벗어나 여러 개의 독립적 단위, 즉 객체의 집합으로 프로그램을 표현하려는 프로그래밍 패러다임 추상화: 다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것객체 : 속성을 통해 여러 개의 값을 하나의 단위로 구성한..
[JS Deep Dive] 17, 18장 정리 - 생성자 함수에 의한 객체 생성 | 함수와 일급 객체에 대하여
·
Study/Modern JS Deep Dive
생성자 함수에 의한 객체 생성 Object 생성자 함수new 연산자와 함께 Object 생성자 함수를 호출하면 빈 객체를 생성하여 반환→ 빈 객체를 생성한 이후 프로퍼티 또는 메서드를 추가하여 객체를 완성할 수 있다.// 빈 객체의 생성const person = new Object();// 프로퍼티 추가person.name = 'Lee';person.sayHello = function () { console.log('Hi! My name is ' + this.name);};console.log(person); // {name: "Lee", sayHello: f}person.sayHello(); // Hi! My name is Lee생성자 함수란 new 연산자와 함께 호출하여 객체(인스턴스)를 생성하는 함..
[JS Deep Dive] 15,16장 정리 - let, const 키워드와 블록 레벨 스코프 | 프로퍼티 어트리뷰트에 대하여
·
Study/Modern JS Deep Dive
var 키워드로 선언한 변수의 문제점var 키워드로 선언된 변수의 특징1. 변수 중복 선언 허용2. 함수 레벨 스코프var 키워드로 선언한 변수는 오로지 함수의 코드 블록만을 지역 스코프로 인정→ 함수 외부에서 var 키워드로 선언한 변수는 코드 블록 내에서 선언해도 모두 전역 변수가 된다.함수 레벨 스코프는 전역 변수를 남발할 가능성을 높인다. 3. 변수 호이스팅변수 호이스팅에 의해 var 키워드로 선언한 변수는 변수 선언문 이전에 참조할 수 있다.→ 할당문 이전에 변수를 참조하면 언제나 undefined를 반환 let 키워드1. 변수 중복 선언 금지2. 블록 레벨 스코프let 키워드로 선언한 변수는 모든 코드 블록(함수, if문, for문, while문, try/catch 문 등)을 지역 스코프로 인..
[JS Deep Dive] 13,14장 정리 - 스코프 | 전역 변수의 문제점에 대하여
·
Study/Modern JS Deep Dive
스코프자바스크립트의 스코프는 다른 언어의 스코프와 구별되는 특징이 있으므로 주의가 필요하다. 모든 식별자(변수 이름, 함수 이름, 클래스 이름 등)는 자신이 선언된 위치에 의해 다른 코드가 식별자 자신을 참조할 수 있는 유효 범위가 결정된다. 이를 스코프라 한다.→ 스코프는 식별자가 유효한 범위를 말한다. 자바스크립트 엔진은 이름이 같은 두 개의 변수 중에서 어떤 변수를 참조해야 할 것인지를 결정해야 한다.→ 식별자 결정 스코프란 자바스크립트 엔진이 식별자를 검색할 때 사용하는 규칙이라고도 할 수 있다. 스코프의 종류코드는 전역과 지역으로 구분 가능 전역과 전역 스코프전역이란 코드의 가장 바깥 영역을 말한다.전역은 전역 스코프를 생성전역에 변수를 선언하면 전역 스코프를 갖는 전역 변수가 됨전역 변수는 어..
[JS Deep Dive] 12장 정리 -함수에 대하여
·
Study/Modern JS Deep Dive
프로그래밍 언어의 함수는 일련의 과정을 문으로 구현하고 코드 블록으로 감싸서 하나의 실행 단위로 정의한 것 함수 내부로 입력을 전달받는 변수를 매개변수(parameter), 입력을 인수(argument), 출력을 반환값(return value)이라 한다.함수는 함수 정의를 통해 생성 인수를 매개변수를 통해 함수에 전달하면서 함수의 실행을 명시적으로 지시해야 함 → 함수 호출 함수 리터럴은 function 키워드, 함수 이름, 매개 변수 목록, 함수 몸체로 구성함수는 객체이다. 일반 객체는 호출할 수 없지만 함수는 호출할 수 있다.함수 정의 방식// 함수 선언문function add(x,y) { return x + y;}// 함수 표현식var add = function (x, y) { return x + ..
[JS Deep Dive] 10장, 11장 정리 - 객체 리터럴 | 원시 값과 객체의 비교에 대하여
·
Study/Modern JS Deep Dive
객체 리터럴자바스크립트는 객체 기반의 프로그래밍 언어이며, 자바스크립트를 구성하는 거의 “모든 것”이 객체다. 원시 값을 제외한 나머지 값은(함수, 배열, 정규 표현식) 등은 모두 객체원시 타입의 값, 즉 원시 값은 변경 불가능한 값이지만 객체 타입의 값, 객체는 변경 가능한 값이다. 객체는 0개 이상의 프로퍼티로 구성된 집합이며, 프로퍼티는 키와 값으로 구성된다.  자바스크립트에서 사용할 수 있는 모든 값은 프로퍼티 값이 될 수 있다. 자바스크립트의 함수는 일급 객체이므로 값으로 취급할 수 있다함수도 프로퍼티 값으로 사용할 수 있다. 프로퍼티 값이 함수일 경우, 일반 함수와 구분하기 위해 메서드라고 부른다. 객체는 프로퍼티와 메서드로 구성된 집합체 프로퍼티: 객체의 상태를 나타내는 값(data)메서드:..