컴퓨터 102

MySQL (8) - 기본키를 여러 개 두어야 할 때 (복합키)

기본키(Primary Key)는 여러 개 사용할 수 없습니다. 하지만 기본키를 여러 개가 필요 경우가 있습니다. 예를 들어 "매년도에 전체 학생의 행사 참여에 관한 테이블을 만들 때" 학생과 년도의 정보를 묶어서 사용해야 합니다. 어떻게 해야 하는가? 우선 기본키는 주민등록번호와 같이 테이블의 각 행을 고유하게 식별하는 역할을 합니다. 해당 역할을 수행하기 위해 NULL 값을 가져서는 안 되며 각 열을 구분할 수 있어야 합니다. 또한 기본키는 더불어 최소성을 가져 각 테이블에 한 개만 둘 수 있습니다. CREATE TABLE TEMPDB ( student_numVARCHAR(12) PRIMARY KEY, yearINT PRIMARY KEY, activityVARCHAR(100), noteVARCHAR(1..

컴퓨터/MySQL 2023.03.11

컴퓨터 고치기 - 모니터 해상도가 640x480으로 고정될 때 해결

최근에 컴퓨터에 듀얼모니터 기능을 사용하는 중 한 가지 오류를 발견하였습니다. 이번에는 해당 문제를 해결해보도록 하겠습니다. 대상 노트북 노트북 - 서피스프로 X (2019) - ARM 기반의 CPU를 탑재하고 있는 노트북입니다. OS - 윈도우11 제가 활용했던 솔루션은 다음과 같습니다. 포트를 바꾸어 본다 (C to HDMI) 다른 선으로 바꾼다 dxdiag에서 오류를 확인해본다. 그래픽 드라이버를 제거 후 다시 설치한다 노트북의 전원 부분을 다시 확인한다 - 해결 대부분 원인은 1번, 2번의 오류가 대부분입니다. 전자제품이다 보니 아예 안되는 경우 전원을 완벽히 차단하고 하는 것도 하나의 솔루션이 될 수 있다는 것을 알았습니다. 소프트웨어적으로 할 수 있는 3번의 방법과 4번의 방법을 소개하겠습니다..

MySQL (7) - JOIN에 대하여 알아보자

SQL 탐색에서 여러가지 테이블을 연동하여 사용하는 경우가 많습니다. 이때 사용하는 방법이 JOIN입니다. 이번에는 해당 방법에 대하여 알아보겠습니다. 한 번에 알아보는 JOIN의 종류 간단하게 집합 사진과 쿼리문을 정리하였습니다. 시간이 없으신 분들은 해당 부분의 쿼리문만 보셔도 됩니다. 벤다이어그램 소스 코드 SELECT * FROM A a INNER JOIN B b ON a.KEY = b.KEY; SELECT * FROM A a LEFT OUTER JOIN B b ON a.KEY = b.KEY; SELECT * FROM A a LEFT OUTER JOIN B b ON a.KEY = b.KEY WHERE b.KEY IS NULL; SELECT * FROM A a RIGHT OUTER JOIN B b ..

컴퓨터/MySQL 2023.03.02

Python (14) - Tic-Tac-Toe게임을 만들어보자 (pygame)

파이썬에는 pygame이라는 멀티미디어 표현을 위한 라이브러리가 있습니다. 해당 라이브러리를 통해 다양한 게임들을 제작할 수 있습니다. 해당 라이브러리 소개를 위한 첫 프로젝트로 간단하게 제작이 가능한 틱택토를 구현해보았습니다. 완성된 소스 코드가 필요하신 분은 아래 링크 클릭하여 소스 코드로 바로 이동하면 됩니다. 소스 코드 Tic-Tac-Toe (틱택토) 틱택토는 서양 놀이 중 하나로 3x3 보드에서 가로, 세로, 대각선 중 한 줄을 만들면 승리하는 게임입니다. 간단하게 삼목입니다. 플레이 방법은 다음과 같습니다. 가로 두 줄 세로 두 줄을 그립니다. 1P와 2P는 3x3 공간 안에 각각 O, X를 번갈아 가면서 그립니다. 가로, 세로, 대각선 중 한 줄이 완성되는 경우 만든 사람이 승리합니다. 게임..

컴퓨터/Python 2023.02.14

Python (13) - 파이썬으로 QR코드를 만들어보자 (qrcode)

QR코드는 정보를 오프라인으로 담을 수 있는 한 가지 방법입니다. 해당 방법을 이용하여 더 쉽고 빠르게 정보를 공유할 수 있습니다. 파이썬에서도 QR코드를 생성할 수 있는 모듈이 있는데 이번에는 해당 모듈에 대해 알아보겠습니다. QR코드는 무엇인가? QR코드는 Quick Responce의 약자로 1994년 일본 'Denso Wave'에서 개발되었습니다. 2차원으로 데이터를 나열한 정보표시 방법으로 흰색 바탕에 검정색 점으로 구성되어 있습니다. 해당 기술을 응용하여 URL, 텍스트 등 데이터를 담거나, 회용으로 제공하는 링크를 이용하여 결제기능을 구현할 수 있습니다. QR코드는 QR코드 리더 및 스캐너를 통해 읽을 수 있습니다. QR코드의 특징 어떤 방향에서 측정해도 인식할 수 있다. 문자 기준 4096자..

컴퓨터/Python 2023.02.09

PHP (4) - phpMyAdmin 설치하기

PHP의 큰 장점 하나는 phpMyAdmin입니다. 이번에는 기술에 대한 소개와 해당 프로그램을 설치하도록 하겠습니다. phpMyAdmin phpMyAdmin은 MySQL과 mariaDB를 지원하는 오픈소스 데이터관리 프로그램입니다. 웹 기반으로 PHP로 작성되어있고 데이터베이스를 관리하는데 GUI로 직관적이고 쉽게 볼 수 있는 환경을 제공합니다. PHP를 환경, 특히 웹호스팅 관련하여 자주 사용합니다. 아래 링크는 해당 프로그램에 대한 웹사이트 링크입니다. https://www.phpmyadmin.net/ phpMyAdmin Your download should start soon, if not please click here. Please verify the downloaded file Please ..

컴퓨터/PHP 2023.02.07

Batch (2) - 특정 프로세스를 모니터링 하여 계속 실행해주는 배치파일을 제작하자

배치파일을 이용하여 실행 중인 프로세스를 확인하고 안 되는 경우 실행하는 배치파일을 만들어보겠습니다. ※ 모든 예시 및 소스코드의 프로세스 대상은 "steam.exe" 으로 정하였습니다. 프로세스 관련한 명령어 ※위의 명령어는 지극히 일부 기술하였습니다. tasklist tasklist는 실행 중인 프로세스를 확인하는명령어 입니다. 아래에 표시되는 리스트는 현재 컴퓨터에 실행하고 있는 프로세스입니다. 여기서 하나만 뽑고 싶은 경우에는 아래의 명령어로 검색하면 됩니다. tasklist | findstr "steam.exe" 해당 명령어는 tasklist에 실행하고 있는 사항 중 "steam.exe"를 찾으라는 명령어입니다. 이것을 통하여 우리가 원하는 프로세스를 발견할 수 있습니다. taskkill 현재 ..

컴퓨터/Batch 2023.01.25

Python (12) - 재귀함수를 이용하여 팩토리얼, 하노이탑을 풀어보자

재귀함수를 이용하여 알고리즘을 구성하는 경우 많은 문제를 해결할 수 있습니다. 재귀함수와 어떻게 사용해야 하는지 팁을 공유하도록 하겠습니다. 재귀함수 어떠한 함수에서 자신을 다시 호출하여 작업하는 작업방식입니다. 위의 이미지는 방송을 호출할 때 무한화면으로 나와 있는데 이것처럼 이론상 무한으로 재귀함수를 사용할 수 있습니다. 하지만 재귀함수의 공간을 스택 메모리에 담기 때문에 너무 많은 재귀함수를 사용하는 경우 스택 오버플로우로 에러가 날 수 있습니다. 여담으로 재귀함수를 사용하지 않아도 반복문으로 재귀함수처럼 문제를 해결할 수 있습니다. 그럼에도 불과하고 재귀함수를 사용하는 경우는 다음과 같습니다. 재귀적인 경우가 더 자연스러운 알고리즘인 경우에 사용한다 스택으로 메모리를 이용하기 때문에 변수 사용이 ..

컴퓨터/Python 2023.01.14

Linux (3) - Linux, Apache, MySQL, PHP 구축하기 (LAMP)

요즘은 웹서버를 구성할 때 다른 언어를 이용하여 구성하는 경우가 많은데 개인 블로그등에서 가장 많이 사용하는 LAMP에 대하여 알아보도록 하겠습니다. LAMP LAMP란 리눅스 환경에서 아파치, MySQL, PHP를 통합으로 설치하는 스택입니다. 4가지 소프트웨어는 전부다 오픈소스이므로 유지 보수가 쉽고 누구나 무료로 사용할 수 있습니다. 각각의 역할은 아래와 같습니다. Linux - 운영체제 Apache - 웹 서버 MySQL - 데이터베이스 서버 PHP - 프로그래밍 언어 설치 방법 ※기본환경은 Ubuntu 22.04버전으로 환경을 구축하였습니다. 1. Ubuntu 패키지 최신화 sudo apt update #등록된 저장소 안에 최신 패키지로 업데이트 sudo apt upgrade #최신 패키지를 시..

컴퓨터/Linux 2023.01.11

Python (11) - 스택(Stack)과 큐(Queue) 구현하기

우리가 자료구조를 공부함으로 복잡한 프로그램들을 편하게 설계할 수 있습니다. 기본적인 자료구조들을 넘어 중요한 두 가지 자료구조를 소개합니다. 바로 스택과 큐입니다. 시작하기 전에 개념 단어 자료구조에서 쓰는 단어 중 FIFO, FILO, LIFO, LILO이라는 단어가 있습니다. FIFO (First In First Out) : 먼저 데이터가 먼저 빠져나가는 구조 (큐) FILO (First In Last Out) : 먼저 데이터가 가장 마지막에 빠져나가는 구조 (스택) LIFO (Last In First Out) : 마지막 데이터가 가장 먼저 빠져나가는 구조 (스택) LILO (Last In Last Out) : 마지막 데이터가 마지막 나오는 구조 (큐) 스택 (Stack) 스택은 LIFO의 개념을 ..

컴퓨터/Python 2023.01.09