전체 글(126)
-
JOIN vs subQuery vs JSON_ARRAYAGG
과연 일반 JOIN과 subQuery 와 JSON_ARRAYAGG 같은 데이터를 출력한다면 누가 더 빠를까? Classic Join 결과 ( prod DB 기준) 평균 처리시간 7.16s data size:1.79mb async function getUserList(req, res) { try { const rows = await db.user.findAll({ subQuery: false, where: buildWhereAll(req.locals.parsedFilter, { email: ["like", "eq"], name: ["like", "eq"], birth: ["gte", "gt", "lte", "lt", "like", "eq"], gender: ["eq"], phone: ["like", "eq..
2023.08.26 -
SSL(Secure Socket Layer)
들어가기전 더보기 TCP/IP Model 네트워크 인터페이스 계층 (Network Interface, Network Access) OSI 계층의 1,2 계층에 해당 TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당 에러 검출 기능과 패킷의 프레임화 기능을 수행 인터넷 계층 (Internet) OSI 계층에서 3계층에 해당 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공 논리적 주소인 IP를 이용한 노드간 전송과 라우팅 기능을 처리 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공 핵심 프로토콜은 IP, ARP, ICMP, IGMP 등이 있다. 전송 계층 (Transport) OSI 계층..
2023.08.26 -
DNS
정의 Domain Name System의 약자로, ip과 문자열(도메인)을 한 쌍으로 관리하여 요청 도메인에 매칭되는 ip주소를 제공하는 시스템 참고 왜 생기게 되었을까? 초기 네트워크 시스템 접근 다른 시스템에 접근시 ip주소를 이용하여 접근 다수의 목적지 시스템이 생겨나면서 사용자가 여러 ip주소를 기억하기 힘들어짐 사용자가 쉽게 기억할 수 있는 문자 형태의 값을 사용함 hosts 파일 특정 ip주소로 정의되어 있는 도메인 주소에 대한 정보를 보관하는 로컬 파일 사용자가 직접 기억하지 못하는 다수의 hostname과 ip주소의 쌍으로 이루어짐 SRI-NIC(Network Infomation Center)에서 관리하며 주기적으로 배포했었음 문제점 급격히 증가하는 호스트에 대한 관리 문제가 발생함 파일의..
2023.08.26 -
Message Queue
정의 MOM을 구현한 시스템으로 프로세스 간 데이터를 교환할 때 사용하는 기술 메시지들을 큐에 담아서 관리한다는 의미 프로세스 간 데이터를 교환할 때 사용하는 통신 방법 중 하나 Producer 데이터를 생산하고 메시지 큐에 전송하는 주체 Consumer 메시지 큐에서 데이터를 소비하는 주체 데이터를 수신하고, 해당 데이터를 처리한 후 완료되면 메시지 큐에서 해당 메시지를 제거함 특징 비동기(Asynchronous) : 데이터를 수신자에게 바로 보내지 않고 큐에 넣고 관리하기 때문에 나중에 처리 가능 비동조(Decoupling) : 애플리케이션과 분리할 수 있기 때문에 확장이 용이해짐(결합도가 낮아짐) 탄력성(Resilience) : 일부가 실패하더라도 전체에 영향을 주지 않음 중복 검사(Redundan..
2023.08.26 -
Network (MAC, IP, Port)
OSI 7 Layer MAC(Media Access Control) 주소 정의 NIC (Network Interface Card)에 부여된 고유 식별 값 공식이름 : EUI(Extended Unique Identifier) EUI-48 16진수로 1byte씩 구분하여 표기한 MAC 주소체계 (48bit) 상위 24bit ⇒ OUI라고 부르며 제조 업체의 식별코드 하위 24bit ⇒ 장비의 제조 번호 그렇기에 mac주소를 알고 있다면 어떤 업체제품인지 구별 가능 MAC 주소 조회 MAC 주소에서 업체 정보를 표시 할 수 있습니다. 업체 정보는 매일 업데이트하고 있습니다. uic.io etc) 상위 24bit 가 01:00:5E 로 시작하면 멀티캐스트 가상 MAC주소 FF:FF:FF:FF:FF:FF 는 브로..
2023.08.26 -
SSE(Server Sent Events)
SSE(Server Sent Events) 정의 서버의 데이터를 실시간으로 지속적으로 Streaming하는 기술 사용하는 이유 서버의 변경된 데이터를 실시간으로 가져오기 위해 웹소켓을 사용할 수도 있지만 구현 비용이 많이 듬 SSE는 기존 HTTP API만으로도 구현이 간단하기 떄문에 백/프론트 양측 모두 쉽게 개발이 가능 특징 브라우저는 서버가 생성한 Stream을 계속 받음 연결 유지를 위해 HTTP를 사용 HTTP/2 를 통한 multiplexing 사용 가능 연결이 끊어지면 EventSource가 Error Event를 발생시키고 자동으로 다시 연결을 시도함 표준 기술로 IE를 제외한 브라우저 대부분을 지원 (IE도 Pollyfill로 사용 가능) 폴리-필(Polyfill) 이란? 브라우저에서 지..
2023.08.26