728x90

알리바바의 창업자인 잭 마(Jack Ma)는 중국 황해성 속 청해에 위치한 가난한 가정에서 태어나 어려움을 겪으면서도 꿈을 향해 끊임없이 노력하였습니다. 그는 어린 시절부터 영어에 대한 관심이 매우 높았으며, 대학에서는 영어교육과 관련된 전공을 졸업하였습니다.

그러나 대학 졸업 후에도 자신의 꿈을 찾지 못한 잭 마는 다양한 일자리를 찾아다니면서 인생의 방향을 찾아나갔습니다. 이후 1995년에 첫 인터넷 회사를 창업하였으며, 이를 계기로 인터넷과 전자상거래 분야에 대한 지식과 경험을 쌓아나갔습니다.

그리고 1999년에는 알리바바라는 이름으로 B2B 전자상거래 사이트를 창업하였습니다. 초기에는 기업 간의 거래를 중개하는 역할을 하였으며, 그 이후에는 소비자를 대상으로 한 전자상거래 사이트인 타오바오도 추가로 런칭하였습니다.

그리고 알리바바는 계속해서 자신들의 서비스를 개선하고 확장하며 성장해나갔습니다. 특히 2003년에는 중국 인터넷 서비스 업계에서 가장 큰 규모의 이메일 서비스 제공 업체인 '한빈이메일'(Hangzhou Binjiang Internet)을 인수하였으며, 2004년에는 중국 내 최대 규모의 온라인 결제 시스템인 '알리페이'(Alipay)를 출시하였습니다.

그리고 알리바바는 꾸준히 다양한 분야로 진출하면서 그들만의 경영 철학을 만들어나갔습니다. 그들의 경영 철학은 '상생(Win-Win)', '고객 중심(Customer First)', '신뢰와 존중(Trust and Respect)'으로 이루어져 있으며, 이러한 경영 철학을 바탕으로 알리바바는 전 세계적인 성장을 이루고 있습니다.

728x90

'기록' 카테고리의 다른 글

목동코딩학원, 알리익스프레스 창업과정 설명  (0) 2023.03.11
728x90

정확한 기간을 예측하기는 어렵지만, 현재 교육부에서는 2025년부터 초중고 전 교과목에 인공지능(AI) 및 코딩 교육을 강화하고자 하는 계획을 발표하였습니다. 또한, 코딩 교육은 이미 국내에서 많은 학교에서 시행되고 있으며, 수능과 같은 대학 입시 시험에서도 코딩과 프로그래밍 기술이 중요한 역할을 할 것으로 예상됩니다. 따라서, 앞으로 수능에서 코딩과 프로그래밍 기술을 검증하는 시험이 추가될 가능성은 높아질 것으로 예상됩니다.

728x90
728x90

골프채 아이언(Iron)의 명칭 유래는 정확히 알려진 바가 없지만, 아이언의 형태와 기능 등을 생각해보면 일부 추측이 가능합니다.

일부 학자들은 아이언이라는 명칭이 처음 사용된 것은 고대 로마 시대에 나무로 만든 골프채가 대체되면서 철제로 만들어진 채를 가리키기 위해 사용되었다고 주장합니다. 다른 이들은 아이언의 형태가 무기인 검(iron sword)과 비슷하여 그렇게 불려지기 시작했다고 주장하기도 합니다.

하지만 정확한 유래는 알려져 있지 않습니다. 다만, 골프채 아이언은 일반적으로 철제로 만들어져 있고, 그 형태가 직선적이고 칼날과 비슷하게 생겨서 검을 연상시키기도 합니다. 또한, 아이언은 중장거리나 특정한 상황에서 사용되는 특수한 골프채로, 뛰어난 정밀성과 강력한 타격력이 필요한 상황에서 사용됩니다. 이러한 특징들이 아이언의 명칭 유래와 관련이 있을 수도 있습니다.

728x90
728x90

골프채의 "우드(wood)"라는 명칭은 원래 나무로 만들어졌기 때문에 붙여진 이름입니다. 과거에는 모든 골프채가 나무로 만들어졌으며, 이 중에서도 드라이버나 3우드 등 길고 강한 거리를 낼 수 있는 골프채는 특히 나무로 만들어져서 "우드"라는 이름이 붙여졌습니다.

하지만 현재는 골프채의 대부분이 금속으로 만들어지고 있으며, 그 중에서도 긴거리를 낼 수 있는 골프채는 대개 "드라이버(driver)"라는 명칭으로 불리고 있습니다. 그러나 "우드"라는 명칭은 전통적으로 사용되어 오고 있기 때문에, 여전히 많은 골프권에서는 "우드"라는 이름을 사용하고 있습니다.

목동코딩학원 코딩교육

728x90
728x90

C언어는 프로그래밍 언어 중에서도 가장 기본적인 언어 중 하나입니다. 이 언어를 이용하면 컴퓨터 시스템을 제어하고, 프로그램을 작성할 수 있습니다. C언어의 기초문법을 자세히 설명해보겠습니다.

주석

주석은 프로그램에서 설명을 위해 사용되는 부분으로, 컴파일러에 의해 무시됩니다. 주석은 다음과 같은 두 가지 형태로 작성됩니다

// 한 줄 주석


/*
여러 줄 주석
*/

변수

C언어에서는 변수를 사용하여 값을 저장하고, 이를 다른 곳에서 사용할 수 있습니다. 변수는 다음과 같은 형식으로 선언됩니다.

데이터_타입 변수_이름;
ex) int a;

여기서 데이터_타입은 변수에 저장될 값의 타입을 의미하며, 변수_이름은 변수의 이름을 의미합니다. 예를 들어, 다음과 같이 int 타입의 변수 x를 선언할 수 있습니다.

int x;


int x = 10;

또한, 변수를 선언과 동시에 초기화할 수 있습니다. 예를 들어, 다음과 같이 int 타입의 변수 x를 선언과 동시에 10으로 초기화할 수 있습니다.

int x = 10;

연산자

C언어에서는 다양한 연산자를 사용하여 계산을 수행할 수 있습니다. 이 중에서 대표적인 연산자들을 설명하겠습니다.

산술 연산자

산술 연산자는 다음과 같습니다.

연산자설명

+ 덧셈
- 뺄셈
* 곱셈
/ 나눗셈
% 나머지

대입 연산자

대입 연산자는 다음과 같습니다.

연산자설명

= 대입 연산자
+= 덧셈 후 대입
-= 뺄셈 후 대입
*= 곱셈 후 대입
/= 나눗셈 후 대입
%= 나머지 후 대입

비교 연산자

비교 연산자는 다음과 같습니다.

연산자설명

== 같은지 비교
!= 다른지 비교
> 큰지 비교
>= 크거나 같은지
< 작은지 비

배열

C언어에서는 배열을 사용하여 여러 개의 데이터를 하나의 변수에 저장할 수 있습니다. 배열은 다음과 같이 선언됩니다.

데이터_타입 배열_이름[배열_크기];

여기서 데이터_타입은 배열에 저장될 데이터의 타입을 의미하며, 배열_이름은 배열의 이름을 의미합니다. 또한, 배열_크기는 배열의 크기를 의미합니다. 예를 들어, 다음과 같이 int 타입의 5개의 원소를 가진 배열 arr을 선언할 수 있습니다.

int arr[5];

배열의 각 원소는 다음과 같이 인덱스를 이용하여 접근할 수 있습니다.

arr[0] = 10;
arr[1] = 20;

조건문

C언어에서는 조건문을 사용하여 프로그램의 흐름을 제어할 수 있습니다. 조건문은 다음과 같이 작성됩니다.

if (조건식) {
  // 조건식이 참일 경우 실행될 코드
} else {
  // 조건식이 거짓일 경우 실행될 코드
} 

여기서 조건식은 참 또는 거짓을 판단할 수 있는 식을 의미합니다. 예를 들어, 다음과 같이 x가 10보다 크면 "x is greater than 10"을 출력하고, 그렇지 않으면 "x is less than or equal to 10"을 출력하는 코드를 작성할 수 있습니다.

int x = 15;
if (x > 10) {
  printf("x is greater than 10");
} else {
  printf("x is less than or equal to 10");
}

반복문

C언어에서는 반복문을 사용하여 동일한 코드를 여러 번 실행할 수 있습니다. C언어에서는 for문과 while문이 가장 일반적으로 사용됩니다.

for문

for문은 다음과 같이 작성됩니다.

for (초기화; 조건식; 증감식) {
  // 조건식이 참일 경우 실행될 코드
}

여기서 초기화는 반복문이 시작될 때 한 번만 실행되는 코드를 의미합니다. 조건식은 반복문이 실행될 조건을 의미하며, 이 조건식이 참이면 반복문이 계속해서 실행됩니다. 증감식은 반복문이 실행된 후에 실행되는 코드를 의미합니다.

 

포인터

포인터(pointer)는 C언어에서 가장 중요한 개념 중 하나입니다. 포인터는 메모리 주소를 가리키는 변수로, 포인터를 이용하면 메모리 주소를 직접 조작할 수 있습니다.

포인터는 다음과 같이 선언됩니다.

데이터_타입 *포인터_변수_이름;

예를 들어, int형 포인터 ptr을 선언하려면 다음과 같이 작성합니다.

int *ptr;

포인터 변수에는 다음과 같이 메모리 주소를 할당할 수 있습니다.

int num = 10;
int *ptr = &num; // ptr 변수에 num 변수의 주소를 할당

포인터 변수를 이용하여 해당 메모리 주소에 저장된 값을 가져오거나 변경할 수 있습니다.

int num = 10;
int *ptr = &num; // ptr 변수에 num 변수의 주소를 할당
*ptr = 20; // num 변수의 값을 20으로 변경

구조체

구조체(struct)는 여러 개의 변수를 묶어서 하나의 변수로 만드는 자료형입니다. 구조체는 다음과 같이 정의됩니다.

struct 구조체_이름 {
  데이터_타입 멤버_변수_이름1;
  데이터_타입 멤버_변수_이름2;
  ...
};

예를 들어, 다음과 같이 Person이라는 구조체를 정의할 수 있습니다.

struct Person {
  char name[20];
  int age;
};

위의 구조체를 사용하여 변수를 선언할 수 있습니다.

struct Person p1;

구조체 멤버 변수에 접근할 때는 다음과 같이 작성합니다.

p1.age = 20;

동적 메모리 할당

동적 메모리 할당(dynamic memory allocation)은 프로그램 실행 중에 메모리를 할당하는 방법입니다. 동적 메모리 할당을 사용하면 프로그램의 유연성을 높일 수 있습니다.

동적 메모리 할당은 다음과 같은 함수를 사용하여 수행할 수 있습니다.

void *malloc(size_t size);

위의 함수는 메모리 블록을 할당하고, 할당된 메모리 블록의 주소를 반환합니다. size 매개변수는 할당할 메모리 블록의 크기를 지정합니다.

할당된 메모리 블록을 사용한 후에는 다음과 같은 함수를 사용하여 메모리를 해제해야 합니다.

void free(void *ptr);
728x90
728x90

지금 유지보수 하는 업체의 서버를 이전 해야할 필요가 생겼다.

서버 작업은 자주 하지 않다 보니 매번 새롭다.

게다가 버전을 맞추어 작업을 하다보니 몇 번을 해도 거의 같은 시간이 걸린다 ㅎㅎ

다음에 참조하기 위해 작업한 내용을 기록한다.

이번 작업은 클라우드 서버에 ubuntu, Docker등을 설치할 예정이다

----------------------------------

서버 : ubuntu 20.04

볼륨추가 : 1000Giga Byte

ubuntu@ubuntu1:~$ sudo su
root@ubuntu1:/home/ubuntu# fdisk -l

#파티션을 나눈다
root@ubuntu1:/home/ubuntu# fdisk /dev/vdc

Welcome to fdisk (util-linux 2.34).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x452e13e9.

Command (m for help): n
Partition type
p   primary (0 primary, 0 extended, 4 free)
e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-2097151999, default 2048):
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-2097151999, default 2097151999):

Created a new partition 1 of type 'Linux' and of size 1000 GiB.

Command (m for help): p
Disk /dev/vdc: 1000 GiB, 1073741824000 bytes, 2097152000 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x452e13e9

Device     Boot Start        End    Sectors  Size Id Type
/dev/vdc1        2048 2097151999 2097149952 1000G 83 Linux

Command (m for help): w
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.

root@ubuntu1:/home/ubuntu# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M 1004K  393M   1% /run
/dev/vda1        97G  1.8G   95G   2% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop0       62M   62M     0 100% /snap/core20/1270
/dev/loop1       68M   68M     0 100% /snap/lxd/21835
/dev/vda15      105M  5.2M  100M   5% /boot/efi
tmpfs           394M     0  394M   0% /run/user/1000
/dev/loop3       50M   50M     0 100% /snap/snapd/18357
/dev/loop4       64M   64M     0 100% /snap/core20/1822
/dev/loop5       92M   92M     0 100% /snap/lxd/24061

#파티션을 포맷한다
root@ubuntu1:/home/ubuntu# mkfs.ext4 /dev/vdc1

#UUID를 확보한다
root@ubuntu1:/home/ubuntu# blkid

#디랙토리를 만든다
root@ubuntu1:/home/ubuntu# mkdir -p /home/ubuntu/storage

#재부팅시 자동 연결하기 위해서 파일에 설정한다
root@ubuntu1:/home/ubuntu# vi /etc/fstab
LABEL=cloudimg-rootfs   /        ext4   defaults        0 1
LABEL=UEFI      /boot/efi       vfat    umask=0077      0 1
/dev/vdb        none    swap    sw,comment=cloudconfig  0       0
UUID=0a76a959-85d1-4e8c-8fe6-6e8d036017f7 /home/ubuntu/storage ext4 defaults 0 0

root@ubuntu1:/home/ubuntu# mount -a
root@ubuntu1:/home/ubuntu# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M  992K  393M   1% /run
/dev/vda1        97G  1.9G   95G   2% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop0       62M   62M     0 100% /snap/core20/1270
/dev/loop1       68M   68M     0 100% /snap/lxd/21835
/dev/vda15      105M  5.2M  100M   5% /boot/efi
tmpfs           394M     0  394M   0% /run/user/1000
/dev/loop3       50M   50M     0 100% /snap/snapd/18357
/dev/loop4       64M   64M     0 100% /snap/core20/1822
/dev/loop5       92M   92M     0 100% /snap/lxd/24061
/dev/vdc1       984G   77M  934G   1% /home/ubuntu/storage

#볼륨을 해제하고 다시 사용할때 사용한다
umount /home/ubuntu/storage << 마운트 해제시

Mysql  설치 및 원격접속 허용

apt-get install mariadb-server
mysql -uroot

> use mysql;
update user set authentication_string=password('password') where user='root';
flush priviledges ;
grant all privileges on . to 'root'@'%' identified by 'password';
> 

root@ubuntu1:/home/ubuntu/storage# cd /etc
root@ubuntu1:/etc# cd mysql

root@ubuntu1:/etc/mysql# ls
conf.d  debian-start  debian.cnf  mariadb.cnf  mariadb.conf.d  my.cnf  my.cnf.fallback

root@ubuntu1:/etc/mysql# cd mariadb.conf.d

root@ubuntu1:/etc/mysql/mariadb.conf.d# ls
50-client.cnf  50-mysql-clients.cnf  50-mysqld_safe.cnf  50-server.cnf

root@ubuntu1:/etc/mysql/mariadb.conf.d# vi 50-server.cnf
127.0.0.1  >> 0.0.0.1 로변경
root@ubuntu1:/etc/mysql/mariadb.conf.d# systemctl restart mysql

>> sql 파일로  DB를 생성함

asp.net core 3.1설치

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb
 -O packages-microsoft-prod.deb

nginx proxy 설정

server {
listen        80;
server_name   example.com *.example.com;

		location / {
		    proxy_pass         <http://localhost:5000>;
		    proxy_http_version 1.1;
		    proxy_set_header   Upgrade $http_upgrade;
		    proxy_set_header   Connection keep-alive;
		    proxy_set_header   Host $host;
		    proxy_cache_bypass $http_upgrade;
		    proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
		    proxy_set_header   X-Forwarded-Proto $scheme;
		}
		location /downloads {
		    alias /var/downloads/;
		    autoindex on;
		    limit_rate_after 10M;
		    limit_rate 5M;
		    access_log /var/log/nginx/down.access.log;
		    error_log  /var/log/nginx/down.error.log;
		    charset utf-8;
		}

}

Docker 설치

오래된 버전 삭제하기

혹시나 기존의 오래된 버전이 있는지 확실히 할 수 있으며, 있다면 최신 버전 설치를 위해 삭제 해줍니다.

bash

$ sudo apt-get update

$ sudo apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ gnupg 
\ lsb-release 

curl -fsSL
[https://download.docker.com/linux/ubuntu/gpg](https://download.docker.com/linux/ubuntu/gpg)

| sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \

"deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]

[https://download.docker.com/linux/ubuntu](https://download.docker.com/linux/ubuntu)

\

$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Docker Engine 설치하기

아래 명령어를 입력하면 자동으로 최신 버전이 설치 됩니다.

$ sudo apt-get update

$ sudo apt-get install docker-ce docker-ce-cli

[containerd.io](http://containerd.io/)

설치 완료

설치가 완료된 후에는

bash

$docker --version

$apt install docker-compose

$cd /home/ubuntu/appnet
$docker-compose up -d

vi Dockerfile
FROM ubuntu:20.04

ARG DEBIAN_FRONTEND=noninteractive
ENV TZ=Asia/Seoul
RUN apt-get update
RUN apt-get install -y tzdata

RUN apt-get update && apt-get -y install apache2 software-properties-common
RUN LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php
RUN apt-get update && apt-get install -y libapache2-mod-php7.3 php7.3 php7.3-cli php7.3-mysql
RUN a2enmod rewrite
EXPOSE 80
CMD apachectl -D FOREGROUND

RUN apt install vim -y
RUN apt install net-tools -y
RUN apt install iputils-ping -y

RUN apt update -y
RUN apt install language-pack-ko -y
RUN apt install fonts-nanum -y
RUN apt install fonts-nanum-coding -y
RUN apt install fonts-noto-cjk -y
ENV LANG ko_KR.UTF-8
ENV LANGUAGE ko_KR.UTF-8
ENV LC_ALL ko_KR.UTF-8

WORKDIR /
===================================
vi docker-compose.yml
version: '2'

services:
    ubuntu2004:
        hostname: a
        container_name: a_container
        build:
            context: .
            dockerfile: ./Dockerfile
        ports:
            - "8100:80"
        stdin_open: true
        tty: true
        environment:
            - TZ:"Asia/Seoul"
        volumes:
            - ./html:/var/www/html
========================
cd /etc/nginx/sites-available
vi default
server {
    listen        80;
    server_name   example.com *.example.com;

    location / {
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
    location /downloads {
        alias /var/downloads/;
        autoindex on;
        limit_rate_after 10M;
        limit_rate 5M;
        access_log /var/log/nginx/down.access.log;
        error_log  /var/log/nginx/down.error.log;
        charset utf-8;
    }
}
server {
    listen        80;
    server_name   example.com *.example.com;

    location / {
        proxy_pass         http://localhost:8100;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }
    location /downloads {
        alias /var/downloads/;
        autoindex on;
        limit_rate_after 10M;
        limit_rate 5M;
        access_log /var/log/nginx/down.access.log;
        error_log  /var/log/nginx/down.error.log;
        charset utf-8;
    }
}

service nginx restart

http://localhost:8100 은 실행됨

DNS변경 작업

 

- 이상 -

 

 

 

목동코딩학원 : 유니티, 로블록스 게임개발 교육

 

728x90
728x90

Docker container에서 curl을 사용하려면 다음과 같은 방법 중 하나를 선택하여 진행할 수 있습니다.

  1. curl이 이미 설치된 Docker 이미지를 사용하기
    • curl이 이미 설치된 Docker 이미지를 사용하면 curl 명령어를 사용할 수 있습니다. 예를 들어, ubuntu 이미지를 사용하여 Docker 컨테이너를 실행하면 curl을 사용할 수 있습니다.
docker run -it ubuntu
  1. 컨테이너 내부에서 curl 명령어를 실행하면, 컨테이너 내부에 설치된 curl을 사용할 수 있습니다.
  2. Docker 컨테이너 내부에 curl 설치하기
    • Docker 컨테이너 내부에 curl을 설치하여 사용할 수도 있습니다. 이를 위해서는 Dockerfile에서 curl을 설치하고 이미지를 빌드해야 합니다. 예를 들어, 다음과 같은 Dockerfile을 작성하여 curl을 설치한 이미지를 빌드할 수 있습니다.
FROM ubuntu:latest

RUN apt-get update && apt-get install -y curl

이후, 다음과 같이 Docker 이미지를 빌드하여 컨테이너를 실행할 수 있습니다

docker build -t myimage .
docker run -it myimage
  1. 컨테이너 내부에서 curl 명령어를 실행하면, 컨테이너 내부에 설치된 curl을 사용할 수 있습니다.
  2. Docker 컨테이너 외부에서 curl 사용하기
    • Docker 컨테이너 외부에서 curl 명령어를 실행할 수 있습니다. 이를 위해서는 docker exec 명령어를 사용하여 컨테이너 내부에서 curl 명령어를 실행해야 합니다. 예를 들어, 다음과 같이 컨테이너를 실행하고 docker exec 명령어를 사용하여 컨테이너 내부에서 curl 명령어를 실행할 수 있습니다.
docker run -it myimage
# 컨테이너 내부에서 실행
curl https://www.google.com
# 컨테이너 외부에서 실행
docker exec <container_id> curl https://www.google.com

위와 같이 curl을 사용하여 Docker 컨테이너 내부와 외부에서 데이터를 송수신할 수 있습니다

728x90
728x90

ChatGPT와 같은 대화형 인공지능 API를 Python에서 사용하려면 다음과 같은 단계를 수행해야 합니다.

  1. ChatGPT API를 사용하기 위해 API 키를 발급받습니다. API 키는 OpenAI 사이트에서 발급받을 수 있습니다.
  2. Python에서 requests 모듈을 사용하여 ChatGPT API를 호출합니다.
import requests
import json

prompt = "Hello, how are you?"

headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

data = {
    "prompt": prompt,
    "temperature": 0.5,
    "max_tokens": 60,
    "top_p": 1,
    "frequency_penalty": 0,
    "presence_penalty": 0
}

response = requests.post("https://api.openai.com/v1/engines/davinci-codex/completions", headers=headers, json=data)

response_data = json.loads(response.text)
print(response_data['choices'][0]['text'])

 

위 코드는 requests 모듈을 사용하여 ChatGPT API를 호출하는 예시입니다. API 호출 시 https://api.openai.com/v1/engines/davinci-codex/completions URL을 사용하며, headers 변수를 통해 API 키를 인증합니다. 그리고 data 변수를 통해 인공지능 모델에 전달할 문장과 다양한 옵션을 설정합니다.

  1. API 호출 결과는 response 변수에 저장됩니다. 이 값을 json.loads 함수를 사용하여 JSON 형태로 디코딩한 뒤, 필요한 정보를 추출하여 사용할 수 있습니다. 위 코드에서는 response_data['choices'][0]['text']를 통해 반환된 답변을 출력하고 있습니다.
  2. 이제 ChatGPT API를 사용하여 Python 애플리케이션에서 인공지능 대화 시스템을 구현할 수 있습니다.

 

목동코딩학원 : 온라인코딩교육, 유니티게임개발교육, 로블록스게임개발교육, 한국서비스산업진흥원, 플랫폼프로젝트수업

728x90

+ Recent posts