728x90
1. MariaDB 데이터베이스 덤프를 생성mysqldump 명령어를 통해 데이터베이스 백업을 생선한다# 단일 데이터베이스 백업mysqldump -u root -p [데이터베이스이름] > [파일이름].sql# 전체 백업mariadb-dump -u [아이디] -p[패스워드] --all-databases > [백업파일명].sql 그 뒤 MariaDB 환경변수도 확인하여 향후 설정을 대비한다. 2. 도커 이미지 생성하기MariaDB 데이터를 포함한 Docker 이미지를 생성한다FROM mariadb:10.11 # MariaDB 버전 명시ENV MYSQL_ROOT_PASSWORD {비밀번호} # 루트 비밀번호 설정ENV MYSQL_DATABASE {DB명} # 생성할 DB 이름COPY ./{DB명}_a..
인프콘에 나오더라인프콘 2024의 이동욱 개발자님은 인프런 레거시 작업을 하며 여러 개선 사례를 공유했다.초반에 인프런의 국제화를 목표로 함을 언급하는데, 이때 트래픽은 동일한데 계속해서 상승하는 환율로 인한 서버 문제를 언급한다.이어서 따라서 비용을 줄이고자 트래픽을 가만히 둘 수 없어 시도한 작업 중 하나가 이미지 트래픽을 줄이는 방식이었고 이를 통해 avif 확장자를 언급한다. AVIF 확장자란AV1 비디오 코텍을 기반으로 한 차세대 이미지 포맷이다. 압축 방식이 효율적인지라, 높은 품질을 유지하면서도 상대적으로 작은 파일 크기를 저장할 수 있게 한다. 얼만큼 효율적이고 얼만큼 높은 품질을 유지해주냐면 - JPEG 대비 최대 50% 까지의 파일 크기 감소와 더불어 동일 화질 유지- PNG에서만 가..
그런 생각을 했다.이중화된 서버에 Socket 통신을 하면 요청 전달의 오류가 있진 않을까? 예를 들어, Socket.connect()로 HTTP 요청이 일어났다. 그리고 LoadBalancer가 Tomcat1로 전달한다.이후, Socket.publish()로 메시지를 발행했다. 그리고 LoadBalancer가 Tomcat2로 전달한다이러한 발상에 로드밸런서 측에 stickySession을 적용해야하는 게 아닌가 싶었으나, 조금 더 파해친 결과 해당 생각의 오류가 있었다. 1. Socket.connect() 호출 시- socket.connect()가 호출되면, WebSocket 연결이 설정된다. 이 시점에는 HTTP 통신이 이루져 Gateway에서 로드밸런싱이 일어날 것이다. - 초기 'connect()..
Notion이 질렸다Notion 3년 차, 토이 프로젝트 스페이스만 서너 개를 운영해 봤다. 협업할 때야 다 함께 편집하기에 편하고 링크 공유도 하며 좋았지만, 개인 문서를 정리하기에는 부적합했다. 개인 문서를 작성하기 위해 그 각각의 특성을 생각해서 가장 좋은 템플릿 구성을 고민하는 나를 지난 3년간 봐왔으니 보다 대충 문서를 정리할 수 있는 툴을 찾아야 했다. Obsidian이 천재 도구라던데Youtube에서 니꼬가 말했다. Obsidian이 최고라고.많은 플러그인들을 선택적으로 커스텀하여 쓸 수 있는 이 Obsidian은 생각보다 꽤 불편했다. 처음엔 '뇌 지도'라는 트리 구조의 뷰가 매력적이어서 한 일주일 만에 문서 50여 개를 만들고 훗날 거대하고 멋있는 뇌 지도를 꿈꿨는데, 마크다운 기반의 문..
주관적인 의견입니다. 1:N? N:M? 그저께 싸피에서 마지막 오프라인 날, 각자의 1년 간 활동을 정리할 시간이 있었다. 그 날 언니가 하던 말. 🤱🏻 : 으잉,, 오픈채팅 구현에서 난 1:N 통신을 구현한걸까, N:M 통신을 구현한걸까? 🍊: 수신 발신 입장에선 1:N 같기도 하고.. 👦: N:M에 가까운 것 같은데? 다수가 다수한테 보내잖아. 흐음으흠음 🍊: 내가 알아볼게오 1:N 이라 볼 수 있는 이유 개별 사용자 관점에서, (가령 카카오톡같은) 오픈채팅방은 1:N 통신으로 볼 수 있다. 이 경우, 한 사용자(1)이 오픈채팅방 내 다른 여러 사용자(N)에게 메시지를 보내고 그 반대의 상황도 동일하게 이루어진다. 각 사용자는 자신과 다른 모든 참가자 간의 통신에서 '1'의 역할을 하며, 동시에 'N..
💬 목표 한 두달 전부터 아른 거리던 프로젝트의 겉면을 좀 세분화 해봤다. 손이 심심할 때마다 빌드업하기에 좋을 것 같았다. 혼자 진행하게 될테지만, 그만큼 유연할 설계/구현/테스팅/배포 등의 과정 안에서 지난 흩어진 경험들을 모아보련다. 명확한 결과물을 보고 싶다. 순전한 개발사항들 보다도 병행하는 개발관련 공부내용도 함께 같은 카테고리에 집어넣을 것이다. 그래야 더 기억날 것 같으니까. 💬 리액티브 프로그래밍와 데이터 액세스 블로킹과 리액티브 웹 컨트롤러, 서비스 계층을 리액티브 방식으로 만들었으나 블로킹 방식의 데이터베이스 호출 시 리액티브는 무너진다 블로킹 방식의 데이터베이스 호출을 하는 스레드는 응답을 받을 때까지 다른직업을 못하고 있기때문이다 리액터 기반 Application은 스레드를 많이 ..