본문 바로가기

기타 개발

대기업 개발자 채용 요구 기술을 알아보자 - 1편 (서버 개발자)

728x90

개발자를 채용하는데 있어서 요구 기술은 무엇이고, 왜 이렇게 많은걸까? 모집 공고를 보면서 개인적으로 불만이 많았었다. 그러나 마음을 고쳐먹고, 이 기술들을 왜 필요로 하는지 어디에 써먹는지 알아보기 위해 이 글을 써 본다. 기본적으로 들어가는 기술 스택인 Spring/Java는 생략하겠다. 

 

1. 기업마다 요구 기술 

1) 카카오

  • K8s, docker를 이용한 서비스 운영 경험
  • 테스트 구축, 지속적인 구조 개선 경험
  • 웹 Front 혹은 모바일(Android, iOS) 개발 경험이 있는 사람.

2) 라인

  • 대용량 분산 환경에서의 스토리지 설계 및 운영 (Hadoop, HBase, MongoDB, MYSQL 등)
  • 대용량 트래픽을 처리 할 수 있는 Server Architecture Design 경험

3) 네이버 

  • 비정형 데이터(NoSQL), kafka, ElasticSearch, kubernetes 활용
  • 유닛 테스트를 통한 기능 검증 경험
  • Gradle, Git, Jenkins 등 CI/CD 툴을 활용한 개발 경험

4) 배민

  • AWS를 활용한 개발, 운영 경험. (AWS Aurora)
  • 빌드/테스트/배포 자동화 경험
  • ElasticSearch, Redis, Kafka 

5) 줌

  • kafka/RabbitMQ
  • NoSQL(Redis/MongoDB)
  • AWS 환경에서 개발/빌드/배포

 

2. 공통점

기본적으로 NoSQL, AWS, kafka를 중요시한다. 

 

그 외에도 kubernetes, docker, ElasticSearch, Redis, CI/CD를 보는 회사들이 많다. 

 

 

3. 개념 설명 & 왜 쓰는가?

1) NoSQL

Facebook, Twitter, Netflix, Instagram, Apple 등에서 현재 사용하고 있다. 사진이나, 메시지를 저장할 때, 동시에 웹 쇼핑몰에 접속했을 때, 선호하시는 상품을 실시간으로 추천해 줄 때, 거의 예외 없이 사용되는 기술이 바로 NoSQL DB 기술이다.

 

2000년 이전에는 RDBMS(관계형 데이터 베이스)를 많이 사용했지만, 2000년 후반으로 넘어오면서 인터넷이 활성화되고, 소셜네트워크 서비스 등이 등장하면서 관계형 데이터 또는 정형 데이터가 아닌 데이터, 즉 비정형데이터라는 것을 보다 쉽게 담아서 저장하고 처리할 수 있는 구조를 지닌 데이터 베이스들이 관심을 받게 되었고, 해당 기술이 점점 더 발전하면서 NoSQL 데이터베이스가 각광 받게 된다. 

 

NoSQL의 특징은 RDBMS보다 더 융통성 있고, 데이터 저장 및 검색에 특화된 매커니즘을 사용한다. 또한 매우 최적화된 키 값 저장 기법을 사용하여, 응답속도나, 처리 효율 등에 있어서 매우 뛰어난 성능을 보여준다. 

 

정리하자면 대용량 데이터 처리 등 성능에 특화된 목적을 위해, 비관계형 데이터 저장소에 비구조적인 데이터를 저장하기 위한 분산 저장 시스템이다.

 

그러면 NoSQL을 적용한 제품들에 뭐가 있을까? 그 중에서 제일 많이 사용되는 게 Hadoop, MongoDB(Document), HBase(Wide Columnar Store)이다. 비용, 성능, 관리용이성 측면에서 우위에 있기에 기업들이 많이 요구하는 것이다. 

 

2) AWS 

AWS는 개발자들 사이에서 널리 퍼진 클라우드 개념이다. AWS 제품은 무려 238개(2022.12.28일 기준)나 돼서, 이 많은 걸 다 설명할 수 없다.  그 중에서도 자주 사용되는 제품을 간략히 소개하겠다. 

 

  • Amazon EC2 — 클라우드의 가상 서버
  • AWS Lambda — 이벤트에 대한 응답으로 코드 실행
  • Amazon Simple Storage Service (S3) — 클라우드의 확장 가능한 스토리지
  • Amazon Aurora — 관리형의 고성능 관계형 데이터베이스
  • Amazon RDS — MySQL, PostgreSQL, Oracle, MS SQL Server 및 MariaDB를 위한 관리형의 관계형 데이터베이스 서비스
  • Amazon CloudWatch — 리소스 및 애플리케이션 모니터링

AWS는 저비용, 확장성, 안정성이 뛰어난 글로벌 인프라 플랫폼을 제공하기에 직접 서버를 구축하지 않아도 돼서 비용을 아낄 수 있다. 이로 인해 수많은 기업들이 AWS를 사용하는 것이다. 

 

3) Kafka

엄청난 트래픽에서는 장애 상황이 훨씬 많이 노출된다. 이 상태에서 재처리 이슈, 데이터의 유실 등의 문제가 발생할 수 있게 된다. 이런 문제 해결에 kafka는 좋은 대안을 제공했다. 

 

데이터 파이프 라인의 문제는 대규모의 백엔드 서버에서 해결해야 한다. 최근에는 많은 서비스들이 MSA 채택, 기존의 시스템을 마이크로소프트로 전환하고 있다. 연결해야 할 서비스가 많아지고 처리해야 할 트래픽은 늘어나며, 장애 상황에 대응해야 됐다. 이런 이유로 kafka는 백엔드 엔지니어링에서 필수 기술 스택이 되고 있고, 대규모뿐만 아니라 초기 스타트업에서 사용하는 추세이다. 

 

kafka는 데이터 처리와 비동기 프로세스에서 빠질 수 없는 핵심 기술 스택이다. 대규모의 데이터를 수집, 처리, 통합하기 위해 사용하는 이벤트 스트리밍 플랫폼이다. 이벤트는 소프트웨어에서 식별하는 모든 유형의 사건, 변경 사항을 의미한다. 또다른 표현으로 메시지를 의미한다. 대규모의 트래픽이 발생하는 상황에서 상대적으로 많은 시간이 소요되는 로직을 갖고 있는 기능이거나, 여러 관심사를 처리하는 로직에서는 동기 방식의 프로세스보다는 비동기 방식의 프로세스를 적극적으로 활용하는 게 유리하다. kafka를 통해서 비동기 방식의 프로세스를 선택할 수 있다. 

 

 

글이 너무 길어져서 kubernetes, docker, ElasticSearch, Redis, CI/CD는 2편에서 소개하겠다. 

 

728x90