Autocommit은 언제 끄는 게 좋을까?
·
데이터베이스/MySQL
Autocommit은 말 그대로 사용자가 SQL statement를 날렸을 시 자동으로 트랜잭션을 시작하고 커밋하는 기능이다. SQL statement 실행 시 Autocommit이 켜진 상태로 오류가 발생했다면, 스토리지 엔진의 에러 핸들링에 따라 적절한 에러처리 과정을 진행한다.Autocommit은 하나의 SQL statement가 실행될 때마다 자동으로 트랜잭션을 키고 종료한다는 점에서 MySQL 서버에 부하를 주는 행동이라고 볼 수 있다.또한 가장 큰 문제점은 Commit 된 데이터는 Rollback이 불가하기 때문에, 데이터를 복구하려면 다른 방법을 써야 한다.(Data Recovery를 쓰면 된다고 합니다. 하지만 결과적으로 MySQL 서버 자체만으로는 해결이 어려운 거 같습니다.)그러면 Au..
Homebrew로 설치한 logrotate의 logrotate.conf 위치 확인법
·
궁금했던 거
글쓴이의 컴퓨터 환경은 다음과 같습니다.사용기기: Macbook pro M1 pro 16GB사용OS: macOS - Sequoia 15.3사용 소프트웨어- homebrew: 4.4.20- logrotate: 3.22.0원래라면 /etc/logrotate.conf에 바로 logrotate에 대한 설정 파일이 있어야 하는 걸로 알고 있었지만, 막상 해당 경로에 접근하니 없다고 나왔다.그래서 homebrew 쪽을 뒤져보았다.이중 homebrew.logrotate.service라는 파일을 확인해보면[Service] 항목의 ExecStart 부분에서 logrotate.conf 파일에 위치를 확인할 수 있다.이쪽으로 이동하면 아래 이미지와 같이 conf 파일을 확인할 수 있고 logrotate.d의 위치를 확인할 ..
Connect Access denied for user 'root'@'localhost' (using password: NO) 문제 해결부터 권한 축소까지
·
데이터베이스/MySQL
MySQL의 general log를 확인하던 중 10초 주기마다, Connect Access denied for user 'root'@'localhost' (using password: NO) 라는 메시지가 추가되는 것이 확인되었다.분명 MYSQL 도커 이미지에서 제공하는 MYSQL_ROOT_PASSWORD를 환경 변수를 통해 비밀번호를 설정했고 다른 General log에서 SQL문을 확인해봤을 때 root 계정이 잘못돼서 문제가 생긴 것은 아닌 거 같았다.무엇이 문제인지 고민을 해봤는데, 10초 주기로 MySQL에서 정기적인 작업을 시킨 게 있었는지 찾아본 결과 MySQL 컨테이너가 원활하게 동작하고 있는지 체크하기 위해, mysqladmin을 활용한 헬스 체크를 10초 간격으로 실행하고 있다는 것을..
네트워크 면접 질문/답변 - 3 Way Handshake와 4 Way Handshake
·
CS/네트워크
본 내용들은 면접 질문 정리에서 작성된 질문과 작성자가 추가로 넣은 질문들을 포함해서 최대한 공식문서를 기반으로 답변을 작성하려고 노력했습니다.틀린 내용이 있다면 바로 지적해주시면 감사하겠습니다.• 3-Way Handshake에 대해 설명해 주세요.3-Way Handshake는 TCP가 상대방과의 연결 과정에서 정상적으로 상대방과 데이터를 주고 받을 수 있는지 확인할 때 사용합니다. 연결 시도를 한 상대가 SYN을 보내면 연결 시도를 수락한 상대가 SYN-ACK을 보내고 다시 그 대답을 받은 상대가 ACK를 보내어 서로가 데이터를 원활히 주고받을 수 있음을 확인합니다. 이러한 절차를 3-Way Handshake라고 합니다.TCP 핸드셰이크 (TCP handshake) - MDN Web Docs 용어 사전..
네트워크 면접 질문/답변 - OSI 7계층
·
CS/네트워크
본 내용들은 면접 질문 정리에서 작성된 질문과 작성자가 추가로 넣은 질문들을 포함해서 최대한 공식문서를 기반으로 답변을 작성하려고 노력했습니다.틀린 내용이 있다면 바로 지적해주시면 감사하겠습니다.•  OSI 7계층에 대해 설명해 주세요.OSI 7 계층은 ISO(국제 표준화 기구)에서 서로 다른 회사에서 만든 네트워크 장비의 호환성을 위해서 데이터의 전송을 7계층으로 나누어 인터페이스화하여 이를 지키는 사양의 네트워크 장비들은 다른 회사에서 만들었다고 하더라도 호환이 되어 통신을 할 수 있도록 고안된 것입니다. OSI 7계층은 애플리케이션 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층 물리 계층으로 나누고 각 계층에서는 데이터를 전송 또는 수신 받을 때 해야하는 역할이 규정..
네트워크 면접 질문/답변 - TCP와 UDP
·
CS/네트워크
본 내용들은 면접 질문 정리에서 작성된 질문과 작성자가 추가로 넣은 질문들을 포함해서 최대한 공식문서를 기반으로 답변을 작성하려고 노력했습니다.틀린 내용이 있다면 바로 지적해주시면 감사하겠습니다.• TCP와 UDP의 차이에 대해 설명해 주세요.TCP와 UDP는 신뢰성 있는 데이터의 전송과 분할 전송의 차이가 있습니다. TCP는 3-way handshake를 활용해 상대방과의 통신이 원활한지 확인하여 데이터를 분할해서 전송하고 있고, 전송하는 도중에 패킷이 유실되더라도 이를 감지하여 재전송을 통해 상대방에게 데이터를 신뢰성 있게 보낼 수 있습니다. UDP는 TCP와 다르게 3-way handshake를 하지 않으며 유실되더라도 재전송을 하지 않고, 분할해서 데이터를 보낼 수 없다는 차이점이 있습니다. 하지..
HTML Spec으로 알아보는 이벤트 루프와 자바스크립트 비동기 처리 방식
·
자바스크립트
이벤트 루프의 정의이벤트 루프는 ‘자바스크립트는 싱글 스레드를 기반으로 동작한다.’라고 불리게 하는 언어의 핵심이며, 프로그램의 렌더링 주기와 콜스택과 밀접한 관련이 있다.HTML Spec에서는 이벤트 루프에 대한 뜻을 명확히 하지 않지만 어디서 사용하는지 나타낸다.to coordinate events, user interaction, scripts, rendering, networking, and so forth, user agents must use event loops.이벤트, 사용자의 상호작용, 스크립트, 렌더링, 네트워킹 등을 조정하려면 유저 에이전트는 이벤트 루프를 반드시 사용해야 한다. 여기서 에이전트란 ECMAScript에 정의되어 있는데 그 정의는 다음과 같다. An agent compr..
[Cloud-Canvas] CI 파이프라인 개선기(pnpm + turborepo)
·
DevOps
개요이전에 6주간 네이버 부스트캠프에서 그룹 프로젝트를 진행했습니다.적은 개발 기간 속에서 기획, 아키텍처 설계, 기능 개발까지 모두 구현하느라, 정리가 안된 항목들이 많이 있었는데요.그중 하나가 바로 CI 파이프라인이었습니다. 위의 사진들에서 볼 수 있듯이 프로젝트 배포에 필요한 도커 이미지를 만드는데 많은 시간을 소요하고 있었습니다.이렇게 긴 시간을 차지하고 있는 CI 파이프라인은 개발자들의 개발 속도를 늦추게 했습니다. 실제로 저는 그러한 경험을 겪었는데요. 배포 환경에서 발생한 버그를 수정하기 위해 빠르게 코드를 고쳤어도 CI 파이프라인의 속도가 느려 배포 환경에 적용이 원할하게 되지 않아 기다림을 계속했던 기억이 있습니다.그룹 프로젝트의 전반적인 인프라 및 파이프라인 구축을 맡은 저로서는 팀원들..