이 글은 혼자 공부하는 SQL(저자 : 우재남)의 책과 유튜브 영상을 참고하여 개인적으로 정리하는 글임을 알립니다. 테이블을 만들 때는 데이터 형식을 설정해야 한다. 데이터 형식에는 크게 숫자형, 문자형, 날짜형이 있다. 또 세부적으로는 여러 개로 나뉘기도 한다. 이렇게 다양한 데이터 형식이 존재하는 이유는 실제로 데이터 형태가 다양하기 때문이다. 각 데이터에 맞는 데이터 형식을 지정함으로써 효율적으로 저장할 수 있다. 데이터 형식 정수형 정수형은 소수점이 없는 숫자, 즉 인원 수, 가격, 수량 등에 많이 사용된다. 정수형의 크기와 범위는 아래와 같다. 데이터 형식 바이트 수 숫자 범위 TINYINT 1 -128 ~ 127 SMALLINT 2 -32,768 ~ 32,767 INT 4 약 -21억 ~ +2..
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...
https://coding-food-court.tistory.com/216 위 글에 있는 내용과 그림을 참고하였습니다. 다만, 코드에 오류가 있어서 수정하였습니다. 길이가 M인 전체 문자열에서 길이가 N인 문자열을 찾는다고 하면 시간 복잡도 O(M*N)인 알고리즘이다. 이렇게도 풀수는 있지만 시간 복잡도가 상당하다. 라빈-카프 문자열 탐색 알고리즘을 사용하면 시간 복잡도가 O(N)으로 감소한다. 라빈-카프의 원리 찾는 패턴의 길이만큼을 전체 문자열과 찾는 문자열의 해시 코드로 비교한다. 만약 전체 문자열과 찾는 문자열의 해시 코드가 일치한다면 하나씩 비교해가면서 정말로 맞는지 확인한다. 이렇게 한 번더 비교하는 이유는 해시 충돌때문이다. 해시 충돌 A = 0, B = 1, C = 2라고 하고 해시함수가 ..
문제설명 소스코드 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(); ..
세션 네트워크 환경에서 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하기 위한 방법을 의미 세션은 서버 공간에 생성되므로 보안 유지에 유리하지만 데이터를 저장하기 위한 한계성에 대한 문제는 존재함 세션은 클라이언트의 요청에 따라 접속된 웹 서버와 가상으로 연결된 상태를 유지하도록 해 줌 세션에 의한 클라이언트 구분 세션은 웹 서버 공간에 생성되는 객체로 웹 브라우저마다 하나씩 존재 웹 서버와의 접속을 통해 생성된 세션은 네트워크 환경에서 여러 사용자 중 특정인에 대한 구분자의 역할을 수행 세션을 통해 접속된 웹 브라우저를 닫기 전까지는 웹페이지를 이동하더라도 사용자에 대한 정보가 웹 서버에 객체 상태로 저장되어 있으므로 사용자 정보를 지속적으로 활용할 수 있게 됨 세션과 쿠키 웹 브라우저에서 서버로 ..
쿠키 쿠키는 사이트에 접속할 때 생성되는 정보를 담은 4KB 이하 크기의 임시 파일을 의미 네트워크 환경에서 클라이언트와 웹 서버 간의 상태를 지속적으로 유지하기 위해 사용 세션과 다른 점은 로그인 상태 정보를 사용자 컴퓨터인 클라이언트에 저장된다는 부분(세션은 웹 서버에 저장) 쿠키는 불순한 의도로 복사되거나 해킹 등에 의해 개인 정보가 탈취될 수 있다는 보안상 취약한 단점 존재 쿠키에 의한 웹 브라우저 구분 쿠키는 클라이언트의 정보를 웹 브라우저에 저장하기 때문에 이후 웹 서버로 서비스를 요청할 경우 쿠키를 읽어 새로운 웹 브라우저인지 아니면 이전에 요청했던 웹 브라우저인지를 구별함 쿠키가 생성되면 웹 브라우저는 쿠키가 삭제되기 전까지 쿠키의 요청이 있을 때마다 웹 서버에게 쿠키를 제공 쿠키와 세션 ..
내장 객체란 JSP 페이지에서 사용할 수 있도록 JSP 컨테이너에 미리 정의된 객체 JSP 페이지가 서블릿 프로그램으로 번역될 때 JSP 컨테이너가 자동으로 내장 객체를 멤버 변수, 메소드 매개변수 등의 각종 참조 변수(객체)로 포함 JSP 페이지에 별도의 import문 없이 자유롭게 사용 가능 스크립틀릿 태그나 표현문 태그에 선언을 하거나 객체를 생성하지 않고도 직접 호출하여 사용 가능 내장 객체의 종류 내장 객체의 속성관리 JSP는 HTTP 프로토콜의 사용하는 웹 환경에서 구동되는 프로그램 HTTP는 비연결형으로 사용자가 서버에 특정 페이지를 요청하고 요청결과를 응답받으면 서버와의 연결이 끊기는 형태 예를 들어 게시판에 글을 작성하는 페이지에서 작성한 내용은 다른 jsp에서 처리해야 하고 서버는 방금..
스크립트 태그 종류 스크립트 태그는 JSP 웹 페이지를 어떻게 처리할 것인지에 대한 페이지의 정보를 설정하여 웹 컨테이너인 아파치 톰캣에게 보낼 때 선언한다. 스크립트 태그의 종류는 아래와 같다. 디렉티브(지시문) 태그의 종류 디렉티브란 JSP 웹페이지에 대한 파일의 속성을 기술하는 지시문으로 JSP 컨테이너에 해당 웹페이지를 어떻게 처리해야 할 것인지를 전달하는 명령문을 의미한다. 디렉티브의 선언 위치는 일반적으로 JSP 웹페이지의 가장 상단에 선언한다. include 디렉티브 태그의 사용법 디렉티브 태그의 속성 종류