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

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

 

 

bfs를 쓸까 하다가 경로의 개수가 상당히 많아지는 것을 보고 dp를 써야겠구나 싶었습니다.

 

진행방향이 오른쪽이나 아래 뿐이므로, 순차적으로 가능성의 개수를 dp로 풀어나가면 됩니다. 

 

dp배열의 값을 [가능성의 개수]로 정의했기 때문에 초기값(dp[0][0])을 1로 설정하고 NXN배열을 순차적으로 탐색합니다. 탐색 방향과 점프 방향이 같으므로, 딱히 가지치기 할 케이스가 없습니다.

 

문제를 풀면서 신경써야했던 부분은 가장 오른쪽 아래 칸에서 dp연산을 수행하지 않는 것과 경로의 수가 int범위를 넘어가므로 dp배열을 long long으로 선언하는 것이었습니다.

 

시간복잡도는 O(N^2)이고 N<=100이므로 빠르게 문제를 풀 수 있었습니다.

 

#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[101][101];
long long dp[101][101];

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

	int N;
	cin >> N;

	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
			cin >> arr[i][j];
	}

	dp[0][0] = 1;
	for (int i = 0; i < N; i++)
	{
		for (int j = 0; j < N; j++)
		{
			if (arr[i][j])
			{
				if (i + arr[i][j] < N)
					dp[i + arr[i][j]][j] += dp[i][j];
				if (j + arr[i][j] < N)
					dp[i][j + arr[i][j]] += dp[i][j];
			}
		}
	}

	cout << dp[N - 1][N - 1];

	return 0;
}

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

[BOJ] 11048 이동하기  (2) 2020.01.12

1. 2019

2019년은 쉬기도 많이 쉬었지만 여러 일들이 있었던 한 해였다.

면접을 준비하며 자료구조, 알고리즘 같은 기본기를 닦으면서 공부한 내용들을 블로그에 정리해두고 싶었는데, 게으름 때문에 글을 하나도 작성하지 못해서 개인적으로 많이 속상하다. 변명을 좀 하자면 정확한 내용을 명료하게 전달할 수 있을까.. 하는 걱정도 Aㅏㅏㅏㅏㅏ주 조금 있었던 것 같다!

그러나 결과적으로 정말 감사하게도 원하는 기업에서 개발자로서 일을 할 수 있게 된 점은 매우 긍정적이다. 하루빨리 현업에서 개발 스킬을 이것저것 배워서 개발자로서 성장하고 싶었는데, 내년부터 신나게 성장할 수 있을 것 같아 매우 기쁘고 설렌다!

사실 혼자서도 성장할 방법이 여럿 있지만, 뭔가 스스로 만든 벽에 갇혀 그러지 못한 것 같아서 아쉽다.

내년부터 짬이 날 지는 모르겠지만, 혼자서 이런저런 프로젝트를 진행해보고 싶다.

어디 적지는 못했지만 2019년의 개발자로서의 목표라면 1일 1커밋, 기술 블로깅, 개인 프로젝트 진행 정도가 있었는데, 놀랍게도 하나도 성취하지 못했다!

1일 1커밋은 알고리즘 공부 겸 코딩테스트를 대비하며 푼 문제들을 커밋하여(사실상 1일 1커밋 이라기보다는 1일 1문제에 더 가까웠다) 7월부터 잡초를 심었지만 매일매일 꾸준히 문제를 푼다는 게 여간 쉽지가 않았다. 코테와 면접을 준비하며 더욱 지켜보려고 노력해봤지만, 잡초 사이의 듬성듬성 회색 시멘트를 덮지 못했다...ㅜㅜ 그래도 시작이 반이라는 말에서 용기를 얻어 앞으로 점점 나아지는 내가 됐으면 좋겠다.

기술 블로깅과 개인 프로젝트는 충분히 시간을 내서 할 수 있었지만 우선순위가 낮다는 핑계로 진행하지 못했다ㅠ

2. 2020

따라서 앞으로 2020년에 대한 다짐은!

  1. 입사 후 부단히 노력하기

  2. 2019 후기 작성

  3. 블로그와 함께 성장하기

  4. 블로그 이전

  5. 건강 챙기기

로 5가지만 해보려고 한다. 한 손으로 꼽을 정도니 과하지 않을 거라 걱정 섞인 확신을 해본다!

2.1 입사 후 부단히 노력하기

9주간 예정된 신입교육 후 부서 배치를 받게 된다. 예정된 교육에서도 최선을 다해서 참여하고 교육시간 외에도 예습 혹은 복습을 병행하거나 기술적인 내용을 블로그에 정리하면 좋을 것 같다.

교육 이후 부서에 배치받고 나서는 팀에 적응을 최우선으로 하고 개발자로서의 역할을 다 할 수 있도록 열심히 공부할 생각이다. 많이 부족할게 분명하니 쉽지 않은 기간이 될 것 같다. 힘들겠지만 2019년에 쉰 만큼 열심히 달릴 때라고 생각한다ㅋㅋㅋ.

깃허브 커밋 수에 대해서는 크게 신경 쓰지 않으려고 한다. 그렇다고 아예 놓는 것이 아니라 부담을 덜 가지는 게 좋을 것 같다. 물론 1일 1커밋은 분명 의미 있는 업적이지만, 진정으로 코딩 습관이 잡히면 그때부터 시작해도 늦지 않을 것 같다.

2.2 2019 후기 작성

이번 취업을 목표로 했을 때 검색을 통해 코테나 면접 후기들을 여럿 봤는데, 상당한 도움이 되었다. 개인적으로 여러 기업에 지원하고 얻은 그간의 경험들을 글로 남기면 또 다른 누군가에게는 도움이 되지 않을까.. 하는 마음에 시간 날 때마다 기억을 더듬어 보안 서약을 위배하지 않는 범위 내에서 작성해보려고 한다.

2.3 블로그와 함께 성장하기

사실 그간 블로그에 대한 열망은 꽤나 있는 편이었다. 뭔가 기록을 남기는 것이 장기적으로도 좋아 보였고, 스스로 기술적인 내용을 정리해두면 나중에 복습하기에도 유용할 것 같았다. 하지만 첫 단추 꿰는 게 가장 어렵듯이 어떤 내용부터 어떻게 작성해야 할지 좀 막막했던 부분, 정확한 내용을 전달하지 못하면 어떡하나에 대한 걱정, 일기 같은 글을 세상에 노출시키는 것에 대한 부담, 몇 개의 글을 작성해 본 결과 완성도 있는 글을 작성하려면 생각보다 많은 노력이 필요하다는 점 등의 이유들이 블로깅의 길을 가로막았다.

앞으로는 처음부터 완벽할 필요는 없다는 마인드로 어떤 내용이든 기회가 되는대로! 최대한 정확한 정보를 바탕으로, 만약 그렇지 못하다면 지적을 언제든지 수용하는 자세로! 부담이 되는 만큼 스스로를 더 다잡는 계기로! 블로그를 운영하려고 한다. 글 하나를 완성하는데 시간이 꽤나 필요한 부분은... 점차 노하우가 쌓이다 보면 나아지기를 바란다ㅜㅜ

1년간 반드시 글 몇 개 쓰기 같은 정확한 목표는 세우지 않으려고 한다. 목표를 낮게 잡아도, 높게 잡아도 문제인 것 같아서 어느 정도가 적당한 목표인지 모르겠다. 그냥 되는대로 최대한 열심히 글을 쓰려고 한다!

2.4 블로그 이전

현재 티스토리를 통해 블로그를 운영하고있는데(운영이라기엔 죽은 블로그이지만) 점차 jekyll + 깃허브로 이사를 생각하고 있다. 운영이 더 어려워지겠지만 그만큼 자유롭게 운영할 수 있다는 점이 매력적이었다. 언제가 될지는 모르겠지만 가능한 한 빨리 이사 가고 싶다. 단순한 호기심 때문에...ㅎㅎㅎ

2.5 건강 챙기기

최근 아는 분께서 뇌출혈로 쓰러지셨다고 들었다. 너무도 마음 아픈 일이었는데, 더욱 건강에 대해 경각심을 갖게 되었다. 평소에도 건강에 신경을 많이 쓰는데, 이제 일을 시작하는 만큼 체력적으로 모자라지 않도록 건강을 더 신경 써서 관리해야겠다는 생각이 들었다. 사소한 거는 잘 챙기는 편이라 운동을 좀 더 하면 좋을 것 같다. 원래 한동안 수영을 다니고 있었는데 수질이 좀 좋지 않은 것 같아서 헬스를 시작할까 고민 중이다. 집에서 맨몸 운동 루틴을 잡는 것도 좋아 보이고... 고민이 좀 더 필요한 문제 같다. 중요한 것은 건강을 잃지 않도록 최선을 다할 것!

2020년 연말에 2020 & 2021이라는 글을 쓸 때 얼마나 잘 지켰나 회고하는 시간이 기대된다. 부끄럽지 않도록 멋진 한 해를 보내야겠다!

'일상' 카테고리의 다른 글

2020 상반기 후기  (0) 2020.09.12

윈도우에서 맥으로 넘어오면서 가장 불편한 것이 한/영 전환이었습니다.

 

대중적으로 알려진 방법과 제가 겪었던 시행착오를 공유하는 포스트입니다.

 

먼저 https://pqrs.org/osx/karabiner/ 으로 들어가셔서

핑크색 박스를 클릭해줍니다.

Karabiner은 키보드의 키와 실질적으로 동작하는 키를 커스터마이징 할 수 있는 앱입니다.

 

이 앱을 사용해서 right-command로 지정되어있는 한/영 키를 실제로 한/영 기능 키와 매핑하는 것이 이번 포스팅의 핵심입니다.

 

앱을 설치해주시면 보안관련 권한을 허가해달라고 하는데, 다 해줍니다.

 

그리고 앱을 실행하시면

 

 

다음과 같은 화면을 볼 수 있습니다. 역시나 핑크박스 클릭.

 

왼쪽 박스를 right_comand로, 오른쪽 박스를 f13(f13~f20중 아무거나 상관없습니다)로 선택합니다.

 

f13은 원래 사용하지 않는 키로, 한/영 전환 키와 실질적인 한/영 전환 기능을 연결하는 다리 역할을 하게 됩니다.

 

이제 한/영 전환 기능과 f13키를 매핑할 차례입니다.

 

아래 사진과 같이 시스템 환경설정 > 키보드 > 단축키 > 입력 소스 > 이전 입력 소스 선택   을 선택합니다.

 

아마 기본값이 ^스페이스 로 설정되어있을텐데, 윈도우에서 사용하던 한/영 전환 키를 눌러주시면 F13으로 변경됩니다.

 

Karabiner로 한/영 전환 키가 F13처럼 동작하게 매핑시켜놨기 때문이죠.

 

수고하셨습니다. 이제 한/영 전환을 윈도우처럼 사용할 수 있습니다!

 

 

=====================================================================================================

위 방법으로 문제를 해결하셨다면 아래 포스트는 읽지 않으셔도 됩니다.

=====================================================================================================

 

만약 "이전 입력 소스 선택" 에서 한/영 전환 키를 눌러도 F13이 선택되지 않는다면,

 

그건 사용하는 키보드에서 한/영 전환 키가 맥에서 right_command 키로 인식되지 않았다는 뜻입니다.

 

이런 경우에는 right_command 대신 right_option 이나 right_control 로 변경하면 문제가 해결됩니다.

 

 

 

이래도 해결되지 않은 경우는 댓글 달아주시면 도와드리겠습니다.

좋은 하루 보내세요!

 

'맥 관련' 카테고리의 다른 글

[python3] pipenv에서 python mysqlclient 설치  (0) 2021.08.15
[mac세팅] teminal → iTerm2 (feat. zsh)  (2) 2020.05.09

안녕하세요,


개인 프로젝트를 진행하다가 블로깅을 해보면서 그 과정을 남기면 어떨까...하는 심정에서 블로그를 만들게 되었습니다.


이 글이 그 첫 발걸음인데요, 먼저 구글 api를 사용하면서 겪었던 과정들을 글로 남기려고 합니다.


저와 같은 오류를 겪으신 분들에게 힘이 되기를 바라며, 글을, 블로깅을 시작하도록 하겠습니다.


https://console.cloud.google.com/

위 링크를 따라가시면 구글 api를 사용할 수 있는 Google Cloud Platform 페이지가 열립니다.


다들 구글 계정은 있으시겠죠?

로그인 하시고 좌측 상단의 메뉴 버튼(가로로 세줄)을 누르시면 위 화면과 같은 창이 뜹니다.


좌측 메뉴 중에서 '결제' 카테고리를 클릭하신 후 무료 체험 비슷한 걸 신청하시면 됩니다.


현재 저는 이미 신청한 상태라 화면을 긁어올 수 없네요ㅠㅠ


알아서 잘 하시리라 믿고 궁금하신점 있으시면 댓글로 남겨주시면 최대한 빨리 답변 드리겠습니다.




Google Cloud Platform 사용 권한을 얻으셨다면 이제 사용할 api를 선택해봅시다.

좌측 메뉴에서 API 관리자를 클릭합니다.


\



클릭 후 형광펜 칠한 'API 사용 설정' 을 클릭합니다.



사용하려는 API 관련 키워드를 입력하고 검색하여 사용하려는 API를 클릭합니다.


저같은 경우는 Speech 관련 API를 사용하기 위해서 speech를 검색하여 Google Cloud Speech API를 클릭했습니다.



저는 이미 해당 API를 사용중이기 때문에 위 화면과 같이 나타나지만, 사용 전에는 '사용' 같은 버튼이 있을겁니다.


그걸 클릭해주시면 제 화면처럼 바뀌고, 해당 계정에서 선택한 API를 사용할 수 있게 되었습니다!


*한가지 중요한 점은, API를 사용하기 전에



미리 만들어 놓은 프로젝트에 한해서만 선택한 API 사용 권한이 적용된다는 점입니다.


이 룰을 지키지 않으시면 추후의 과정에서 오류가 나타날 수 있습니다ㅠㅠ


역시나 관련 질문은 댓글 남겨주시면 최대한 빨리 답변드리겠습니다.



이제 다시 API 관리자로 돌아와서, 형광색칠 된 '사용자 인증 정보'를 클릭합니다.



그리고 '사용자 인증 정보 만들기' 를 클릭합니다.


이 '사용자 인증 정보' 는 json 파일로 이루어진, 개발자가 구글 api를 사용하기 위한 권한을 인증해주는 파일의 정보 라고 이해하시면 좋습니다.


'서비스 계정 키' 를 선택합니다.



서비스 계정 이름을 설정하고(사용자 임의), 역할은 개발에 필요한 옵션을 선택하시면 됩니다만, 가급적 '소유자'를 선택하는 것이 편할 것 같습니다. 물론 필수는 아닙니다.


키 유형은 json파일을 추천합니다. 보편적으로 많이 사용하거든요.


이제 [생성] 버튼을 눌러주시면 

다음과 같은 팝업이 뜹니다. 디폴트 다운로드 경로로 json파일이 저장됩니다. 이제 해당 json파일을 GOOGLE_APPLICATION_CREDENTIALS 환경변수로 지정하여 인증하면 선택한 구글 API를 사용할 수 있습니다!


저같은 경우 라즈베리파이에서 음성인식을 하기 위하여 Speech api를 사용했는데요, 그 과정은 따로 포스팅 하도록 하겠습니다.


여기까지 구글 api 사용을 위한 간단한 과정을 소개하는 포스트였습니다.


도움이 되셨길 바라며, 더 좋은 포스팅으로 돌아오겠습니다!

+ Recent posts