분류 전체보기 38

신입 프로그래머가 잘 성장할 수 있는 4가지 방법

신입 서버 프로그래머로 입사한 지 약 4개월이 지났다. 경험적으로 깨달은 교훈들을 정리해본다. 1. 사건이 일어났을 때 주의를 기울이자. 라이브 중인 서비스에 문제가 생겨 팀의 서버 프로그래머들이 모두 달려들어 한 사람이 모니터를 보고, 그 사람 뒤로 모두가 병풍처럼 서서 모니터를 뚫어져라 쳐다보는 전형적인 상황을 생각해보자. 이때 갓 입사한 신입 팀원이 할 수 있는 건? 아마도 99% 확률로 아무것도 없을 것이다. 이때 "나는 아무런 도움이 되지 못하니까, 다들 지금 굉장히 예민한 상태니까 얌전히 있자" 라고 생각하지 말자. 아무런 도움이 되지 않겠지만 그 대열에 끼여서 무슨 상황인지, 무슨 이야기가 오가는지 귀담아듣자. 내가 아는 단어들이 있을 수도 있고, 모르는 키워드가 있을 수도 있다. 낯선 용어..

일상 2020.06.18

L2 / L4 / L7 로드 밸런싱

로드 밸런싱? 로드 밸런싱이라는 단어 자체는 뜻이 넓다. 기본적으로 부하를 나누는 것이다. 여러 대의 컴퓨터에 작업을 나눠서 주는 것. 로드 밸런서는 로드 밸런싱을 하는 프로그램/장치다. (소프트웨어일 수도 있고, 하드웨어일 수도 있다.) 일반적으로 로드 밸런서라고 하면 서버 앞단에 위치하여 클라이언트 측의 요청을 분산해주는 프로그램을 칭한다. 로드 밸런싱 알고리즘 요청을 분산하는 방법은 다양하다. - Round Robin: 요청이 들어올 때 마다 일정한 순서대로 요청을 넘긴다. A, B, C, D, E 5대의 서버거 있다고 가정하면 첫 번째로 들어온 요청은 A서버, 2번째로 들어온 요청은 B서버... 6번째 요청은 다시 A서버에게 주는 식이다. 서버의 사양이 모두 동일하며 persistent conne..

프로그래밍 2020.06.17

[단상] 5/18 단상

단축키와 생산성 이전에 친한 프로그래머 선배도 종종 "최대한 단축키에 익숙해져라"라곤 했다. 당연히 단축키를 쓰면 마우스를 움직여서 클릭하는 것보단 빠르지, 라고 생각했다. 그런데 오늘 팀원분이 똑같은 얘기를 하셨는데, 확 와닿는 문구가 있었다. "나중에는 생각하는 속도가 지금보다 훨씬 빨라진다. 그 때 손도 빠르게 움직여야 생각의 흐름이 끊기지 않는다." 어느 파일들을 어떤 순서로 보고 어디를 어떻게 고칠지, 그 이후 무엇을 할지 머릿속에서는 착 펼쳐지는데, 손이 그것을 따라가질 못하면 생각이 끊길 수 있고, 이는 생산성에도 영향을 미칠 수 있다. 한번 공감이 되니까 자연스럽게 최대한 프로그래밍 자체에만 몰두할 수 있도록 환경을 바꿔야겠다는 생각이 들었다. 일단은 조언해주신대로 iterm2와 zsh 설..

프로그래밍 2020.05.18

[토막팁] 알아두면 유용한 Goland 단축키

goland 공식 가이드 웹사이트 키보드 단축키 페이지의 상단을 보면 keymap 레퍼런스 카드가 있다. 그 중에서도 자주 사용하는 단축키를 정리해보았다. (맥 OS 기준) 검색하기) Go to declaration: ⌘B, ⌘Click Go to implementation: ⌘⌥B Find in path: ⌘⇧F Find: ⌘F Replace: ⌘R 디버깅) Step into / Smart step into: F7 /⇧F7 Step over / out: F8 /⇧F8 이동) Move to code block start: ⌘] Move to code block end: ⌘[ Go to next / previous editor tab: ⌃← / ⌃→ editor tab의 경우 이상하게 단축키가 전혀 작동하..

프로그래밍 2020.05.18

Graceful Shutdown과 SIGINT/SIGTERM/SIGKILL

1. Graceful Shutdown이란 무엇인가? 우아한 종료라고 직역하면 뭔가 어색하지만, 그 역의 경우를 생각해보면 제법 어울리는 표현이라는 생각이 든다. 우아한 종료는 프로그램이 종료될 때 최대한 side effect가 없도록 로직들을 잘 처리하고 종료하는 것을 말한다. Gracueful Shutdown Hard Shutdown 우아한 종료의 대척점에는 Hard Shutdown이 있다. 예를 들면 이런 것이다. 회사에서 코드를 한창 짜고 있는데, 팀장님이 "땡땡씨 퇴근하세요."라고 했을 때 - 코드를 커밋하고 푸시한 뒤 컴퓨터를 끄고 퇴근하는 것: graceful shutdown - 그대로 컴퓨터를 바로 끄고 퇴근하는 것: hard shutdown 하고있던 작업을 적절히 마무리한 뒤 종료되는 것이..

프로그래밍 2020.05.17

[단상] 5/15 단상

한 공간에 같이 있다는 것 오늘 팀원분이 시간을 기꺼이 할애해주셔서, 로깅에 대한 설명을 들었다. 사실 재택근무를 할 때도 행아웃으로 충분히 가능한 일이겠지만, 확실히 1:1로 같이 한 공간에 같은 모니터를 쳐다보면서 어떤 설명을 듣고, 질의응답을 하는 것은 정말 다른 경험으로 느껴졌다. 나는 내가 헷갈리는 부분을 좀 더 적극적으로, 충분히 물어볼 수 있었다. 그리고 근방에 있던 다른 구성원분의 의견까지 들을 수 있는 좋은 기회였다! 이게 정말 별 거 아니라면 별 거 아닐 수도 있는데, 크다고 생각한다. 사실 꼭 자기와 연관이 있는 일이 아니라도, 옆에서(근처에서) 어떤 화제에 대해서 이야기가 오갈 때 시니어가 몇 마디라도 자기 의견을 얹어주는 것이 신입 입장에서는 굉장히 귀하고, 소중하다. 시니어 입장..

일상 2020.05.15

[단상] 5/8 생각 정리

내가 원하는대로 동작하지 않을 때 확인해야할 것들 프로그램마다 기능이 다르고, 객체 간 협력의 맥락이 다르겠지만 공통적으로 확인해볼 만한 것들은 분명히 있다. 이것도 일종의 추상화인가? 여튼 적어놓는다. 미래의 내가 더 발전하기를. [ ] config가 잘 설정되어 있는지? localhost, 각종 api key나 secret들이 잘 들어있는지? 환경변수에 오타는 없는지? [ ] 실행하고자 하는 서버와 연관된 다른 서버 등이 동작하고 있는지? [ ] db에 기본적으로 들어가야 할 데이터(더미든 뭐든)가 잘 들어가 있는지? [ ] db 마이그레이션 확인. [ ] 객체가 자신의 책임을 수행하기 위해 필요한 정보를 놓치지 않고 갖고 있거나 가질 수 있는지? [ ] 서버에 에러 로그가 안 찍힌다고요? 그럼 애초..

일상 2020.05.09

[단상] 5/6~5/7 생각 정리

서버 프로그래머의 자질 정말 오랜만에 동아리 선배랑 이야기를 나눴다. 프로그래머로 나보다 훨씬 오래 일한 선배인데, 많은 조언 중 서버 프로그래머가 응당 가져야 할(?) 자질을 얘기해줬는데 그 중 몇 개가 굉장히 와닿았다. - 컨텍스트 스위칭이 잘 되야 하는 것 서버에 이상이 생기면 무슨 일을 하고 있던 간에 달려가서 문제점을 파악하고 해결할 수 있어야 한다. 한 가지 일에 깊게 집중해서 일을 하다가도 곧바로 다른 일을 처리할 준비가 빠르게 되어야 한다. 단순히 "서버가 터졌을 때 빠르게 달려갈 수 있어야 한다" 정도의 느낌으로 받아들이고 있었는데, 컨텍스트 스위칭이라는 단어를 사용하니 어떤 의미인지 확 와닿았다. - 큰 그림을 볼 줄 알아야 하는 것 예를 들어 어떤 게임의 랭킹 정보를 조회하려고 하는데..

일상 2020.05.07

서비스 메쉬, 데이터 플레인, 컨트롤 플레인 뜻

최근 k8s와 istio에 대해 조사하면서 새로운 용어들을 만나게 되었다. 구현체에 너무 얽매이지 않도록 주의하면서 개념을 정리해 보자. Service Mesh 서비스 메쉬란 한 애플리케이션의 다양한 부분들이 통신하는 것을 제어하는 방법이다. 한 애플리케이션 안에서 여러 서비스들이 서로 통신하며 데이터를 주고받는 것을 서비스의 소스코드와 상관없이 제어하는 것이다. MSA =! Service Mesh MSA는 그러면 서비스 메쉬인가? 아니다. MSA는 애플리케이션 구조에 대한 개념이다. 서비스 메쉬는 애플리케이션을 구성하는 여러 서비스들의 내부 통신을 어떻게 제어할 것인가에 대한 이야기다. 근데 MSA는 당연히 내부 서비스들끼리 http를 비롯하여 다양한 프로토콜로 서로 소통하니까 서비스 메쉬까지 항상 포..

프로그래밍 2020.05.07

달의하루 염라(Karma) 뮤비 해석 (개인적 추측)

굉장히 독특한 분위기의 노래를 알게 되었다. 달의하루의 염라(Karma)라는 노래다. Caravan Palace의 wonderland 뮤비를 처음 봤을 때 들었던 신기함, 당혹스러움과 유사한 느낌을 받았다. 엄청 매력적이고, 호기심을 자극하는 뮤비였다. 아트가 환상적이고, 음악도 좋았다. 허전한 곳 없이 전체적으로 꽉 차있는 느낌. 참새가 방앗간을 그냥 못 지나가듯이 나름대로 뮤비를 해석해봤다. 가사도, 객체들도 너무 애매한 것들이 많아서 미묘하기는 한데 한번 정리해본다. 염라 MV 주소: https://www.youtube.com/watch?v=jv543Nk5s18 0:06 케이크에는 해피 버스데이라고 적혀있고, 눈물인지 피인지 알 수 없는 액체가 케이크 위로 투둑 떨어진다. 눈물이든 피든 부정적이다...

일상 2020.05.05
반응형