MySQL에서는 월요일부터 일요일까지 0~7로 나타내므로 case문을 사용해서 한글로 출력하면 된다 SELECT CASE a.a WHEN '0' THEN '월' WHEN '1' THEN '화' WHEN '2' THEN '수' WHEN '3' THEN '목' WHEN '4' THEN '금' WHEN '5' THEN '토' WHEN '6' THEN '일' END AS week, IFNULL( b.cnt, 0 ) AS cnt FROM ( SELECT a.a FROM ( SELECT 0 AS a UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 ) AS a )..
프로젝트를 진행하다보니 여러 형식으로 날짜를 출력해야 할 때가 많았다. 그럴 때마다 DATE_FORMAT에서 사용하는 알파벳들이 헷갈려서 검색하곤 했었는데, 자주 사용할만한 것들을 따로 정리하면 유용하게 쓰일 것 같아서 적어본다! DATE_FORMAT(날짜형식컬럼, 형식지정) 컬럼 대신 now()를 쓰면 현재의 날짜도 얻을 수 있다. ex) DATE_FORMAT(now(), '%Y-%m-%d') 구분 문자 설명 연 %Y 4자리 연도 연 %y 2자리 연도 월 %m 2자리 월(01-12) 월 %c 1자리 월(1-12) 월 %M 영어 월(January, February 등) 월 %b 영어 약자 월(Jan, Feb 등) 일 %d 2자리 일(01-31) 일 %e 1자리 일(1-31) 시 %H 2자리 24시간(00..
ICMP(Internet Control Message Protocol) : 인터넷 환경에서 오류에 관한 처리를 지원 ICMP 메시지 - DESTINATION UNREACHABLE: 수신 호스트에 접근이 불가능 - SOURCE QUENCH: 네트워크에 필요한 자원 부족으로 패킷 폐기 - TIME EXCEEDED: 시간 초과로 패킷 폐기 (TTL이 0이 되는 경우) - ECHO REQUEST/ECHO REPLY: ping 프로그램에 사용 - TIMESTAMP REQUEST/TIMESTAMP REPLY: 네트워크 지연을 측정 ICMP 헤더 형식 - 처음 8 바이트는 모든 메시지에 반드시 포함됨 - Type: 메시지를 구분 - Code: 메시지 내용에 대한 자세한 정보 - Checksum: 전체 메시지에 대한 ..
ARP(Address Resolution Protocol) - 수신 호스트의 IP 주소를 통해 수신 호스트의 MAC 주소를 제공 - ARP request라는 특수 패킷을 브로드캐스팅 - IP 주소에 해당하는 호스트만 ARP reply로 MAC 주소를 회신 - 브로드캐스팅 과정에서 수신 호스트가 얻은 송신 호스트의 MAC 주소와 IP 주소 매핑 값은 자동 저장 RARP(Reverse Address Resolution Protocol) - 하드 디스크가 없는 시스템은 송신자 자신의 IP 주소를 알 수 없음 - 송신 호스트의 MAC 주소를 통해 송신 호스트의 IP 주소를 제공 - RARP 를 전담하는 서버가 있어야 함 - RARP를 통해 자신의 IP 주소를 얻은 후 미리 정해진 호스트로부터 자신의 부트이미지를..
IPv6 (IPv4와 비교) 1) 주소 공간 확장 - IPv4의 32 비트에서 128 비트로 확장 - 최대 2128개의 호스트를 지원 2) 헤더 구조 단순화 - 오류 제어 등의 오버헤드를 줄여 프로토콜의 전송 효율 향상 3) 흐름 제어 기능 지원 - 흐름 제어 기능을 지원하는 필드(Flow Label)를 추가하여 일정 범위 내에서 예측 가능한 데이터 흐름을 지원 - 실시간 멀티미디어 응용 환경을 수용 IPv6 헤더 형식 - 헤더 40바이트 중 32바이트를 주소 공간으로 사용 - 필요 시 기본 헤더 뒤에 여러 개의 확장 헤더를 지원 - DS/ECN: 차등 서비스 및 혼잡제어 - Flow Label: 음성, 영상 등 실시간 서비스가 필요한 응용 환경에서 사용 현재 필드를 지원하지 않는 호스트 혹은 라우터 패..
대표적인 IPC 및 동기화 기법 1) 파이프(pipe) --- 운영체제 영역 이용 2) 메시지 큐(message queue) --- 운영체제 영역 이용 3) 공유 메모리(shared memory) --- 사용자 영역 이용 4) 세마포어(semaphore) --- 동기화 기법 기본적인 IPC 과정 ① 공유 메모리 확보 ② 공유 메모리 접근 ③ 공유 메모리 반납 1-1) 이름 없는 파이프 (unnamed pipe) ① 공유 메모리 확보 - 파일 디스크립터 번호를 저장하기 위한 정수형 배열 변수 선언한다. (int pipefd[2];) - pipe() 함수를 사용하여 커널 영역에 파이프 채널을 생성한다. (pipe(pipefd);) - fork() 함수를 사용하여 자식 프로세스를 생성한다. ② 공유 메모리 사..
프로세스 간 통신(IPC: Inter-process Communication) 1) 프로세스 간에 데이터를 주고 받는다 (write/read) 2) 프로세스는 독립적이다 (-> 다른 프로세스 영역을 접근(access)할 수 없다) 3) 공유 메모리가 필요하다 공유 메모리가 커널 영역에 존재 -> 동기화가 필요하지 않음 공유 메모리가 사용자 영역에 존재 -> 동기화가 필요함 4) 임계영역(critical section)이 존재함. 메시지 전송(message passing) 방식 - 커널(운영체제) 영역의 일부분을 공유 메모리로 이용한다. - 운영체제에서 임계 영역에 대한 동기화를 해결해 준다. - 메시지가 세 곳에 존재한다. ① 송신 프로세스는 자신의 데이터 영역에 메시지를 작성한 후, send() 함수를..
DHCP (Dynamic Host Configuration Protocol) 프로토콜 - IP 주소를 여러 컴퓨터가 공유해서 사용 - 서버에 존재하는 풀(pool)에서 IP 주소를 가져옴 - DHCP 메시지 -> 응용 계층 DHCP 프로토콜의 주요 메시지(Options 필드) - DHCP_DISCOVER : 클라이언트가 DHCP 서버를 찾기 위한 브로드캐스트 메시지 - DHCP_OFFER : 클라이언트의 DHCP_DISCOVER 메시지에 대한 응답으로, DHCP 서버가 응답함 - DHCP_REQUEST : DHCP 서버에 DHCP_REQUEST 메시지를 전송하여 권고한 주소를 사용한다고 알림 - DHCP_ACK : 권고한 IP 주소를 사용 가능하면 메시지를 전송 - DHCP_NACK : 클라이언트가 DH..