About HERREN
home
Media
home

개발파트의 특별한 하루: 2024년 개발파트 세미나 후기

안녕하세요. 다나입니다
벌써 2024년이 한 달밖에 남지 않았네요!!~!~
11월 22일 금요일, 저희 개발파트는 특별한 시간을 가졌는데요, 바로 튜링의 사과를 대관해 진행한 2024년 개발 파트 세미나입니다.

왜 세미나를 열었을까요?

이번 세미나는 프로젝트 오픈 이후 개발자분들이 조금 더 재충전하고, 서로 동기 부여를 받을 수 있도록 마련했어요.
또한, 셀별 전문성을 강화하고, 협업을 통해 문제를 해결하며 생산성을 높이는 데 초점을 맞췄답니다.
특히 이번 세미나는 예산만 정해진 상태에서 장소, 다과, 식사, 그리고 세션 구성까지 전부 헤더분들이 주도적으로 진행한 특별한 세미나였어요.
(준비 과정에서 정말 많은 노력이 들어갔답니다. )

세미나 구성

세미나는 백엔드, 프론트엔드, 네이티브 개발로 나뉘어 각 셀이 병렬로 세션을 진행했습니다.
필요한 주제를 선정해 발표와 실습을 병행하며 진행되었고, 다른 셀의 참여도 자유로웠답니다!
맛보기로 살짝 보여드린다면,

백엔드

Back-End 1: 그룹 단위로 진행되는 아키텍처 문제 해결 (주최자: 이안)
아이스 브레이킹 문제
Q : 아래 제약사항을 만족하는 redis 시스템 설계하기
진행시간 : 30분
제약사항
클라우드 자원은 aws 를 사용한다고 가정
저장된 데이터 중 1% 내외의 유실을 허용함
공비서 B2C 서비스의 채팅 시스템에서 사용
하루 기준 2천만 개의 채팅이 활성화 됨
채팅은 60일간 보관하고 영구 삭제됨
문제2
호텔 예약 시스템
진행시간 : 50분
요구사항
전 세계에 5000개의 호텔을 가진 호텔 체인을 위한 웹 서비스 구축
초기 버전은 예약과 관련된 핵심 기능 제공이 목적
호텔당 약 200개의 객실을 가짐. 5000개 호텔 총 100만개의 객실
대금은 예약 시 100% 지급한다고 가정
예약, 취소, 예약조회 가능
초과예약은 없음
검색 기능은 없음. 단, 객실 유형별 필터링은 가능
객실 유형 : 싱글 룸, 더블 룸, 트윈 룸, 스위트룸
객실 가격은 수시로 변경됨
Back-End 2: 서비스 성장 과정에서 마주한 도전과 교훈 (feat. 아직 안 끝남, 주최자: 니키)
Back-End 2: 주니어 개발자 성장기 - 파이썬에서 코틀린까지 (주최자: 마루)
Back-End 2: 이미지 업로드 기능 개선 작업 - AWS S3 PresignedURL (주최자: 우디)

웹프론트

Front-End 1: 수정사항에 기민하게 대처하는 프론트엔드 개발 방법 (주최자: 마티)
Front-End 2: Next 14로 만드는 Todo List (with Cursor AI, 주최자: 팀)
CURSOR AI 활용하기
진행자가 단계별로 적용하는 순차적으로 안내 (30분)
참여자는 안내에 따라 작업 진행
작업 순서
PRD 생성
.cursorrules 파일 생성
폴더 트리 출력
Cursor compose 활용하여 코드 구현
요건사항
TodoList 생성, 삭제 기능

네이티브

Native: Yes, I can (그래, 난 캔이다) - 사내 캔모임 앱
UI 및 기획부터 FireStore를 활용한 데이터 처리 방법까지 실제 업무와 연계된 실습
목적
다양한 firebase SDK 적용 (FireStore, FCM등)
신규 입사자와 헤더분들에게 캔의 히스토리를 공유함으로써, 캔의 인지도와 참여도를 높임
캔 홍보, 참여 관리, 리뷰 수집 등 캔 운영에 필요한 기능을 사내 앱에서 제공
지속적인 캔 참여를 유도하여 커뮤니티를 형성
기획 및 디자인 - 일부
타이틀
캔 이름
우측 캔 상태
좌측 백 버튼
캔 포스터
주최자
일시
장소
본문
참여자
Read only Chips
참여인원 / 최대인원
참여 여부
리뷰 목록
닉네임
리뷰
글자수 제한 없음
리뷰 작성 영역
가운데
리뷰를 입력해주세요.
우측
리뷰 등록
플로팅 버튼
갤러리이동
FireStore 사용예시 - 일부
/// 모든 캔 정보를 요청 모임 날짜 역순 /// 캔 리스트를 보여주기 위해 사용 func requestAllCan(completion: @escaping (Result<[Can], Error>) -> Void) { db .collection("cans") .order(by: "date", descending: true) .getDocuments() { documentSnapshot, error in if let error { return completion(.failure(error)) } do { let cans = try documentSnapshot?.documents.compactMap { try $0.data(as: Can.self) } ?? [] return completion(.success(cans)) } catch let error { return completion(.failure(error)) } } } func reqeustAllCan() -> AnyPublisher<Result<[Can], Error>, Never> { return Future { [weak self] promise in self?.requestAllCan { result in promise(.success(result)) } } .eraseToAnyPublisher() } ...
Swift
복사

세미나 뒷 이야기

세미나가 끝난 뒤, 헤더분들과 함께 맛있는 식사를 하며 마지막까지 즐거운 시간을 보냈습니다~
(고기는 역시 짱!! )

마지막으로

세미나를 주최하고 참여한 헤더분들에게 이번 세미나에 대한 소감을 들어보며 마무리~

Q. 세미나를 준비하면서 가장 도전적이었던 부분은 무엇인가요?

코리
세미나 준비 과정에서 가장 도전적이었던 부분은 바로 주제 선정이었습니다. 네이티브 파트의 특성을 살린 주제를 선정하고 싶었지만 iOS와 Android 파트가 같이하는 세미나여서 적합한 주제를 찾는 것이 쉽지 않았습니다. 처음에는 알고리즘 문제 풀이나 크로스 플랫폼 도구를 사용해 보자는 아이디어도 나왔습니다. 하지만 이번 세미나는 실제로 사용할 수 있는 무언가를 만들어 보자는 의견이 힘을 얻으면서 사내 앱 제작이라는 방향으로 틀어졌습니다. 초기에는 회사 출입 카드를 대체할 수 있는 출퇴근 앱을 구상했지만, 보안상의 문제로 실행이 어려워 대신 사내 모임 홍보 앱을 제작하기로 했고, 모바일 팀원들이 각자의 파트를 맡아 진행했습니다. 모든 준비 과정을 협력하며 도전했던 점이 가장 인상 깊었습니다.
가장 도전적이었던 부분은 참가자들이 각기 다른 수준의 Next.js와 React 경험을 가지고 있었기 때문에, 세션 내용을 모두가 따라올 수 있도록 설계하는 것이었습니다. 기본 개념을 다루면서도 최신 기술과 실무 활용 사례를 균형 있게 전달하려 했고, 실습 시간이 제한적이어서 핵심만 간결히 전달하려는 노력도 필요했습니다.
니키
사실 브랜다즈 팀의 기술적인 도전에 대해 타운홀 때도 몇번 언급한 적이 있어서 같은 내용을 반복해서 세미나에 들고 나와도 좋을지에 대한 고민이 들었습니다. 하지만 아키텍처의 변화는 그 당시 프로젝트를 런칭할때의 생각보다 일하는 방식이나 비즈니스 요구사항에 대응하는 속도에 크게 영향을 미친 것 같다는 생각이 들어서현재 시점에서 총정리해보는 것도 의미가 있을 것 같아서 준비하게되었습니다. 또한 브랜다즈 팀원들에게 그동안 수고했다는 의미를 담아보고 싶었습니다! 가장 도전적이었던 부분은 저도 기억 안나는 예전 자료들을 찾아보고 정리하는게 어려웠네요 ㅎㅎ 또한 브랜다즈 팀이 아닌 분들에게 어떻게 효과적으로 설명할 수 있을지를 고민해보는게 도전 과제였던 것 같습니다.

Q. 세미나에서 가장 인상 깊었던 점은 무엇인가요?

코리 세미나 당일 주어진 5시간 동안 기획부터 구현까지 시간상 무리가 있다고 판단되어 팀원들과 사전 작업을 진행했었습니다. 놀라웠던 점은 모두가 바쁜 업무 속에서도 시간을 쪼개어 기술 선정, 기획, 디자인, 환경 세팅에 열정적으로 임했다는 점입니다. 이때다 싶어 평소에 해보고 싶었던 것들을 하나씩 꺼내오는 팀원들 이 생각나네요
세미나에서 가장 인상 깊었던 점은, 참가자들이 짧은 시간 안에 의미 있는 결과물을 만들어냈다는 점이었습니다. 특히, 각자가 저마다의 접근 방식으로 Todo List를 구현하며 직면한 문제를 해결해 나가는 과정이 인상적이었습니다. 일부 참가자들은 Cursor AI를 활용해 문제를 해결하기도 했으며, 제가 옆에서 몇 가지 키워드를 던지며 해결 방안을 모색하는 모습도 매우 인상 깊었습니다.
니키
이안님이 준비해주신 그룹 단위로 진행되는 아키텍처 문제 해결 세션이 흥미로웠다고 생각합니다. 각자 문제를 해결하기 보다 팀 단위로 나눠서 질문하는 과정에서 해결 방법이 점차 발전되는 것을 볼 수 있었습니다. 또한 데이터 자료구조나 시스템 사양에 대해서도 심도있게 고민해볼 수 있는 과정이 좋았던 것 같습니다.

Q. 세미나 세션 중 업무에 적용해보고 싶은 내용은 무엇인가요?

코리
저희 셀은 이번 세미나에서 Firebase를 많이 활용하기로 했고 평소 업무에서 잘 사용하지 않는 Cloud Firestore를 도입해볼 수 있었습니다. Firestore는 실제 업무에서 자주 사용되진 않지만, 향후 프로젝트에서 한 번쯤 활용해보고 싶다는 생각이 들었습니다.
Cursor AI를 활용한 PRD 작성과 코드 자동 생성 방식은 업무에 직접 적용해보고 싶다는 의견이 많았습니다. 특히, 반복 작업을 줄이고 생산성을 높이는 데 유용할 것 같다는 피드백이 많았고, 저 역시 해당 도구를 팀 차원에서 도입해보면 좋겠다고 느꼈습니다.
니키
우디님이 준비해주신 이미지 업로드 기능 개선 작업 - AWS S3 PresignedURL 세션 내용을 적용해보고 싶다는 생각이 들었습니다. 이미지 파일 뿐만 아니라 대용량 파일을 효과적으로 처리할 수 있다는 생각이 들었고, 이미지나 파일 서버를 별도로 구축하지 않아도 될 것 같다는 장점이 있는 것 같았습니다.

Q. 팀워크나 협업에 대해 새롭게 느낀 점은 무엇인가요?

코리
이번 세미나를 통해 팀워크와 협업에 대해 깊이 느낄 수 있었습니다. 네이티브 파트 뿐만 아니라 백엔드, 웹 프론트 파트 헤더들도 각자의 세션을 준비하며 경험을 나누고, 서로 경청하며 배워가는 모습을 보았습니다. 이 과정이 단순히 지식 전달을 넘어 팀의 시너지를 만들고 사내 협업 문화를 더욱 풍성하게 만드는것 같습니다.
세미나를 통해 팀 간 소통의 중요성을 다시 한번 느꼈습니다. 짧은 시간 안에 팀원들이 역할을 나누고 문제를 해결하는 모습을 보면서, 요구사항을 명확히 전달하고 효과적으로 소통하는 것이 작업의 효율을 얼마나 높일 수 있는지 알게 되었습니다. 단순해 보이는 작업임에도 서로가 요구사항을 이해하기 위해 많은 대화가 필요했고, 개발 과정에서도 이를 제대로 반영하는 것이 얼마나 중요한지 실감했습니다.
니키
백엔드 파트가 인원이 많다보니 팀별로 소통할 일이 적었던 것 같은데 세미나에서 다른 팀원분들하고도 소통할 수 있어 좋았던 것 같습니다.

Q. 세미나 진행 방식이나 구성에 대해 만족하셨나요? 개선하거나 추가하고 싶은 부분이 있다면 말씀해주세요.

코리
세미나를 준비하는 과정은 정말 재미있었지만. 막상 세미나 당일은 마치 해커톤처럼 느껴졌습니다. 주어진 시간 안에 앱을 완성해야 한다는 압박감 때문인것 같습니다. 결국 앱을 완성 하진 못했지만, 이번 경험을 통해 많은 것을 배웠습니다. 다만 다음 세미나에서는 좀 더 가볍게 진행할 수 있는 주제를 선정하고 세미나 시간 내에 즐길 수 있으면 좋을것 같습니다
대체로 만족스러웠지만, 실습 시간이 조금 더 길었다면 좋았을 것 같습니다. Todo List 구현 과정에서 참가자들이 세부적인 부분까지 고민해볼 시간이 부족했다는 의견도 있었는데, 다음에는 시간을 조금 더 늘려 참가자들이 더 깊이 있게 개발 할 수 있도록 개선하고 싶습니다. 또한, 세션 중간에 간단한 Q&A 시간을 추가하면 더 적극적인 참여를 이끌어낼 수 있을 것 같습니다.
니키
파트별로 나눠서 진행해서 더 몰입할 수 있어서 좋았던 것 같습니다. 업무 생산성이나 AI 같은 세션이 있다면 같이 진행해도 좋을 것 같다는 생각이 들었습니다.
이번 세미나를 통해 배우고 느낀 점들을 바탕으로, 앞으로도 정기적인 세미나를 열어 지속적으로 학습하고 성장할 예정입니다.
모두 수고 많으셨습니다!