귀찮은 개발자의 이중생활
close
프로필 사진

귀찮은 개발자의 이중생활

github: @aihoshistar

  • 분류 전체보기 (124)
    • Algorithm (3)
      • 백준 코딩테스트 (0)
      • 알고리즘 응용 (3)
    • Computer Science (18)
      • Data structure (0)
      • Network (0)
      • System Software (0)
      • Server (2)
      • 클라우드 (15)
    • DevOps (14)
      • 도커 (Docker) (8)
      • 모니터링 (6)
    • Programming (28)
      • 플러터 (Flutter) (2)
      • $_머니 (PHP) (16)
      • 스프링 부트(Spring Boot) (9)
      • 노드 (NodeJS) (0)
      • .NET (1)
    • Database (1)
      • RDBMS (10)
      • NoSQL (5)
      • 메시징 시스템 (messaging system) (2)
      • 검색 엔진(Search engine) (2)
    • 실무 경험 (12)
      • 실무 개발 & 협업 (7)
      • 개발 도구 & API 테스트 (2)
      • 기술 트렌드 & 리뷰 (2)
    • 사이드 프로젝트 (3)
    • 도서 (5)
      • 불친절한 SQL 프로그래밍 (2)
    • 마인드셋 (0)
      • 오늘의 온도 (0)
      • 마인드 리셋 (0)
      • 성장 로그 (0)
    • 임시보관 (13)
      • 에러모음 (1)
      • 실무 이슈 (6)
      • 로그인 서비스 (4)
  • 홈
  • 태그
  • Github
  • Resume

디스크 이슈로 인한 서버 이전 회고

2년간 운영하던 서버의 디스크 160GB 까지 가득 차는 문제가 발생했다. 문제의 원인으로는 2가지가 있다. 1. Docker Registry 서버를 Private 으로 운영했기 때문에 Docker Image 가 너무 많았다. 2. SMTP 서버를 구축해 놓았기 때문에 Log 가 너무 많았다. 그간 디스크가 90프로 정도 찰 때마다 불필요한 이미지를 정리하고 logrotate 을 통해 로그를 관리하였고 마지막 영혼을 불태워 Docker Registry 서버를 가성비 좋은 S3 로 이전하려 했으나 디스크가 기다려주지 않아 서버를 확장하게 되었다. 아래는 마지막 순간까지 살아 있던 내 서비스들이다. ****@vps-*****:~$ ll drwxrwxr-x 6 **** **** 4096 May 14 2023 ..

  • format_list_bulleted 사이드 프로젝트
  • · 2024. 2. 11.

MySQL Master-Slave Replication with Docker

Master-Slave Replication 이란 MySQL Master-Slave Replication 은 데이터베이스의 한 인스턴스에서 다른 인스턴스로 데이터베이스를 복제하는 하나의 방식이다. Master-Slave Replication 을 통해 3가지의 이점을 얻을 수 있다. 데이터의 일관성을 유지 데이터 백업 시스템의 부하 분산 Amazon RDS, Google Cloud SQL, Azure Database for MySQL 등에서도 이러한 기능을 제공해주고 있다. Docker & Docker Compose 이란 Docker와 Docker Compose는 이러한 Replication 를 설정하고 관리하는 데 사용할 수 있는 오케스트레이션 도구이다. MySQL Master-Slave Replicat..

  • format_list_bulleted Database/RDBMS
  • · 2024. 2. 11.

[페이지네이션] - 커서 기반 vs 오프셋 기반

페이지네이션 페이지네이션은 대량의 데이터를 작은 일부분으로 분할하여 사용자에게 보여주는 방식이다. 이를 통해 사용자는 한번에 모든 데이터를 로드하지 않고도 필요한 만큼의 데이터만 로드하여 랜더링할 수 있다. 페이지네이션을 사용할 경우 서버와 클라이언트 간의 트래픽 부하가 감소하여 클라이언트는 빠르게 데이터를 전달받을 수 있고 이로 인해 적절량의 데이터를 화면에 랜더링할 수 있다. 이러한 과정속에 불필요한 리소스를 줄여 서버 비용을 절감시킬 수 있으며 사용자는 대기 시간 없이 빠르게 화면을 볼 수 있어 사용자 경험에도 좋다. 페이지네이션을 하지 않을 경우 대량의 데이터를 다루는 경우, 모든 데이터를 한 번에 불러오 경우 성능에 부정적인 영향을 줄 수 있다. 이는 서버 리소스 비용 증가와 네트워크 대역폭을..

  • format_list_bulleted Algorithm/알고리즘 응용
  • · 2024. 2. 10.
[Linux] 리눅스 호스트네임 설정 - hostnamectl

[Linux] 리눅스 호스트네임 설정 - hostnamectl

리눅스를 설치하면 기본 호스트네임은 localhost.localdomain 가 된다. 리눅스 장비를 식별하기 위해 hostnamectl 을 통해 서버마다 호스트네임을 지정할 수 있다. 호스트네임 지정을 통해 docker-swarm 설정을 진행할 때 호스트 구분하기가 쉬워진다. 호스트네임 확인 hostnamectl 은 시스템의 호스트네임을 관리할 수 있는 명령어로 옵션없이 사용하거나 status 옵션을 주면 현재 정보를 출력한다. 터미널에 hostnamectl 을 입력하면 다음과 같은 결과를 확인할 수 있다. ubuntu@server-no1:~$ hostnamectl Static hostname: server-no1 Icon name: computer-vm Chassis: vm Machine ID: d78..

  • format_list_bulleted Computer Science/Server
  • · 2024. 2. 10.

2022 - TLS 1.0, TLS 1.1 지원 중단으로 인한 TLS 버전 업그레이드 회고

상황 글 작성하기 2년전 wss 통신에서 장애가 발생했다. 해당 서비스는 초당 50 만건 이상의 트래픽을 감당하고 있을만큼 장애가 발생할 경우 문제가 큰 서비스였다. 당시 서버 로그를 확인해서 SSL 인증서에 문제가 있다는 것을 확인했다. 원인을 확인했으니 2가지를 확인해봤다. 1. 인증서 기간 확인 2. OpenSSL 버전 확인 인증서 기간에는 문제가 없었지만 Host 에서 TLS 에 대한 이슈가 있다는 것을 확인했고 OpenSSL 1.0.2g 에서는 TLS 1.2 이상을 지원하지 않았으며 Docker Daemon 에서도 TLS 1.2 / 1.3 을 지원하지 않았다. 우선 원활한 서비스를 위해 wss 통신하던걸 모두 ws 통신으로 변경했더니 서비스가 정상으로 돌아왔다. 원인 TLS 1.0, TLS 1...

  • format_list_bulleted 임시보관/실무 이슈
  • · 2024. 2. 10.

Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client

더보기 2022 년도에 작성된 글 입니다. 서버에서 API 스팩을 잘못 개발했을 경우 클라이언트 개발자에게서 겪는 문제이다. Error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client 살다살다 아래와 같은 에러를 만나게 됬다. error [ERR_HTTP_HEADERS_SENT]: Cannot set headers after they are sent to the client at ServerResponse.setHeader (_http_outgoing.js:561:11) at sendJson (/Users/kyungseo.park/Documents/sunyoh-web/node_modules/next/dist/nex..

  • format_list_bulleted 임시보관/에러모음
  • · 2024. 2. 9.
  • navigate_before
  • 1
  • ···
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • ···
  • 21
  • navigate_next
공지사항
전체 카테고리
  • 분류 전체보기 (124)
    • Algorithm (3)
      • 백준 코딩테스트 (0)
      • 알고리즘 응용 (3)
    • Computer Science (18)
      • Data structure (0)
      • Network (0)
      • System Software (0)
      • Server (2)
      • 클라우드 (15)
    • DevOps (14)
      • 도커 (Docker) (8)
      • 모니터링 (6)
    • Programming (28)
      • 플러터 (Flutter) (2)
      • $_머니 (PHP) (16)
      • 스프링 부트(Spring Boot) (9)
      • 노드 (NodeJS) (0)
      • .NET (1)
    • Database (1)
      • RDBMS (10)
      • NoSQL (5)
      • 메시징 시스템 (messaging system) (2)
      • 검색 엔진(Search engine) (2)
    • 실무 경험 (12)
      • 실무 개발 & 협업 (7)
      • 개발 도구 & API 테스트 (2)
      • 기술 트렌드 & 리뷰 (2)
    • 사이드 프로젝트 (3)
    • 도서 (5)
      • 불친절한 SQL 프로그래밍 (2)
    • 마인드셋 (0)
      • 오늘의 온도 (0)
      • 마인드 리셋 (0)
      • 성장 로그 (0)
    • 임시보관 (13)
      • 에러모음 (1)
      • 실무 이슈 (6)
      • 로그인 서비스 (4)
인기 글
전체 방문자
오늘
어제
Copyright © 귀찮은 개발자 모든 권리 보유.
SKIN: Copyright © 쭈미로운 생활 All rights reserved. Designed by JJuum.
and Current skin "dev-roo" is modified by Jin.

티스토리툴바