목록1 week 1 conquer (10)
05AM

쿼리 실행 계획은 사용자가 SQL을 실행하여 데이터를 추출하려고 할 때 DBMS의 옵티마이저가 수립하는 작업 절차이다. 즉, 실행계획을 통해 쿼리가 어떻게, 어떤 순서로 실행되는지 구체적으로 볼 수 있다. MySQL에서는 `EXPLAIN`이나 `EXPLAIN ANALYZE` 명령어로 쿼리의 실행 계획을 분석할 수 있는데, 이번 포스팅에서는 실행 계획에 포함되는 정보가 무엇이 있는지, 해당 정보를 어떻게 해석하면 좋을지를 알아보자. 🔷 실행 계획 예시SELECT ml.*FROM mission_log ml JOIN user ON ml.user_id = user.idWHERE ml.created_at = :today;위는 오늘 수행한 미션 기록을 유저의 id로 조인하여 조회하는 쿼리문이다. 지금부터는 각 컬..
DDD(도메인 주도 설계)와 스프링 프레임워크를 사용하는 프로젝트 구조에서 "model", "domain", "entity"는 각각 다른 의미를 가지고 있으며, 특정한 종류의 클래스들을 포함합니다. 이 용어들은 종종 서로 교차하여 사용되기도 하지만, 각각의 역할과 책임이 있습니다. Domain 정의: 도메인은 소프트웨어로 해결하고자 하는 문제 영역입니다. DDD에서는 이 문제 영역을 중심으로 모델링을 진행합니다. 도메인 내에서 비즈니스 로직과 애플리케이션의 핵심 기능이 정의되고 구현됩니다. 패키지 구성: domain 패키지는 다음과 같은 클래스들을 포함할 수 있습니다. Entity: 도메인 내의 핵심 개념을 나타내는 객체로, 식별자(ID)에 의해 구별됩니다. 엔티티는 비즈니스 로직을 포함하며, 도메인의 ..
☀️ TCP 통신의 문제점 Packet Loss (손실) : 데이터 패킷이 송신자에서 수신자로 전송되는 도중에 네트워크 상에서 손실되는 현상 원인: 네트워크 혼잡, 잘못된 라우팅, 패킷 충돌, 하드웨어 결함 등 다양한 이유로 발생할 수 있습니다. 영향: 데이터의 전송 속도 감소, 연결의 비안정성, 데이터의 무결성 문제 등이 발생할 수 있습니다. 해결 방법: 재전송 요청(ARQ)와 같은 메커니즘을 사용하여 손실된 패킷을 다시 보내거나, 전송 제어 프로토콜(TCP)와 같은 프로토콜이 패킷 손실을 감지하고 재전송을 수행합니다. Out-of-Order Packets (순서 바뀜) : 데이터 패킷들이 송신자에서 보낸 순서와 다른 순서로 수신자에게 도착하는 현상 원인: 패킷들이 서로 다른 경로로 전송되거나, 네트워..
☀ 암호화 정보 보안의 핵심 요소 중 하나로, 데이터를 변형하여 원본을 알 수 없게 하는 과정을 의미 이를 가능하게 하는 것이 암호화 알고리즘과 키이다. 대칭키와 공개키는 암호화의 두 주요 방법으로, 각기 다른 특성과 용도를 가지고 있다. ☀ 대칭키 암호화 (Symmetric Key) 암호화와 복호화에 같은 암호키(대칭키)를 사용하는 알고리즘 특징 단일 키 사용 암호화와 복호화에 동일한 키를 사용한다. 비밀키 하나만 알아내면 해독이 가능하다. 속도 대칭키 암호화는 공개키 암호화에 비해 연산이 단순하여 속도가 빠르다. 키 관리 대칭키 전달과정에서 보안 위험에 노출될 수 있다. 장점 속도가 빨라 대용량 Data 암호화에 적합하다. 단점 키를 교환해야 하는 문제가 있다. 키 관리 어렵다. 확장성 떨어진다. 기..
☀ HTTP (Hypertext Transfer Protocol) 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜 사용자가 웹 사이트를 방문하면 사용자 브라우저가 웹 서버에 HTTP 요청을 전송하고, 웹 서버는 HTTP 응답으로 응답한다. 웹 서버와 사용자 브라우저는 데이터를 일반 텍스트로 교환한다. 간단히 말해 HTTP 프로토콜은 네트워크 통신을 작동하게 하는 기본 기술이다. 작동 방식 HTTP는 OSI (Open Systems Interconnection) 네트워크 통신 모델의 어플리케이션 계층 프로토콜이다. HTTP는 여러 유형의 요청과 응답을 정의한다. 예를 들어, 웹 사이트의 일부 데이터를 보려는 경우 HTTP GET 요청을 전송한다. 연락처 양식 작성과 같은 일부 정보를 전송하..
☀️ 전송 계층 (Transport Layer) 양 끝단의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해주는 역할 상위 계층과 하위 계층 간의 인터페이스 역할 프로세스 간의 논리적인 통신을 제공한다. 데이터 링크 계층 : 물리적인 연결 네트워크 계층 : 호스트 간 논리적인 통신, 데이터의 전달 경로를 설정 💡 참고 전송 계층의 대표적인 프로토콜은 TCP와 UDP이다. 전송 계층의 패킷을 세그먼트라고 부르는데, UDP 프로토콜에서는 이를 종종 데이터그램이라고 하기도 한다. [출처] [네트워크] TCP/UDP와 3 -Way Handshake & 4 -Way Handshake (velog.io) ☀️ TCP (Transmissi..