[알고리즘 - 기초] 완전 탐색, 브루트 포스 (Brute Force)

완전 탐색, 브루트 포스란 무엇인가? 브루트 포스를 사전적 의미로 찾아본다면 아래와 같다. 브루트(Brute) : 무식한 + 포스(Force) : 힘 즉, 발생할 수 있는 모든 경우를 무식하게 탐색한다는 뜻이다. 전체를 탐색한다는 의미에서 전체 탐색, 완전 탐색이라고도 한다. 브루트 포스 알고리즘을 설계할 때는 해가 하나 이상 존재한다는 가정을 세우고 모든 범위를 탐색하기 때문에 무조건 정답을 찾을 수 있다. 브루트 포스의 장점 알고리즘을 설계하고 구현하기 매우 쉽다. 복잡한 알고리즘 없이 빠르게 구현할 수 있다. 브루트 포스의 단점 알고리즘의 실행 시간이 매우 오래 걸린다. 메모리 효율면에서 매우 비효율적이다. 브루트 포스의 종류 브루트 포스는 크게 선형구조와 비선형 구조로 나눌 수 있다. 선형 구조 ..

[알고리즘 - 기초] 재귀 함수 (Recursive Function)

재귀함수란 무엇인가? 자기 자신을 호출하는 함수를 재귀함수(Recursive Function)라고 하며 이때 하는 호출을 재귀호출(Recursive Call)이라고 한다. 팩토리얼, 하노이 탑과 같은 문제에서 많이 사용된다. 재귀 함수의 장점 직관적이며 간단하게 구현할 수 있다. 깊이 우선 탐색, 백트래킹, 분할 정복 등 많은 알고리즘에서 사용되기도 해서 기초가 되는 개념이다. 재귀 함수의 단점 재귀함수의 종료 조건을 잘 설정해주지 않으면 재귀함수를 빠져나오지 못하게 되면서 무한루프에 빠질 수 있다. 재귀 호출의 깊이가 너무 깊어지면 너무 많은 메모리를 사용한다. 불필요한 반복 연산을 하게 될 가능성이 있다. 팩토리얼 문제 재귀함수로 해결하기 팩토리얼을 구하는 함수가 있다고 생각해보자. 5팩토리얼을 재귀..

Unity에서 SQLite 사용하기 (Windows) - 2

아래 글에서 이어지는 내용이다. Unity에서 SQLite 사용하기 (Windows) - 1 Unity와 MySQL을 연동하는 방법은 아래 링크를 참고하길 바란다. Unity에서 MySQL 사용하기 (Windows) - 1 Unity에서 데이터베이스를 사용하기 위해 여러 가지 시도를 해봤지만 DLL 파일의 여러 가지 문제로 foreverhappiness.tistory.com PHP와 SQLite3 연동 확인 아래 PHP 코드를 입력하여 이전 글에서 만들었던 DB 파일과 같은 경로에 넣어준다. 나는 dbTest.php 이름으로 만들었다. http://localhost/sqlite3/dbtest.php 로 접속했을 때 아래와 같은 화면이 나온다면 php와 Apache 연동은 확인한 것이다. 이제는 php와 ..

Unity에서 SQLite 사용하기 (Windows) - 1

Unity와 MySQL을 연동하는 방법은 아래 링크를 참고하길 바란다. Unity에서 MySQL 사용하기 (Windows) - 1 Unity에서 데이터베이스를 사용하기 위해 여러 가지 시도를 해봤지만 DLL 파일의 여러 가지 문제로 시행착오를 많이 겪었다. 수많은 시행착오 끝에 PHP를 통해 MySQL과 Unity를 연동하는 것에 성공했 foreverhappiness.tistory.com SQLite에서 PHP 사용하기 Apache24 설치 SQLite에서 PHP를 사용하려면 사용할 컴퓨터를 서버로 만들어줄 필요가 있다. 이미 서버가 구축되어 있다면 이 단계는 건너뛰어도 무방하다. 서버 구축을 위해 Apache24를 설치할 것이다. 아래 링크를 클릭해보자. Apache VS16 binaries and m..

Unity에서 MySQL 사용하기 (Windows) - 2

이전 글에서 PHP와 MySQL을 연동하는 작업을 했다. 이번에는 이전 글에 이어서 Unity에서 PHP를 사용하여 MySQL에 연동하는 작업을 해볼 것이다. Unity에서 MySQL 사용하기 (Windows) - 1 Unity에서 데이터베이스를 사용하기 위해 여러 가지 시도를 해봤지만 DLL 파일의 여러 가지 문제로 시행착오를 많이 겪었다. 수많은 시행착오 끝에 PHP를 통해 MySQL과 Unity를 연동하는 것에 성공했 foreverhappiness.tistory.com Unity에서 phpMyAdmin을 통해 MySQL 사용하기 데이터베이스 만들기 phpMyAdmin에 돌어가서 데이터베이스를 클릭한다. 만들기를 눌러 데이터베이스를 생성한다. 테스트를 위해 나는 highscores라는 이름으로 만들었..

[Unity Warning] Visual Studio Editor Package version 2.0.12 is available, we strongly encourage you to update from the Unity Package Manager for a better Visual Studio integration 해결 방법

Problem 유니티를 사용하다가 아래와 같은 Warning을 만났다. Visual Studio Editor Package version 2.0.12 is available, we strongly encourage you to update from the Unity Package Manager for a better Visual Studio integration 심각한 문제는 아니지만 Warning은 종종 거슬릴 수도 있다. Unity에서 제공하는 Visual Studio Editor Package의 버전이 최신 버전이 아닐 때 이런 Warning이 발생한다. Solution Unity에서 Window탭을 눌러 Package Manager 창을 띄워주자. Packages가 기본적으로 In Project로..

게더타운(Gather.town) 다운로드 및 사용법

코로나 바이러스로 인해 비대면, 온라인, 원격 플랫폼을 사용하는 것이 일상이 되어 버린 요즘 기술 변화와 발전이 크게 오면서 우리는 갑자기 변해버린 일상에 적응해야 했다. Zoom, Google Meet, 스카이프 등 많은 원격 플랫폼들이 변화된 일상에 많은 도움을 주고 있지만 이번에는 재택근무, 비대면 강의, 온라인 수업 등은 물론이며 여기에 메타버스 요소까지 추가된 게더타운에 대해 알아볼 것이다. 게더타운 다운로드 게더타운 다운로드를 위해 아래 링크로 이동한다. Download Gather Stay focused on your work while having a window into your Gather space. www.gather.town 아래와 같은 페이지가 나오면 Download for Wi..

Unity 다운로드

요즘 디지털 트윈, 메타버스와 같은 기술들이 유행하면서 Unity와 같은 엔진들이 단순히 게임 엔진의 역할만 하는 것이 아니라 가상현실, 가상공간을 구현하는 도구로도 많이 사용되고 있다. 나도 최신 기술에 관심이 많아 요즘 Unity를 공부하고 있는데 관련 기술들을 접할 때마다 기대가 크다. Unity 다운로드 아래 링크로 들어가서 시작하기 버튼을 클릭한다. 홈페이지 UI가 계속해서 변하고 있기 때문에 버튼 위치나 모양이 사진과는 다를 수 있다. 유니티 - Unity Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, ..

Unity에서 MySQL 사용하기 (Windows) - 1

Unity에서 데이터베이스를 사용하기 위해 여러 가지 시도를 해봤지만 DLL 파일의 여러 가지 문제로 시행착오를 많이 겪었다. 수많은 시행착오 끝에 PHP를 통해 MySQL과 Unity를 연동하는 것에 성공했다. 하지만 MySQL은 상업용으로 사용하려면 상용 라이선스가 필요하기 때문에 다른 데이터베이스와의 연동도 계속해서 시도 중이다. MySQL에서 PHP 사용하기 Apache24 설치 MySQL에서 PHP를 사용하려면 사용할 컴퓨터를 서버로 만들어줄 필요가 있다. 이미 서버가 구축되어 있다면 이 단계는 건너뛰어도 무방하다. 서버 구축을 위해 Apache24를 설치할 것이다. 아래 링크를 클릭해보자. Apache VS16 binaries and modules download www.apachelounge..

RTX3070 그리고 Tensorflow GPU잡기 전쟁 끝..

RTX 3070 노트북을 구매한고 몇개월이 지났는데 아직 GPU를 제대로 쓸 일이 없어서 한동안 방치하고 있다가 마침 쓸 일이 생겨 평소와 같이 GPU를 잡는데 웬걸.. GPU가 잡히지 않았다. 쓰던 Tensorflow 버전이 1.14였기 때문에 cuda 10.0버전을 사용하고 있었다. 하지만 알아보던중 RTX 3000 시리즈는 cuda 11.0 이상을 사용해야 한다는 말을 들었다. 이런.. 11.0을 설치하다가 보니 또 3070은 11.2부터 사용 가능하다니.. 11.1도 된다니.. 여러 정보를 보면서 시행착오를 겪다가 결국 드라이버 업데이트와 아래 링크를 참고해서 해결할 수 있었다. Python version = 3.8.11 CUDA version = 11.2 cudnn version = 8.1.1 ..