F-Lab
🚀
상위 1% 개발자에게 1:1로 멘토링 받아 성장하세요

더 깊은 성장을 지속하는 "개발 스터디_객체지향과 DDD"

writer_thumbnail

F-Lab : 상위 1% 개발자들의 멘토링

 

여러분은 그룹 스터디를 경험해 본 적이 있으신가요? 아마 개발을 공부하고 계신 분들이라면 다른 개발자들의 생각이 궁금하고, 타인과 교류하는 시간이 필요하다고 느끼실 것 같은데요.

 

 
F-Lab Slack Community #스터디모집 Channel

 

F-Lab에서도 성장을 위한 다양한 스터디가 진행되고 있습니다.

그중에서도, F-Lab Back-end 개발자 Habi님을 중심으로 진행된 객체지향 스터디와 DDD 스터디를 인터뷰해 봤습니다. 스터디 후기 또한 Back-end 멘티 연수님에게 들어봤으니 스터디를 계획하고 계시거나, 스터디를 하고 있는 분들이라면 인사이트를 얻어 갈 수 있을 것 같네요! 🚀

 

 

[📚 스터디 운영자, Habi님인터뷰]

 

안녕하세요 Habi님! 간단한 자기소개 부탁드려요.

 

 

안녕하세요 🙇🏻‍♂️ 에프랩에서 백엔드 개발을 담당하고 있는 하비라고 합니다. 저는 초창기 F-Lab의 멘토링을 받았던 멘티였는데 대표 멘토님이 멘토링 끝나고 F-Lab에 합류할 생각 없냐고 물어보셨고 에프랩을 통해서 교육 방향성의 중요함을 깨닫고 나와 비슷한 사람들을 위한 서비스를 개발한다는 게 너무 가슴 설레어서 에프랩에 합류하게 됐습니다. 최근에는 오프라인 커뮤니티에 나오시는 멘티분들과 다양한 주제로 토론하면서 멘티들의 성장에 조금씩 기여하는 데에 집중하고 있습니다.

 

어떤 스터디를 진행하셨어요?

 

얼마 전에는 객체 지향 스터디를 진행했었고 지금은 기존 프로젝트를 도메인 주도적인 관점으로 재해석하고 리팩토링하는 DDD 스터디를 진행하고 있습니다. 객체 지향 스터디는 F-Lab 커뮤니티 슬랙으로 모집했어요. 스터디 주제와 희망 인원, 함께할 스터디원의 모습, 스터디 진행 방식, 진행 날짜, 스터디를 통해 얻을 수 있는 이점, 신청 방식을 정리해서 슬랙 내 스터디 모집 채널에 올렸어요. 신청은 구글 폼으로 받았습니다. 신청하신 분들과 일정을 조율하고 최종 날짜를 결정한 다음 오프라인 커뮤니티에 모여 스터디를 매주 진행했어요.

 

DDD 스터디는 오프라인 커뮤니티에 평소 자주 나오시는 분들에게 직접 물어봤어요. F-Lab 개발팀은 DDD를 하고 있고 도메인 중심적으로 접근하는 방법이 복잡한 도메인을 풀어나갈 때 효과적이다는 걸 느꼈어요. 그래서 이런 관점들을 멘티분들에게 전달해 주고 싶었고 개념 자체가 추상적이고 어렵다 보니깐 직접 그리고 주기적 소통할 수 있는 오프라인 커뮤니티 멘티들에게 제안을 드리고 모집했습니다.

 

진행 방식을 소개해 주세요!

 

 

객체 지향 스터디는 객체 지향 사실과 오해라는 책으로 진행했어요. 총 4주간 진행했었고 2주 동안은 각자 맡은 챕터를 정리해서 발표하는 방식으로 진행했고 3주 차 때는 앞으로 진행할 간단한 프로젝트 주제에 대해서 논의하는 시간을 가졌어요. 논의 끝에 저희는 숫자 야구 게임을 객체 지향적인 코드로 녹여내기로 결정했고 각자가 생각하는 방식으로 코드를 구현해서 서로 코드 리뷰하는 형태로 진행했습니다.

 

DDD 스터디는 각자 멘토링을 하면서 진행하고 있거나 진행했던 프로젝트를 저와 같이 DDD 관점에서 비즈니스 문제점부터 도메인 중심적으로 재해석하고 리팩토링하는 방법으로 진행했었어요. 첫 주에는 다 같이 모여 제가 이해하고 있는 DDD에 대해 얘기를 나눴어요. 우리 조직에서 DDD는 어떤 도움이 됐고, 어떤 방법으로 구현했는지 그리고 DDD를 하면서 제가 핵심을 놓쳤던 경험에 대해서도 공유했었어요. 그리고 각자의 프로젝트를 스터디하면서 수정한 코드는 PR을 올린 다음 제가 코드 리뷰하고 Merge하는 방식으로 합의하여 진행하기도 했습니다. 또 멘티분이 오프라인 커뮤니티에 오실 때마다 제가 옆에 가서 오늘은 어떤 작업을 하고 있는지 물어보고 궁금한 점은 없는지 토론하고 싶은 얘기는 없는지? 있으면 토론하고 페어 프로그래밍으로 코드 구현까지 같이 해보는 형태로 진행하고 있습니다.

 

스터디를 하시면서 특별히 좋았던 부분이 궁금해요.

 

 

멘티분들이 특정 기술, 기능 구현에만 매몰되지 않고 비즈니스 요구사항에서 문제를 어떻게 정의하고, 어떤 도메인들로 나눠서 풀어나가야 하는지 감을 잡는 모습을 보면서 저 또한 성취감을 많이 느꼈던 게 특히 좋았어요. 사실 개발자를 얼핏 보면 기능을 소프트웨어로 구현하는 사람으로 정의할 수 있지만, 저는 개발자를 비즈니스를 풀어나가는 사람이라고 정의하고 싶거든요. 물론 특정 기술에 대해서 깊게 아는 것도 중요하지만 앞서 말했듯이 개발자 또한 회사의 비즈니스 문제를 함께 식별하고, 이해하고, 풀어나가는 이해관계자여야 하거든요.

 

그러려면 기능 구현에 앞서

📌 이 기능을 왜 만들어야 하는지? 
📌 정말 이 기능이 필요한지? 
📌 필요하다면 어떤 비즈니스 임팩트가 필요해서 그런 건지? 
📌 다른 방법으로는 풀 수 없는지?

 

이런 의문을 가지고 자연스럽게 비즈니스에 더 큰 임팩트를 끼칠 수 있는 방향으로 이끌어 가야 한다고 생각해요. DDD처럼 복잡한 비즈니스 도메인 문제를 어떻게 적절히 분할하고 전략적으로 조합하여 해결하는지를 다루는 접근법을 이해하고 있으면 좀 더 좋은 개발자에 다가갈 수 있다고 생각하는데 이러한 스터디를 통해 멘티들이 좋은 개발자로 성장해 나가고 있는 것 같아서 너무너무 뿌듯하고 저 또한 동기부여가 되는 것 같아서 좋았어요.

 

아쉬웠던 부분은요?

 

개인적으로 아쉬웠던 부분은 현업과 스터디를 같이 병행하려고 하니 몸이 하나인 게 너무 아쉬웠어요. 커뮤니티에 자주 오시는 스터디원들이랑 같이 얘기하다 보면 시간이 빨리 지나가는 경우가 많아요. 그리고 저는 회사 업무 또한 처리해야 하기 때문에 저의 개인 시간으로 부족한 업무 시간을 종종 채우고 있는 상황이에요. (웃음) 그래서 힘들지는 않지만, 몸이 두 개였으면 두 마리 토끼를 다 잡을 것 같은 욕심이 들어서 뭔가 몸과 머리가 하나인 게 많이 아쉽네요. 다른 아쉬운 건 없습니다.

 

 

[📚 스터디 구성원, Back-end 멘티 연수님인터뷰]

 

안녕하세요 연수님! 자기소개 부탁드려요.

 

 

안녕하세요. F-Lab Java Backend 과정 진행 중인 이연수입니다.

 

스터디에 참여하신 계기가 궁금해요.

 

스터디에 참여하게 된 이유는 크게 두 가지 입니다. 향후 보게 될 면접을 대비하는 것이고 다른 하나는 혼자 공부하는 것보다 같이하면서 얻게 되는 시너지를 바라서입니다. 이를 통해서 얻고 싶은 것은 물론 큰 성장입니다. F-Lab 과정을 진행하면서 2번의 스터디를 진행했고 또 하나의 다른 스터디를 현재 진행 중입니다. 돌이켜 생각해 보면 매 스터디를 진행할 때마다 많은 성장을 이룬 것 같습니다.

 

첫 번째 OOP 스터디를 진행하게 되었을 땐 객체지향에 대해 깊이 있게 알게 되었고 구현 능력이 좋아져 자신감을 갖게 되었습니다. 두 번째 스터디는 구성원인 Habi님의 주최로 DDD 스터디를 진행하게 되었습니다. DDD 스터디에선 프로젝트를 진행함에 있어 많은 힌트를 얻을 수 있었고 이를 바탕으로 막막했던 프로젝트 설계를 해결할 수 있었습니다.

 

특히 좋았던 부분이 궁금해요!

 

 

좋다고 생각한 부분은 다른 시선에서 바라본 접근 방법을 얻을 수 있는 것이었습니다. 전자의 경우는 훗날 책을 다시 읽다 보면 얻을 수 있다고 생각합니다. 그러나 후자의 경우는 어쩌면 혼자 생각해선 결코 얻을 수 없을지도 모르고 알게 된다 한들 많은 시간을 쏟아부어야 얻을 수 있는 것이라 생각합니다. 정리해 보면 지식을 공유함으로써 오래 걸릴 시간을 단축시킬 수 있다는 것. 이 부분이 좋았습니다.

 

아쉬웠던 부분은요?

 

처음 스터디를 진행하는 팀에게 가이드라인이 존재했다면 시행착오를 줄일 수 있지 않을까라는 생각을 했습니다. 세 번째 스터디를 진행하고 있어 이전 두 번의 경험을 교훈 삼아 진행하고 있습니다. 그러나 첫 스터디를 진행했을 땐 2주간 스터디 방식을 정하지 못하고 따로 시간을 내어 이야기를 나눴습니다. 물론 정답은 없겠지만 처음 시작하는 팀에게 개요가 주어진다면 스터디 방식을 빠르게 정할 수 있고 이는 스터디에 더 집중할 수 있는 결과를 가질 것으로 생각합니다.

 

 

혼자 하는 공부와 그룹 스터디는 어떤 차이가 있나요?

 

처음 스터디를 시작할 때 갖고 있는 마음이 오래간다는 점이 큰 차이인 것 같습니다. 대부분의 사람들이 그렇듯 첫 시작은 의욕을 갖고 진행하게 되는데 시간이 가면 갈수록 의욕은 점점 떨어지죠. 그룹 스터디를 진행할 경우 떨어지는 의욕을 정도를 낮출 수 있다고 생각합니다. 의욕을 낮추는 예로 매 스터디마다 도전과제를 정하고 달성해가는 장치를 만들었습니다.

 

첫 번째 스터디를 진행할 땐 비단 책만 읽은 것이 아니라 구현 문제를 과제로 지정하고 해결해 가는 형식으로 진행했습니다. 완성한 과제들을 다른 사람들과 공유하며 리뷰도 남겼습니다. 혼자 진행했다면 금서 꺾였을 수도 있었겠지만 스터디로 진행했을 때 서로를 응원하며 목표한 바를 달성할 수 있었습니다.

 

 

그룹 스터디는 여러 가지 장점이 있죠. 연수님이 말씀해 주셨듯 부족한 부분이나 어려운 부분을 함께 공부하면 피드백을 통해 더 깊은 성장이 가능한 것은 물론, 지속 가능성이 높아지죠. 열정 넘치는 개발자들과 함께 하는 스터디, 망설이지 말고 한번 도전해 보는 건 어떨까요? 무엇이든 얻어 갈 수 있을 테니까요! 💪🏼

 

Edited by F-Lab Marketer, Jen

ⓒ F-Lab & Company

이 컨텐츠는 F-Lab의 고유 자산으로 상업적인 목적의 복사 및 배포를 금합니다.

조회수

멘토링 코스 선택하기

  • 코스 이미지
    Java Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Node.js Backend

    아키텍처 설계와 대용량 트래픽 처리 능력을 깊이 있게 기르는 백앤드 개발자 성장 과정

  • 코스 이미지
    Python Backend

    대규모 서비스를 지탱할 수 있는 대체 불가능한 백엔드, 데이터 엔지니어, ML엔지니어의 길을 탐구하는 성장 과정

  • 코스 이미지
    Frontend

    기술과 브라우저를 Deep-Dive 하며 성능과 아키텍처, UX에 능한 개발자로 성장하는 과정

  • 코스 이미지
    iOS

    언어와 프레임워크, 모바일 환경에 대한 탄탄한 이해도를 갖추는 iOS 개발자 성장 과정

  • 코스 이미지
    Android

    아키텍처 설계 능력과 성능 튜닝 능력을 향상시키는 안드로이드 Deep-Dive 과정

  • 코스 이미지
    Flutter

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    React Native

    네이티브와 의존성 관리까지 깊이 있는 크로스 플랫폼 개발자로 성장하는 과정

  • 코스 이미지
    Devops

    대규모 서비스를 지탱할 수 있는 데브옵스 엔지니어로 성장하는 과정

  • 코스 이미지
    ML Engineering

    머신러닝과 엔지니어링 자체에 대한 탄탄한 이해도를 갖추는 머신러닝 엔지니어 성장 과정

  • 코스 이미지
    Data Engineering

    확장성 있는 데이터 처리 및 수급이 가능하도록 시스템을 설계 하고 운영할 수 있는 능력을 갖추는 데이터 엔지니어 성장 과정

  • 코스 이미지
    Game Server

    대규모 라이브 게임을 운영할 수 있는 처리 능력과 아키텍처 설계 능력을 갖추는 게임 서버 개발자 성장 과정

  • 코스 이미지
    Game Client

    대규모 라이브 게임 그래픽 처리 성능과 게임 자체 성능을 높힐 수 있는 능력을 갖추는 게임 클라이언트 개발자 성장 과정

F-Lab
소개채용멘토 지원
facebook
linkedIn
youtube
instagram
logo
(주)에프랩앤컴퍼니 | 사업자등록번호 : 534-85-01979 | 대표자명 : 박중수 | 전화번호 : 1600-8776 | 제휴 문의 : info@f-lab.kr | 주소 : 서울특별시 강남구 테헤란로63길 12, 438호 | copyright © F-Lab & Company 2024