00. 서론 및 개발 환경cs공부를 하면서, 인덱스 인덱스 말로만 들어봤지, 실제 프로젝트에 적용시켜본 적도 없고, 인덱스를 적용하면 얼마나 성능이 향상되는지 체감도 별로 못했다.이번 기회에 한번 직접 테스트를 해보며, 수행 속도를 비교해 보고자 한다. 개발 환경DB: MySQLTool: HeidiSQL01. 더미데이터 삽입테이블 구조 및 생성테스트를 위한 더미데이터를 생성하기 전에 테이블을 먼저 정의해주자.CREATE TABLE `my_dummy` ( `id` INT NOT NULL AUTO_INCREMENT, `time` DATETIME NOT NULL DEFAULT (now()) ON UPDATE CURRENT_TIMESTAMP, `data` LONGTEXT NULL DEFAULT ..
JS는 다른 언어와 달리, 컴파일 과정에서 변수의 선언을 미리 처리한다.console.log(myVar);var myVar = 1;그래서 위와 같은 코드를 실행해보면참조에러가 발생하지 않고, 초기화 되지 않은 변수 값(undefined) 이 출력되는 것을 볼 수 있다.참고로 var 키워드로 변수를 선언할 경우메만 에러가 발생하지 않고, 아래 테이블처럼 let, const 타입은 에러를 발생시키므로 참고하자.
01. 정규화(Normalization)테이블간 중복된 데이터를 없애기 위해, 데이터를 분해하는 과정데이터 중복을 허용하지 않음으로써, 무결성을 유지할 수 있고, 또 DB 저장공간을 줄일 수 있다.02. 정규화 장단점장점DB 변경시 이상 현상을 방지할 수 있다.이상 현상: 테이블을 잘못 설계하여, 데이터를 삽입, 수정, 삭제할 때 논리적으로 생기는 오류삽입이상: 자료를 삽입할 때, 의도하지 않은 자료까지 삽입해야만 테이블에 자료가 추가 가능한 현상갱신이상: 중복된 데이터 중 일부만 수정되어, 데이터 모순이 일어나는 현상삭제 이상: 어떤 정보를 삭제하면, 의도하지 않은 다른 정보까지 삭제되는 현상정규화된 DB에서는 새로운 데이터 형의 추가로 인한 테이블 수정 과정에서, 비교적 조금만 수정해도 된다.단점릴레..
00. 서론서블릿을 공부하던 도중, 한가지 의문이 들었다.많은 블로그 예제에서는 서블릿 esponse에 html 데이터를 직접 입력하는 예제가 대다수였다.근데 문제는 이렇게 코드를 작성하면, Controller와 View가 구분이 되지 않아 유지보수가 힘들다는 점이다.그래서 서블릿안에서 뷰를 직접 작성하지 않고, 외부에 작성된 html 파일을 리턴하는 방법을 정리하고자 한다.01. html 파일을 리턴하는 방법들찾아보니 html 파일을 외부에 분리하는 방법은 아래와 같았다.정적 파일 직접 응답 (가장 간단한 방법)파일을 직접 읽어서, response에 직접 복사하는 방법뭔가,,, 구시대적인 느낌이다...RequestDispatcher 사용 방법내가 선택한 방법이다.뒤에서 후술하겠다.템플릿 엔진 사용(타임..
문제문제 바로가기풀이흔히 생각하는 m부터 n까지 각 수에 약수를 하나하나 검사하면 O^2최악의 경우 1,000,000^2 의 시간복잡도를 가짐으로 시간 초과나는 아래 두가지 방법을 문제에 적용시킴에라토스테네스의 체에라토스네스의 체: 각 수를 검사하면서, 해당 수의 배수를 지움이럴 경우 검사해야 하는 수가 줄어듬제곱근 까지만 검사어떤 수에 대해서, 그 수의 약수는 대칭 쌍을 가짐ex) 12에 대하여: 26, 62(대칭) / 34, 43(대칭)/이때 대칭쌍을 이루기 때문에 소수를 판별 할 때는 대칭 쌍을 이루는 두 수 중 하나에 대해서만 검사하면 됨ex) 12에 대해, 2*6을 검사할 경우, 12약수에 2를 포함하는지만 검사하면 6은 자연히 따라옴, 즉 2만 검사하면 됨이때 대칭쌍을 이루는 두 수 중, 하나..
00. 서론윈폼을 공부하기 위해 프로젝트를 생성 후, 프로젝트 구조를 살펴보았는데 특이한 부분이 있었다.솔루션 관리자로 확인하면 Form1.cs 파일 하위에 Form1.Designer.cs 파일이 존재하는 것처럼 보인다.하지만 Form1.cs 파일을 확인해보면, 내부에 Form1.Designer.cs에 대해 정의하는 내용도 없고, 마찬가지로 Form1.Designer.cs에서도 Form1.cs 파일을 참조하는 내용을 찾아볼 수 없다.그래서 해당 내용을 찾아본 후 내용을 정리한다.01. namespace와 partial class먼저 두개의 파일을 꼼꼼히 살펴본 결과 서로 참조하는 내용은 못찾았지만, 2개의 공통점을 찾을 수 있었다. 서로 같은 namespace를 공유한다.모두 partial class로 ..