생성형 AI
개요
최근 인공지능 기술이 발전하면서 처음 들어보는 개념들도 접하게 되었다.
특히 LLM이라던지 Generative AI가 그렇다.
이번 기회에 정리해보자.
Generative AI
LLM이란 Large Language Model의 약자로 대규모 데이터로 학습한 자연어 처리 모델이다.
여기서 자연어란 우리가 흔하게 사용하는 언어를 말하며 말그대로 자연스럽게 발생된 언어를 말한다.
이와 대치되는 개념은 인공어로, 소설이나 영화에서 쓰이는 알 수 없지만 그 나라의 언어로 설정된 언어들이 그러하다.
이렇게 자연어의 데이터를 기반으로 문장이 쓰이는 방식이라던지 패턴을 분석하고 의미를 추출하여 인간과 유사한 텍스트를 생성할 수 있는 기술이다.
이 기술을 이용해서 만들어진 것이 바로 Chat GPT다.
(구체적인 기술은 나중에 꼭 공부해보고 싶다.)
생성형 AI란 대화, 이야기, 이미지, 동영상등 새로운 콘텐츠와 아이디어를 생성할 수 있는 AI의 일종이다. - AWS
생성형 AI는 쉽게 말하자면 Chat GPT와 같은 툴을 이용하여 새롭게 무언가를 만들거나 잘 활용하는 방법에 대한 것이다.
Chat GPT가 처음 나왔을 때 사람들은 신기해하며 여러가지를 물어보았다. 융통성 있는 백과사전과 같이.
어느분야나 마찬가지로 이를 창의적으로 사용하는 사람들이 생기기 시작했다.
예를 들면 반복적인 일을 처리하게 하는 등의 일을 말이다.
그러던중 일종의 패턴이 발견되었는데 예를 들면 반말로 지시할 때보다 존댓말로 할 때 포멀한 답변을 얻을 수 있다던지 한국어보다 영어로 질문을 할 때 더 좋은 답변이 나온다던지..
생성형 AI를 공부한다는 것은 이러한 경향에 대한 것이다.
프롬프트
프롬프트란 인공지능 모델에 주어지는 명령어 또는 지시문을 말한다.
GPT에 접속하면 사용자가 자신의 지시사항을 입력할 수 있는 칸이 나온다. 쉽게 말하면 이게 프롬프트고 프롬프트 엔지니어링이란 모델의 성능을 극대화하고 원하는 결과를 정확하게 얻기 위해 이를 설계하고 조정하는 것을 말한다.
밝혀진 바에 의하면 몇 가지 규칙들이 존재한다.
- 명확하고 구체적인 지시
- 구조화된 프롬프트
- 구체적인 예시
예를 들어 “웹에 대해 설명해줘”라는 프롬프트를 입력해보자.
웹(Web)은 인터넷 상에서 정보를 공유하고 상호작용할 수 있도록 구성된 시스템입니다. 우리가 웹사이트에 접속하거나 웹 애플리케이션을 사용할 때 접하는 환경은 모두 이 시스템을 통해 작동합니다. 웹의 기본적인 개념과 주요 구성 요소를 간략히 설명하겠습니다.
1. 웹의 기본 구조
웹은 크게 **클라이언트(사용자)**와 서버로 이루어져 있습니다.
클라이언트: 웹 브라우저(Chrome, Safari, Firefox 등)나 모바일 앱 같은 프로그램을 통해 서버에 요청을 보내고 응답을 받아 화면에 표시하는 역할을 합니다.
서버: 클라이언트가 요청한 정보를 저장하고, 요청에 맞는 데이터를 제공하는 컴퓨터 시스템입니다. 웹 서버에는 웹 페이지, 애플리케이션 로직, 데이터베이스 등이 구성되어 있습니다.
2. HTTP와 HTTPS
HTTP(HyperText Transfer Protocol): 클라이언트와 서버 간의 데이터 전송을 위한 프로토콜입니다. 예를 들어, 브라우저에서 URL을 입력하면, HTTP를 통해 해당 URL에 대한 정보를 서버에 요청하게 됩니다.
HTTPS(HyperText Transfer Protocol Secure): HTTP에 보안(SSL/TLS)이 추가된 프로토콜로, 데이터 전송 시 암호화를 적용하여 데이터를 보호합니다. 민감한 정보(비밀번호, 신용카드 정보 등)를 안전하게 전송할 때 사용됩니다.
3. 웹 페이지와 HTML
웹 페이지는 **HTML(HyperText Markup Language)**로 작성된 문서입니다. HTML은 페이지의 구조와 콘텐츠를 정의하는 언어로, 텍스트, 이미지, 비디오, 링크 등을 표시하는 데 사용됩니다. HTML 외에도 다음과 같은 요소들이 웹 페이지를 구성합니다:
CSS(Cascading Style Sheets): HTML에 디자인을 적용하여 색상, 글꼴, 레이아웃 등을 설정합니다.
JavaScript: 웹 페이지에 동적인 기능(예: 클릭 시 팝업 창 띄우기, 실시간 데이터 업데이트)을 추가하는 프로그래밍 언어입니다.
4. 클라이언트-서버 간 상호작용
클라이언트는 서버에 데이터를 요청하고, 서버는 필요한 정보를 클라이언트에 응답하는 요청-응답(Request-Response) 모델로 작동합니다.
예를 들어, 사용자가 웹 사이트에서 제품 목록을 보고자 할 때, 브라우저는 서버에 제품 정보를 요청하고, 서버는 그 정보를 HTML, JSON 등의 형태로 클라이언트에 전송합니다.
5. 웹 애플리케이션과 API
웹 애플리케이션은 브라우저에서 동작하는 애플리케이션으로, 클라이언트-서버 구조를 통해 데이터베이스와 상호작용하면서 다양한 기능을 제공합니다.
API(Application Programming Interface): 웹 애플리케이션에서 다른 서버의 기능을 호출하거나 데이터를 받아올 때 사용하는 인터페이스입니다. API는 웹의 다양한 기능을 서로 연결하는 중요한 역할을 합니다.
6. 프론트엔드와 백엔드
프론트엔드: 클라이언트 측의 UI(User Interface)와 UX(User Experience)를 담당하는 부분으로, HTML, CSS, JavaScript 등이 포함됩니다.
백엔드: 서버 측에서 데이터베이스와 연동하여 데이터를 처리하고 클라이언트에 전달하는 로직을 포함합니다. 서버 언어로는 Java, Python, Node.js 등이 사용됩니다.
7. 웹의 발전과 최신 트렌드
웹 1.0: 정적 웹 페이지로, 정보 제공에 중점을 둔 단방향 통신의 웹 환경.
웹 2.0: 사용자와의 상호작용, 소셜 미디어, 블로그, 댓글 기능 등이 추가된 동적 웹 환경.
웹 3.0: 블록체인 기술, 분산 네트워크 등을 활용하여 데이터 소유권이 강화된 차세대 웹 환경.
웹의 활용
오늘날 웹은 단순히 정보를 보는 것을 넘어, 다양한 웹 애플리케이션을 통한 업무 처리, 소셜 네트워크, 쇼핑, 게임 등으로 확장되었습니다.
그 다음에는 “웹이라는 주제에 대한 글을 작성해줘 글은 이해하기 쉬워야하고 실용적인 예시와 등장 배경, 그리고 역사를 중점으로 설명해줘”라는 프롬프트를 실행시켜보자.
웹은 오늘날 우리가 정보를 찾고, 사람들과 소통하며, 필요한 서비스를 이용하는 데 필수적인 시스템입니다. 쉽게 말해, 웹은 인터넷 상에서 사람들이 정보를 찾고, 나누고, 상호작용할 수 있도록 만들어진 공간이라 할 수 있습니다. 이번 글에서는 웹의 등장 배경, 역사, 그리고 웹의 실용적인 예시를 통해 웹의 발전 과정을 알아보겠습니다.
1. 웹의 등장 배경
웹은 1989년 영국의 과학자 팀 버너스 리(Tim Berners-Lee)에 의해 제안되었습니다. 당시 그는 유럽 입자 물리 연구소(CERN)에서 근무하면서 연구자들 간의 정보 공유가 매우 어려운 문제임을 깨달았습니다. 연구 데이터와 자료는 개별 컴퓨터에 분산되어 있었고, 이를 공유하려면 수많은 절차가 필요했기 때문에 시간이 오래 걸렸습니다.
팀 버너스 리는 이를 해결하고자 **"하이퍼텍스트"**를 기반으로 한 정보 공유 시스템을 제안했습니다. 이 시스템을 통해 연구자들은 손쉽게 링크를 클릭해 관련 자료로 이동할 수 있었고, 각 문서가 서로 연결되어 방대한 정보를 빠르게 탐색할 수 있었습니다. 이러한 필요에서 시작된 것이 바로 월드 와이드 웹(World Wide Web)입니다.
2. 웹의 역사와 발전
웹은 처음 등장한 이후로 큰 변화를 겪으며 발전해 왔습니다. 이를 시기별로 나누어 보면 다음과 같습니다.
웹 1.0 (1990년대 - 정적 웹)
초기의 웹은 웹 1.0 시대로, 정적인 웹 페이지들이 주로 사용되었습니다. 사용자가 웹 페이지를 읽는 데 중점을 둔 단방향 시스템이었습니다. 기업이나 기관에서 정보나 뉴스를 제공하면 사용자는 이를 읽기만 할 수 있었습니다. 예를 들어, 백과사전 사이트나 뉴스 사이트가 그 예입니다. 당시는 상호작용이 거의 없었고, HTML로 작성된 텍스트와 이미지만 볼 수 있었습니다.
웹 2.0 (2000년대 - 동적 웹)
2000년대에 들어서면서 웹은 점차 상호작용할 수 있는 공간으로 발전했습니다. 이를 웹 2.0이라 부르며, 사용자가 콘텐츠를 생산하고 공유할 수 있는 동적인 웹이 등장했습니다. 이 시기의 대표적인 예가 블로그, 소셜 미디어, 위키입니다. 이제 사람들은 댓글을 남기거나, 글을 작성하고, 사진을 공유하며 웹을 통해 소통할 수 있게 되었습니다. 특히 유튜브와 같은 동영상 공유 서비스도 이 시기에 활성화되면서 웹은 정보 공유뿐만 아니라 소통의 장으로 자리 잡게 되었습니다.
웹 3.0 (2020년대 - 분산 웹, 스마트 웹)
최근 웹은 데이터의 주체성과 개인 정보 보호에 대한 관심이 커지면서 웹 3.0 시대로 발전하고 있습니다. 웹 3.0은 블록체인과 같은 분산 네트워크 기술을 바탕으로, 데이터 소유권을 사용자에게 돌려주는 것을 목표로 합니다. 예를 들어, 웹 3.0의 **분산 애플리케이션(DApps)**은 특정 중앙 서버가 아닌 여러 사용자들이 네트워크를 통해 데이터를 저장하고 관리합니다. 또한, 인공지능(AI)을 활용해 사용자 맞춤형 정보를 제공하는 스마트 웹도 웹 3.0의 중요한 특징 중 하나입니다.
3. 웹의 기본 요소와 실용적인 예시
웹은 사람들이 인터넷을 보다 쉽게 사용할 수 있게 해주는 여러 요소로 구성되어 있습니다. 여기에는 HTML, CSS, JavaScript 같은 기술이 포함됩니다.
HTML(HyperText Markup Language): 웹 페이지의 뼈대를 구성하는 언어입니다. 예를 들어, 텍스트, 이미지, 링크 등을 HTML로 지정해 사용자에게 정보를 제공합니다.
CSS(Cascading Style Sheets): 웹 페이지의 디자인을 담당하는 언어로, 텍스트의 색상이나 글꼴, 레이아웃을 설정할 수 있습니다.
JavaScript: 웹 페이지에 동적인 기능을 추가하는 프로그래밍 언어입니다. 예를 들어, 버튼을 클릭하면 팝업 창이 뜨거나, 실시간으로 데이터를 갱신하는 등의 기능을 구현할 수 있습니다.
이러한 기술을 통해 현재는 인터넷 쇼핑, 영화 감상, 은행 업무 등 일상 생활의 대부분을 웹에서 해결할 수 있게 되었습니다. 예를 들어, 아마존과 같은 전자상거래 웹사이트에서는 사용자가 상품을 검색하고, 장바구니에 담아 결제까지 진행할 수 있으며, 실시간으로 주문 상태를 확인할 수 있습니다. 또한, 넷플릭스와 같은 스트리밍 서비스는 전 세계 사람들이 원하는 영화를 온라인에서 바로 볼 수 있게 해줍니다.
4. 웹의 현재와 미래
오늘날 웹은 단순히 정보를 찾는 공간을 넘어, 사람과 사람을 연결하고, 심지어 금융 및 자산 관리까지 포괄하는 광범위한 역할을 수행하고 있습니다. 이제 웹은 인공지능(AI), 사물인터넷(IoT), 가상 현실(VR)과 같은 최신 기술과 결합해 더 많은 가능성을 열어가고 있습니다.
예를 들어, 최근에는 음성 인식 AI가 웹 브라우저와 결합되어 사용자가 손을 쓰지 않고도 음성으로 웹을 탐색할 수 있게 되었으며, 웹 기반의 가상 회의 기술을 통해 세계 어디서든 실시간으로 소통할 수 있습니다.
결론
웹은 정보 공유라는 간단한 목적에서 시작하여 오늘날 우리 삶의 중요한 부분으로 자리 잡았습니다. 웹의 발전은 멈추지 않고 있으며, 사용자가 더 많은 주체성을 갖고 안전하게 웹을 사용할 수 있는 방향으로 나아가고 있습니다. 웹을 이해하고 활용하는 능력은 앞으로도 개인과 사회 모두에게 중요한 가치가 될 것입니다.
이런 식으로 구체적으로 지시함으로써 우리가 원하던 정보를 더 디테일하게 얻을 수 있는 것이다.
다음으로는 구조화된 프롬프트를 작성하는 것이다.
예를 들어 논문의 구조와 같이 서론, 볼론, 결론으로 나누어 지시할 수 있다.
“웹에 대해 설명하는 글을 작성해줘 형식은 다음과 같게 해줘
- 서론: 웹의 정의
- 본론: 웹의 역사, 웹에서 사용되는 기술을 포함한 웹에 대한 전반적인 설명
- 결론: 웹에 대한 내용의 총 정리”
1. 서론: 웹의 정의
웹(Web)은 인터넷을 기반으로 정보를 검색하고 공유하는 시스템으로, 전 세계의 사용자들이 웹 브라우저를 통해 손쉽게 정보에 접근할 수 있도록 합니다. 월드 와이드 웹(World Wide Web)이라 불리는 이 시스템은 HTML, HTTP, URL과 같은 표준 프로토콜과 언어를 기반으로 구축되어 있으며, 오늘날 우리의 일상생활과 업무에서 필수적인 존재가 되었습니다.
2. 본론
웹의 역사
웹의 탄생은 1989년으로 거슬러 올라갑니다. 당시 스위스 유럽 입자 물리 연구소(CERN)에서 일하던 팀 버너스 리(Tim Berners-Lee) 박사는 연구자들 간의 정보를 효과적으로 공유하기 위해 웹의 개념을 고안했습니다. 그는 HTML(HyperText Markup Language), HTTP(Hypertext Transfer Protocol), URL(Uniform Resource Locator)이라는 세 가지 핵심 기술을 개발하여, 오늘날 우리가 아는 웹의 기초를 마련했습니다.
1991년, 팀 버너스 리는 최초의 웹사이트를 공개하며 웹을 전 세계에 소개했습니다. 이후 웹은 빠르게 발전하며 다양한 기술이 추가되었고, 정적인 페이지 제공에서 동적이고 상호작용이 가능한 사이트들로 진화하게 됩니다. 2000년대 중반부터는 소셜 미디어와 모바일 웹, 그리고 클라우드 컴퓨팅의 발전에 힘입어 웹은 더 많은 사용자를 확보하고 더욱 폭넓은 용도로 활용되고 있습니다.
웹에서 사용되는 기술
웹을 구성하는 주요 기술은 HTML, CSS, JavaScript로 나뉩니다.
HTML: 웹 페이지의 구조를 정의하는 언어로, 텍스트, 이미지, 링크 등의 요소를 배치하는 역할을 합니다.
CSS: 웹 페이지의 디자인을 담당하여, 색상, 글꼴, 레이아웃 등을 설정함으로써 시각적인 스타일을 제공합니다.
JavaScript: 사용자와의 상호작용을 구현할 수 있는 언어로, 버튼 클릭, 애니메이션, 데이터 처리 등 웹 페이지의 동적 기능을 가능하게 합니다.
이 외에도 서버와 클라이언트 간의 데이터를 주고받기 위한 HTTP/HTTPS 프로토콜, 그리고 데이터를 효율적으로 관리하기 위한 **데이터베이스(DB)**와 같은 기술이 웹에서 사용됩니다. 최근에는 React, Vue.js와 같은 프레임워크와 Node.js, Django 등의 서버 측 언어가 등장하여 웹 개발의 속도와 효율을 더욱 높이고 있습니다.
또한, 웹은 모바일 친화적 환경을 위해 반응형 웹 디자인을 도입하고 있으며, PWA(Progressive Web App) 기술을 통해 모바일 애플리케이션처럼 동작하는 웹 애플리케이션을 가능하게 합니다. 인공지능(AI)과 머신러닝(ML) 또한 웹에 접목되어 개인화된 사용자 경험과 더 정교한 추천 시스템을 구현하는 데 사용되고 있습니다.
웹의 사회적 역할과 변화
웹은 정보의 민주화를 가능하게 했습니다. 사용자는 전 세계의 정보에 접근할 수 있으며, 지식 공유 플랫폼, 소셜 미디어, 전자상거래 등이 발전하면서 웹은 개인과 사회, 경제, 정치에 막대한 영향을 미치고 있습니다. 또한, 웹은 빠른 속도로 변화하는 기술 환경에 맞춰 웹 2.0을 넘어 웹 3.0 시대로 진화하고 있습니다. 웹 3.0은 블록체인과 탈중앙화, 사용자 주도형 네트워크를 기반으로 하여 보다 안전하고 개인화된 웹 환경을 목표로 합니다.
3. 결론
웹은 단순한 정보의 전달 수단을 넘어, 우리 사회 전반에 걸쳐 혁신을 주도하는 중요한 도구로 자리 잡았습니다. HTML, CSS, JavaScript를 포함한 다양한 기술이 발전하며 웹은 정적인 콘텐츠에서 상호작용이 가능한 복잡한 서비스들로 진화했습니다. 또한, 웹의 발전은 지식과 정보의 접근성을 높이고, 전 세계 사람들에게 소통과 교류의 장을 제공하며 개인과 기업, 사회의 삶을 풍요롭게 만듭니다. 앞으로도 웹은 기술 발전과 함께 새로운 가능성을 제시하며, 더 많은 사람들이 연결되고 더 나은 정보를 공유하는 미래를 열어갈 것입니다.
이렇게 구조화된 프롬프트를 작성하면 된다.
마지막으로 구체적인 묘사로 추상적인 프롬프트와 구체화된 프롬프트를 비교해보기 위해선 이미지를 생성해달라고 해보면 알 수 있다.
당연한 얘기지만 이렇게 작성하는 것보다
웹에 대해 글을 작성해줘
다음과 같이 작성하는 것이 좋은 결과를 얻을 수 있을거라는 것은 명백하다.
웹에 대한 글을 블로그에 올리려고해 서론 본론 결론으로 구성되어있으면 좋겠고 서론은 일상생활과 웹을 자연스럽게 연결하는 글을 작성해주고 글은 1000자 내외로 작성해줘