원인 foreign key가 걸린 테이블을 쿼리로 직접 삭제하는 경우에 발생하는 에러이다. 테이블을 삭제할 경우, 존재하지 않는 테이블을 foreign key가 참조하는 이상한 상황이 발생하기 때문에 DBMS에서 사전에 이를 방지를 해주는 것이다. 해결 방법 만약 강제로 테이블을 삭제하고 싶다면, 아래와 같이 수행한다. foreign key 체크 설정 비활성화 테이블 삭제 foreign key 체크 설정 활성화 mysql> SET foreign_key_checks = 0; mysql> drop table TABLENAME; mysql> SET foreign_key_checks = 1; Reference https://velog.io/@yhe228/db-%EC%82%AD%EC%A0%9C-%EC%97%90%..
들어가기 전 기본으로 있는 vi의 경우, 키보드 방향키를 입력하면 A, B 등의 알파벳이 입력된다. 이러한 불편한 점 때문에 vi를 버리고 vim을 이용한다. vim 설치 $ sudo su $ apt-get update $ apt-get install vim vim의 편리한 기능 활성화 $ vim ~/.vimrc 이 파일 안에 아래 내용을 채워 넣는다. 내용 설명 set number : 줄 번호 표시 set tabstop : tab시 4칸 이동 set ignorecase : 검색시 대소문자 구별하지 않음 set hlsearch : 검색시 하이라이트 set fileencodings=utf-8,euc-kr : 파일인코딩 형식 set bs=indent,eol,start : backspace 키 사용 set r..
PHP 설치 PHP 설치 전 수행되어야 할 것 Apache 2.4 설치 MySQL 8.0.19 설치 1. 의존성 패키지 설치 $ apt-get install libxml2-dev $ apt-get install libjpeg-dev $ apt-get install libpng-dev $ apt-get install libsqlite3-dev 2. PHP tar.gz 다운로드 $ cd /usr/local $ wget https://www.php.net/distributions/php-7.4.1.tar.gz $ tar xvfz php-7.4.1.tar.gz 3. PHP 7.4.1 설치 $ cd php-7.4.1 $ ./configure \ --with-apxs2=/usr/local/apache2.4/bin/..
MySQL 설치 1. 의존성 패키지 설치 $ apt-get update $ apt-get install cmake $ apt-get install libssl-dev $ apt-get install libboost-all-dev $ apt-get install libncurses5-dev libncursesw5-dev 2. MySQL Community Server 8.0.19 tar.gz 다운로드 $ cd /usr/local $ wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.19.tar.gz $ tar xvfz mysql-8.0.19.tar.gz 3. MySQL 설치 $ cd /usr/local/mysql-8.0.19 $ cmake \ -DC..
Apache 설치하기 1. 준비 # sudo su 2. apr & apr-util 다운로드 명령어 설명 wget : web get의 줄임말로, 웹상의 파일을 다운로드 tar xvfz : tar.gz 형식으로 압축되어있는 파일을 압축해제 # cd /usr/local # wget http://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz # wget http://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz # tar xvfz apr-1.7.0.tar.gz # tar xvfz apr-util-1.6.1.tar.gz 3. apr & apr-util 설치 3-1. apr 설치 명령어 설명 ./configure --pr..
버추얼 박스 (VirtualBox) 설치 Virtual Box Install URL URL을 들어가면 아래와 같은 홈페이지가 나오고 다운로드 버튼을 클릭한다. 개인의 OS에 맞춰 다운로드를 수행한다. (필자는 현재 Mac이기 때문에 빨간색 네모로 표시된 OS X hosts를 선택) VirtualBox를 설치하고 처음 실행하면 아래와 같은 화면이 나온다. 이제 VirtualBox 위에서 동작할 Guest OS를 설치할 차례이다. 우분투 (Ubuntu) 18.04 설치 Ubuntu Download URL VirtualBox에 Ubuntu 설치하기 VirtualBox를 실행한 뒤, 처음 화면에서 새로 만들기를 클릭한다. 이름을 작성하고, 다음과 같이 선택한 뒤, 계속 버튼을 클릭한다. 종류 : Linux (리..
소개 요소 값들끼리 서로 비교하지 않고 정렬하는 알고리즘이다. 배열 내 최대 값 + 1 만큼의 길이 배열이 필요하기 때문에 메모리가 낭비될 수 있다. 애니메이션 : URL 과정 1. 먼저 배열 내에 원소 값들의 갯수를 저장하는 카운팅 배열 (Counting Array) 를 만든다. 2. Counting Array (c[])의 요소들에 대해서 직전 요소들의 값을 더해준다. 3. 입력 배열과 동일한 크기의 출력 배열 (b[])을 만들고, 입력 배열의 역순으로 출력 배열에 요소들을 채워 넣어준다. 여기서 우리는 두 값을 비교하는 과정 없이 정렬이 수행되는 것을 알 수 있다. 코드 public static void main(String[] args) { final int MAX = 5; int[] nums = ..
소개 한쪽의 배열에 포함된 값이 다른 쪽 배열의 값보다 항상 작도록 배열을 분할한다. 이를 수행하기 위해 파티션 (Partition) 이란 단계를 수행한다. 파티션 (Partition) ? - 배열에 있는 수 중 임의의 '기준 수 (Pivot)' 를 지정한 후, 이 기준 수 보다 작거나 같은 숫자를 왼쪽, 더 큰 숫자를 오른쪽으로 보내는 과정이다. Pivot에 따라 시간복잡도가 크게 달라진다. 과정 코드 public static int Partition(int[] nums, int left, int right) { int mid = left + (right - left) / 2; Swap(nums, left, mid); int l = left + 1, r = right; int pivot = nums[l..