독학을 하고 싶은가? 싸가지 원칙을 기억하라.

Composite·2023년 10월 31일
7

좋아. 시궁창, 특히 SI/SM에 있는 개발자들, 탈출은 선착순이다. 빨리 탈출할 수록 좋다.
물론 지능순이라 주장하는 이들도 있다. 맞아. 역량을 갖추어야 탈출이 유리하긴 하지.
하지만 명심하라. 선착순이다.

오늘은 그런 이들을 위한 독학의 싸가지 법칙을 전파하도록 하겠다.
그냥 내가 하고싶은 4가지 원칙을 내 경험대로 내 입맛대로 꾸민 것 뿐이다.
따라서 이게 꼭 진리이고 법칙이 아니니, 독학할 줄 몰라서 해매고 있다면 시도해 보라는 의미다.

대략 이렇다. TL;DR 이라고 하지.

  • 공부하는 기술의 등장 배경과 의미
  • 공부하는 기술의 장단점 및 기대효과
  • 해당 기술에 대한 실습과 문제해결
  • 회사들이 이 기술을 사용하는 이유와 요구사항

길게는 못쓰니 짧아도 이해하리라 믿는다.

공부하는 기술이 왜 등장했을까?

예를 들어, 요즘 Apache Kafka 와 Apache Spark 가 요즘 자바 개발자들에게 탈출구가 되는 기술이라고 하니, 이들을 예시로 설명하도록 하겠다.

Kafka 는 Linked이 개발하고 Apache 에 기부한 메시지 브로커 기술이다.

어? 메시지 큐 기술은 이거 말고도 많은데?

물론 그렇다. 하지만 명심하라. 아직도 엔터프라이즈 업계 절반이상이 선호하는 개발 언어는 아직도 틀니가 꼈지만 건재한 '자바'라는 사실을.

하지만 이 카프카는 다른 메시지 큐와는 다르게, 배포자와 구독자의 구분이 필요없다. 하고싶으면 하는 분산된(Distributed) 기술이라는 것이다.
게다가 순수 자바로 만들어졌다. 회사들이 뻑이 가겠어 안가겠어?

공부하는 기술의 장단점과 기대효과

먼저 기대효과를 묻는다면, 회사들의 이용 사례만 봐도 나온다.
당연히 회사들은 절차적으로 데이터가 쌓이는 것을 원한다.
하지만 기존 분산된 인프라로는 따로 놀면 데이터가 일률적으로 쌓인다는 게 안 된다.
하지만 메시지 브로커를 두면, 오는 순서대로 처리하기 때문에 일관성 있는 처리가 가능하다.
즉, 회사가 원하는 일률적이고 절차적인 처리가 가능하다는 것.

그리고, 이벤트 송수신도 가능하다. 이러하다 함은, 이벤트 루프 역할도 할 수 있다는 것이다.
이벤트 루프는 대부분 싱글 스레드이고, 절차지향에 환장하는 회사들 입장에서는 매력적인 선택이다.

장점: 분산된 시스템에서도 절차적 처리가 가능하다.
단점: Zookeeper 라는 부가 감독 시스템이 필연적이며, 모든 시스템에 적용해야 하며 송수신 처리 개념을 완전히 바꿔야 한다.

실습 및 문제해결

미안하지만, 귀찮아서 이 석션♂은 패스. Kafka 관련 실습 자료는 검색하면 좌르륵 나오므로,
만약 원하는 기술을 독학한다면 먼저 공식 홈페이지에서 기본적인 사용법을 익히도록 하자.

회사들이 이 기술을 사용하는 이유와 요구사항

그렇다면, 독학을 한다는 것은, 결국 회사에서 자신이 이 기술을 쓸 수 있다는 것을 어필하기 위해 공부하고 선택하는 편이 대부분이긴 하다. 물론 흥미를 위해서이기도 하지만, 뒤쳐지지 않으려면, 결국에 회사가 필요로 하는 기술을 독학으로라도 익히게 되어 있으니.

회사에서는 DB 단독으로는 트랜잭션을 절차적으로 처리하는 게 쉽지 않고, 각 분산된 DB에다가 데이터 동기화도 해야 하는 상황에 부딪혔을 때, 오픈 소스로 선택하는 솔루션이다.

좋아, 그럼 이 Kafka를 탄생시킨 LinkedIn의 요구사항을 알아볼까?

  • 높은 처리량으로 실시간 처리한다.
  • 임의의 타이밍에서 데이터를 읽는다.
  • 다양한 제품과 시스템에 쉽게 연동한다.
  • 메시지를 잃지 않는다.

그럼 이미 많은 메시지 브로커 솔루션이 있는데도 왜 링크드인은 자체 제작을 하기까지 이르렀을까?

  • 메시징 모델과 스케일 아웃형 아키텍처
  • 디스크로의 데이터 영속화
  • 이해하기 쉬운 API 제공
  • 전달 보증

그리고, Kafka의 핵심 개념이 바로 Exactly Once. 명확한 하나를 실현하기 위해 만들었다.
우리가 흔히 알고있는 이 트랜잭션. 정확도에 치중한 이 하나의 처리를 위해 설계했다고 하니,
다른 회사들이 이 Kafka를 보면 정말 기존 분산형 시스템에게 신세계가 아닐 수 없다.

이렇듯, 다른 회사들이 왜 해당 기술을 선택했고, 당신은 이 기술을 왜 독학하려 했는지, 이해하려는 모습을 보이면, 해당 기술에 대한 너의 어필, 인터뷰 준비는 끝났다고 본다.

그럼 즐거운 땔감 생활을 하기 바란다.

끗.

참고 문헌

profile
지옥에서 온 개발자

1개의 댓글

comment-user-thumbnail
2023년 11월 18일

논리와 주장은 모두 틀렸고 근거가 절대로 없는 자신이 모든 개발자의 진리인듯한 가장 시건방지고 여기 불법 도박 스팸글보다 더 악질인 이새끼 글이 홈에 나타나는 행위야 말로 스팸을 방치하는 것보다 더 최악이며 벨로그는 불법 도박 스팸글과 함께 이새끼 글은 노출하지 않아야 개발자들이 양질의 지식과 정보를 공유하는 최고의 길이라 한다. 따라서 이 글을 본 개발자들이 있다면 바로 눈을 씻고 이 글을 잊고, 이새끼 아이디와 동일한 깃헙 및 여러 동일한 ‘컴포지트’ 닉네임을 거르고 봐야 올바른 개발자 생활을 영위하는 것이다.
양욱진, 땔감 프리랜서, 경력 뻥튀기, 공문서 위조, 사기, 그리고 지식은 커녕 신념도 없는 코더. 이런 새끼한테 개발을 맡기는 고객이나 보도방, 개발사들은 당신이 누구에게 회사의 앞날을 밑기는지 손을 얹고 다시한번 생각해보기 바란다.

답글 달기