꿈을 향한 기록들 154

유니코드, 2의보수법, 부동소수점

우선 컴퓨터에 a 라는 문자를 char 형 데이터에 저장한다면, char a= 'a' 이렇게 char형 변수에 저장한다. 그런데 실제로 저장되는 값은 문자 a 에 매치되는 유니코드 값인 65이다. 컴퓨터는 0과 1로 이루어진 이진법 숫자만 저장 가능하기 때문이다. unicode 는 원래 아스키코드, 확장 아스키 코드 처럼 전 세계의 문자 인코딩 방식을 하나로 통합해사 만들어진 체계인데 자바는 Unicode-16 을 쓴다. 이 16의 특징은 영어든 숫자든 한글이든 다 2byte 규격으로 저장한다는 것이다. 단점은 1바이트로 저장가능한 영어조차 2바이트로 저장하니 비효율적이다. 그런데 Unicode- 8 은 영어는 1byte, 한글은 3byte 이렇게 가변적으로 문자를 표현한다. a와 b 가 n의보수관계에 ..

기록/JAVA 2021.07.19

내가 생각한 알고리즘 문제풀이 유형별 핵심.

DP 1. dp[i] = num 의 정의, i 와 num이 무엇을 의미하는가. 예) dp[i]=num 은 i번째 값이 최대로 연속되서 이어진 수열의 일부분일때, i 번째 까지의 수열의 갯수= num. 2. 마지막항 dp[N] 과 dp[N-1]의 관계. 백트래킹. 1. dfs(시작값, 깊이) 로 dfs식을 만들면 된다. 시작값에 누적합을 적용시키자. 즉, 누적한 값을 다시 시작값에 넣어서 재귀로 돌리자. 누적합은 배열의 형태일수도 있고 수로 += 가 될수도 있다. 2. 다시 경로를 되돌아가기 위한 조건을 dfs 재귀가 끝나는 바로 뒤에 위치시키자. 3.깊이의 종료조건을 생각하자. bfs. 1.수직선이든, 평면이든, 이동가능한 값들을, 배열에 넣어서 한 배열 사이클이 돈 것을 1계층 이동으로 생각하자.

오라클 문자형 데이터 타입 추가정리 및 인코딩 방식에 따른 메모리크기. 2021-07-07

오늘은 어제 내가 깐 SQL Developer로 여러가지 기능을 가지고 놀아본다고, 실질적인 공부내용은 적을수 있다. 그러나 오늘 내가 직접 테이블을 생성해보고, 쿼리를 날려보고, 결과를 눈으로 확인하니, 확실히 그 어떤 학습보다 이해도가 올라갔다. 우선 문자 데이터형은 크게 1. CHAR(SIZE(BYTE | CHAR)) 2.VARCHAR(SIZE(BYTE|CHAR)) 3.NCHAR(SIZE) 4.NVARCHAR(SIZE) SIZE=2BYTE(UTF16) SIZE=3BYTE(UTF8) 가 있다. 난 처음 이전 포스트에 공부할때는 ,이 데이터형의 파라미터가 자리수 인지, 바이트 인지, 아니면 인코딩에 따른 자리수 인지 전혀 구별을 못했는데 이제 확실히 알겠다. 우선 오라클에서 문자를 표현하는 데이텨형은 ..

기록/SQL 2021.07.07

PDB와 CDB, 멀티 태넌트 개념. 테이블 스페이스 생성. 2021-07-06

우선 우리는 이전 포스트에서 서버를 생성한 것은, SID 가 XE 즉, 기본 컨테이너 서버(CDB)를 만든 것이다. 오라클은 버전이 업데이트 되면서, 기존에는 한가지 서버로만 사용했던 것들이, 이제는 서버안에 또 다른 가상의 서버를 만듬으로서 조금 더 쉽게 갈아끼우거나, 변경, 삭제 할수 있도록 만들었다. 또한 하나의 템플릿(서버의 틀)을 카피하며, 다양한 종류의 서버를 만들수 있도록 하였다. 그것이 바로 Pluggable database이다. 요약하자면, 큰 컨테이너 서버의 자원을 공유하면서 완전히 독립된 조그마한 서버를 여러개 만드는 것이다. 왜 이런 짓을 하는지 내가 구글 검색해본 결과 큰 서버 한개의 자원을 100%쓰는 경우는 드물기에 나머지 놀고먹는 자원들을 활용하기 위해, 다른 별개의 용도를 ..

기록/SQL 2021.07.06

SQL developer 설치. + IntelliJ 바로가기 경로 재설정. 2021-07-05

우선 난 이전 포스트에서 말한 것 처럼 오라클은 에디터나 DB와 사용자의 실질적 소통을 만들어주는 창구가 아니다. 그냐 DB를 관리해주는 시스템일 뿐이다. 또한, 사용자는 직접적으로 쿼리를 DBMS에 날릴수 있는 방법이 없다. 무조건 서버 클라이언트를 통해서만 DB(DBMS)랑 상호작용 할수 있다. 오라클에서는 대표적으로, 콘솔 기반의 SQL plus 와 더욱 사용자에 친숙하게 윈도우 기반의 SQL developer 가 있다. 즉, 여기서 직접 퀴리를 날리고, 연결, 결과집합을 확인 할 수 있는 것이다. 오늘은 그래서 SQL developer를 설치 해 보았다. 과정을 설명하자면, 1. 오라클 사이트의 download 카테고리 로 들어가자. 처음 내가 오라클 사이트 접속했을때는 소프트웨어를 다운할수 있는..

기록/SQL 2021.07.05

SQL 문자열 내장함수 LPAD, INSTR, LENGTH. + 오라클 DBMS 와 사용자 인터페이스(SQL PLUS, SQL DEVELOPER) 2021-07-02

SQL에서 가장 대표적인 문자열 내장 함수는, LPAD,RPAD : 패딩함수 INSTR : 문자열에 포함된 문자가 어느 위치에 있는지 숫자를 반환하는 함수. LENGTH : 문자열의 길이를 반환하는 함수. 등이 있다. 바로 용례를 설명하고, 문제를 풀면서 보이겠다. LPAD(문자1, 5, 문자2) 의 뜻은 문자 1을 5자리수만 출력할것인데, 만약 5자리 미만이라면, 왼쪽(Left)에 남는 자리만큼 문자 2를 채우라는 뜻이다. 문제 답. SELECT RPAD(NAME,3,'_') FROM MEMBER; 그런데 여기서 주의할 점은, 패딩함수의 인자로 오는 숫자는 바이트 단위이다. 그러므로, 한글을 자르려면, *2를 해줘야 한다.(유니코드로 한글은 1글자당 2바이트이기 떄문); 수정 답: SELECT RPAD..

기록/SQL 2021.07.02

오라클 내장 함수중 문자열 함수. 2021-07-01

오늘 내가 처음 인지한 내용은 SELECT 문에서 '행' 을 선별할지, '열'을 선별할지 구분하는 것이다. SELECT PHONE AS p, NAME FROM MEMEBER WHERE ID LIKE 'ab%'; 여기서 FROM 절 앞에 오는 것은 '열(COLUMN)' 의 선별이고 WHERE 절 뒤에 오는 조건은 어떤 '행(ROW)'을 선별하는 조건이다. 그런데 내장함수는 FROM 절 앞에서 자주 쓰이며, '칼럼' 을 선별하기 위해서 쓰인다. 물론, WHERE 절뒤 조건절에 행(ROW)를 선별하기 위햇 쓰일 수는 있지만, 만약 테이블이 수만개 되면 모든 행을 조건에 맞는지, 검사할때마다, 함수를 호출해야 하기 떄문에 CPU에 부담이 될수 있어서 가급적, 행을 선별할때는 LIKE, REGEXP_LIKE, O..

기록/SQL 2021.07.01

ROWNUM, 페이징을 통한 열의 단위집합 출력 2021-06-29

이전까지는 난 오라클에서 SELECT 문을 통해 결과집합을 출력할떄, 기존에 있던 칼럼(column : 열) 에서 ROWNUM이라는 새로운 칼럼을 추가해 준다는 것을 몰랐다. 그런데 난 SELECT * FROM (SELECT ROWNUM NUM,NOTICE.* FROM NOTICE) WHERE NUM BETWEEN 2 AND 7; 이 구문을 이해하는 과정에서, 알게 되었다. 사실 오늘 내가 설명하려고 하는 모든 내용이 이 한 구문안에 다 존재한다. 우선 문제의 시작은 테이블에서 특정 갯수만 출력할때, 어떤 SQL 구문을 만들어야 하는가에서 시작된다. 예를들면 가장 상위의 5개씩 출력, 하위의 2~7 ROWNUM 출력 등이다. 우선 ROWNUM 이 무엇인가? 우리가 SELECT 문을 통해 테이블을 출력하면..

기록/SQL 2021.06.29