CS지식
-
[PostgreSQL] Date/Time TypesCS지식/데이터베이스 2022. 8. 6. 11:59
오늘은 회사 내에서 사용 중인 RDBMS, 그 중에서 PostgreSQL에서 제공하는 Date/Time Type들에 대해 정리해보려고 한다. 1. Date/Time Type 종류 PostgreSQL에서는 아래와 같이 6개의 타입을 제공한다. 여기서 p는 seconds(초)를 표현할 때에 소수점아래로 어디까지 표현할 것인가를 의미한다. 0~6까지의 값을 가질 수 있다. 그리고 interval에 보면 fields라는 값을 받는데 여기서 fields와 p 둘 다 명시하면 fields는 무조건 second를 포함한 값여야만 한다. YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, YEAR TO MONTH, DAY TO HOUR, DAY TO MINUTE, DAY TO SECOND, HOUR..
-
자료구조 복습하기CS지식/자료구조 2021. 12. 24. 22:55
1. array vs linkedlist array는 데이터를 저장할 수 있는 자료구조로 특징으로는 논리적인 저장순서와 물리적인 저장 순서가 일치한다는 것 조금 더 자세히 설명하면, array에 0, 1, 2 순서대로 저장되어있으면 실제 메모리에 저장된 것도 0, 1, 2가 순서대로 저장되어 있고 주소도 순차적임 시간복잡도를 얘기하면 인덱스를 알고 있다면 O(1)로 탐색이 가능하고 삭제, 삽입 연산의 경우, 맨 끝 원소는 O(1)이고 다른 위치 원소의 경우에는 원소의 위치를 옮기는 작업이 필요하므로 O(n) linked-list도 array처럼 데이터를 저장할 수 있는 자료구조로 특징으로는 논리적인 저장순서와 물리적인 저장 순서가 일치할 수도 있고 안할 수도 있음 linked-list는 node에 해당 ..
-
MySQL 새로 알게 된 쿼리CS지식/데이터베이스 2021. 12. 21. 21:08
1. DISTINCT의 위치는 중요하다. https://programmers.co.kr/learn/courses/30/lessons/59408 코딩테스트 연습 - 중복 제거하기 ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디 programmers.co.kr 이때 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 처음 내가 생각한 쿼리 -> SELECT DISTINCT COUNT(NAME) FROM ANIMAL_INS WHERE NAME is not NUL..
-
투 포인터(two pointer)란 무엇인가CS지식/알고리즘 2021. 7. 22. 12:51
투 포인터를 알아보기 전에 포인터(pointer)란 무엇을 의미할까? 포인터(pointer)는 프로그래밍 언어에서 다른 변수, 혹은 그 변수의 메모리 공간주소를 가리키는 변수를 의미한다. arr = [1,2,3,4,5] pointer = arr[0] 위 코드를 포연 5개의 요소를 가지고 있는 배열을 가지고 있는 arr이라는 변수가 있다. 그리고 이 arr 변수가 차지하고 있는 메모리 공간 중에 0번째 인덱스 번호를 가지고 있는 요소를 가리키는 pointer라는 변수가 있다. 여기서 pointer라는 변수가 우리가 정의한 포인터라는 것이다. (포인터가 가리키는 값을 가져오는 것을 역참조라고 한다.) 그러면 투 포인터는 무엇일까? 위에서 설명한 포인터를 2개를 활용하는 것으로 여러 가지 방식이 있지만 대체적..
-
로그(log)란 무엇인가CS지식/네트워크 2021. 7. 18. 23:09
우리는 지금까지 클라이언트와 서버가 HTTP를 통해 서로 통신을 하는 것을 배웠다. 클라이언트는 수 많은 요청을 보낼 것이고 서버는 그에 대한 응답을 해준다. 이러한 상황에서 모든 서버와 중개자로 사용되는 프락시는 처리했던 HTTP 트랜잭션을 요약해서 기록해 놓는데 이를 로그라고 한다. 그러면 지금부터 어떠한 정보를 로그로 남기는지, 로그 포맷을 어떠한지 알아보자. 로그는 왜 남길까? 로그는 남기는 이유는 보통 서버나 프락시의 문제를 찾거나 웹 사이트 접근 통계를 내기위해 진행된다. 로깅을 통해 나온 통계는 마케팅, 장비 조달 계획 등을 세우는데 유용하게 쓰일 수 있다. 그렇다고해서 모든 HTTP 트랜잭션의 헤더를 로그로 남긴다면 너무나 많을 것이고 감당하기 힘든 데이터가 될 것이다. 그래서 보통 트랙잭..
-
쉽게 배우는 운영체제(저자 조성호) 후기CS지식/운영체제 2021. 7. 18. 21:09
쉽게 배우는 운영체제 후기 2021년 05월 18일, KOCW에서 제공하는 반효경 교수님의 운영체제 수업을 완강하고 조금 더 기초를 튼튼히 하고자 책을 찾아 나섰다. 처음에는 많은 사람들이 추천해주는 공룡책으로 유명한 운영체제라는 책을 선택했다. http://www.yes24.com/Product/Goods/89496122 운영체제 - YES24 www.yes24.com 하지만, 이 선택은 너무나도 멍청한 선택이였다. 일단은 그냥 남들이 좋아요 괜찮아요라고 한 말에 이끌리고 내가 정말 읽기 괜찮은지 생각을 안해보고 무작정 책을 빌려왔기 때문이다. 물론, 컴퓨터공학 전공생이라면 공룡책을 보고 독학을 하며 배운 내용을 리마인드할 수도 있다. 하지만, 운영체제 기초를 다지기에는 비전공자로서 너무 책이 어렵고 ..
-
디렉토리(directory)란 무엇인가CS지식/운영체제 2021. 7. 17. 22:41
디렉토리(directory)는 서로 관련 있는 파일을 하나로 모아놓은 것이다. 디렉토리는 1개 이상의 파일을 가질 수 있고 1개 이상의 자식 디렉토리를 가질 수도 있다. 즉, 하나의 디렉토리에는 여러 개의 파일과 자식 디렉토리가 존재한다. 이렇게 디렉토리 안에 여러 개의 파일과 자식 디렉토리가 존재하면 마치 여러 층으로 구성된 것처럼 보인다. 여기서 최상위에 있는 디렉토리를 루트 디렉토리라고 한다. 디렉토리의 구조 초기 파일 시스템의 디렉토리 구조는 1단계 구조였다. 1단계 디렉토리 구조에서는 루트 디렉토리에 새로운 디렉토리를 만들 수 있지만 디렉토리 안에 자식 디렉토리를 만들 수는 없었다. 1단계 디렉토리 구조는 파일이 많아지면 불편하여 다단계 디렉토리 구조가 등장했다. 다단계 디렉토리 구조는 루트 디..
-
HTTP/2.0이란 무엇인가CS지식/네트워크 2021. 7. 16. 21:54
우리는 현재 HTTP의 버전으로 1.1을 보편적으로 사용하고 있다. 그렇지만 HTTP를 개발하는 그룹에서는 HTTP의 성능 문제를 개선하기 위해 HTTP/2.0을 만든 중에 있다. 그러면 HTTP/2.0은 HTTP/1.1과 어떠한 차이점이 있는지 현재까지 알려진 보안 이슈는 무엇인지에 대해 알아보자. HTTP/2.0의 등장 배경 기존의 HTTP 메시지 교환 방신은 하나의 커넥션을 통해 클라이언트가 요청 하나를 보내면 서버는 그에 대한 응답 하나만을 보내는 방식이였다. 이러한 방식은 응답을 받아야만 다음 요청을 보낼 수 있기에 심각한 지연을 야기할 수 있는 문제가 있다. 이 문제를 회피하기 위해 병렬 커넥션이나 파이프라인 커넥션을 도입했지만 성능 개선에 대한 근본적인 해결책은 되지 못했다. 이제는 근본적인..