우아한 형제 들 코딩 테스트 | 우리가 무슨 민족? 배달의 민족! 우아한 형제들 코딩테스트 풀어보자😁😁 답을 믿으세요

당신은 주제를 찾고 있습니까 “우아한 형제 들 코딩 테스트 – 우리가 무슨 민족? 배달의 민족! 우아한 형제들 코딩테스트 풀어보자😁😁“? 다음 카테고리의 웹사이트 https://you.aodaithanhmai.com.vn 에서 귀하의 모든 질문에 답변해 드립니다: https://you.aodaithanhmai.com.vn/blog/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 algorithm jobs 이(가) 작성한 기사에는 조회수 235회 및 좋아요 11개 개의 좋아요가 있습니다.

우아한 형제 들 코딩 테스트 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 우리가 무슨 민족? 배달의 민족! 우아한 형제들 코딩테스트 풀어보자😁😁 – 우아한 형제 들 코딩 테스트 주제에 대한 세부정보를 참조하세요

[ 이 문제 직접 풀어보고 싶다면? ]알고리즘 잡스 ▷합격케어 몰입캠프◁ 바로가기
▶ https://www.algorithmjobs.com/
[ 강사 프로필 ]☆ JINI KIM. 알고리즘잡스 대표강사 ☆
– 백O 상위 0.02%(다이아 1티어)
– Google code jam 전세계 1%
– SAMSUNG SW 대회(SCPC) 3위
– HYUNDAI SW 대회 5위

우아한 형제 들 코딩 테스트 주제에 대한 자세한 내용은 여기를 참조하세요.

우아한형제들 – 테크 피드 | 프로그래머스

배달의민족 합격한 신입 개발자 이력서 공개합니다. 우아한형제들에서 근무하시는 박우빈님의 신입 개발자 이력서입니다. 이력서 링크입니다. https://www.notion.so/ …

+ 여기에 자세히 보기

Source: career.programmers.co.kr

Date Published: 8/4/2021

View: 4711

배민 코딩 테스트 | 1_코딩테스트 유형, 어디까지 공부해야 하나 …

배민 코딩 테스트 주제에 대한 자세한 내용은 여기를 참조하세요. 2021 우아한형제들(배달의 민족) 경력 공채 코딩테스트 후기. 입사특전 …

+ 여기에 보기

Source: ppa.maxfit.vn

Date Published: 3/23/2022

View: 145

우아한형제들 경력 개발 면접 후기 및 회고 – IT Blog

서류전형과 코딩테스트. 서류전형에는 자신이 있었다. 서류에서 떨어진 기업은 여태까지 지원하면서 딱 1번 밖에 없었고(신입 제외) 항상 쉽게 통과 …

+ 더 읽기

Source: realmojo.tistory.com

Date Published: 12/25/2022

View: 2009

우아한테크코스 VS 우아한형제들

레벨 1: 객체지향(JAVA), 테스트 코드, 클린 코드, TDD … 코딩 외에도 Database, Network와 같은 기초 전공지식, 아키텍처 설계, AWS 배포와 관련된 …

+ 여기에 보기

Source: techblog.woowahan.com

Date Published: 9/19/2021

View: 2975

우아한 형제들 1차 코딩 테스트

오늘은 2018년에 진행했던 우아한 형제들 1차 코딩 테스트 리뷰를 하겠습니다. 우아한 형제들은 배달의 민족을 만든 회사로서 워낙 개발자 대우가 …

+ 자세한 내용은 여기를 클릭하십시오

Source: noogoonaa.tistory.com

Date Published: 7/9/2021

View: 7996

당신을 최고의 개발자로 만들어드립니다 – 배민다움

배달의민족을 서비스하는 우아한형제들도 개발자 양성 프로그램을 운영 … 우아한테크코스’에 지원하고 서류와 코딩테스트를 통과하면 3주 동안 프리 …

+ 여기에 더 보기

Source: story.baemin.com

Date Published: 11/24/2021

View: 3865

주제와 관련된 이미지 우아한 형제 들 코딩 테스트

주제와 관련된 더 많은 사진을 참조하십시오 우리가 무슨 민족? 배달의 민족! 우아한 형제들 코딩테스트 풀어보자😁😁. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

우리가 무슨 민족? 배달의 민족! 우아한 형제들 코딩테스트 풀어보자😁😁
우리가 무슨 민족? 배달의 민족! 우아한 형제들 코딩테스트 풀어보자😁😁

주제에 대한 기사 평가 우아한 형제 들 코딩 테스트

  • Author: algorithm jobs
  • Views: 조회수 235회
  • Likes: 좋아요 11개
  • Date Published: 2022. 9. 6.
  • Video Url link: https://www.youtube.com/watch?v=UsWY77CCqSg

배민 코딩 테스트 | 1_코딩테스트 유형, 어디까지 공부해야 하나, 카카오, 라인, Sk, 배민, 삼성, Nhn 1257 명이 이 답변을 좋아했습니다

We are using cookies to give you the best experience on our website.

You can find out more about which cookies we are using or switch them off in settings.

우아한형제들 경력 개발 면접 후기 및 회고

오렌지셔츠

이직을 하고 싶어서 이래저래 회사를 찾아보다가 평소에 관심이 많고 개발자로서 더욱더 성장을 할 수 있는 곳이 우아한형제들 이라는 것을 알게 되었고 한치에 망설임도 없이 여지없이 이력서를 작성해 갔다. 우아한형제들 경력 개발 면접에 대한 후기를 결론부터 말하자면 면접에서 떨어지게 되었고 다음번에 좀 더 준비를 잘하자라는 마인드로 이번 면접을 준비하면서 며칠간 스스로 생각했던 내용을 정리해보려고 한다.

서류전형과 코딩테스트

서류전형에는 자신이 있었다. 서류에서 떨어진 기업은 여태까지 지원하면서 딱 1번 밖에 없었고(신입 제외) 항상 쉽게 통과를 했었기 때문에 어떤 부분을 중점적으로 써야하는지 잘 알고 있었다. 코딩테스트 또한 딱히 준비를 하지 않아도 평소에 논리적이나 생각하는 거를 좋아해서 그렇게 어렵지가 않았다. 서류 쓰고 다음날 연락 바로옴, 코딩테스트 보고 다음날 연락 바로옴 그렇게 여기까지는 순조로웠다.

나는 왜 우아한형제들 가고 싶어 했을까

첫 번째로 가장 큰 이유는 좋은 개발자들과 좋은 개발 문화가 가장 메리트 였고 두 번째로는 내가 배민 앱을 자주 사용하면서(더 귀한분 등급) 느낀건데 UX를 친화적으로 정말 잘 만드는 곳이었다. 내 서비스를 만들어 본 사람의 입장으로서 이건 개발만 잘한다고 나올 수 있는 퀄리티가 아니었기 때문이었다.

배민 앱에서 음식을 주문을 하고 난 후 라이더가 음식을 가져올 때 어느 위치에 있는지 지도를 나타내는 것이 이전에는 없었는데 앱을 업데이트 하면서 어느샌가 모르게 생겨났다. 이걸 보고나서 정말 편리하다 라는 생각보다 이걸 어떻게 구현했지?.. 라는 생각이 먼저 떠올랐다. 그래서 더욱 가고 싶었다. 어떤 괴물들이 일하고 있길래 이런 아이디어가 계속 흘러 넘쳐나오는지 궁금했기 때문이다.

우아한 형제들의 사내문화 중 하나가 평범한 사람들이 모여 비범한 성과를 만들어 내는 곳 인데 여기 있는 사람들은 절대로 평범한 사람들이 아니다. 본인의 직업에 있어서 프로페셔널하고 꾸준히 노력하고 성장하는 사람들이다. 그렇기에 저런 집단에 들어가 있으면 노력하는 것이 몇 배가 될 것이라는 막연한 생각이 있었다.

또한 배민은 개발자에 대한 인식을 변화 시켜논 계기가 있었으니 배민 신입 개발자 5,000만원 시대 이때 부터였던거 같다. 개발자는 어느 기업을 가던 내 경험상 항상 “을” 취급을 받던 시절이 있었다. 아직도 현재 진행형인 기업들이 많다. 그렇다고 개발자가 “갑”위치에서 일하는 것을 말하는게 아니다. 최소한 서로간의 대화가 되고 상식이 통하는 선에서 일을 하고 싶었을 뿐이다.

저 기사를 보고 나서 부터 개발자들이 대거 이직을 하기 시작하면서 흔히 말하는 네카라쿠배 라는 말이 돌기 시작하였다. 내 생각엔 앞으로는 배네카라쿠 로 바꿔야 할지도 모르겠다. 배민은 항상 무언가를 새롭게 시도 하는 모습이 외부에서 봤을 때 정말 멋있어 보였다.(실제로는 저 때 레거시 코드 엄청 고치고 있었을 것이다.)

왜 떨어졌는가

우아한형제들 개발 면접을 보면서 나를 다시 돌아보게 되었는데 면접관님께서 말하시기를.. ” 9년 차 개발자 이시네요 “. 면접 도중 이 말을 듣고 순간 어안이 벙벙해졌다. 숨만 쉬고 개발만 했는데 벌써 9년 차라니..(?) 내가 9년 차라는 것을 간과 하고 있었다. 돌이켜 보니 난 이제 주니어가 아니었다. 이전의 주니어 개발면접을 봤을 때를 생각하면서 준비했기 때문에 떨어진걸로 파악이 된다. 오로지 기술스택에만 집중을 하고 있었기 때문 이었다.

면접에서는 내가 생각하지 못한 질문들이 쏟아져 나오기 시작했다. 앞으로 시니어 면접 준비하실 분들 계시다면 잘 참고해서 준비하기를 바란다. 면접관마다 다르겠지만 기술스택은 정말 조금밖에 물어보지 않는다. 기본적인 개념을 얼마나 깊이있게 알고 있는지에 대해서 몇 개만 물어보고 나머지는 그 사람에 대한 마인드와 개발자로서 어떤 노력을 했는지 그리고 왜 그런기술을 사용했는지에 대한 질문들이 많이 들어왔다. 그리고 경력 면접이었기에 이 사람이 리더십이 있는지에 대해서도 물어본다.

다른 부서도 많은데 왜 하필 여기 팀으로 지원하신 이유에 대해서 말씀해주세요.

그 프로젝트를 하실 때 프레임워크를 도입하신 이유는 무엇인가요?

팀원을 꾸려 나간다면 어떻게 하고 싶으세요?

개발자로서 어떻게 일을 할 때 행복하신가요?

본인이 성장하기 위해서 어떤 노력을 하고 계신가요?

업무를 하시면서 기억에 남는 트러블슈팅을 말씀해주세요.

오픈소스에 기여하거나 지식을 공유해본 경험이 있으신가요?

최근 개발자 트렌드가 많이 바뀌고 있는건 사실이다. 앞으로의 개발자는 개발만 잘해서는 살아남기가 힘들다고 해야하나 원하는 인재상이 아니라고 해야하나 그렇다. 본인이 가지고 있는 생각을 다른 사람에게 잘 전달하는 커뮤니케이션 능력도 개발자 덕목 중에 필수적인 부분으로 자리잡힌 듯 하다. 평소에 생각만 하고 말을 하는 습관이 없었던 나는 내 지식을 남에게 전달하는게 어려웠다.

만약 다음번에 준비한다면?

다음번에 준비를 한다면 아직은 잘 모르겠다. 만약에 개발자에 대한 일을 계속해 나간다면 개발 트렌드를 쫓아가면서 해 나갈 생각이다. 어느샌가 모르게 프론트엔드에서는 타입스크립트가 필수가 되어버렸다. 이제라도 공부를 해야겠다는 생각이 들었다. 그리고 이젠 더 이상 주니어 적인 생각을 가지면 안되는 것을 알게 되었으니 시니어 혹은 리더의 입장에서 생각하는 법을 스스로 터득해야 할 것 같다.

우아한형제들에 대한 생각

경험을 해보진 못했지만 개발자로서 여전히 좋은 곳이라고 생각한다. 유튜브를 보면서 느낀게 하나 있다면 내 지식을 나만 가지고 있는게 아니라 남들에게 공유를 하면서 너도 잘되고 나도 잘되는 그런 문화들이 생겨나가고 있다. 개발문화에 대해서도 마찬가지 였었다. 테크 기반으로 하는 회사들은 대체적으로 기술블로그를 가지고 있다.

회사에서 도입된 기술들을 이전에는 회사 자산이라 내부 위키 문서나 컨플루언스 같은 툴에 문서를 작성하고 내부 사람들끼리만 공유를 하였지만 최근에는 외부에 공개함으로써 개발문화가 좋다라는 것을 어필하고 있기 때문이다. 회사 자체 기술블로그라는 것이 시간은 오래 걸렸지만 확실히 장기적으로는 좋은 개발자를 끌어오는 효과가 있다는 것을 입증한 사례다.

앞으로 어떻게 할까?

앞으로는 개발하는 일을 진지하게 고민해봐야 하는 시기임에 틀림없다. 일단 타입스크립트 수강을 시작해봐야 겠다.

우아한테크코스 VS 우아한형제들

안녕하세요. 우아한테크코스를 통해 우아한형제들에 입사하여, 지금은 배민서비스개발팀 회원인증파트에서 서버 개발자로 합류하게 된 김태헌이라고 합니다. 🙇‍♂️

최근 개발자 채용과 더불어 개발자 교육이 주목을 받고 있는데, 그런 의미에서 우아한형제들에서 ( 무료로 ) 운영하는 개발자 교육인 우아한테크코스에 대한 이야기를 공유해드리고 싶습니다. 특히, 우아한테크코스에선 어떤 교육을 받으며, 우아한형제들 개발팀에서의 업무와 어떤 차이가 있는지를 중점적으로 다룰 예정입니다.

이 글을 통해 우아한테크코스 혹은 우아한형제들 입사를 선택하시는 데 있어 도움이 되었으면 좋겠습니다. 그럼 시작하겠습니다!

우아한테크코스

우아한테크코스는 총 10개월, 5-Level 으로 나뉘어집니다.

레벨 1: 객체지향(JAVA), 테스트 코드, 클린 코드, TDD

레벨 2: Spring 웹프로그래밍 (ATDD, Spring Data JDBC, JPA), 웹프론트엔드 기본

레벨 3: 팀 프로젝트를 통한 협업, 배포, 운영

레벨 4: 프레임워크 WAS 만들기, 레거시 코드 리팩토링, 서비스 운영

레벨 5: 개인 학습, 취업 준비, 리크루팅 데이

우아한테크코스는 기초 JAVA & Spring부터 대규모의 시스템을 운영하기에 필수적인 요소들을 가르칩니다. 코딩 외에도 Database, Network와 같은 기초 전공지식, 아키텍처 설계, AWS 배포와 관련된 지식도 배우게 됩니다. 그뿐만 아니라 소프트 스킬인 커뮤니케이션 능력, 글쓰기, 협업과 관련된 내용도 포함할 만큼 많은 내용을 학습하게 됩니다. 우아한테크코스의 교육과정이 더 궁금하신 분들은 우아한테크코스 로드맵을 참고해 주세요.

교육은 매주 주제에 맞는 실전 압축 강의를 시작으로, 페어 프로그래밍을 통한 미션 수행으로 진행됩니다. 미션을 완료하면 리뷰어에게 코드리뷰를 받고, 리팩토링하며 리뷰어의 머지 메시지와 함께 한 주를 마무리하게 됩니다.

또한 우아한테크코스는 단순한 주입식 교육이 아닌, 학습 공동체입니다. 크루들과의 지식 및 경험을 공유하며 성장하는 공간이라는 게 가장 큰 장점이라고 생각합니다. 테코톡 그리고 블로그와 같이 공식적인 공유뿐만 아니라 크루들끼리 자율적으로 하는 스터디도 활성화되어 있습니다.

마지막으로 우아한테크코스는 Java & Spring & 전공지식 노베이스분들도 열정만 있다면 얼마든지 수료할 수 있는 교육입니다. 처음 우아한테크코스에 들어왔을 때 Spring은커녕 Java의 Stream API가 뭔지도 모르고 시작했음에도, 무리 없이 미션들을 소화해낼 수 있었습니다. 레벨에 필요한 내용에 대해 교육을 받고 페어와 지식을 공유하기 때문에 부족한 부분이 자연스럽게 채워집니다. 물론 성장하고자 하는 노력이 없으면 불가능하다는 것도 명심하셔야 합니다!

우아한형제들 (배민서비스개발팀)

이어서 제가 일하고 있는 배민서비스개발팀에 대해서 소개해드리겠습니다. 배민서비스개발팀은 사용자 경험의 최전방에 있는 팀입니다. 사용자들이 배달의민족 앱을 켠 순간부터 주문을 전달하기 전까지의 모든 기능과 동작을 담당합니다.

배민서비스개발팀은 회원인증, 가게노출, 프론트서버, 웹프론트, QA 5개의 파트로 나누어집니다. 이중 저는 배달의민족의 모든 회원인증 시스템을 담당하는 회원인증 파트에서 근무하고 있습니다.

회원시스템은 약 3,000만 명의 회원을 관리하며, 피크타임 기준 13,000TPS 이상 규모의 대용량 데이터와 대규모 트래픽을 다루고 있습니다.

이처럼 배달의민족의 회원인증 시스템은 우아한테크코스에선 경험하기 힘든 대용량 데이터, 대규모 트래픽을 다루고 있습니다. 또한 배달의민족은 급격하게 성장하는 서비스이기에 끊임없이 요구사항이 변화하고 기능들이 추가됩니다. 높은 트래픽에도 장애 없이 안전한 시스템을 추구하며, 변경에 유연하고 신속하게 대응할 수 있도록 아키텍처와 코드를 지향하고 있습니다.

우아한테크코스, 충분할까?

그렇다면 우아한테크코스 교육만으로 배달의민족 서비스 개발 업무에 무리 없이 적응할 수 있을까요? 저의 대답은 그럴 수도, 아닐 수도 있습니다 입니다.

교육에서 배운 것 중 현업에서 바로 적용할 수 있는 지식이 많았습니다. 개발 문화, 소프트 스킬, 기술 역량 등은 우아한테크코스에서 배운 것들로 충분했다고 생각합니다. 특히 Java, Spring, 클린 코드, 유지보수, 테스트와 같은 기술적인 역량은 실무에 빠르게 적응할 수 있을 정도의 역량을 갖추게 됩니다. 또한, 페어 프로그래밍, 코드리뷰, 협업과 같은 개발 문화에 쉽게 받아들일 수 있었던 것도 우아한테크코스를 경험했기에 가능했다고 생각합니다.

하지만 배달의민족 서비스이기에 교육으론 경험할 수 없었던 것도 있었습니다. 수많은 트래픽과 데이터, 그리고 끊임없이 변화하는 요구사항과 추가되는 기능들, 또한 운영상에 발생하는 이슈들은 교육 과정에선 경험하기 힘든 것들이었습니다.

이런 공통점과 차이점들을 좀 더 자세하게 설명해 드리고 싶습니다.

공통점

우아한테크코스에서 배우는 기술이나 문화는 우아한형제들의 개발팀에서 중요시하는 가치와 비슷합니다. Java, Spring, JPA와 같이 우아한형제들에서 활용하고 있는 자바와 스프링 생태계의 기술들을 학습합니다. 그뿐만 아니라 테스트, 페어 프로그래밍, 스크럼과 같은 애자일 소프트웨어 개발문화를 배우면서 좀 더 신속하게 이슈에 대응할 수 있는 개발 문화들을 배우고 있습니다. 이러한 공통점들을 다뤄보도록 하겠습니다.

테스트 & 리팩토링

배달의민족 시스템이 성장해가면서, 회원인증 시스템은 더 높은 수준의 보안과 시스템 신뢰성이 필요한 상태였습니다. 보안을 강화하고, 장애로부터 안전한 시스템을 위해 기존 회원인증 시스템 대규모 구조 개편 및 코드 리팩토링을 수행하였습니다. 회원시스템과 인증시스템이 통합된 기존의 시스템을 회원, 인증 두 개의 시스템으로 분리하는 대규모 개편을 진행하며, 동시에 기존 레거시 코드의 아키텍처와 코드 스멜들을 리팩토링하였습니다.

2020.11 기준 전체 테스트 – 357개, 20% 수준 커버리지

2021.3 기준 전체 테스트 – 423개, 25% 수준 커버리지

2021.11 기준 테스트 – 1,022개, 59% 커버리지

이런 대규모 개편을 안정적으로 진행할 수 있도록 가능한 모든 비즈니스 요구사항을 검증하는 데 초점을 맞췄으며, 올해 3월만 해도 테스트 개수가 400개 정도에 머물렀으나 현재 약 1000개가 넘는 테스트, 60% 테스트 커버리지를 달성했습니다.

이번 테스트 작업과 회원 인증 개편 작업은 모두 우아한테크코스에서 배웠던 테스트 기반 레거시 코드 리팩토링 미션으로 사전에 경험해 보았기에 수월하게 작업할 수 있었습니다. 우아한테크코스와 우아한형제들 모두 테스트를 통한 코드 품질 관리를 중요시하며, 이를 바탕으로 언제든지 신속하게 변화에 대처할 수 있는 구조를 추구하고 있습니다.

페어 프로그래밍

회원인증파트는 거의 모든 업무를 페어 프로그래밍으로 진행합니다. 스프린트도 페어 그룹을 기반으로 주간계획을 짜고, 맡은 업무에 대해 페어가 없다면 자연스럽게 같이 합류하여 작업할 수도 있습니다.

우아한테크코스 또한 모든 미션을 페어 프로그래밍을 통해 진행합니다. 처음엔 불편하기도 하고, 시간 낭비라는 생각을 많이 했습니다. 하지만 미션 결과를 볼 때마다 페어 프로그래밍이 생산적인 시간 낭비(?)라는 걸 깨달았고, 협업의 불편함 극복능력 또한 개발자들에겐 필요역량이라고 생각하게 되었습니다.

미리 경험해 본 덕분에 입사하고 나서도 페어 프로그래밍에 쉽게 적응할 수 있었습니다. 또한 경험이 풍부하신 회원인증파트 개발자분들의 꿀팁들을 흡수할 수 있었기에 신입 개발자 입장에선 더할 나위 없이 좋은 개발문화라고 생각이 듭니다!

코드 리뷰

회원인증파트의 PR 규칙

회원인증파트는 모든 피쳐 브랜치를 코드리뷰 후 머지합니다. 최근에는 원활한 MR(PR) 관리를 위해 파트 나름의 규칙도 정해나가고 있습니다. 코드리뷰 덕분에 실수나 장애를 마지막으로 점검할 수 있고, 작업 내용도 공유를 할 수 있어서 다양한 장점이 있다는 생각이 듭니다.

우아한테크코스의 미션 또한 현직 개발자분들의 코드리뷰를 통해 피드백을 받습니다. 코드리뷰를 통해 현업에서 고려해야 하는 포인트나, 잘못된 코드 습관들을 간접적으로 피드백 받고 배울 수 있는 장점이 있었습니다.

또한 팀 프로젝트에서는 직접 다른 팀원들의 코드를 리뷰하면서, 코드를 쓰는 방법뿐만 아닌 코드를 읽는 법도 배우게 된 장점이 있습니다. 다른 사람의 코드를 계속 읽음으로써 자신의 코드를 되돌아보기도 하고, 다양한 의견 교류를 통해 더 많이 성장할 수 있었습니다.

이렇게 코드리뷰를 주고받는 문화에 익숙해져서, 입사하고 처음 파일럿프로젝트를 20명 가까이 되는 개발자분들께 라이브 코드리뷰 받을 때도 “덜” 주눅 들고 (들긴 들었지만요.. ) 받아들일 수 있었던 것 같습니다. 물론 처음 코드리뷰 할 때는 소극적으로 리뷰하기도 했는데 지금은 최대한 코드에 대한 제 기준을 제시하면서 다양한 토론을 하도록 노력하고 있습니다.

공통점 요약

기술 역량 교육은 특별히 말씀드리지 않아도 될 정도로 우아한형제들 업무에 적응할 만큼 충분했기에 따로 이야기 드리지 않았습니다. 오히려 개발 문화와 협업적인 측면에서 좋았던 부분을 소개해 드렸는데, 사실 위에서 제시해드린 3가지는 모두 경험해 보지 않고서는 그 효용을 쉽게 체감하기 어렵습니다. 모두 같은 작업을 두 번, 혹은 두 명이 작업하기 때문에 생산성이 떨어진다고 생각하실 수 있습니다. 하지만 우테코를 통해 이런 문화를 미리 경험해 보고, 납득했기 때문에 우아한형제들에 입사하고서도 어렵지 않게 개발문화에 적응할 수 있었습니다.

기술적인 역량과는 다르게, 이러한 개발문화와 협업 스킬은 학교나 학원에서는 접하기 어렵습니다. 따라서 실전 개발자로 성장하고 싶으신 열정 넘치는 모든 분께, 우아한테크코스를 적극적으로 추천해 드리고 싶습니다!

차이점

위에서 말씀드렸다시피 우아한테크코스는 현업 개발자에게 필수적인 기술 역량, 개발문화, 소프트 스킬들을 제공해 줍니다. 그런데도 경험하지 못했던 배민서비스개발팀 내에서의 특수한 상황들을 소개해드리고자 합니다. 교육환경에서는 경험하기 어려웠던 배민서비스개발팀이기에 겪을 수 있었던 이슈들과, 해결해나간 과정에 대해 공유해 드리도록 하겠습니다.

레거시 프로젝트

입사 당시 회원 프로젝트

회원시스템은 오래된 레거시 프로젝트였습니다. 우아한테크코스에서 팀프로젝트, 레거시 프로젝트 리팩토링 미션을 경험하긴 했지만, 실제 레거시 코드를 개편하는 건 복잡도가 훨씬 높고, 달리는 마차의 바퀴를 갈아 끼우는 작업이었습니다. 기존 회원시스템은 실시간으로 운영 이슈가 올라오고, 레이어간 경계가 불분명했고, 패키지 구조가 복잡하게 섞여 있었습니다. 또한 만능 DTO및 Service들로 인해 변경에 굉장히 취약한 상태였습니다.

하지만 그중에서도, 가장 큰 문제는 회원시스템과 인증시스템이 통합되어, 회원시스템의 장애가 인증시스템의 장애로 이어지는 취약한 구조였습니다. 따라서 운영 중인 회원인증 시스템을 서로 다른 DB를 활용하는 회원시스템과 인증시스템 두 개로 분리하는 대규모 개편을 수행하게 되었습니다. 기존 사용자들의 로그인이 끊기지 않고 장애 없이 신규 인증과 구 인증이 완벽하게 100% 호환되기 위해선 대규모 데이터 마이그레이션, 배치, 성능, 테스트, 보안, 인프라, 모니터링 등 굉장히 많은 것을 고려하여 작업하여야 했습니다.

우아한테크코스 팀프로젝트

우아한테크코스에서도 물론 팀 프로젝트를 통해 운영 중인 서비스의 리팩토링을 경험해 보았습니다만, 비교적 최신 코드이며, 운영상의 이슈도 많지 않고, 24시간 무중단이지 않아도 크게 문제 되지 않는다는 점이었습니다. 따라서 크게 아키텍처를 변경하거나 마이그레이션, 성능 테스트, 개편과정에서의 운영 이슈 등을 겪어보지 못했기에 회원인증 시스템의 개편이 어렵게 느껴졌습니다.

밤샘 배포에 지쳐 쓰러진 개발자들.jpa

이처럼 난생처음 겪어보는 개편작업이었기에 도전적인 과제였다고 생각했는데, 장애 없이(+ 로그아웃 없이) 배포를 완료하고 나서 말로 표현할 수 없었던 성취감을 느끼게 되었습니다.

대규모 트래픽에서 살아남기 – 동시성 이슈

운영상에는 교육과정에선 경험할 수 없는 다양한 이슈들이 있었습니다. 그중에서도 가장 경험하기 어려웠던 문제가 동시성 이슈였습니다.

배달의민족 로그인 과정에서 액세스 토큰이 만료되었다면 기존 토큰을 삭제하고, 새로 만들어야 합니다. 사용자가 직접 로그인하는 과정뿐만 아니라 사용자의 인증이 필요한 시점에 자동으로 토큰을 재생성하는 과정에서도 이 요청이 수행되기 때문에 매우 많은 트래픽이 발생하는 구간입니다. 수많은 트래픽을 처리하다 보면, 토큰의 삭제와 저장이 경합하면서 Deadlock이 발생했습니다.

마침 친구들과 Real MySQL 스터디를 하고 있어서( 자신감 과잉이었을지도..) 해당 이슈를 처리해 내겠노라 나서게 되었습니다.

@Test @DisplayName(“토큰 갱신 시 발생하는 DeadLock 환경 테스트”) void 동시성_테스트() { … CompletableFuture[] completableFutures = IntStream.range(…) .mapToObj(i -> CompletableFuture.supplyAsync(() -> tokenService.refresh(…))) … }

원인을 찾기 위해 문제 상황을 동시 요청 테스트코드를 통해 재현해놓고, 책에 나왔던 데드락 상황을 재현했습니다. 그런데 데드락 로그에서 알 수 없는 Shared Lock이 잡히는 걸 알게 되었고 책에서 배운 내용과 달라서 당황하였습니다.

파트원분들과 이슈 상황을 공유하고 해결하기 위해 침착하고 천천히 공식문서를 읽어보며 해결해 냈습니다. MySQL 5.6 문서에 따르면 InnoDB 엔진에서 Duplicated Key Exception 발생 시 Shared Lock을 잡는다는 사실을 알게 되었고, 이를 기반으로 데드락 로그를 하나하나 읽어가며 추적에 나섰습니다.

MySQL Document

실제 데드락 로그

Insert 시 유니크 키로 설정해놓은 인덱스에서 Exclusive 레코드 락이 잡힌 상태에서 Duplicated Exception으로 인한 Shared 레코드 락 과 다른 트랜잭션에서의 Delete 문의 Exclusive 레코드 락이 경합하면서 데드락이 발생한다는 사실을 깨달았습니다. ( 파일럿 프로젝트 코드리뷰에서 DB로 탈탈 털리고 스터디하길 잘했다는 생각이 드네요..)

이렇게 대규모 트래픽을 다루기에 발생하는 데드락 이슈 또한 우아한테크코스에서는 이론적으론 알고 있어도, 경험할 수는 없었기 때문에 생소한 이슈였습니다. DB 관련 측면뿐 아니라 코드상에서도 동시성 이슈를 고려해야 하는 경우를 많이 경험하여 서비스 운영에 대해 한 발자국 더 성장하게 된 계기가 되었습니다.

급격하게 변화하는 서비스

회원인증파트 캡틴 용근님 발표 만들면서 배우는 클린 아키텍처 원서 스터디

배달의민족 서비스는 기능의 변화 혹은 새로운 기능들에 대한 요구사항이 끊임없이 쏟아집니다. 재빠르게 변화하는 비즈니스 요구사항에 대응하기 위해서는 변화에 열려있는 코드와 아키텍처가 필수적입니다. 따라서 변화를 발 빠르게 대응하고, 안정적으로 서비스를 운영하기 위한 새로운 아키텍처가 필요했고 파트 내 아키텍처 스터디를 하여 더 나은 아키텍처에 대해 고민을 하게 되었습니다.

신규 인증시스템 설계도 – 도메인과 Data 레이어를 모듈로 분리하여 도메인을 변경으로부터 보호

신규 인증시스템은 다양한 시스템으로부터 트래픽을 받아야 하므로 안정적인 서비스를 유지해야 했습니다. 기존 데이터베이스에 의존적인 도메인 구조를 벗어나, 데이터베이스 엔티티와 도메인의 모델을 구분하여 도메인이 변경의 최상위에 존재하도록 설계하였습니다. 도메인 중심적인 아키텍처를 통해 자연스럽게 비즈니스와 관련된 코드들은 도메인 계층으로 흘러들어오게 되고, DB나 응용계층의 변경이 도메인을 변경하지 않도록 하여 더 견고한 구조를 가질 수 있게 되었습니다.

도메인 모델이 존재하지 않던 회원 시스템의 Hexagonal 아키텍처 도입기

마찬가지로 도메인 모델이 존재하지 않던 회원시스템도 리팩토링을 통해 도메인 레이어를 확보해 주었습니다. 레거시 코드가 많아 레이어간 경계가 모호했기 때문에 점진적으로 리팩토링을 수행하여 지금은 도메인 레이어가 많이 확보된 상태입니다.

우아한테크코스에서도 좋은 아키텍처에 대해 논의를 합니다. 하지만 프로젝트의 규모가 현업에 비해 작고 복잡도가 낮기 때문에 피부에 와닿는 아키텍처의 효용을 못 느껴 중요하게 여기지 못하는 경향이 있습니다. 또한 요구사항이 급격하게 변하지 않다 보니, 미션이 끝나면 유지보수를 경험하기 어렵기 때문에 좋은 아키텍처에 대한 고민을 깊게 하지 못했던 것 같습니다.

이번 아키텍처 스터디와 리팩토링 업무를 통해 코드를 보는 시각이 늘고 빠르게 요구사항이 변화하는 실제 서비스에 적합한 구조를 잡는 법을 배우게 된 것 같습니다.

차이점 요약

말씀드렸다시피 배민서비스개발팀은 대용량 데이터와 대규모 트래픽을 다루며 수많은 운영이슈를 경험하고 있기에, 교육에선 경험하기 어려운 장애들을 마주치게 됩니다. 이러한 경험을 통해 기술적으로 더 성장하고, 더 도전적인 업무들을 시도하게 되는 부분에 있어서 좋은 환경이라고 생각합니다.

또한 리팩토링과 코드 품질을 관리하는 작업을 자유롭게 건의하고 실행할 수 있는 문화 또한 우아한형제들 개발팀의 특징이라고 생각합니다. 정상 동작하는 코드를 리팩토링하는 업무를 프로젝트로써 받을 수 있는 것도 좋은 개발문화라고 생각합니다.

마치며..

Java의 J도 모르던 제가 어느덧 배민서비스개발팀에서 일한 지 8개월이 되어가네요. 우아한테크코스의 교육이 없었다면 상상도 못 했을 텐데 말이죠. 그만큼 우아한테크코스의 교육은 더 많은 걸 배우고, 바로 현장에 뛰어들 수 있을 만큼의 역량을 키워준다고 확신합니다. 이런 훌륭한 교육을 제공해 주신 우아한형제들과 우테코 캡틴 포비와 코치님들, 크루들께 감사하다는 말씀을 전하고 싶네요. 역량 있는 개발자를 목표로 하신다면 우아한테크코스에 도전해 보시는 걸 추천해 드립니다!

우아한형제들 입사 면접 때 우아한형제들 CTO님이신 재하님께서 평행우주의 자신을 몇 명을 데리고 배달의민족을 만들 수 있겠느냐는 질문을 하셨던 적이 있습니다. 15명 정도 6개월 정도면 프로토타입을 만들 수 있을 거라고 말씀드렸는데, 우아한형제들에 입사하고 나서는 150명이어도 부족할 것 같다는 생각이 들기도 합니다. 그만큼 우아한형제들은 기술적으로 계속해서 도전하고 더 좋은 개발문화와 기술을 만들어 내기 위해 노력하는 회사라고 생각합니다. 우아한테크코스만큼이나 업무에 적응할 수 있게 도와주신 배민서비스개발팀 캡틴 영한님과 파트대장 용근님, 회원인증파트 모든 분들께 정말 감사합니다.😊 좋은 개발 문화와 기술적 성장을 원하시는 개발자분들은 우아한형제들의 개발팀 합류를 고려해 보시는 건 어떨까요?

이상으로 긴 글 읽어주신 독자분들께도 감사드리며 이만 인사드리겠습니다! 🙇‍♂️

우아한 형제들 1차 코딩 테스트

우주개발자(SpaceDev)

우아한 형제들 로고

오늘은 2018년에 진행했던 우아한 형제들 1차 코딩 테스트 리뷰를 하겠습니다. 우아한 형제들은 배달의 민족을 만든 회사로서 워낙 개발자 대우가 좋기로 유명하고, 간간히 기술 블로그의 올라오는 글들을 보면 꽤 매력적인 기술들을 쓰는 회사라 평소에 꽤 관심을 가지고 있던 회사였는데, 얼마 전 우아한 형제들에서 신입 서버 개발자를 뽑는다고 하여 이력서를 작성하였습니다.

지금보면 부끄러운 자기소개서였다….

우아한 형제들 면접 절차는 꽤 특이했었습니다. 왜냐하면 모든 지원자가 이력서 합격과 불합격과는 무관하게 1차 코딩테스트를 본 후 특정 커트라인을 넘으면 그때 이력서를 보는 특이한 시스템이었습니다. 물론 제 입장에선 이러한 절차는 꽤 좋았던 게 코딩 테스트 연습도 할 수 있었고 우아한 형제들의 코딩 테스트 난이도를 알 수 있어서 좋았습니다.

그리고 대망의 코딩 테스트 날이 다가왔습니다. 코딩테스트는 Online IDE를 지원하는 Codility라는 사이트를 이용하였으며 그 전에 몇 번 테스트와 적응을 할 수 있도록 Cobility 사이트를 열어주므로 코딩 테스트 전에 충분히 적응할 수 있도록 하는 게 좋습니다. 제가 느끼기엔 Cobility 사이트 시스템 자체는 나쁘지 않았습니다. 다만, 저만 그랬는지 모르겠지만 Ctrl + C와 Ctrl + V가 안됐습니다. 이러한 문제는 시간을 잡아먹기 충분하였습니다. 이것만 잘 됐으면 시간좀 여유롭게 사용할 수 있었는데 말이죠….

문제 수준은 크게 어려운 수준은 아니었습니다. 1차라 그런지 나름 난이도 조절을 한 것 같습니다. 문제 내용은 SQL 1문제와 알고리즘 문제 4문제로 총 5문제였는데, 충격적이었던 건 문제가 영어라서 영어에 미숙했던 저는 해석하는데 또 시간이 걸렸습니다.

사용언어는 다양했습니다. 1차 코딩테스트 안내 메일에선 JAVA를 권장한다고 하였지만, 저는 Javascript 찬양자 이므로 Javascript로 코딩 문제를 해결했습니다.

우아한 형제들 1차 코딩 테스트 안내 메일

이번 코딩테스트를 보면서, 많은 생각을 했던 게, 그동안 알고리즘에 대해서 안일하게 생각했었는데 알고리즘에 중요성을 다시 한번 깨달았고, 제가 생각보다 SQL이 생각보다 약하다는 것이었습니다. 그동안 SQL을 좋아한다고 생각했고, 잘한다고 생각했지만 이번 우아한 형제들 1차 코딩 테스트를 진행하면서 시간이 3분만 더 있었으면 SQL문제까지 다 풀고 낼 수 있었는데 SQL 문제를 다 풀지 못하고 제출하여 참 아쉬웠습니다.

이러한 부분에서 제가 많이 부족하다는 것을 꺠달았고, 이미 제출은 하였으니 결과가 나오면 다 알 수 있게 되겠죠? 이미 동전은 던져졌으니, 그 동전이 앞면인지 뒷면인지만 보면 될 듯합니다.

당신을 최고의 개발자로 만들어드립니다

혹시 알고 계셨나요? 2018년부터 초, 중, 고교에서 코딩 교육이 정규 과목으로 채택됐었다는 사실 직장인, 비전공자도 코딩 학원 다니는 게 이상하지 않은 요즘입니다.

배달의민족을 서비스하는 우아한형제들도 개발자 양성 프로그램을 운영 중입니다 무려 10개월 코스에 무료로, 그것도 단순 교육이 아닌 실무에서 바로 일할 수 있는 개발자를 길러내는 데 목적을 두고 있습니다.

오늘은 이 ‘우아한테크코스’에 대해 소개합니다. ‘우아한테크코스’ 2기를 수료하고 최근 우아한형제들에 입사한 신입 개발자, 배민주문서비스팀 김경준님을 만나보았습니다.

안녕하세요 자기소개 부탁드려요.

반가워요. 우아한테크코스 2기를 수료하고 배민주문서비스팀에서 서버 개발을 담당하고 있는 김경준입니다. 우아한형제들이 첫 회사고요, 일한 지 3개월 정도 되었어요

가장 최근 ‘우아한테크코스’를 수료하고 입사하신 분이라고 알고 있습니다. ‘우아한테크코스’에 대해 소개 부탁드려요.

‘우아한테크코스’는 10 개월 동안 운영되는 개발자 교육 코스인데요. 강의를 듣고 암기하는 주입식 교육보다는 미션을 주고 해결해나가는 방식으로 진행됩니다.

다른 개발자 교육 프로그램도 많을 텐데, 어떻게 ‘우아한테크코스’에 지원하게 되셨나요?

사실 우연히 보고 지원했어요 더군다나 당시에는 10개월이 좀 길다는 생각도 들었고요. 그러다 ‘우아한테크코스’의 이전 단계라 할 수 있는 프리코스를 경험하고서 꼭 합격하고 싶다는 생각을 했습니다.

프리코스요?

네네. ‘우아한테크코스’에 지원하고 서류와 코딩테스트를 통과하면 3주 동안 프리코스라는 걸 하는데요. 이 프리코스에서의 미션 수행이 굉장히 재미있었어요. 미션 해결에서 그치지 않고 더 좋은 품질의 코드를 만들기 위한 피드백을 받았거든요. 그 과정에서 좀 더 잘하고 싶다는 마음이 생겨 엄청 몰입하게 되더라고요. 10개월 동안 이것만 하고 살아도 재미있겠다는 생각이 들어서 꼭 붙고 싶다는 마음이 들었죠.

결국 합격해서 ‘우아한테크코스’에 합류하셨는데요. 10개월의 교육 기간 동안 가장 좋았던 점은 어떤 것이었나요?

지금 가장 기억에 남는 게, 제가 한 코치님한테 궁금한 게 생겨 메신저로 질문을 한 적이 있어요. 밤인데도 바로 답변을 해주셨는데, 정답을 알려주시는 게 아니라 계속 역질문을 하시는 거예요. 답변하고 물어보면서 결국 새벽까지 긴 통화를 했었거든요. 그 시간이 제일 기억에 남아요. 공부하는 방식을 깨달았다고 해야 할까요.

개발자로 일해보니 어떤 문제가 발생하면 ‘해답은 이거야’라고 딱 떨어지는 일이 거의 없고, 항상 그 상황에서 최선은 무엇일까를 고민하면서 나아가야 하거든요. 그래서 저도 주변 후배들이 질문하면 바로 답을 안 알려주고 왜 그렇게 생각하는지 계속 물어보게 됐어요. 그랬더니 연락이 잘 안 오더라고요. (웃음)

제가 일하는 사무실 바로 위층이 ‘우아한테크코스’ 교육장인데요. 서로 엄청 친해 보이시더라고요. 교육을 진행하면서 협업을 많이 하게 되나요?

‘우아한테크코스’ 교육이 거의 미션 위주로 진행되는데요. 혼자 하는 미션이 거의 없어요. 기본적으로 페어 프로그램이라고 해서 짝을 이뤄서 두 명이 의견을 교환하면서 한 코드를 만들어나가거든요. 그리고 팀 프로젝트로 기획부터 개발을 다 하다 보니까 서로 친해지고, 어떻게 하면 협업을 잘할까 생각하게 되는 것 같아요.

그럼 그 팀 프로젝트를 하면서 프리라이더 같은 분은 없으셨나요?

저랑 같은 팀에는 없었는데, 있을 수도 있죠 그런데 ‘우아한테크코스’ 과정 중 스스로 성장하는 것이 중요하지, 대학처럼 학점을 받는 것도 아니고 수료했다는 것만으로 어떠한 특혜를 받을 수 있는 것도 아니거든요. 그래서 프리라이더로 10개월을 쏟을 이유가 없긴 해요. 대부분 몰입하고 더 배우려고 하는 분위기라 그런 환경에 있는 게 좋았어요.

‘우아한테크코스’가 나이 제한이 없다고 알고 있어요. 실제로도 다양한 연령대의 분들이 계신가요?

저희 기수는 대학을 다니고 있는 사람도 있었고, 고등학교만 졸업하고 오셨던 분도 있었어요. 그리고 다른 일을 하다가 퇴사하고 들어왔던 분도 있어요. 공무원을 그만두시고 오신 분은 기사에도 났었는데, 댓글에 거짓말하지 말라고 달려있더라고요. 지금 우아한형제들에 입사해서 개발자로 잘 있어요.(웃음) 나이의 제한이 딱히 없어서 다양한 배경을 가진 사람을 같은 주제로 만날 수 있다는 점이 재밌었어요.

‘우아한테크코스’에 지원하고 싶은 예비 개발자분들에게 한마디 해주신다면?

일단 4기분들, 교육 마치고 저희 팀에 많이 지원해주세요.(웃음) 저는 ‘우아한테크코스’를 하면서 환경이 중요하다는 생각을 많이 했어요. ‘우아한테크코스’ 인터뷰라서 이렇게 말씀을 드리는 게 아니라 사람의 의지만으로 바꿀 수 있는 게 생각보다 많지 않다고 느꼈어요. 마음먹은 대로 진행하는 위대한 분들도 많지만, 저처럼 평범한 사람들은 의지가 금방 꺾여버리곤 하더라고요.

그래서 의지만 다지면서 나아가기보단, 내 주변을 성장할 수밖에 없는 환경으로 만들어나간다면 좀 더 원하는 결과를 얻기 쉽다고 생각합니다. 그런 면에서 ‘우아한테크코스’는 저에게는 좋은 환경 중의 하나였어요.

마지막으로 나에게 ‘우아한테크코스’란?

환경의 중요성을 다시 일깨워줬다는 점에서 ‘지구온난화’로 하겠습니다 (웃음) 우아한테크코스의 교육 철학과 환경에 많은 도움을 받았기 때문에 감사한 마음을 갖고 있습니다.

‘우아한테크코스’ 홈페이지의 <지원하기> 메뉴에는 지원 전 반드시 고민해야 하는 4개의 질문이 주어집니다. 인터뷰 후에 다시 보니 이 질문에 답하는 것이야말로 ‘우아한테크코스’의 시작이 아닐까 생각했어요. 과정 속에서 스스로 답을 찾아가는 과정의 시작이지요. 이렇게 스스로 묻고 답하며 성장해 나갈 ‘우아한테크코스’ 수료생들의 미래가 기대되는 인터뷰였습니다.

‘우아한테크코스’ 4기 모집이 시작되었습니다. 온라인 설명회 영상을 보시면 자세한 이야기를 들을 수 있어요.

바쁘신 분들은 아래 시간을 클릭해서 보세요!

23:40 우아한테크코스 설명회 시작

47:54 3기 교육생 토크

1:33:48 Q&A

이 글을 읽고 가슴이 콩닥콩닥 한다면? 우아한테크코스 4기 지원하러 가기 (~11/3 수 오전10시)

키워드에 대한 정보 우아한 형제 들 코딩 테스트

다음은 Bing에서 우아한 형제 들 코딩 테스트 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 우리가 무슨 민족? 배달의 민족! 우아한 형제들 코딩테스트 풀어보자😁😁

  • 동영상
  • 공유
  • 카메라폰
  • 동영상폰
  • 무료
  • 올리기

우리가 #무슨 #민족? #배달의 #민족! #우아한 #형제들 #코딩테스트 #풀어보자😁😁


YouTube에서 우아한 형제 들 코딩 테스트 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 우리가 무슨 민족? 배달의 민족! 우아한 형제들 코딩테스트 풀어보자😁😁 | 우아한 형제 들 코딩 테스트, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  달러 인도네시아 환율 | 엔 · 달러 환율 147엔대…32년 만에 최고 수준 / Sbs 30 개의 정답

Leave a Comment