728x90
시작은 쪼끄맣게뭐든지 성취는 작은 것부터 하랬다. 당장에 결과를 볼 수 있는 세미 프로젝트부터 해봤다.JS로 만드는 환율 계산기이며 성취할 목록은 아래와 같다. - 크롬 앱을 만든다- 환율 변환 OpenAPI를 이용한다- 사용자는 A통화로부터 B통화로 변환시킬 수 있어야 한다- 사용자는 최근 사용한 통화목록을 조회할 수 있어야 한다 로고부터 만들어보자 Microsoft Designer - Stunning designs in a flashA graphic design app that helps you create professional quality social media posts, invitations, digital postcards, graphics, and more. Start with your..
Page페이지(Page)는 데이터베이스에서 데이터를 저장하고 관리하는 가장 작은 물리적 단위다.디스크와 메모리 간 데이터 이동에서 주요 역할을 하는데 이런 특징이 있다. 첫 째, 일반적으로 고정 크기를 갖는다. 가령 PostgreSQL에선 8KB고, MySQL에서는 16KB로 DBMS에 따른 차이가 있다.둘 째, Page는 여러 행을 갖고 있다. 하나의 페이지에는 많~은 데이터 행을 포함하고 있는 것이다.셋 째, 데이터베이스가 Disk에서 데이터를 읽거나 쓸 때 이 페이지 단위로 작업을 한다. 그러니 얘 때문에 Disk I/O 성능이 데이터베이스 쿼리 성능에도 직접적인 영향을 미치고 있다. 예를 들어 다음과 같은 과정이 있을 수 있다.1. 데이터가 10000개가 있다.2. 각 페이지는 5개의 데이터를 저..
SpringEvent와 MessageQueue기존에 MessageQueue로서 RabbitMQ, Kafka를 고려할 때 이와 비슷한 역할을 하는 SpringEvent도 후보에 있었다.SpringEvent도 이벤트 기반의 비동기 프로그래밍을 지원하는 아이인데 추가적인 외부 도구 설정은 필요없다. 내부에서 비동기 작업이나 트리거 처리를 간소화할 수 있고, Application 내에서 처리가 되니 디버깅이나 로깅도 편하다. 간편한데 안 쓴 이유분산환경에는 얘가 알맞지 않다. 그야 SpringEvent는 이벤트의 발생과 Listener 호출이 동일한 JVM내에서 처리하다보니, A애플리케이션에서 발생한 Publish 호출을 B 애플리케이션의 Listener가 알 리가 없다. 클러스터 환경에선 다른 서버 노드로이벤..
목표MariaDB가 두 서버에 존재한다. 하나는 Master로, 하나는 Slave의 역할을 맡는다.이때, Slave는 Backup서버로서 Master의 장애 발생 시 I/O작업을 대체할 것이며, 이후 기존 Master와 Slave의 역할이 서로 교환되도록 하고 싶다. 그리고 ProxySQL이나 MHA같은 미들웨어가 이들을 중재하지 않을 때를 가정하여 수동으로 이 둘의 역할을 교환할 것이다. GTID 복제방식을 이용할 건데, MySQL와 MariaDB의 명령어는 차이가 있어 참고자료를 찾는다면 공식문서를 활용하는 게 가장 좋은 방법이다. Global Transaction IDImproved replication using global transaction IDs.mariadb.com 설명의 편의를 위해 최..
마이크로서비스 아키텍처라든지 분산 시스템을 설계하다보면 특정 서비스로의 요청 폭주를 방지하거나 공정한 자원 분배를 위해 얼만큼 트래픽을 관리할 것인지에 대한 처리율 제한 알고리즘도 설계해 반영할 일이 있다.쉽게 말해 "너무 많이 요청하지 말라"고 하기 위한 신호등 느낌이다. 한 번에 너무 많은 요청(클릭, 데이터 요청)이 들어온다면 시스템은 멈추거나 느려지는 현상이 나타날테니, 이를 위해 "몇 개까지만 허용할게" 라고 정해 그 이상은 거절한다든지, 멈추겠다든지 등을 결정해볼만 하다. 물론 과부화 요청에 대한 시스템의 처리속도의 향상과 더불어, 다수의 사용자 중 일부 사용자만 독점하지 않게하며 보안적으로도 안전성을 갖추기 위해 적용시킬 수 있다. 대표적인 처리율 제한 알고리즘 - 토큰 버킷 알고리즘을 알아..
11월은 부산에서 서울로 가는 출장이 잦았다.개발건으로 이동도 있었지만 블록체인 컨퍼런스 참여를 사유로 가기도 했다.블록체인은 고등학교 영재수업 때 찾아보며 처음 접한 뒤 대학교 때 니코랑 js로 노드 구조만 짧게 만든 게 다였는데 이젠 취업해서 구경하게 됐다.그렇게 컨퍼런스 참여를 위해 부산을 떠난 건 대폭설이던 날이었다. 추운 게 익숙해지고나니 좀처럼 볼 수 없었던 눈 덮인 주위가 무척 예뻤다. 뻑뻑한 눈 잔디를 밟는 것도 맘껏 해봤다.가게되었으니 세션 목록을 훑어봤다. 그렇게 큰 연관은 아닌데 ETRI 연수생 생활과 SSAFY 교육 수료 경험 탓에 몇 진행자분 이름에 시선이 갔다.20대 초반에 나는 교육받던 입장이었고 여전히 누군가의 연설을 보는 이 자리에서 나는 언제쯤 타인에게 내 경험과 견해를 ..