ES에서의 Coordinate Node

모든 es에서의 node는 coordinate node가 될 수 있다.

  • coordinate node가 없는 경우, data node가 coordinate node 역할을 수행한다.
  • es cluster에서 로드밸런서와 비슷한 역할을 수행
    • cluster 크기가 커지면 커질수록 coordinate node가 필요

coordinate node는 client node라고도 불리며 elastic search 2.x 이후로는 client node라는 용어를 사용하지 않는다

routing이 안되어있는 경우 Coordinate node의 역할

  1. 특정 데이터를 찾아야 하는 요청(request)을 받는다
  2. cluster의 모든 노드에게 해당 데이터를 가지고 있는지 질의
    1. routing이 안되어있기 때문에 어떤 노드가 해당 데이터를 가지고 있는지 알 수 없음
  3. 모든 노드로부터 데이터 유무와 데이터 정보를 받고 데이터를 모아서(aggregate) 요청(request)에 응답(response)
    1. 모든 노드로부터 response를 받아야만 aggregate 수행
    2. 만약 하나의 노드라도 누락된 경우, timeout

routing이 되어있는 경우 Coordinate Node의 역할

  1. 특정 데이터를 찾아야 하는 요청(request)을 받는다
    1. routing을 통해 어떤 node가 해당 데이터를 가지고 있는지 알 수 있다
  2. 해당 노드에게만 데이터를 질의
  3. 전달받은 데이터로 요청(request)에 응답(respopnse)

 

 

 

틀렸거나 잘못된 정보 지적은 언제나 감사합니다 :)

brew 설치

만약 brew가 설치되지 않은 상태라면, 다음 명령으로 brew를 먼저 설치한다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

iTerm2 설치

다음 명령으로 iTerm2를 설치한다.

brew cask install iterm2

설치결과

설치 결과 화면

iTerm2에 테마 적용

가장 무난하며 깔끔한 snazzy theme

snazzy 테마 다운로드

Snazzy.itermcolors을 우클릭하여 다운로드 받고 실행하면 자동으로 iTerm2 테마 preset이 추가된다.

기타 테마 다운로드

여기에서 다른 마음에 드는 테마를 추가할 수도 있다.

테마 적용하기

iTerm2를 실행하고 설정 창(command + ,)에서 Profiles - Colors - Color Presets... - Snazzy 선택

따라누르면 된다.

따로 snazzy preset을 미리 추가했기 때문에 Preset 목록에서 Snazzy 테마를 선택할 수 있다.

선택 후 추가로 설정을 해줘야 완벽히 이쁜 나만의 터미널을 사용할 수 있다.

추가 설정

타이틀바 배경색 어둡게 변경

  • Appearance > General > Theme > Dark

타이틀바 밑 라인 제거

  • Appearance > Windows > Show line under title bar when the tab bar is not visible 체크 해제

마진 수정

  • Appearance > Advanced > Height of top and bottom margins in terminal panes > 10

zsh 적용

맥 버전 10.15(Catalina)부터는 기본 쉘을 bash 대신 zsh를 사용하고 있다.

일단 다음 명령으로 zsh를 최신 버전으로 업데이트 하고, zsh-completions를 설치한다.

brew install zsh zsh-completions

zsh의 설정을 관리해주는 oh-my-zsh도 설치한다.

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

oh-my-zod

플러그인 설치

zsh의 가장 큰 강점은 역시 다양하고 강력한 플러그인을 지원하는 점이다.

  • zsh-syntax-highlighting 설치

    git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  • zsh-autosuggestions 설치

    git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

플러그인 사용

플러그인을 설치한 뒤 ~/.zshrc에 플러그인을 추가해줘야 정상적으로 동작한다.

~/.zshrc에 다음을 추가한다.

plugins=(
  git
  zsh-syntax-highlighting
  zsh-autosuggestions
)

~/.zshrc를 수정한 뒤 source ~/.zshrc를 통하여 설정을 재적용해야 정상적으로 반영이 된다.

이제 흑백의 터미널 대신 심플하며 보기좋은 iTerm + zsh 조합을 사용할 수 있다👍

새 repository를 만들때 ignore 또는 readme를 추가하고 바로

git pull origin master

를 하고 프로젝트를 시작한다면 문제가 없지만, 이미 진행중이던 프로젝트가 있는 경우 충돌이 발생한다.

에러 코드는 다음과 같다.

! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/?????/server-study.git'
hint: Updates were rejected because the tip of your current branch is behind its remote counterpart. Integrate the remote changes (e.g. 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

다음 명령어로 해결할 수 있다.

git pull origin master --allow-unrelated-histories

다만 이 방법은 강제로 merge시키는 방법이기 때문에 처음 git과 연동할 때 충돌로 인한 문제를 해결할 때 외에는 사용을 추천하지 않는다.

1. 서류 전형

준비

기본 인적 사항, 학력, 경력, 외국어/자격증, 자기소개서를 작성하게 된다.

자소서는 현대자동차라는 회사와 해당 직무에 본인이 얼마나 fit한지를 녹여내려고 노력했고 우대사항에 적힌 관련 경력을 어필했다. 항목이 3개밖에 없어서 작성이 크게 어렵지는 않았다. 현대자동차 채용 페이지에 있는 인재상을 잘 녹여내면 좋을 것 같다.

결과

지원 마감 후 9일 뒤 메일과 문자로 결과를 통보받았다.

2. 면접 전형

서류 합격 후 약 1주일 뒤 면접이 잡혔다. 면접때 발표할 포트폴리오를 제출해야 하는데, 시간이 좀 촉박하게 느껴졌었다.

준비

포트폴리오는 자유양식이었으며 그간의 경력과 프로젝트 경험에 대해서 설명하는 식으로 작성했다. 아, 양식은 자유지만 필수로 포함해야 하는 내용이 있었다. 학업 관련 내용이었는데, 좀 노가다스러운 경향이 있어서 애를 좀 먹었다.

포트폴리오를 제출하다 보니 경험 위주로 면접을 준비했다. 포트폴리오를 바탕으로 발표 흐름을 잡고 몇 번 연습해보면서 어떤 점이 궁금할까 고민해보며 추가적인 질문들을 대비했다.

전형

양재 본사에서 총 약 3시간정도 진행했다. 해당 직무 별로 10명이 안되는 분들이 면접을 진행하러 오셨고, 오후타임에도 면접이 예정되어있다고 얼핏 들은 것 같다. 타 직무 지원자분들 말씀을 들어보니 대부분 석사를 마치고 오셔서 조금 주늑들었다...ㅠ

전형 과정은 자세히 언급하기에는 무리가 있을 것 같아 간단한 후기만 작성하려 한다. 양해를 부탁드린다.

전형을 시작하기 전에 전자기기를 모두 수거한다. 때문에 기다리는 동안 물 마시는 것 외에 아무것도 할수가 없었다...정리한 것들을 프린트 해 가시는 것을 추천한다.

면접 분위기는 좋았고 면접관 분들께서 편안한 분위기로 만들어주려고 노력해주셨다. 약 20~30분간 준비한 포트폴리오로 발표를 진행했고 중간중간 궁금하신 부분들을 질문하셨다.

이후에는 기술질문이 주를 이뤘는데, 경험 위주로 준비하느라 기술에서 대답을 잘 못한 것 같아 너무 아쉬웠다. 높은 단계의 지식을 원하시는건 아니었던 것 같은데, 너무 간단하게만 생각해서 논리적인 사고 능력을 잘 어필하지 못했다.

해당 직무에서 정확히 어떤 업무들을 진행하고 있는지에 대한 지식이 없던 것도 아쉬웠다(나름 찾아봤지만 못찾았으니까! 주변 지인에게 물어봤어야 했나보다ㅠ). 어차피 관련 경험이 있더라도 기대하는 점은 적겠지만 관심을 어필할 수 있는 부분이라고 생각한다. 면접을 준비하는 분이 이 글을 보신다면 꼭 해당 직무에서 어떤 프로젝트들을 하는지 알아보시길 추천한다! 나만몰랐던거면죄송합니다

약 1시간 정도 면접이 진행되고 인성검사를 실시했다. 최근 인성검사는 예전처럼 단순히 1~5로 그렇다/아니다를 표현하는데 그치지 않고 3가지 질문 중 우선순위를 두게 한다.

예를 들면 내가 추구하는 가치가 [ 협업 / 희생 / 개인의 성장 ] 이라면
세가지 모두 "매우 그렇다" 표시를 해도 같은 "매우 그렇다"가 아니라 우선순위가 있는 "매우 그렇다"가 되어야 한다.

개인적으로 검사가 더 정밀해져서 더욱 솔직한 내가 노출되는 느낌이었다. 인성검사는 1시간이 조금 안걸리는 시간동안 진행됐다.

결과

면접 후 2주 뒤 메일과 문자로 결과를 통보받았다.

3. 임원 면접 전형

약 1주일 뒤 면접 전형 합격자를 대상으로 임원 면접 전형을 진행한다. 장소는 같다.

해당 전형 이후로는 진행하지 않아서 딱히 후기랄 것이 없다.

마치며

3대1로 진행되는 좋은 면접 경험이었다. 본사 건물은 현차답게 세련된 느낌이 있고 생각보다 모두 여유있는 느낌이었다. 면접비는 계좌로 입금해준다. 공채에서 상시로 바뀐 지 얼마 안돼서 진행한 전형이었는데, 개인적으로 뭔가 시스템이 완전히 정착되지 않은 느낌을 조금 받았다. 언제나 그렇지만 면접관분들을 나중에 뵙게 된다면 당시 어떤 인상이었는지 너무너무 궁금하다.

관련 직무 전형을 준비하시는 분들께 조금이나마 도움이 되는 글이 되었으면 좋겠다. 혹시나 질문이 있으시다면 최대한 도와드리겠습니다 :)

  • 문제가 되는 부분이 있다면 댓글로 알려주세요. 즉시 수정하겠습니다 :)

'일상 > 취업' 카테고리의 다른 글

[네이버] 2020 개발자 공채 지원 및 면접 후기  (11) 2020.09.30

 

문제는 여기에서 풀 수 있습니다.

 

 

전형적인 DP문제입니다. 왼쪽 맨 위에서 오른쪽 맨 아래로 이동하는 경로에 포함된 사탕 개수의 최댓값을 구하면 되는 문제로 만약 준규가 이동할 수 있는 방향이 8방향이거나 4방향(동서남북)이라면 dfs를 통해 풀어야 할 것 같습니다.

 

하지만 이번 문제에서는 방향이 오른쪽 / 아래쪽 / 오른쪽 아래 대각선 으로 한정되어있으므로, DP를 통해 쉽게 풀 수 있습니다.

 

미로의 크기는 가로세로 최대 10^3이므로 모든 미로의 방을 탐색해도 10^6이기 때문에 시간 복잡도 측면에서 안전합니다(O(NM)).

 

미로의 방에 놓여져있는 사탕의 개수를 입력받을 때 마다 현재 위치로 올 수 있는 위치(왼쪽 / 위쪽 / 왼쪽 위 대각선) 중에서 가장 큰 값을 더해주는 식으로 DP식을 구성했습니다.

 

arr[i][j] += max(arr[i-1][j], max(arr[i][j-1], arr[i-1][j-1]));

 

속도를 빠르게 해보겠답시고 입력을 받으면서 DP연산을 해도 시간이 줄지를 않았습니다. 아무래도 상수만큼 시간을 줄이는 것은 크게 의미가 없는 것 같습니다.

 

소스코드:

#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
#include <cmath>
#include <map>
#include <queue>
#include <stack>
#include <unordered_set>
#include <cstring>
using namespace std;

int arr[1001][1001];

// main function
int main()
{
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	int N, M;
	cin >> N >> M;

	for (int i = 1; i <= N; i++)
	{
		for (int j = 1; j <= M; j++)
		{
			cin >> arr[i][j];
			arr[i][j] += max(arr[i - 1][j], max(arr[i][j - 1], arr[i - 1][j - 1]));
		}
	}

	cout << arr[N][M];

	return 0;
}

 

'알고리즘 > 백준' 카테고리의 다른 글

[BOJ] 1890 점프  (0) 2020.01.05

+ Recent posts