[MySQL] 버퍼풀과 innodb 버퍼풀 인스턴스 설정
·
DB
버퍼 풀(Buffer Pool)버퍼 풀은 주 메모리(RAM) 안에 있는 영역으로, InnoDB가 접근되는 테이블 데이터와 인덱스 데이터를 캐시(저장)하는 곳이다. 버퍼 풀 덕분에 자주 쓰는 데이터는 메모리에서 바로 접근할 수 있어 처리 속도가 빨라진다. 전용 서버에서는 보통 물리 메모리의 최대 80%까지 버퍼 풀에 할당하는 경우도 많다.대량 읽기(read)를 효율적으로 처리하기 위해, 버퍼 풀은 페이지(page) 단위로 나뉘며, 한 페이지에는 여러 행(row)이 들어갈 수 있다. 캐시 관리를 효율적으로 하기 위해 버퍼 풀은 페이지들의 연결 리스트(linked list)로 구현되어 있고, 거의 사용되지 않는 데이터는 LRU(Least Recently Used) 알고리즘의 변형으로 캐시에서 밀려나게 된다.버..
JSCODE 네트워크 스터디를 진행하며 느낀점들(feat. 나의 BDD스터디)
·
회고
평소에 저는 BDD라는 개발 서적 읽기 스터디를 꾸준히 운영해 오고 있습니다. 벌써 거의 반년이 넘어가도록 함께 하고 있는 멤버들도 있네요. 혼자서 개발 서적 읽기란 막막할 수 있지만 모두가 스터디를 통해 필수적으로 읽어야 하는 도서에 대해 한권씩 읽고 나면 책 읽는 습관이 생겨 관성적으로 양질의 지식을 학습하고 체화해볼 수 있다는 점에서 장기적인 관점으로 BDD(Book-Driven-Developers) 스터디를 운영하고 있습니다 ㅎㅎ.JSCODE의 스터디는 어떻게 좋은 스터디를 운영할 수 있을지 노하우를 엿볼 수 있는 기회였습니다.유명 기업의 현직자 멘토님이 제시해주는 방향을 따라 매주 학습을 진행하고 어떤 식으로 면접 스터디를 운영하는지 확인하면서 앞으로의 BDD 스터디 운영에 대한 확신을 얻게된 ..
[컴퓨터 네트워크] 네트워크 레이어
·
네트워크
IP 주소란IP 주소는 네트워크에서 호스트와 라우터의 각 인터페이스마다 할당되어 있는 식별 번호이다.(인터페이스: 호스트와 물리 링크 사이의 경계)ip주소는 네트워크 주소와 호스트 주소로 나뉜다.ip에는 두 가지 버전이 존재한다.(IPv4, IPv6)IPv4와 IPv6는 어떤 차이점이 있을까?IPv432비트 이진수로 구성된다.11000001 00100000 11011000 00001001일반적으로 다음과 같이 8비트 단위로 끊어서 4부분으로 10진수와 .으로 표기한다.193.32.216.9IPv6128비트 이진수로 구성된다.다음과 같이 16비트 단위로 끊어서 8부분으로 16진수 와 :으로 표기한다.2004:2ba8:13aa:0011:0000:0000:0000:abaa서브넷과 서브넷 마스크의 차이 서브넷은..
[컴퓨터 네트워크] TCP & UDP
·
네트워크
UDPUDP란 User Data Protocol의 약자로 인터넷에서 데이터를 보낼 때 쓰는 전송 계층 프로토콜 중 하나.“빨리 보내지만, 잃어버리거나 섞여도 별 말 안하는 프로토콜”장단점장점빠르다(오버헤드가 적음)연결 설정(3-way handshake 등)이 없다.헤더가 작고, 추가 기능이 적어서 처리 비용이 낮다.지연에 민감한 애플리케이션에 유리비연결형(Connectionless)클라이언트-서버 간에 연결상태를 따로 유지하지 않음서버 입장에서는 많은 클라이언트를 상대할 때도 상태를 덜 들고 있어서 리소스 부담이 적음.브로드캐스트, 멀티캐스트 지원동일 네트워크에서 여러 호스트에게 한 번에 데이터를 보내기 좋음예시: 게임 서버의 위치 정보 방송, 스트리밍, 로컬 네트워크 서비스 검색 등애플리케이션에서 자유..
[컴퓨터 네트워크] 애플리케이션 계층 -2- (보안, JWT, 프록시, REST..)
·
네트워크
쿠키와 세션의 차이사용 이유HTTP 프로토콜의 특징이자 약점을 보완하기 위해 사용한다.HTTP는 Connectionless 즉, 비연결형 프로토콜이다. 클라이언트가 서버에 요청을 했을 때, 그 요청에 맞는 응답을 보낸 후 연결을 끊는 처리 방식이다. HTTP가 TCP(TCP:연결 지향) 위에서 구현되었기 때문에 연결지향이라는 논란이 있지만, 서버 측에서 비연결 지향적인 특성으로 커넥션 관리에 대한 비용을 줄이는 것이 명확한 장점으로 보기 때문에 비연결 지향으로 생각하자.HTTP는 Stateless 프로토콜 커넥션을 끊는 순간 클라이언트와 서버의 통신이 끝나며 상태 정보는 유지하지 않는 특성이 있다. 하지만, 실제로는 데이터 유지가 필요한 경우가 있다. → 따라서, Stateful 경우를 대처하기 위해 쿠..
[컴퓨터 네트워크]애플리케이션 레이어
·
네트워크
HTTPHTTP 프로토콜이란?HTTP(Hypertext Transfer Protocol)HTTP는 World Wide Web 에서 정보를 주고 받을 수 있게 해주는 프로토콜이다.웹에서 송수신되는 정보는 HTML, CSS, JS, 이미지 등이 있다.HTTP는 TCP 기반에서 동작하며, 80번 포트를 사용한다.(HTTP3는 UDP 기반에서 동작한다.)HTTP의 요청/응답 모델에 대해 REQUEST(요청)HTTP 요청은 클라이언트가 서버에 보내는 메시지이다.Start line첫 번째 요소HTTP method를 나타낸다.HTTP method를 수행할 작업(GET, PUT, POST 등)이나 방식(HEAD, OPTIONS)을 설명한다.두 번째 요소요청 대상(일반적으로 URL 이나 URI) 또는 프로토콜, 포트, ..
[우아한 테크코스 8기 백엔드]프리코스 4~6주차 회고 -오픈 미션-
·
우아한 테크코스 프리코스
우아한 테크코스 4-5주차 미션이 끝났습니다. 8기에는 지난 기수들과 다르게 마지막 미션이 한 주가 더 늘어난 2주간의 오픈 미션으로 진행되었습니다.이에 대해 프리코스를 끝내며 미션에 대한 회고를 적어보려합니다. https://github.com/LEEJaeHyeok97/digging-into-db GitHub - LEEJaeHyeok97/digging-into-db: 데이터베이스 프로그램을 자바코드로 직접 만들기데이터베이스 프로그램을 자바코드로 직접 만들기. Contribute to LEEJaeHyeok97/digging-into-db development by creating an account on GitHub.github.com 오픈 미션의 첫 인상은 ‘충격’이었습니다. 이전 기수에는 편의점 문..
MySQL의 Using filesort와 Using temporary
·
DB
MySQL의 filesortMySQL 8.0 버전 기반으로 공식문서에는“filesort is the algorithm MySQL uses to sort results when it cannot use an index to retrieve the rows in sorted order.”MySQL 8.0 Reference Manual, 8.2.1.14 How MySQL Optimizes ORDER BY즉, 인덱스를 통해 정렬된 순서로 가져올 수 없을 때 MySQL이 사용하는 정렬 알고리즘을 의미합니다.“파일”이라는 단어 때문에 디스크에 쓰는 정렬이라고 오해하기 쉽지만, filesort는 ‘정렬 알고리즘’이며, 반드시 파일(디스크)를 쓰는 것은 아닙니다. MySQL의 정렬 방식MySQL이 조회한 데이터를 정..
[이음] 프로젝트에 쿼리의 실행계획을 분석하며 최적화 해보기
·
DB
게시글의 댓글 조회 기존의 쿼리는SELECT c.* from comments c WHERE c.post_id = :postId and c.is_deleted = false ORDER BY c.created_at asc 입니다. 댓글을 조회할 게시글의 id 값으로 한번 필터링한 후 삭제 여부가 false인 것들을 조회해 생성일자 오름차순으로 조회했습니다. explain으로 실행계획을 분석했을 때 개선할 수 있는 점을 발견했습니다.각각의 칼럼별로 간단히 결과를 하나하나 분석해보겠습니다.id select_type table partitions type possible_keys key key_len ref rows filtered Extra id: 쿼리 내부의 SELECT 단위 번호.select_t..
[컴퓨터 네트워크] 네트워크 기초와 로드 밸런싱 기법 정리
·
네트워크
네트워크 기초네트워크란컴퓨터 네트워크는 통신 및 데이터 교환을 허용하는 시스템. 인터넷과 WWW는 현대 컴퓨터 네트워크의 핵심 구성 요소.컴퓨터 네트워크에서 데이터를 전송하는 방식유니캐스트가장 일반적인 형태의 데이터 전송방식으로, 한 개의 송신자가 한 개의 수신자에게 데이터를 전송하는 방식예) 웹 서버에서 클라이언트 컴퓨터로 웹페이지를 보내는 경우IP 주소유니캐스트에서는 송신자와 수신자가 각각 고유한 IP주소를 사용한다.MAC 주소네트워크에 연결된 장치에 할당된 고유한 물리적 식별자유니캐스트에서는 송신자가 수신자의 MAC 주소를 알아야 한다.예시웹 서핑을 할 때, 사용자의 컴퓨터는 특정 웹 서버에 HTTP 요청을 보내고 그 결과를 받는다. 이 경우 사용자의 컴퓨터와 웹 서버 간의 통신은 유니캐스트로 진행..