전체 글 140

Oracle (1) - MERGE INTO를 이용하여 간단하게 조건있는 데이터를 다루자

우리가 A라는 데이터를 만들 때 데이터가 있고 없는 경우에 따라 나누는 경우가 있습니다. PL/SQL을 이용하여 프로시저를 만드는 방법도 있지만 MERGE INTO라는 구문을 이용하면 쉽게 만들 수 있습니다. 예제 테이블 CREATE TABLE T1 ( STU_NO VARCHAR2(10) PRIMARY KEY, --학번 STU_NAME VARCHAR2(10) NOT NULL, --이름 SCR NUMBER(5) --점수 ); CREATE TABLE T2 ( STU_NO VARCHAR2(10) PRIMARY KEY, --학번 STU_GRADE VARCHAR2(2) NOT NULL, --학년 STU_GEND VARCHAR2(2), --성별 SCR NUMBER(5) --점수 ); CREATE TABLE T3 (..

컴퓨터/Oracle 2023.05.31

Python (17) - ChatGPT를 API로 사용해보자 (openai)

ChatGPT는 이미 아주 유명하다고 생각합니다. 인공지능 비서 등 다양한 요소에서 충분하게 사용할 수 있습니다. 해당 프로젝트 제작에 앞서, 파이썬으로 ChatGPT의 기본 엔진이 되는 GPT를 API로 사용하는 방법에 대하여 알아보겠습니다. GPT란 무엇인가? (해당 문구는 ChatGPT에 질문 한 것을 그대로 적었습니다.) GPT는 "Generative Pre-trained Transformer"의 약자로, 대규모 텍스트 데이터를 사용하여 사전에 훈련된 언어 모델입니다. 이 모델은 주로 자연어 이해(NLU) 분야에서 사용되며, 문장 생성, 기계 번역, 질의 응답, 문서 요약 등 다양한 자연어 처리 작업에 사용됩니다. GPT 모델은 인간과 같은 방식으로 문장을 생성하며, 이전에 입력된 문장의 문맥을 ..

컴퓨터/Python 2023.05.15

Python (16) - TTS와 STT를 구현하자 (pyttsx3, Speech Recogition)

군대에서 기가지니라는 인공지능 스피커를 처음 사용하였습니다. 최근에 인공지능 스피커에 대하여 관심을 가지기 시작하였는데 여기에서 핵심기술이 텍스트와 음성 간의 관계라고 생각합니다. 두 관계를 해결해야지 사람과 기계가 소통할 수 있기 때문입니다. 그래서 이번에는 사람과 기계가 소통하는 방법 TTS와 STT에 대하여 알아보겠습니다. STT (Speech to Text) "기가지니?"라고 우리가 말하면 기가지니는 "네?"라고 반응합니다. 어떻게 기가지니라고 말하는 것을 컴퓨터가 알아들었을까요? 이것은 STT라는 기술을 이용하여 음성을 분석하여 텍스트로 바꾸어 주기 때문입니다. 발음마다 매질이 달라 일일이 분석하여 해당 소리를 낼 수도 있지만 해당 과정은 몹시 어렵습니다. 그래서 파이썬에 패키지를 이용하려고 합..

컴퓨터/Python 2023.05.10

MySQL (13) - 프로시저(Procedure)와 함수(Function)

간단하게 CRUD만 사용하는 경우에는 SQL을 깊게 사용하지 않지만, 전문적으로 DB를 운영하기 위해서는 결국 함수형으로 관리하는 것이 필수입니다. SQL에는 함수만 있지 않고 프로시저가 있습니다. 이번에는 해당 개념에 대하여 알아보려고 합니다. 함수 (Function) 데이터베이스에서 함수는 일반적인 프로그래밍언어에서 함수의 역할과 동일합니다. 입력값을 받아 특정한 작업을 수행하고 결과값을 출력하는 구조로 되어있습니다. 함수는 특정 작업을 수행하고 그 결과를 반환하여 DML 및 SELECT를 사용하는 쿼리문 안에서 표현식으로 사용될 수 있습니다. 함수는 다음과 같은 특징을 가지고 있습니다. 함수에서 입력값을 받아 처리하고 해당 결과값을 반환합니다. 함수 호출 문에서 반환된 값으로 사용할 수 있습니다. ..

컴퓨터/MySQL 2023.05.01

Python (15) - 파이썬 가상환경을 만들자 (venv)

한 프로그래밍 언어로 여러 가지 작업을 하다 보면 패키지의 충돌 등 다양한 문제가 생길 수 있습니다. 특히 파이썬 같은 경우에는 A라는 프로젝트를 돌리기에 패키지가 많은 오류를 일으킵니다. 이런 방법을 해결하기 위한 한 가지의 수단으로 가상환경을 이용해보도록 하겠습니다. 가상환경이 필요한 이유 위에서 말한 것과 같이 여러 가지 작업을 하다 보면 패키지의 충돌이 일어날 수 있습니다. 프로젝트마다 필요한 라이브러리나 패키지의 버전이 다르기 때문에 해당 사건이 일어날 수 있습니다. 이것을 의존성 분리라고 합니다. 가상환경을 통하여 의존성 충돌을 피하고, 각 프로젝트를 독립적으로 관리할 수 있습니다. 이를 통하여 효율적으로 프로젝트를 관리할 수 있으며 이는 프로그램 제작 후 배포 시에 용이합니다. 위의 두 사진..

컴퓨터/Python 2023.04.15

라즈베리파이 (6) - Raspberry Pi와 Aduino를 연동해보자 (Firmata)

라즈베리파이는 하나의 컴퓨터로 복잡한 작업을 하는 데 유리합니다. 하지만 복잡한 코딩을 할 때 종종 전력 문제 혹은 핀의 수가 모자란 경우가 있습니다. 이런 방법을 해결하기 위한 하나의 대안으로 아두이노를 이용한 시리얼 통신을 하려고 합니다. 통신하는 방법을 알아보도록 하겠습니다. ※ 아두이노 우노, 라즈베리파이 3B+로 진행하였습니다. 가장 먼저 해야 하는 것 우선 아두이노를 연동하기 전 리눅스를 update 및 upgrade 합니다. sudo apt-get update sudo apt-get upgrade 아두이노 IDE를 이용한 방법 먼저는 아두이노 IDE를 이용하여 통신하는 방법을 소개하겠습니다. 가장 먼저 AduinoIDE를 설치합니다. sudo apt-get install aduino 설치가 ..

컴퓨터 고치기 - 새 파티션을 만들거나 기존 파티션을 찾을 수 없습니다

4월5일 친구가 노트북을 바꿔 윈도우10을 설치해주었습니다. 처음에는 USB인식이 안 되다가 포트 변경을 통하여 USB 인식이 잘되었고 윈도우10를 설치하던 중 아래와 같은 에러를 마주하게 되었습니다. 새 파티션을 만들거나 기존 파티션을 찾을 수 없습니다 ※ 이번 글에는 원격으로 해결해서 사진을 거의 못 찍었습니다. 대상 컴퓨터 MSI Sword GF76 B13VFK (SSD 512GB) i7-13세대, 16GB RAM, RTX 4060 window10 (설치 중) 해결 방법 제가 해결한 방식은 CMD를 이용하여 하드를 포맷한 재부팅 후 실행하였더니 됏습니다. 순서는 다음과 같습니다. 1. Shift + F10으로 CMD 창을 엽니다. 2. 그다음 아래의 명령 순서를 따라가도록 합시다. diskpart ..

MySQL (12) - 집계함수에 대하여 알아보자 (COUNT, SUM, AVG, MIN, MAX)

SQL을 사용하는 경우 테이블의 최솟값, 합계 등 정보가 필요한 경우가 있습니다. 그럴 때 집계함수라는 것을 활용합니다. 5가지의 집계함수에 대하여 알아보겠습니다. 집계함수 집계함수(Aggregate Function)란 DB에서 특정 칼럼의 값들을 모아서 계산하는 함수입니다. 이에 따른 특징으로 입력이 여러 개의 row를 가지고 출력이 하나의 결과를 만듭니다. 집계 함수를 이용하여 데이터의 요약 정보를 쉽게 구할 수 있습니다. 예제 테이블 class name price score 1 minji 5500 80 2 sanggyu 1000 2000 3 younga 2500 100 COUNT SELECT COUNT(*) --2 FROM mytable WHERE price > 2000; COUNT 함수는 특정 칼..

컴퓨터/MySQL 2023.04.05

일상 - 오디오 인터페이스를 샀습니다. (Irig hd2 리뷰)

2020년 때 저는 음악을 하고 싶어 오디오 인터페이스를 하나 샀습니다. 그때 커즈와일의 오인페를 구입하고 사용했습니다. 처음에는 일반적인 오인페를 사용하여 다양한 악기를 이용할 것이라는 생각을 하였습니다. 하지만 몇 년이 지나고 기타와 베이스만 연결하는 것을 깨달았습니다. 그리고 교회에서 세션을 하던 중 이펙터의 필요성도 느껴 쉽게 사용할 수 있는 오디오 인터페이스를 구입하였습니다. 단자가 적고 가볍다제품을 처음 봤을 때 느낀 점입니다. 휴대성에 초점이 맞춰진 제품이라 그런지 단자가 많이 아쉽다는 생각이 들었습니다. 하지만 가벼움이라는 목표는 충분히 달성  했다는 생각합니다. 무게도 51g으로 가볍습니다. 구체적으로 단자는 IO 포트가 각각 1개씩 있습니다. 일렉이나 베이스처럼 세션맨에게 충분히 특화되..

일상 2023.04.03

MySQL (11) - 내장함수를 이용하여 숫자를 다뤄보자

SQL을 다룰 때 문자만큼이나 숫자 형식도 많이 다루게 됩니다. 문자열 내장함수에 이어 숫자를 조작하는 내장함수를 알아보도록 하겠습니다. ※ 함수 설명을 중심으로 내용을 진행합니다. ※ 제가 자주 사용한 함수는 ★로 표시하였습니다. 숫자 함수정리 ABS (★) SELECT ABS(-1004) -- 1004 FROM DUAL; ABS 함수는 절댓값으로 반환하는 함수입니다. 해당 예제에서는 1004로 반환합니다. SIGN SELECT SIGN(1004) --1 FROM DUAL; SIGN 함수는 숫자가 양수인 경우에는 1 음수 일때는 -1을 반환하며, 0일 때는 0을 반환합니다. 위의 예제에는 1을 반환합니다. POW, SQRT (★) SELECT POW(3,2), SQRT(16) -- 9, 4 FROM D..

컴퓨터/MySQL 2023.04.02