![[JSP] JSP와 데이터베이스 연동](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbBBEbI%2FbtsARhTMlKe%2Fzwr9gDh0VLK3OyCmNxpoIk%2Fimg.png)
JDBC(Java DataBase Connectivity) Java에서 DBMS의 종류와 관계없이 데이터베이스를 조작하기 위한 API(Application Programming Interface)를 의미 JDBC를 간단하게 요약하면 메소드 호출용 SQL 인터페이스라고 표현할 수 있음 JDBC 드라이버 다양한 DBMS 제조사들은 본사에서 개발한 DBMS를 Sun사의 Java 프로그램과연동할 수 있도록 기술을 지원하는 것을 의미 JDBC는 MySQL 설치과정에서 이미 설치하였으므로 따로 설치할 필요는 없지만 JDBC 드라이버가 어느 폴더에 저장되어 있는지에 대해서는 알고 있어야 함 JSP프로젝트 내에 lib폴더에 JDBC 드라이버를 추가해준다. 자세한 JDBC에 대한 내용은 아래의 포스트를 참고 2023.0..
![[JSP] 액션 태그(Action tag)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FTDNW0%2FbtsATQ8nGYr%2FAuV2NhuGZrHw8Eb36BaOX0%2Fimg.png)
액션 태그 JSP에서 기본으로 제공하는 태그들의 집합으로 서버 또는 클라이언트에게 수행할 명령을 지시 액션 태그를 사용하게 되면 Java 코드를 사용하지 않아도 JSP 웹페이지를 개발할 수 있음 액션 태그는 XML 형식인 를 사용하며 끝나는 태그는 반드시 />로 마무리해야 함 액션 태그는 JSP 웹페이지를 코딩할 때 Java 코드의 작성을 피하거나 최소화하기 위해 사용 JSP 웹페이지에서 Java 코드를 최소화하게 되면 소스 코드에 대한 유지/보수를 효율적으로 수행 가능 param 현재 위치한 JSP 웹페이지에서 다른 웹페이지로 정보를 전달할 때 사용하는 태그 param 액션 태그는 단독으로 사용할 수 없으므로 태그나 태그의 내부에 선언하여 사용 param 액션 태그는 여러 개의 파라미터를 선언하여 다른..
![[MySQL] 데이터 형식, 변수, 형 변환](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbijUxR%2FbtsASr2O0iT%2FLnd1OLVBmCA7MFK9Yz3xw0%2Fimg.jpg)
이 글은 혼자 공부하는 SQL(저자 : 우재남)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 테이블을 만들 때는 데이터 형식을 설정해야 한다. 데이터 형식에는 크게 숫자형, 문자형, 날짜형이 있다. 또 세부적으로는 여러 개로 나뉘기도 한다. 이렇게 다양한 데이터 형식이 존재하는 이유는 실제로 데이터 형태가 다양하기 때문이다. 각 데이터에 맞는 데이터 형식을 지정함으로써 효율적으로 저장할 수 있다. 데이터 형식 정수형 정수형은 소수점이 없는 숫자, 즉 인원 수, 가격, 수량 등에 많이 사용된다. 정수형의 크기와 범위는 아래와 같다. 데이터 형식 바이트 수 숫자 범위 TINYINT 1 -128 ~ 127 SMALLINT 2 -32,768 ~ 32,767 INT 4 약 -21억 ~ +2..
![[Java] char 타입을 정수 타입으로 변환](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcqBkqs%2FbtsAPLOi3qG%2FOeB0SLDuKBBQHL5j9aG8yk%2Fimg.jpg)
char num = '1'; int tmp = num; //자동 타입 변환 System.out.print(tmp); char num = '1'; System.out.print((int) num); //강제 타입 변환하여 출력 이렇게 문자 '1'을 자동 타입 변환을 하거나 강제 형 변환을 해서 출력을 하게되면 1이 출력이 되는것이 아니라 49가 출력이되어서 나온다. 위에서 49가 출력된 이유는 '1'은 아스키코드로 49이기 때문이다. 즉, 문자 '1'이 정수로 타입 변환이 될 때 아스키코드 49로 변환된 것이다. 이런 문제는 charAt()메소드를 사용할 때도 나타난다. String num = "12345"; for(int i = 0; i < num.length(); ++i) { int tmp = num...
![[Java] 라빈-카프 문자열 탐색 알고리즘](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbJ4KpK%2FbtsAWgyYdpc%2FEjcX4BjcOQiOZuWRbzKv50%2Fimg.png)
https://coding-food-court.tistory.com/216 위 글에 있는 내용과 그림을 참고하였습니다. 다만, 코드에 오류가 있어서 수정하였습니다. 길이가 M인 전체 문자열에서 길이가 N인 문자열을 찾는다고 하면 시간 복잡도 O(M*N)인 알고리즘이다. 이렇게도 풀수는 있지만 시간 복잡도가 상당하다. 라빈-카프 문자열 탐색 알고리즘을 사용하면 시간 복잡도가 O(N)으로 감소한다. 라빈-카프의 원리 찾는 패턴의 길이만큼을 전체 문자열과 찾는 문자열의 해시 코드로 비교한다. 만약 전체 문자열과 찾는 문자열의 해시 코드가 일치한다면 하나씩 비교해가면서 정말로 맞는지 확인한다. 이렇게 한 번더 비교하는 이유는 해시 충돌때문이다. 해시 충돌 A = 0, B = 1, C = 2라고 하고 해시함수가 ..
![[Java] 백준 1212번 문제 (8진수 2진수)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyRZ4m%2FbtsAPxvNMnj%2FGyUfgkRj94wdHTXoQTj291%2Fimg.png)
문제설명 소스코드 import java.io.BufferedReader; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); String input = br.readLine(); String[] arr = {"000","001","010","011","100","101","110","111"}; for(int i = 0; i < input.length(); ..
![[JSP] 세션(Session)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3Rjtr%2FbtsAM0YMAz3%2FhZsuj3830RlWKY3yBj7Hx0%2Fimg.png)
세션 네트워크 환경에서 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하기 위한 방법을 의미 세션은 서버 공간에 생성되므로 보안 유지에 유리하지만 데이터를 저장하기 위한 한계성에 대한 문제는 존재함 세션은 클라이언트의 요청에 따라 접속된 웹 서버와 가상으로 연결된 상태를 유지하도록 해 줌 세션에 의한 클라이언트 구분 세션은 웹 서버 공간에 생성되는 객체로 웹 브라우저마다 하나씩 존재 웹 서버와의 접속을 통해 생성된 세션은 네트워크 환경에서 여러 사용자 중 특정인에 대한 구분자의 역할을 수행 세션을 통해 접속된 웹 브라우저를 닫기 전까지는 웹페이지를 이동하더라도 사용자에 대한 정보가 웹 서버에 객체 상태로 저장되어 있으므로 사용자 정보를 지속적으로 활용할 수 있게 됨 세션과 쿠키 웹 브라우저에서 서버로 ..
![[JSP] 쿠키(Cookie)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw5KAf%2FbtsAQf1icJR%2F5hYO9lQ2WJswMrHaKurcD1%2Fimg.png)
쿠키 쿠키는 사이트에 접속할 때 생성되는 정보를 담은 4KB 이하 크기의 임시 파일을 의미 네트워크 환경에서 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하기 위해 사용 세션과 다른 점은 로그인 상태 정보를 사용자 컴퓨터인 클라이언트에 저장된다는 부분(세션은 웹 서버에 저장) 쿠키는 불순한 의도로 복사되거나 해킹 등에 의해 개인 정보가 탈취될 수 있다는 보안상 취약한 단점 존재 쿠키에 의한 웹 브라우저 구분 쿠키는 클라이언트의 정보를 웹 브라우저에 저장하기 때문에 이후 웹 서버로 서비스를 요청할 경우 쿠키를 읽어 새로운 웹 브라우저인지 아니면 이전에 요청했던 웹 브라우저인지를 구별함 쿠키가 생성되면 웹 브라우저는 쿠키가 삭제되기 전까지 쿠키의 요청이 있을 때마다 웹 서버에게 쿠키를 제공 쿠키와 세션 ..