반응형
LinkedIn 개발자로 성장하면서 남긴 발자취들을 확인하실 수 있습니다.
Github WWDC Student Challenge 및 Cherish, Tiramisul 등 개발한 앱들의 코드를 확인하실 수 있습니다.
개인 앱 : Cherish 내 마음을 들여다보는 시간, 체리시는 디자이너와 PM과 함께 진행 중인 1인 개발 프로젝트입니다.
10년 후, 20년 후 나는 어떤 스토리 텔러가 되어 있을지 궁금하다. 내가 만약에 아직 조금 더 탐구하고 싶은 게 있고, 궁금한 게 있다면, 그게 설사 지금 당장의 내 인생에 도움이 안 되는 것 같더라도 경험해보자. 그 경험들을 온전히 즐기며 내 것으로 만들고, 내 일에 녹여내고... 그러다보면 그 점들이 모여 나란 사람을 그려내는 선이 될 테니까.

Recent Posts
Recent Comments
Total
관리 메뉴

꿈꾸는리버리

Async Swift conference 후기 본문

오뚝이 개발자/iOS

Async Swift conference 후기

rriver2 2022. 9. 23. 16:47
반응형

 Async Swift 002 세미나 

이전에 Async Swift 001 세미나를 애플 개발자 아카데미에서 만난 지인을 통해 알게되어 참석하게 되었다.

유익한 강연들과 함께 너무 좋은 에너지들을 받아올 수 있어서, 다음 세미나도 참석하고 싶다는 생각을 많이 했었다.

계속 호시탐탐 기다리다 LinkedIn에서 공지가 뜬 것을 확인하고 바로 신청을 하게 되었다. ( 혹시나 못 보신 분들은 이전 세미나들을 해당 유튜브에서 확인 가능합니다!)

너무 유명한 곳에서 연사자 분들이 오셔서 많은 기대를 안고 세미나를 참여하게 되었다.

입구에서부터 끝날때까지 준비 위원회 분들이 많이 고생하신 흔적들을 느낄 수 있었다 :) 

좋은 세미나 열어주신 분들에게 감사합니다는 말씀을 전하고 싶다 ..

 

세션은 다음과 같은 순서로 진행이 되었다. 

우측 ) asyncSwift 앱도 있다규 ~~

 

 세미나 내용 정리 

솔직히 말해서 모든 연사자분들의 이야기를 이해할 수는 없었다. 

그래서 오늘은 내가 가장 많이 이해했고, 공감했던 "김우성 님"의 강연 내용을 정리하고,

다른 분들의 강연들 중 앞으로 공부해야하는 숙제 토픽들에 대해서 적어보려 한다.

 

코드리뷰- 같이 성장하기 위한, 그리고 성공하기 위한 팀이 되기 위한 도구 : 김우성 님 (29cm)

시작하면서 "평범한 사람들이 팀으로 모여 비범한 결과를 내고 싶어함, 개발 문화는 회사와 팀의 성공을 위한 것이어야만 한다."과 같은 생각들을 공유해주셨는데 반성이 되기도 하고 한편으로는 공감이 많이 되기도 하는 말씀이었다.

 

오늘 이야기를 해주셨던 내용의 주요 내용은 PR 즉 Pull Request였다. 

PR은 팀원들과 자주 했던 거라서 이미 개념을 알고 있었기에 이해를 하기 쉬웠지만서도 좀 더 깊게 알 수 있었고, 29cm만의 시도한 노력들을 들으면서 동시에 반성도 되었던 것 같다.

 

우성님이 PR을 중요시하게 된 이유에는 Github의 history가 담겨 있었다. 

팀과 github을 관리하는 툴이 Jira, Trello Wiki, 노션으로 이동을 하면서 아카이빙했던 문서들이 날라가기도 하고, 해당 내용을 찾기 어려울 때가 다반사였다고 하신다. 하지만 이렇게 팀과 github을 관리하는 툴이 변하는 과정에서 Github라는 서비스는 계속 이용을 해왔고 앞으로도 큰 이변이 없는 이상 계속 사용할 것이라고 생각했기 때문에, 사용하는 지식 아카이브를 위해 이 Github을 사용하자는 생각을 하셨다고 한다. 

팀에 PR이 필요한 이유는 정말 많겠지만, 코드리뷰를 통해서 팀 모두의 코드 기술이 올라갈 수 있기 때문에 팀과 개인의 “성장”이 필요하다고 느끼는 개발자들에게는 PR 기반의 문화가 필요하다고 말씀하셨다.

 

이 부분은 나 또한 애플 개발자 아카데미에서 "팀 내에 코드리뷰가 중요한 이유"에 대해 발표했을 당시에 나눴던 내용이기도 해서 굉장히 반가웠다.

 

이어서는 29cm만의 PR의 의미에 대해서 말씀하셨다. 우선은 좋은 PR과 안 좋은 PR에 대해서 말씀을 하셨었다.

좋은 PR이란 리뷰어가 읽기 편한 PR이라는 말씀과 함께 그렇기 때문에 PR을 올릴 때 지켜야 하는 convention들이 있다고 하셨다.

단순한 코드 리뷰가 아닌 왜 이 작업을 하게 되었는지 등의 내용을 담은 내용을 담아서 가독성을 높여야 하기 때문에 여러 구조나 이해관계가 얽혀있는 큰 단위의 PR은 지양해야 한다고 말씀하셨다.

 

1. PR은 기본적으로 글이다. 그중에서도 리뷰어가 읽는 요청서

클라이언트에게 이게 머지되어야 한다고 설득하는 .. Pull Request임

ex) RXSwift에 pr을 보내는 입장으로 작성하기

2. 스마트폰에서도 리뷰할 수 있는

모든 PR이 좋을 수는 없지만, 좋은 PR을 담은 개수가 많아진다면 팀의 성장이 시작된다.

3. 풍부한 맥락 - 리뷰어는 언제나 바쁘다

PR을 읽기만 하더라도 리뷰를 시작할 수 있도록 머리를 굴리지 않아도 이해할 수 있을 정도로 서술해두기

4. 리뷰어가 고민하지 않도록

어? 하는 부분들이 없도록 미리 PR에 코멘트를 작성해두기 (커뮤니케이션 비용을 줄이기)

따라서 이 부분을 정리하면서 스스로 공부를 할 수 있다는 장점도 있다.

5. 코드의 양은 적게, 본문의 양은 많게

저맥락, 고맥락 PR을 나눠서 작성하기를 바람

잘 읽히는 PR과 읽기 좋은 코드는 일맥상통하다.

제목에서 충분히 주제를 설명하지 못하고 있는 PR → 제목이 길어지면 나눠져야 하는 입장

 

하지만, 그만큼 좋은 PR, 좋은 문화를 만들기 위해서는 많은 시간을 할애하게 된다. 그래서 하게 된 여러 노력들에 대해 말씀해주셨다.

아마 현실적으로 시간에 쫓겨서 개발을 해야 할 때는 개발자의 운명은 어쩔 수 없기 때문에 PR을 위해 할애하는 시간을 다른 부분에서 충당해야 했기 때문에 시스템 적으로 뒷받침되는 여러 기술들을 찾아서 사용하신 듯 했다.

PR 중심으로 협업하는 팀이 되기 위한 기술들에는 가장 우선적으로 깃을 빠르게 잘 쓰는 게 중요하다. (진짜 200% 공감)

특정 한 줄에 대한 diff commit PR 바로 찾기(이거는 보고 충격을 받긴 했는데, 직접 해보려니까 xcode에서 방법을 못 찾아서 주변에 물어놓은 단계이다.. 후에 알게되면 블로그 포스팅 하겠습니당..)

 

코멘트 레벨 도입하기 (from 뱅크샐러드)

-> 특히 신입 개발자들이 어려워하는 부분 중에 하나를 해결할 수 있었다고 한다.

시니어 개발자가 "신입 개발자가 이걸 알았으면 좋겠어서 알려주는데 지금은 굳이 반영안해도 돼 " 혹은 "이런 방법도 있긴 해"라고 코드리뷰를 했을 때 신입 개발자 입장에서는 둘 다 "꼭 고쳐야만 하는" 으로 받아들여 pr을 남기고 머지까지의 시간이 오래 걸렸던 것을 이 Pn룰을 도입함으로 인해 해소할 수 있었다고 한다.

PR label 활용을 함으로 현 PR의 상황을 명확하게 공유할 수 있었다고 하신다.

코드 리뷰 커뮤니케이션 프로토콜이모지 활용함으로 비동기적으로 이뤄지는 코드리뷰 환경을 해결하려고 노력하셨다고 한다. 예를 들어서 코드 작성자가 리뷰를 확인했을 때 이모지를 남김으로 확인 후 작업 중임을 알린다던가.. 처럼 !

또 코드리뷰의 Resolve를 금지함으로 과거의 PR을 확인할 때 용이하게 하셨다고 한다. 이 부분은 나랑 좀 달랐는데, 코드리뷰를 했을 때 다 확인된 건가 ? 싶었던 적이 많아서 꼭 2번씩은 확인을 해야만 했었어서 꼭 Resolve를 누르곤 했었다. 이건 팀 convention은 다를 수도 있으니까 ! 그리고 나는 아직 이전 pr들을 확인한 사례가 많지 않아서 그런 것 같다는 생각도 들었다.

 

팀과 개인 모두가 함께 노력을 하는 건 쉽지 않은데,, 대단하시기도 하고 감사하기도 했다.

꼭 이런 분이 계시는 회사 혹은 부서에 입사를 해서 많이 배울 수 있으면 좋겠다.. 또, 내가 그런 선배가 될 수 있길 !

- 글로 업무를 정확하게 표현하기

- PR을 리뷰하는 속도 높이기

- PR을 리뷰하는 깊이 더하기

- 도메인/기술 지식 익히기

 

다른 분들의 강연들 중 앞으로 공부해야하는 숙제 토픽

- 함수형 프로그래밍의 장점에 대해 고민해보기 ( MVVM, SwiftUI를 사용할 때의 관점에서 )

- Test Code 작게라도 한번 짜보기

- Trunck-Based Develpement ( git flow ) 공부하기

 

 느낀점 

여전히 앞으로 끊임없이 배워야하고, 부딪혀야 할 것이 많은 주니어 개발자이지만, IT에 관심이 많은 사람으로서 이런 세미나를 통해 강연을 듣고 사람들을 만날 때마다 꾸준히 지금처럼 열심히 해 나가야겠다는 생각과 그럴 수 있는 힘이 생기는 기분이 들었다. 우리는 인간이기 때문에 커뮤니티로 영향을 주고받고 그렇게 함께 나눠야하는 게 아닐까 싶으면서, iOS 환경에도 선순환 구조처럼 함께 성장하는 문화가 다시 살아나는 듯해 했기도하고...  좀 더 깊게 좀 더 넓게 ! 다음 세미나에서는 좀 더 많은 내용을 이해할 수 있는 내가 되길...! 🔥

또 퀄리티 있는 개발자가 되기 위해서 끊임없이 왜 이것들을 사용하는 지에 대해서 서술하고 고찰해서 나만의 논리, 나만의 철학 그리고 우리 팀만의 문화를 만들어나가야겠다는 생각이 들었다. 확실히 프로젝트 같은 경우에는 단기로 진행이 되기 때문에 여러 컨벤션들을 맞추더라도 이어나가기 쉽지 않다는 생각도 들었고, 가까운 미래에는 취업을 해서 이런 팀 내에서 장기전으로 함께 좋은 문화를 만들어 나가고 싶다는 기대도 하게 되었다..

 

같이 성장하고 싶다. 단기간 말고 장기간으로.

반응형
Comments