숙제 (14) 썸네일형 리스트형 정렬에 관한 정리 - 1 개인적으로 정렬은 코테에서 혹은 개발을 할때 자주 쓰인다고 생각되어서 정렬에 대해 공부를 해두고 싶었다. 그래서 이 기회에 리트코드에 있는 정렬에 대한 글을 보고 정리를 해봤다. 1.정렬의 핵심원리는 무엇일까 정렬의 문제는 어떻게 집합에 있는 아이템들을 순서대로 놓을지이다. 어떤 순서대로 놓을지는 전적으로 비교방법에 따라 달라진다. 정렬의 기초는 각각의 아이템중 공통된 특성들끼리 묶어 재배열하는 것이다. 컴퓨터 공학에서는 순서에 관한 형식이 있다. 그 형식은 다음과 같다. 전제: 만약 아이템이 a 와 b 가 주어졌다면(Law of trichotomy(=삼분법칙)) 1. 아래의 연산 중 하나는 참이어야 한다. a > b | a = b | a < b 2. 그리고 다음과 같은 식이 성립되어야 한다. (tran.. [DB] 테이블의 스캔방식 db에서 db오브젝트를 스캔하는 방식에 따라 속도가 차이가 난다는 걸 최근에 알게 되었다. 때문에 정리를 해보고자 한다. 디스크의 접근 방식 1.시퀸셜 액세스 - 물리적으로 인접한 페이지를 순차적으로 읽는 방식이다. - 디스크 헤더의 움직임을 최소하하여 작업시간과 리소스 점유 시간을 줄일 수 있다. 2.랜덤 액세스 - 물리적으로 떨어진 페이지를 임의로 접근하는 방식이다. - 디스크 헤더에 많은 움직임을 요구하기 때문에 접근 시간이 오래걸린다. - 접근 범위를 줄이는 방식으로 튜닝이 필요할 수도 있따. 테이블 스캔방식 1.테이블 풀 스캔 - 인덱스를 거치지 않고 테이블 데이터 처음부터 끝까지 모든것을 스캔하는 방식이다. - where 조건을 기준으로 인덱스가 없을경우 이 스캔방식을 사용한다. - 시퀸셜 액.. CONNECT BY 사용하기 CONNECT BY 란 계층형 쿼리를 조회하기 위한 쿼리이다. 다음과 같이 회사 조직도가 있다고 해보자. 조직에는 각 계층이 있다. 각 계층을 A레벨, B레벨 ,C 레벨이라 하겠다. 각 레벨들의 정보들을 기록한 테이블이 다음과 같다고 해보자. 각 row 에는 상위 부서 번호와 해당 부서의 번호가 있고, 부서번호가 만약에 시퀸스값으로 insert 가 된다고 할 때 만약에 조회를 할 때 A레벨부터 B레벨, C레벨 순으로 나오게끔 하고 싶다면 어떻게 해야될까? 단순히 order by 를 하면 레벨별로 나온다고 무조건 장담할 수 없다. 이럴때 사용하는게 계층형 쿼리이다. 1. 계층형 쿼리 오라클에서 계층형 쿼리의 예약어는 START WITH 이다. START WITH - 계층의 루트노드(처음행)로 사용될 행을 .. SQL 쿼리의 실행 순서 1.일반적인 쿼리의 실행순서 예제로 쿼리를 실행해 본다고 하자 SELECT DISINTCT sample_data FROM sample_main_table a INNER JOIN sample_sub_table b ON a.key_id = b.key_id WHERE sample_condition = 2 GROUP BY sample_data HAVING SUM(sample_data) > 1 ORDER BY sample_data (LIMIT 5) FROM 절이 먼저 실행이 된다. ON으로 조인 조건을 확인한다. JOIN 으로 테이블을 조인한다. WHERE 절을 검사하여 조건을 체크한다. GROUP BY 를 실행하여 조회 칼럼을 그룹화한다. HAVING 으로 그룹화 한 이후에 대한 데이터 조건을 체크한다. SEL.. 데이터 베이스 옵티마이저란? 1.옵티마이저란? SQL을 실행을 할 때 DB는 내부적으로 SQL을 가장 빠르고 효율적이게 처리를 하려고 한다. 때문에 DBMS는 실행계획을 세우고 SQL을 실행시킨다. 실행계획을 짜기 위해 사용하는 것이 옵티마이저이다. 2.실행계획(Execution Plan) 동일한 결과가 나오는 SQL을 작성하더라도 어떻게 실행되냐에 따라 성능이 달라질 수 있다. 옵티마이저는 Data Dictionary에 있는 오브젝트 통계, 시스템 통계등의 정보를 사용해서 예상되는 비용을 평가하여 여러 실행계획을 작성한다. 그 뒤 여러가지 실행계획의 비용을 계산하고 가장 낮은 비용을 가진 실행 계획을 선택하여 SQL을 실행시킨다. 3.쿼리의 처리 흐름 SQL이 작성되고 실행된다. 파서(Parser)는 작성된 SQL의 문법검사와 구.. 연결 지향 통신이란 무엇일까? TCP 와 connection Oriented 1.연결지향이란 무엇일까? 네트워크에서 통신은 연결지향과 비연결지향 service로 나뉘어진다. 연결지향(혹은 연결지향 서비스)는 1:1 연결 상태를 유지하여 통신하는 것을 말한다. 연결지향이란 말은 데이터를 전송하는 측과 데이터를 전송받는 측에서 전용의 데이터 전송 선로를 만든다는 의미이다. 이때 만들어진 전송 선로를 Session이라고 한다. 데이터의 신뢰도가 중요하다고 판단될때 주로 사용된다고 한다. 2. 어디에 쓰일까? TCP/IP 는connection-oriented 와 connectionless에 대해 알아볼때 가장 많이 나오는 네트워크 통신방식이다. 컴퓨터와 컴퓨터간의 통신을 위한 통신규약이다. 인터넷이 등장하면서 인터넷 서비스인 www , EMAIL, TELNET , FTP 등 대부분이 T.. MIME 이란? Content-type 이란? 연관된 글 https://pro-gramm-ing.tistory.com/471 인코딩은 무엇이며 BASE 64 인코딩이란 무엇일까? 문자 인코딩이란 무엇일까? 인코딩을 영어로 쓰면 encoding 으로 쓴다. 즉, code화 하는것이다. 코드화 혹은 암호화라고 해도 된다. 암호화의 대상은 우리가 쓰는 문자들이다. 컴퓨터는 0과 1로 이루 pro-gramm-ing.tistory.com 인코딩에 대해 다룰 때 MIME 이라는 것을 언급한적이 있었다. 대충 이런내용이다. 태초에 아스키코드가 있었다. 그리고 컴퓨터와 인터넷에서는 아스키코드를 이용한 텍스트를 사용하였다. 하지만 인터넷에서 이메일을 사용하면서 이메일에 텍스트 이외의 이미지, 영상등을 첨부할 일이 생겨났고, 이런 첨부파일들은 아스키코드로 인코딩하기에.. IP란 무엇일까? - IP의 특징(2) 이번 글은 IP의 특징과 유형, 관련된 것에 대한 글이다. 1. 접속의 유형 네트워크 접속을 위해서는 두가지의 접속이 필요하다. 하나는 네트워크 인터페이스 층에서 이루어지는 물리적인 접속이고, 또 하나는 인터넷층에서 이루어지는 논리적인 접속이다. IP 주소 설정이 이에 해당된다. 우리가 실생활에서 인터넷을 쓸 때 물리적인 접속과 논리적인 접속을 일일이 해주거나 신경쓰지 않는다. 이는 DHCP등의 기술로 자동으로 IP주소를 설정해주기 때문이다. 2. IP의 주소의 유형 IP주소는 이용범위에 따라 공인 IP 주소 (퍼블릭 IP 주소) 와 사설 IP 주소로 나뉜다. 공인 IP 주소 인터넷에서 통신하기 위해서는 공인 IP 주소가 반드시 필요하다. 공인 IP 주소는 중복되지 않게 관리된다. 이 공인 IP 주소는 .. 이전 1 2 다음