전체 글

1.1 불 대수 불 대수(Boolean algebra)는 참/거짓, 1/0, 예/아니오, 켜짐/꺼짐 같은 불 2진 값을 다룬다. 불 연산자 (Boolean operator) And x * y Or x + y Not !x * y + x * !y Nand Not-And의 줄임말 Nand(x, y) == Not(And(x, y)) Xor exclusive or의 줄임말 2개의 변수 중 딱 하나만 1일 때 1이 된다. Nor Not - Or에서 따온 이름 And, Or, Not이 다른 불 연산자에 비해 더 흥미롭거나 특별한 이유가 있을까? 바로 답하면 And, Or, Not에는 실제로 특별한 것은 없다. [And, Or, Not] 의 세 가지 기본 연산자는 모두 Nand로 표현할 수 있다.! 어떤 불 함수도 N..
Hello World Hello World 같은 프로그램은 겉으로만 간단해 보일 뿐이다. public class Main { public static void main(String[] args) { System.out.println("Hello World"); } } 이런 프로그램이 컴퓨터에서 실제로 작동하기 위해서는 다음과 같은 과정이 수행됩니다. 컴퓨터가 이해할 수 있도록 고수준 코드의 문자열을 분석해서 프로그램이 수행하려는 작업의 의미를 찾아낸다. 대상 컴퓨터의 기계어로 그 의미를 다시 쓴 저수준 코드를 생성해야 한다. (컴파일) 기계어란? 미리 약속된 2진 코드로 구성된 추상화 개념이다. 이 추상화를 명확히 하려면 하드웨어 아키텍처(hardware architecture)를 반드시 구현해야 한다...
간단하게 자바로 프로그램을 짜보고 있었습니다. while문을 돌려 그 안에 로직을 돌렸는데, 첫 번째 입력을 받는 부분에 \n이 들어가는 것을 확인했습니다. import java.util.Scanner; public class PayMain1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); PayService payService = new PayService(); while(true) { System.out.print("결제 수단을 입력하세요.:"); String payOption = sc.nextLine(); if (payOption.equals("exit")) { System.out.println("프로그램..
업무의 일부분으로 Oracle Cloud에 접속해야하는 부분을 테스트 해봐야 했다. 단순하게 접근하는게 아니라, VPN이 구축되어 있고, 그 안에 서브넷이 나누어져 있고, 보통 DB의 경우 private subnet으로 외부에서 접근을 할 수 없도록 구성되어 있다. 그러면 도대체 어떻게 접속할 수 있느냐에 대한 해결책으로 SSH Tunneling이 있다는 것이다. 기본 조건 SSH연결을 하기 위해 필요한 조건 원격으로 접속할 HostIP : "100.0.0.0" (예시) 유저 이름(username) : "abc" 비밀번호 : 암호화된 비밀번호일 수도 있고, 스프링의 경우 평문으로 암호를 추가하는 것과, private 키 파일을 통해서 접근하는 방식으로 나뉜다. 포트 : ssh연결이니 거의 22번 포트를 ..
create table grades ( id serial primary key, g int, name text ); insert into grades (g, name ) select random()*100, substring(md5(random()::text ),0,floor(random()*31)::int) from generate_series(0, 12141215); CREATE INDEX g_idx ON grades (g); id : row_id g : grade name : name 실습1 explain select * from grades; Seq Scan : 쿼리 계획 (Sequential Scan == Full Scan) 힙(heap) 영역으로 바로 가서 가져올 것이다. 순차적으로! cost..
100만개의 행을 가지고 있는 employees을 생성하였다. id(row_id)와 name(이름) 1000001개의 행 ID : Integer | NOT NULL | auto increment (인덱스 가지고 있음) Name : 랜덤으로 만들어진 이름 실행계획과 쿼리의 수행 시간을 확인할 수 있는 postgre 의 명령어 explain analyze [쿼리] 실습1 인덱스가 존재하는 컬럼을 조회(Scan) explain analyze select id from employees where id = 2000; Index Only Scan using employees_pkey on employees ~~ :인덱스를 활용하여 스캔을 진행 Heap Fetches : 0 -> Heap영역에 접근할 필요 없음(w..
솜사탕코튼
개발일기