
RDS Replication에 대해 알아보기 전에 우선 Database Replication이 무엇인지 간략하게 살펴보겠습니다. Replication(복제)은 Database를 복제하여 추가로 만들거나 백업할 때 사용하는데요. Mysql 공식홈페이지에서는 Replication에 대해 다음과 같이 설명하고 있습니다. "Replication enables data from one MySQL database server (known as a source) to be copied to one or more MySQL database servers (known as replicas). Replication is asynchronous by default; replicas do not need to be conne..

ELB : 시스템에 가해지는 부하를 다른 여러 대의 시스템으로 분산시켜주는 서비스 소수의 유저만 사용하는 서비스일 경우 (트래픽이 적을 경우) 아래와 그림과 같이 하나의 서버만으로 사용자의 요청을 모두 처리할 수 있습니다. 하지만 , 유저가 늘어나 트래픽이 증가할 경우 하나의 서버만으로는 감당할 수 없습니다. 이때 서버 스팩을 늘려( CPU, 메모리를 고사양으로 교체) 트래픽 이슈를 해결 할 수도 있지만 일반적으로 서버의 대수를 늘려 부하를 분산하는 방식으로 트래픽 이슈를 해결하는 것이 더 효율적이라고 알려져 있습니다. 이 때 사용하는 것이 ELB입니다. ELB의 특징 - 트래픽 분산 - 자동확장 - 인스턴스의 상태를 감지하여 오류가 있는 시스템은 자동으로 배제 - 사용자 세션을 특정 인스턴스에 고정 -..

Redux Redux란 Javascript App을 위한 상태 관리 라이브러리이다. 리액트 뿐만 아니라 Angular, jquery 등 다양한 프레임워크에서 작동되게 설계되어 있다. 리액트만으로 프로젝트를 진행한 적이 있다면 state 때문에 골치 아픈 경험이 있을 것이다. 컴포넌트 내에서만 사용되는 local state는 관리가 비교적 쉽지만, 어플리케이션 전체에서 사용되는 상태(state)들은 관리하기가 어렵다 . 프로젝트 규모가 커지면 커질 수록 state 관리 이슈는 큰 문제가 되는데.. 이러한 문제를 해결하는데 사용되는 것이 바로 Redux다 . 리덕스의 데이터 Flow 는 아래와 같다 리액트는 Action, Reducer, store 등으로 구성되어 있는데 각각의 기능은 다음과 같다. 1) A..

문제 설명 게임개발자인 "죠르디"는 크레인 인형뽑기 기계를 모바일 게임으로 만들려고 합니다. "죠르디"는 게임의 재미를 높이기 위해 화면 구성과 규칙을 다음과 같이 게임 로직에 반영하려고 합니다. 게임 화면은 "1 x 1" 크기의 칸들로 이루어진 "N x N" 크기의 정사각 격자이며 위쪽에는 크레인이 있고 오른쪽에는 바구니가 있습니다. (위 그림은 "5 x 5" 크기의 예시입니다). 각 격자 칸에는 다양한 인형이 들어 있으며 인형이 없는 칸은 빈칸입니다. 모든 인형은 "1 x 1" 크기의 격자 한 칸을 차지하며 격자의 가장 아래 칸부터 차곡차곡 쌓여 있습니다. 게임 사용자는 크레인을 좌우로 움직여서 멈춘 위치에서 가장 위에 있는 인형을 집어 올릴 수 있습니다. 집어 올린 인형은 바구니에 쌓이게 되는 데,..

문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4..

문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자영단어 0 zero 1 one 2 two 3 three 4 four 5 five 6 six 7 s..
문제 설명 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 가입하는 유저들이 카카오 아이디 규칙에 맞지 않는 아이디를 입력했을 때, 입력된 아이디와 유사하면서 규칙에 맞는 아이디를 추천해주는 프로그램을 개발하는 것입니다. 다음은 카카오 아이디의 규칙입니다. 아이디의 길이는 3자 이상 15자 이하여야 합니다. 아이디는 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.) 문자만 사용할 수 있습니다. 단, 마침표(.)는 처음과 끝에 사용할 수 없으며 또한 연속으로 사용할 수 없습니다. "네오"는 다음과 같이 7단계의 순차적인 처리 과정을 통해 신규 유저가 입력한 아이..
문제 설명 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다. 어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다. 어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다. 진열된 모든 종류의 보석을 적어도 1개 이상 포함하는 가장 짧은 구간을 찾아서 구매 예를 들어 아래 진열대는 4종류의 보석(RUBY, DIA, EMERALD, SAPPHIRE) 8개가 진열된 예시입니다. 진열대 번호12345678 보석 이름 D..