컴퓨터 과학 썸네일형 리스트형 [DB]JDBC 기초 ODBC(Open DataBase Connectivity)란 데이터베이스에 접근하기 위한 표준 규격이다. api를 통해 다양한 데이터베이스에 접근할 수 있다. 그리고 자바에서 데이터베이스에 접근하기 위해 쓰이는 api를 JDBC(Java Database Connectivity)라 하며, api는 JDBC driver로 구현된다. 이를 통해 자바에서 데이터베이스에 접근할 수 있다. JDBC는 다음과 같은 과정을 통해 작업이 이루어진다. jdbc driver를 메모리에 로드 driver manager를 통해 connection 객체를 생성하여 DB에 연결 connection 객체로 prepared statement 객체를 생성하여 sql문 실행 sql문은 2가지 방법으로 실행되며, 각각 다음과 같다. st... 더보기 JSP/Servlet 기초 JSP/Servlet 기초 기초 개념 WS(Web Server): 클라이언트로부터 HTTP 요청을 받아들이고, 리소스를 반환하는 프로그램 또는 컴퓨터를 서버라 한다. 동적인 컨텐츠는 처리하기 어렵다. 때문에 정적인 컨텐츠를 전달해주는 역할을 하며, 동적인 컨텐츠는 WAS에게 요청하는 식으로 쓰인다. WAS(Web Application Server): web server와 비슷하지만, 비즈니스 로직까지 처리할 수 있어 동적인 웹 컨텐츠를 제공할 수 있다. 동적인 웹 컨텐츠는 servlet을 통해 생성된다. JSP(Java Server Page 또는 Jakarta Server Page): JSP는 HTML 내에 자바 코드를 삽입하여 web server에서 동적으로 웹 페이지를 생성하여 사용자에게 제공할 수 .. 더보기 [컴퓨터 과학]고속 푸리에 변환 자바 구현 이산 푸리에 변환(Discrete Fourier Transform, DFT)이란 이산적인 입력에 대한 푸리에 변환이다. 정의 DFT는 이산적인 복소수 값 $x_0,x_2,\cdots,x_{N-1}$들을 $X_0,\cdots,X_{N-1}$로 변환해주며, 다음과 같이 정의된다. (여기서 $a_i$는 $a[i]$와 같이 표기하겠다.) $$ X\left[k\right]=\sum_{n=0}^{N-1}x[n]e^{-2\pi ikn/N} $$ 이를 그대로 자바를 통해 구현하면 다음과 같다. static Complex[] dft(Complex[] input) { Complex[] output = new Complex[input.length]; for (int i = 0; i < output.length; i++) {.. 더보기 [이산수학]정렬 알고리즘의 한계 정렬 알고리즘은 데이터를 특정 순서로 나열하는 알고리즘이다. 여러 가지 정렬 알고리즘이 존재하며, 각 알고리즘은 서로 다른 특징과 성능을 가지고 있다. 하지만 모든 (비교 기반) 정렬 알고리즘은 절대로 $\mathcal{O}(n\log n)$보다 좋은 성능을 낼 수 없다. 증명 우선 데이터들이 총 $n$개가 주어진다고 하자. 그렇다면 만들 수 있는 $n$-튜플의 경우의 수는 총 $n!$개이다. 이 가운데 단 하나만이 올바른 순서쌍이 될 것이다. ($(a_1,\cdots,a_n)$에 대해, $1\le i\le j\le n\implies a_i\le a_j$인 튜플) 결정 트리의 최소 높이가 $\log n!=\sum_{k=1}^n\log k$이므로 다음 관계식을 만족한다. $$\int_1^{n-1}\log .. 더보기 [컴퓨터 과학]양자 컴퓨터와 양자 알고리즘 고전 컴퓨터와 양자 컴퓨터 현대에서 대중적으로 사용하는 고전 컴퓨터는 반도체와 수학의 이진법을 활용하여 논리 연산 및 저장 등을 수행하는 오토마톤이다. 하나의 비트는 1 또는 0을 값으로 갖는다. 하지만 양자 컴퓨터는 양자역학적 현상인 양자 중첩과 양자 얽힘 등을 활용하여 자료를 처리하는 계산 기계다. 양자 컴퓨터의 비트는 큐비트라고 하며, 큐비트는 1과 0이 중첩된 값을 지닌다. 그리고 이를 관측을 통해 큐비트의 값을 고전적 비트로 매핑시킨다. 수학적 원리 비트는 기본적으로 기호들 $\Sigma = \{1,0\}$위에 정의된 형식 체계로 볼 수 있다. 하지만 큐비트는 1과 0이 중첩된 값을 갖기 때문에 비트와는 다른 체계를 갖는다. 큐비트는 브라-켓 표기법을 사용하여 표기한다. 켓은 열벡터를 의미하며 .. 더보기 [DB]데이터베이스 기초 데이터베이스 데이터베이스란 데이터들의 집합이다. DBMS(DataBase Management System) DBMS는 데이터베이스들을 관리해주는 시스템을 의미한다. DBMS의 종류 데이터들은 여러 방법으로 관리 및 저장될 수 있는데, 이를 데이터 모델이라 한다. DBMS는 데이터 모델에 따라 분류되며, 종류는 다음과 같다. 계층형 DBMS: 그래프 이론에서의 tree 구조를 이용해 데이터들을 관리한다. 거의 사용되지 않는다. 망형 DBMS: 그래프와 같은 구조를 이용해 데이터들을 관리한다. 거의 사용되지 않는다. 관계형 DBMS: 가장 많이 쓰이는 DBMS이다. 관계형 데이터베이스 관리 시스템(RDBMS)은 데이터를 효과적으로 저장, 관리, 검색하기 위한 데이터베이스 시스템이다. 관계형 데이터베이스는 테.. 더보기 [컴퓨터 과학]컴퓨터로 여러 함수들을 계산하는 방법 개발을 하다보니, sin 함수같은 삼각함수들을 어떻게 계산하는지 궁금해졌다. 사람의 경우엔 사칙연산만을 이용하여 값을 구하는 경우가 일반적이다. 하지만 컴퓨터의 경우엔 근삿값이기는 하지만 $\sqrt x$같은 값들도 순식간에 구해버린다. 검색을 해보니 테일러 급수라는 것을 발견하였는데, 이를 이용하여 구하는 모양이다. 식은 다음과 같다. $$T_f(x)=\sum_{n=0}^{\infty }\frac{f^{(n)}(a)}{n!}(x-a)^n$$ 위 함수는 특정 구간 $(a,\ b)$에서 함수 $f(x)$와 같게 된다. 즉, $x\in (a,\ b)$일 때, $T_f(x)=f(x)$이다. 이를 수렴 구간이라 한다. (단, 함수 $f(x)$는 매끄러운 함수여야 한다. 즉, 무한 번 미분 가능해야 한다. 예를 .. 더보기 [웹 개발]웹 개발 기초 개념 정적 컨텐츠 정적 컨텐츠(Static Content)는 서버에서 동적으로 생성되거나 변경되지 않고 고정된 내용을 제공하는 웹 페이지의 요소를 나타낸다. 정적 컨텐츠는 사용자에게 항상 동일한 내용을 제공하며, 서버 측에서는 요청을 받으면 저장된 파일을 그대로 클라이언트에 전달하는 방식으로 동작한다. 동적 컨텐츠 동적 컨텐츠(Dynamic Content)는 사용자 요청에 따라 서버에서 동적으로 생성되거나 변경되는 내용을 나타낸다. 동적 컨텐츠는 클라이언트의 요청에 따라 서버에서 데이터를 처리하고 동적으로 페이지를 생성하여 응답한다. 이를 통해 사용자에게 실시간이나 맞춤형 정보를 제공할 수 있다. 주로 MVC 패턴과 템플릿 엔진을 이용하거나 API를 이용한다. MVC 패턴 MVC(모델-뷰-컨트롤러)는 소프트웨.. 더보기 이전 1 2 3 다음