전체 글 140

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

프로젝트 - 자동차 장애물 신속 대처 시스템 제작 후기

2022년 3월부터 12월까지 학교에서 4학년을 맞이하여 캡스톤디자인이라는 다소 생소한 과목 이름과 함께 졸업 연구를 하였습니다. 작품 제작부터 학술제까지 그동안의 과정에서 못했던 이야기를 한번 풀어보려고 합니다.※ 서버 파트 제작자의 시선으로 해당 연구에 대하여 진행하였음을 이야기합니다. 자동차 장애물 신속 대처 시스템 우리가 일상생활에 필요한 것이 무엇이 있을까 생각하였습니다. 조원들과 생각하던 중 "자동차에 AI를 사용할 수 있을까?"라는 개념으로 출발하게 되었으며 이는 장애물로 인한 사고 위치 및 상황을 자동으로 탐지한다는 결과에 이르렀습니다. 현재는 운전자가 신고하려면 ‘한국도로공사’에서 제공하는 앱이나 전화로 많은 단계를 거처 신고를 해야 한다는 불편함으로 신고율이 낮아질 수 있다고 판단하였습..

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

Python (10) - pytesseract를 이용하여 이미지 안에 있는 글자를 뽑아보자

가끔 우리가 웹사이트의 이미지를 텍스트로 바꿔야 할 때가 있습니다. 이번에는 Tesseract 엔진을 이용하여 이미지를 텍스트로 바꿔보는 방법에 대하여 알아보겠습니다. Tesseract OCR 우선 OCR이란 Optical Character Recognition의 약자로 직역하자면 광학 문자 인식입니다. 사람 혹은 기계가 종이에 작성한 문자를 이미지화하여 기계가 읽을 수 있는 문자로 변환합니다. Tesseract엔진은 광학 문자를 인식할 수 있는 엔진으로 파이썬을 이용하여 해당 엔진을 조작하고, 문자 인식을 하려고 합니다. 아래는 깃허브에 나와있는 문서로 참조하는 것을 추천합니다. https://github.com/madmaze/pytesseract GitHub - madmaze/pytesseract: ..

컴퓨터/Python 2023.01.07

Python (9) - BeautifulSoup를 이용하여 디시인사이드에 웹 크롤링을 해보자

카타르 월드컵이 끝나고 커뮤니티를 실시간으로 볼 수 있는 웹 크롤러가 있으면 어떨까 생각해 보았습니다. F5를 주기적으로 눌러보는 방법도 있으나 크롤링으로 화면이 보이게 하였습니다. 그래서 먼저는 데이터를 크롤링하는 방법에 대하여 알아보겠습니다. 크롤링 먼저 크롤링은 웹상에 존재하는 정보를 수집해 오는 작업입니다. 데이터 수집 방법에는 크게 3가지 방법이 있습니다. HTML 페이지를 가져와 필요한 데이터만 수집하는 방법 OpenAPI를 호출하여 받은 데이터 중 필요한 데이터만 수집하는 방법 프로그램을 이용하여 브라우저를 조작하여 필요한 데이터를 수집하는 방법 여기서 1번 방법을 사용하여 HTML 페이지를 가져오는 방법을 진행하려고 합니다. 디시인사이드 크롤링을 하는 과정 ※ 크롤링 같은 경우 사용 방법에..

컴퓨터/Python 2023.01.03

PHP (3) - exec를 이용하여 파이썬을 연동하자

제가 졸업 연구에서 PHP를 사용한 이유가 파이썬으로 제작한 소스 코드를 연동하여야 합니다. 저같은 경우 AI관련한 부분은 파이썬을 사용하게 되어 유용하게 사용할수 있습니다. PHP에서는 다른 언어에 비하여 간단하게 콘솔을 실행시킬 수 있고 해당 결과들을 웹으로 표현할 수 있습니다. exec 함수 exec 함수는 외부 프로그램을 실행시키는 함수입니다. 정확하게는 PHP에서 터미널을 다루는 함수입니다. 해당 함수에다가 파이썬 명령어를 깔아서 실행할 수 있습니다. 위의 예제는 터미널을 이용하여 'Hello World' 를 출력합니다. 이제 해당 명령어를 통하여 파이썬과 연동을 실행시켜보도록 하겠습니다. 파이썬과 연동하기 1. 기본적인 방법 #hello.py for i in range(5): print(i, ..

컴퓨터/PHP 2023.01.03

PHP (2) - PHP에서 MySQL을 다뤄보자

PHP에서 MYSQL을 다뤄보자 졸업 연구에서 PHP를 서버로 사용하였습니다. 제가 PHP를 졸업 연구에서 사용했던 이유는 PHP의 가장 큰 장점은 SQL과 연동성이라고 생각합니다. 그래서 이번에는 PHP와 MySQL을 한번 연결하는 방법을 알아보겠습니다. SQL 연결 전 초기세팅 SQL을 연결하기 전 객체를 만들어 줘야 합니다. 각각의 객체는 host, user, pw, dbName을 가져와야 하며 SQL에서 제작한 값들을 넣어주면 됩니다. 값을 직접 넣을 수도 있지만 파일 처리를 통하여 아래의 형식처럼 넣는 것도 가능합니다. 파일을 통하여 쉽게 관리할 수 있습니다. fgets 메소드를 사용하여 파일처리를 통하여 가져올 수 있습니다. fgets 메소드는 파일을 한줄씩 읽습니다. 따라서 init.txt를..

컴퓨터/PHP 2023.01.02