전체 글 78

💻 [SQL] 날짜와 시간(DATE and TIME) 자료형

💻 [SQL] 날짜와 시간(DATE and TIME) 자료형 1. DATE 타입 DATE 타입은 날짜는 포함하지만 시간은 포함하지 않을 때 사용하는 타입입니다. DATE 타입 YYYY-MM-DD 형식 입력가능하며, '1000-01-01' 부터 '9999-12-31' 까지만 입력가능합니다. 2. DATETIME 타입 DATETIME 타입은 날짜와 시간을 모두 포함할 때 사용하는 타입입니다. YYYY-MM-DD HH:MM:SS의 형태로 사용되며 '1001-01-01 00:00:00'부터 '9999-12-31 23:59:59'까지 입력이 가능하다 3. TIME 타입 TIME은 HH:MM:SS의 형태를 지닌다.(HHH:MM:SS의 형태를 띄기도 한다) -..

DB/Mysql 2022.07.19

💻[SQL] Null 일 경우 Default 값 처리 방법

💻[SQL] Null 일 경우 Default 값 처리 방법 테이블의 컬럼값이 NULL 일 경우 Default 값을 넣어 주어야 할 경우가 생깁니다. outer join을 했을 때 일부 row의 필드 값이 null일 경우가 존재하는데 이를 IFNULL()를 통해서 default 값을 지정해줄 수 있습니다. MySQL에서는 IFNULL로 My Sql 의 경우엔 IFNULL('Data','Default Value') 를 사용한다. 문법 -- 문법 IFNULL(expression_1,expression_2); -- 예제 SELECT a.id, a.name, IFNULL(b.cnt ,0) as cnt FROM table_a a LEFT JOIN table_b b ON a.id = b...

DB/Mysql 2022.07.15

💻Node.js의 논 블로킹 IO, 싱글스레드, 이벤트 루프

💻Node.js의 논 블로킹 IO, 싱글스레드, 이벤트 루프 Block IO vs Non-Block IO & Sync vs Async에 대한 설명은 여기를 참고해주세요. Node.js의 모든 I/O 메서드는 논블로킹인 비동기 방식을 제공하고 콜백 함수를 받는다. 일부 메서드는 같은 작업을 하는 블로킹 메서드도 가지는데 이름 마지막에 Sync가 붙는다. Node.js의 non-blocking I/O Node.js에서의 논블로킹 I/O 모델은 블로킹 작업(Input, Output과 관련된 작업 / http, Database CRUD, third party api, filesystem)들을 백그라운드(libuv의 스레드 풀)에서 수행하고, 이를 비동기 콜백함수로 이벤트 루프에 전달하는 것을 말한다. Node...

SERVER/Node.js 2022.06.29

Block IO vs Non-Block IO & Sync vs Async

Block IO vs Non-Block IO & Sync vs Async IO란? IO는 데이터의 입력(Input)과 출력(Output)을 함께 일컫는 말이다. 어떤 데이터가 CPU에서 처리되기 위해서는 자신이 있는 위치부터 메모리 계층의 최상위에 있는 레지스터까지 전달되어야 한다. 몇몇 데이터 소스는 실행을 심각하게 늦추지 않는 선에서 레지스터까지의 데이터 전달을 보장한다. 하지만 대부분의 데이터 소스는 데이터를 요청했을 때 일정 시간 안에 데이터를 받을 수 있을 거라는 보장이 없기 때문에, 프로그램은 어떤 방식으로든 데이터를 받기까지 실행이 심각하게 늦춰진다고 느껴질 만큼 대기하는 시간이 생긴다. Blocking IO 블로킹 IO는 IO 작업시 프로그램의 실행을 막는다는 뜻으로 해석될 수 있다. 2개..

SERVER/Node.js 2022.06.28

📌POP3와 IMAP 차이점

📌POP3와 IMAP 차이점 우선, 두 용어는 모두 이메일 메시지를 읽어오기 위한 프로토콜이며, 서버에서 내용을 받아오는 방식을 의미합니다. 이 두 가지 방식의 차이점은 무엇인지 이제부터 자세히 알아보도록 하겠습니다. IMAP IMAP은 Internet Messaging Access Protocol의 약자로 서버에서 이메일을 읽는 프로토콜입니다. 따라서, 어떤 상황에서든 동일한 내용을 읽어올 수 있습니다. IMAP은 서버에서 내용을 불러오고 있습니다. 즉, PC나 모바일에서 메일을 확인할 때 서버에 저장된 정보를 가져와서 내용을 보여주고 변경 사항을 동기화합니다. 그렇기 때문에, 여러 가지의 디바이스에서 접속하여도 항상 동일한 정보를 확인할 수 있습니다. 장점 동기화 : 아웃룩에서 보낸 데이터를 웹 또는..

System/네트워크 2022.06.24

💻 인터넷 상 메일은 어떻게 전달되나? (feat. SMTP)

💻 인터넷 상 메일은 어떻게 전달되나? (feat. SMTP) nodemailer와 구글 SMTP를 사용해서 메일 전송 코드를 구현해봤습니다. 참고 구글SMTP를 테스트해보려면 앱 비밀번호를 등록하고 발급받은 비밀번호를 사용해야 합니다. 앱 비밀번호 등록 방법 SMTP (Simple Mail Transfer Protocol) SMTP (Simple Mail Transfer Protocol)는 간단한 메일을 주고받기 위한 약속입니다. SMTP 서버는 각각의 SMTP 서버와 메일을 전송하는 역할을 합니다. 메일을 전달하기 위해서는 웹 서버와 마찬가지로 SMTP 약속을 따르는 SMTP 서버들이 필요합니다. 네이버, 구글, 카카오 등 각 기업 메일 시스템이 있고 이들의 SMTP 서버가 각각 존재한다. 이 때문에..

System/네트워크 2022.06.24

💻 webRTC Process

💻 webRTC Process webRTC 수행과정 p2p 영상 및 음성 통신을 하는 webRTC application 을 구성한다면, 다음 작업을 수행합니다. Fetching : 상대 peer 에게 보낼 사용자의 음성 및 영상 데이터를 수집합니다. Signaling : 상대 peer 와 연결을 맺기 위해서, 상대 peer 의 정보를 탐색합니다. 다음 과정을 수행합니다. Exchanging session descriptions(세션 설명 교환) : offer, answer Exchanging ICE candidates(ICE 후보자 교환) : ICE candidates 1. Fetching webRTC API 인 MediaStream, getUserMedia 를 이용해 사용자의 영상 및 음성 정보를 가져..

SERVER/Node.js 2022.06.22

💻 Web Server와 WAS의 차이

💻 Web Server와 WAS의 차이 1. WS (Web Server) 1.1. WS 개념 WS는 소프트웨어와 하드웨어로 구분된다. 하드웨어 : Web 서버가 설치되어 있는 컴퓨터 소프트웨어 : 웹 브라우저 클라이언트로부터 HTTP 요청을 받아 정적인 컨텐츠(.html .jpeg .css 등)를 제공하는 컴퓨터 프로그램을 뜻합니다. 1.2. WS 기능 HTTP 프로토콜을 기반으로 하여 웹 브라우저의 요청을 서비스하는 기능을 담당한다. 요청에 따라 아래의 두 가지 기능 중 적절하게 선택하여 수행한다. 정적인 컨텐츠 제공 : WAS를 거치지 않고 바로 자원을 제공한다. 동적인 컨텐츠 제공을 위한 HTTP 요청 전달 :클라이언트의 요청(Request)을 WAS에 보내고, WAS가 처리한 결과를 클라이언트에게..

System/네트워크 2022.06.17

💻NoSQL이란

💻NoSQL이란 1. NoSQL NoSQL이란(Not Only SQL)의 약자로 말 그대도 위에서 설명한 RDB 형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장 기술을 의미하고 있습니다. 또한 NoSQL에서는 RDBMS와는 달리 테이블 간 관계를 정의하지 않습니다. 데이터 테이블은 그냥 하나의 테이블이며 테이블 간의 관계를 정의하지 않아 일반적으로 테이블 간 Join도 불가능합니다. NoSQL은 말했다시피 2차원 테이블 간의 관계로 정보를 매핑하는 SQL과는 다르다. NoSQL은 “관계형이지 않은”(여집합) DB를 아우르기 때문에 종류가 매우 다양한데 대표적으로는 연관배열을 사용하는 key-value, 기존의 행 대신 열로 데이터를 저장하는 Column-based, Json이나 XML를 데이터..

DB/MongoDB 2022.06.16

💻RDB 와 NoSQL의 차이점

💻RDB와 NoSQL의 차이점 1. Database와 DBMS 그리고 SQL Databse란 일반적으로 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미합니다. DBMS란(DataBase Management System) 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어입니다. RDBMS에는 DBMS앞에 R이 붙어 있습니다. 이 R은(Relational)의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미합니다. SQL이란(Strucured Query Language) 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서 ..

DB/Mysql 2022.06.16