한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
Flutter의 문화를 소개합니다.
2019년 8월 16일 금요일
[
Emily Fortuna
와
Filip Hracek
이 함께 작성한 글입니다.]
Flutter를 이토록 즐겁고 생산적으로 만들어주는 요인 중 큰 부분은 바로 Flutter 커뮤니티입니다. 우리는 이처럼 바람직한 커뮤니티가 계속 건강한 모습으로 유지되길 진정으로 바라기에, 현재 Flutter 커뮤니티의 문화에 대한 관찰한 사항과 이를 잘 보존할 방법에 관한 몇 가지 아이디어를 공유해야겠다고 생각했습니다.
개방성
우리가 여기서 생각하는
개방성
이라는 단어에는 세 가지 의미가 있습니다.
열린 마음
이라는 의미의
개방성
,
액세스 가능
하다는 의미의 개방성, 오픈소스 관점에서의
개방성
이 바로 그것입니다. 오픈소스라는 관점은 훌륭하며 마치 열대우림에서 온갖 생물종이 풍성하고 다양하게 서식하듯 우리의 패키지 시스템을 풍성하게 만들어주긴 하지만, 우리는 문화라는 측면에서 주로 열린 마음과 액세스 가능성의 두 측면에 대해 생각합니다. Flutter 커뮤니티에서 뉴비를 따뜻하게 맞이해주고 인내심을 가지고 완벽성을 기하며 다양한 질문에 답해주면서 뉴비가 요령을 터득하도록 도와주는 훈훈한 모습을 보는 건 정말 멋진 일이었습니다. 이런 문화는 우리 커뮤니티가 성장하는 데 도움이 되고 배경과는 무관하게 누구라도 커뮤니티에 초대하고 싶은 마음이 들게 합니다. Flutter 개발자가 코드 스니펫을 공유하고 기꺼이 다른 개발자의 문제를 디버깅하는 데 힘을 써주는 건 정말 보기 좋은 모습입니다.
물론, 열린 마음은 단지 뉴비에게만 그런 마음으로 대한다는 것보다 훨씬 더 큰 의미를 가집니다. 어떤 아이디어를 구현하는 방법으로 한 가지 방법만이 아니라 여러 방법이 제시될 때가 많은데, 우리는 Flutter 커뮤니티에서 문제가 제기될 때
품위 있게
문제를 해결하거나 경우에 따라 적절히 알고리즘을 구현하는 다양한 방법을 허용한다는 점을 무척 높이 사는 바입니다. 그 점 역시 강력한 장점입니다.
일정
수준의 표준화는 좋습니다. 소규모 팀이 아마도 표준화된 코드 스타일을 가지고 있어야 할 것입니다. 하지만 기술 커뮤니티에서는 일을 처리하는 '올바른' 방법에 대해 좀 지나치게 극성스러워지기 쉬운 게 사실입니다. 다양한 팀이 다양한 코드 스타일을 가지는 건 괜찮습니다. 다양한 앱에서 다양한 상태 관리 접근 방식을 사용하는 것 역시 괜찮습니다. 어떤 사람은 스페이스 대신 탭을 사용하는데, (*15분 동안 눈에 띌 정도로 헤매긴 했지만*) 그것 역시 괜찮습니다.
다시 말씀드리지만, 기술 커뮤니티에서는 어떤 아이디어에 대해 점점 경직된 자세를 취하고 조직에서 확립되어 절대 바뀌지 않는 지식이 늘어나고 이를 광신도적인 믿음으로 절대 바꾸지 못하도록 방어하게 되는 상황이 얼마나
자연스러운
일인지 간과하기 쉽습니다.
하지만 Flutter 커뮤니티에서는 그와 같은 현상을 전혀 본 적이 없습니다. 열린 마음, 관대함, 호기심, 철두철미한 자세를 가지고서 선입견이 없는 초심자의 마음가짐으로 문제에 접근하는 것이 모든 이에게 도움이 됩니다. 이는 뉴비에게 동기부여가 될 뿐 아니라, 어떤 주제 영역에 대해서만 이해도가 깊은 Flutter 베테랑의 이해 범위를 더욱 넓히고 증진시켜 줍니다. 또한 이런 접근 방식을 취하면 다른 사람들이 내 아이디어에 더 적극적으로 반응하게 됩니다. 우리는 Stack Overflow와 다양한 Slack 채널에서 종종 이처럼 긍정적인 반응을 보며 큰 보람을 느낍니다.
슈퍼파워로서의 취약점
도 함께 살펴보세요.
겸손한 자세
우리는 Flutter 개발자가 뉴비를 깔보지 않고 성심껏 도와주는 모습을 봅니다. 이건 정말 강력한 효과를 발휘합니다. 다른 사람들 앞에서 완벽해 보이고 싶어 하는 건 무척 자연스러운 일입니다. 하지만 너무 지나치면 진실된 모습을 숨기고 비현실적인 기대를 하는 문화로 이어집니다. 이와 같은 부분을 제대로 짚지 않고 방치하면 피드백 루프를 통해 통제 범위를 벗어날 수 있습니다. 사소하지만 남을 헐뜯는 듯한 표현이 그 발단이 될 수 있으며, 이를 방치하다가는 결국 가면증후군, 불안정함, 초조감, 냉혹함과 같은 잘못된 분위기가 만연하게 됩니다.
우리가 실수를 저지르는 다양한 Flutter Boring Show 에피소드를 통해 이런 점을 간파하셨기를 바랍니다. (우리 모두는 분명히 실수를 저지르기 때문입니다!) Boring Show의 콘셉트는 보기 좋게 편집하지 않고 개발자가 저지르는 온갖 실수, 막다른 길에 봉착하는 상황, 궁리하느라 시간이 걸리는 상황 등을 모두 포함해 개발 과정을 고스란히 그대로 보여주자는 것입니다.
이는 우리 팀이 예비 Flutter GDE(Google Developer Expert)에게서 찾는 주요 자질 중 하나입니다. 우리는 지구상에서 Flutter에 대해 가장 정통한 지식을 가진 Flutter GDE가 겸손함과 공감 능력을 보여주기를 기대합니다. 우리는 똑똑하지만 거만한 사람들이 Flutter 커뮤니티를 대표하기를 바라지 않습니다. 고맙게도, 우리는 예비 GDE 중 그 누구와도 문제와 갈등을 겪은 적이 없습니다. 겸손함의 미덕에 그에 담긴 메시지는 항상 공감을 불러일으켰으며, 어떤 의미인지 설명할 필요조차 없었습니다. 그게 바로 우리 커뮤니티의 성격을 잘 보여줍니다.
다행히도, 우리는 이런 점을 Flutter 엔지니어링 팀에서도 보게 됩니다. 한 가지 예만 들자면, 다른 업적도 많지만 Flutter의 창시자 중 한 명이자 예전에는 HTML 규격의 편집자로도 활동했던 Ian은 우리가 아는 여느 엔지니어처럼 그저 수수하고 겸손한 자세를 보여주는 엔지니어입니다. 아래 동영상에서 Ian을 만나볼 수 있는데, Slivers의 작동에 대해 분명히 모르는 부분도 있음을 솔직히 드러내 보입니다. 그런 진솔한 모습에서 그에 대해 실망하거나 존경심이 약해지는 게 아니라, 오히려 더욱 그를 존경하게 됩니다.
다른 기술의 존중
어떤 한 가지 기술에만 몰입하다 보면 다른 모든 기술이나 아이디어는 마치 하찮은 것인 양 여기기 십상입니다. 특히 경쟁 기술에 대해 그런 자세를 취하기 쉽습니다.
Flutter는 과대 광고나 광신적 열광이 필요하지 않습니다. Dart를 이용해 반응형 UI를 신속히 작성하거나, iOS와 Android(그리고 웹과 데스크톱)에서 작동하는 신속한 반응형 앱을 개발하거나, 풍부한 패키지 생태계를 쉽게 활용할 수 있도록 하는 등, Flutter를 사용할 타당한 이유가 많기 때문입니다.
하지만 Flutter에는 적합하지 않은 사용 사례를 다루는 사람들도 있으므로, Flutter 예찬자로서 할 수 있는 최선의 방안 중 하나는 이런 사람들에게는 Flutter를
사용하지 말라
고 설득하는 것입니다. 그러면 그들이 큰 불편을 겪지 않고 실망하지 않도록 할 수 있습니다. 그들은 기술적인 식견이 매우 넓어 공명정대한 시각으로 상황을 판단해서 올바른 방향으로 권장한다는 점을 깨닫고는
더욱
존중심을 보여줄 것입니다.
유감스럽게도, Filip은 이미 Flutter 커뮤니티에서 다른 기술 커뮤니티를 대놓고 조롱하는 모습을 본 적이
있습니다
. 하지만 그런 흐름이 만연한 것은 아니었으며, 커뮤니티에 속한 다른 이들이 그런 잘못된 모습에 이의를 제기했습니다. 그런 모습에서 우리는 커뮤니티의 건강한 성장을 낙관하게 됩니다.
이런 문화를 유지하는 이유는 뭘까요?
이런 커뮤니티 문화는 Flutter가 지닌 막대한 강점이기 때문입니다. 현실적으로 생각해봅시다. 어떤 기술에 대한 개발자의 경험은 기술 그 자체와 그 기술을 중심으로 하는 커뮤니티의 합입니다. 어떤 커뮤니티가 순전히 광적인 지지자, 우매한 추종자, 극단적인 과대 포장을 일삼는 사기꾼 같은 사람으로만 구성되어 있다면, 기술적 우수성이 어떻든 많은 이의 자발적인 참여를 이끌어내지 못할 것입니다.
건강한 커뮤니티는 탄탄하게 성장하는 커뮤니티입니다. 성장하는 동시에 점점 편협해지는 커뮤니티가 있다면 그 이면에는 숨겨진 비용이 있을 수 있습니다. 그렇습니다.
어느 정도
새로운 사람들이 참여하고 있지만, 만약 커뮤니티에서 뉴비를 더욱 진심으로 따뜻하게 맞이해주는 분위기라면 얼마나 많은 사람이
추가로
참여할지 상상하실 수 있으세요? 이 커뮤니티로
우리
의 발길을 이끈 이처럼 훌륭한 장점을 잘 보존하고 앞으로도 계속 새롭게 참여할 분들에게 문호를 활짝 열어놓고 싶습니다.
커뮤니티 문화를 어떻게 보존할 수 있을까요?
하향식 방법으로는 이런 소중한 가치를 보존할 길이 없습니다. Flutter는 공개 커뮤니티입니다. 우리 커뮤니티 고유의 가치는 구성원들이 매일 내리는 의사결정을 통해 보존될 것입니다. 우리 모두가 각자 새로운 구성원을 어떻게 환영할지, 지식을 어떻게 공유할지, 최근의 실수에 대해 얼마나 진실될지, 경쟁 프레임워크에 대해 얼마나 잘 말할지 등의 사소한 결정 말입니다. 그 모든 것이
합쳐져
Flutter 커뮤니티가 됩니다.
우리는 개방성, 겸손함, 생태계 내 타인에 대한 존중에 초점을 맞춤으로써 모든 이를 위해 훌륭한 개발자 환경을 계속 육성해 나갈 것입니다. 이 글을 통해 우리가 커뮤니티에서 목격하는 일들을 식별하고 거론함으로써 커뮤니티 문화의 보존에 일조하기를 바랍니다. 결국, 우리가 그런 훌륭한 문화를 보유하고 있음을 확실히 깨닫지 않고는 제대로 보존하기 어렵습니다.
오해를 피하기 위한 당부 사항
모범 사례와 훌륭한 코드를 보여주면 안 된다는 뜻이 아닙니다. 얼마든지 훌륭한 성과를 드러내실 수 있지만, 다른 사람을 깔보지는 말자는 뜻입니다.
어떤 표준을 마련하고 '일을 처리하는 주된 방법'을 정해 두어서는 안 된다는 뜻이 아닙니다. 얼마든지 표준을 마련할 수 있지만, 다른 대안을 무시하지는 말자는 뜻입니다.
열광적인 태도를 취하면 안 된다는 뜻이 아닙니다. Flutter를 열렬히 옹호하고 열광적 지지 의사를 밝힐 수 있지만, 경쟁 기술에 대한 혐오감이나 적대감을 보이지는 말자는 뜻입니다.
Flutter에 대해 들뜨고 기대감을 품어서는 안 된다는 뜻이 아닙니다. 얼마든지 신나는 마음을 표현할 수 있지만, Flutter가 특정 작업에는 적합한 도구가 아닐 수도 있는 상황과 이유는 정확히 알아야 한다는 뜻입니다.
Flutter가 계속 사용자 수를 늘려나가며 성장함에 따라, 우리 커뮤니티의 역사도 중요한 시점을 맞이하고 있으며
우리 모두가 각자
이처럼 중요한 역사의 순간에 중요한 역할을 맡고 있습니다! 모든 개발자에게 훌륭한 개발 환경을 계속 육성하기 위해 올바른 방향으로 성장해 나갑시다. 인터넷에서 다른 사람들과 대화할 때는
개방성
,
겸손함
,
다른 생태계에 대한 존중
을 원칙으로 삼으시기 바랍니다. Flutter는
행동 강령
을 마련해 두고 있으며, Flutter 커뮤니티에서 언짢은 느낌을 받거나 부당한 일을 당하신 경우 우리를 비롯해 팀의 누군가에게 알려주십시오. Flutter 커뮤니티에 처음 오신 분이라면 진심으로 환영합니다! 함께하게 되어 무척 반갑고 기쁩니다.
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed