permissions-management

2 개의 포스트

figma

코드, 장인정신, 그리고 중첩 폴더의 제작 | Figma 블로그 (새 탭에서 열림)

Figma의 중첩 폴더는 단순한 파일 정리 기능이 아니라 콘텐츠 구조와 권한 모델을 재설계한 대규모 제품 작업이었다. 개발 과정에서 팀은 전통적인 순차형 프로세스 대신 코드로 아이디어를 빠르게 검증하고, 직무 경계를 유연하게 넘나들며, 인수인계를 대화 중심 협업으로 바꾸었다. 그 결과 변화하는 AI·코드 중심 환경에서도 복잡한 기능을 빠르게 구체화하고 출시할 수 있었다. ## 중첩 폴더가 단순한 기능이 아니었던 이유 - 중첩 폴더는 규모가 커지는 팀이 파일과 프로젝트를 계층적으로 정리하도록 돕는 기능이다. - 구현 범위는 파일 브라우저에 그치지 않았다. - 콘텐츠 구조 - 관리자 제어 - 공유 방식 - 권한 처리 - 핵심 인프라 - 따라서 기존 모델에 폴더 한 단계만 추가하는 방식이 아니라, Figma의 콘텐츠 및 권한 모델을 근본적으로 재검토해야 했다. ## 변화한 제품 개발 환경 - 프로젝트 초기에는 일반적인 순차형 개발 방식을 따랐다. - 제품팀이 요구사항을 정의 - 디자인팀이 사용자 경험을 설계 - 설계가 충분히 정리된 뒤 엔지니어링 시작 - 그러나 개발 중 팀의 자원과 우선순위가 달라졌다. - AI 네이티브 기능 개발로 인력이 분산됨 - Figma Make, MCP 서버, 에이전트 스킬, 코드베이스 프로토타이핑 등이 아이디어를 빠르게 구현하는 수단으로 부상함 - 아이디어는 더 이상 완성된 문서에서만 출발하지 않고, 프로토타입·코드·Slack의 간단한 스케치에서도 시작될 수 있게 되었다. ## 코드로 먼저 검증하기 - 코드 작성 비용이 낮아지면서 논쟁이나 추상적인 기획을 오래 이어가기보다 실제 구현물을 빠르게 만들 수 있게 되었다. - 팀은 아이디어를 검증하기 위해 초기부터 pull request(PR)를 생성했다. - PR은 단순한 최종 코드 리뷰 수단이 아니라 다음을 확인하는 실험 도구로 활용되었다. - 기술적으로 가능한지 - 사용자 경험이 자연스러운지 - 권한과 데이터 구조에 문제가 없는지 - 여러 대안 중 어떤 방향이 적절한지 - 실제 동작하는 결과물을 바탕으로 논의하면서 의사결정 속도와 피드백의 구체성이 높아졌다. ## 직무 경계를 유연하게 바꾸기 - 역할을 엄격히 분리하기보다 문제 해결에 필요한 사람이 해당 영역의 결정을 맡았다. - 엔지니어가 디자인 관련 결정을 내리고, 디자이너가 직접 코드를 작성하는 등 업무 범위가 서로 겹쳤다. - 제품 관리자는 일상적인 실행 관리에서 일부 벗어나 더 큰 전략적 질문에 집중했다. - 이 방식은 각 직무의 전문성을 없애는 것이 아니라, 프로젝트 상황에 따라 책임을 유연하게 배분하는 접근이다. ## 인수인계 대신 지속적인 대화 - 디자인 완료 후 개발로 넘기는 식의 일방적인 handoff를 줄였다. - 역할의 경계가 흐려지면서 팀원들은 서로에게 배우는 동시에 자신의 전문 지식을 공유하는 관계가 되었다. - 평소 각 직무가 독점하던 작업 방식과 판단 기준을 공개함으로써 협업에 필요한 신뢰를 쌓았다. - 결과적으로 디자인, 제품, 엔지니어링이 단계별로 분리된 프로세스가 아니라 지속적인 대화와 공동 결정에 가까워졌다. ## 실용적인 시사점 복잡한 기능을 개발할 때는 완벽한 사전 설계만 기다리기보다 작은 PR과 프로토타입으로 가설을 검증하는 것이 효과적이다. 또한 직무별 책임을 고정하기보다 문제의 성격에 따라 역할을 유연하게 조정하고, 인수인계 문서만으로 소통하기보다 실행 과정에서 지속적으로 대화하는 협업 구조를 만드는 것이 중요하다.

discord

멤버, 중재자, 관리 (새 탭에서 열림)

디스코드 서버의 권한 설정은 무질서한 공간과 안전하고 활발한 커뮤니티를 가르는 핵심 요소다. 글은 권한을 일반 멤버, 운영진(모더레이터), 관리자 세 범주로 나누고, 각 역할에 필요한 권한만 부여하라고 권장한다. 특히 관리자 권한은 서버 전체에 큰 영향을 주므로 신뢰할 수 있는 사람에게만 제한적으로 제공해야 한다. ## 일반 멤버에게 필요한 기본 권한 일반 멤버는 서버에서 대화하고 음성 채널과 앱을 이용하는 데 필요한 권한을 갖는다. - **채널 보기(View Channels)**: 채널을 보고 접근할 수 있게 한다. - **메시지 보내기(Send Messages)**: 텍스트 채널에 글을 작성할 수 있다. - **공개 스레드 만들기(Create Public Threads)**: 주제에서 벗어난 대화를 별도 스레드로 분리할 수 있다. - **스레드에서 메시지 보내기(Send Messages in Threads)**: 스레드를 만든 뒤 그 안에서 대화할 수 있도록 함께 활성화해야 한다. - **초대 만들기(Create Invite)**: 다른 사용자를 서버에 초대할 수 있다. - **닉네임 변경(Change Nickname)**: 해당 서버에서 사용할 개인 닉네임을 설정할 수 있다. ## 음성 채널 및 활동 권한 음성 채널을 운영하는 서버라면 다음 권한을 일반 멤버에게 제공할 수 있다. - **연결(Connect)**: 음성 채널에 입장할 수 있다. - **말하기(Speak)**: 음성 채널에서 마이크를 사용할 수 있다. - **영상(Video)**: 웹캠, 화면 공유, 게임 스트리밍을 사용할 수 있다. - **외부 사운드 사용(Use External Sounds)**: 다른 서버의 사운드보드 음향을 사용할 수 있다. - **음성 감지 사용(Use Voice Activity)**: 음성이 감지되면 자동으로 마이크가 활성화된다. - 비활성화하면 사용자는 푸시 투 토크 방식으로만 말할 수 있다. - **음성 채널 상태 설정(Set Voice Channel Status)**: 현재 음성 채널의 상황이나 주제를 상태로 표시할 수 있다. ## 앱과 디스코드 활동 권한 - **애플리케이션 명령어 사용(Use Application Commands)**: 슬래시 명령어를 비롯한 대화형 앱을 사용할 수 있다. - **활동 사용(Use Activities)**: 체커와 같은 디스코드 내 게임 및 활동을 이용할 수 있다. - **외부 앱 사용(Use External Apps)**: 계정에 저장된 외부 앱으로 메시지를 작성할 수 있다. - 이 권한을 꺼도 앱은 사용할 수 있지만, 앱이 작성한 메시지는 해당 사용자에게만 표시된다. ## 모더레이터에게 필요한 운영 권한 서버 규모가 커지면 일부 멤버에게 커뮤니티 관리 권한을 부여할 수 있다. 대부분의 조치는 되돌릴 수 있지만, 차단이나 대규모 알림처럼 영향이 큰 권한은 신중히 부여해야 한다. - **메시지 관리(Manage Messages)**: 메시지를 고정·고정 해제하거나 삭제할 수 있다. - **스레드 관리(Manage Threads)**: 스레드 이름 변경, 보관, 삭제가 가능하다. - **표현물 만들기(Create Expressions)**: 사용자 지정 이모지, 스티커, 사운드보드 음향을 업로드할 수 있다. - **대규모 멘션 사용**: `@everyone`, `@here`, 전체 역할 멘션을 사용할 수 있다. - **멤버 추방·가입 승인·거절**: - **추방(Kick)**: 사용자를 내보내지만 초대를 받으면 다시 가입할 수 있다. - **승인·거절**: 가입 신청이 필요한 서버에서 사용된다. - **멤버 차단(Ban Members)**: 사용자를 서버에서 제거하고 재가입을 막는다. 이후 서버 설정에서 차단을 해제할 수 있다. - **멤버 타임아웃(Timeout Members)**: 지정된 시간 동안 메시지 작성, 음성 채널 입장 등 커뮤니티 활동을 제한한다. - **닉네임 관리(Manage Nicknames)**: 다른 사용자의 닉네임을 변경할 수 있으며, 사용자가 직접 설정한 닉네임보다 우선 적용된다. - **감사 로그 보기(View Audit Log)**: 메시지 삭제, 스레드 생성, 이모지 이름 변경 등 서버에서 발생한 작업 이력을 확인할 수 있다. ## 모더레이터의 음성 채널 관리 - **우선 발언자(Priority Speaker)**: 푸시 투 토크를 사용하는 동안 다른 사람의 음량을 낮춰 발언을 더 잘 들리게 한다. - **멤버 음소거(Mute Members)**: 특정 사용자의 마이크를 끈다. 해당 사용자는 다른 사람의 음성은 들을 수 있다. - **멤버 청각 차단(Deafen Members)**: 마이크를 끄고 다른 사람의 음성도 듣지 못하게 한다. - **멤버 이동(Move Members)**: 사용자를 다른 음성 채널로 이동시킨다. - 이동 대상자는 이동하려는 채널에 접속할 권한도 가지고 있어야 한다. ## 이벤트 관리 권한 - **이벤트 만들기(Create Events)**: 커뮤니티 이벤트를 예약할 수 있다. - **이벤트 관리(Manage Events)**: 생성된 이벤트를 수정하거나 삭제할 수 있다. - 이벤트 생성 권한만으로는 생성 후 내용을 수정할 수 없다. ## 관리자 권한은 최소한으로 부여 관리자 권한은 메시지, 이모지, 채널 등 서버의 중요한 요소를 수정하거나 삭제할 수 있는 강력한 권한이다. - 커뮤니티에 실제로 필요한 권한만 활성화해야 한다. - 누구에게나 일괄적으로 관리자 권한을 부여하지 말고, 신뢰할 수 있는 사람을 선별해야 한다. - **서버 관리(Manage Server)** 권한은 서버의 주요 설정을 변경할 수 있으며, 예시로 서버 이름 변경 등이 포함된다. - 제공된 글 내용은 서버 관리 권한의 세부 항목을 설명하는 중간에서 끝나므로, 관리자 권한 전체 목록은 확인할 수 없다. 권장 방식은 일반 멤버에게는 대화와 참여에 필요한 권한만 주고, 모더레이터에게는 삭제·제한·음성 관리 권한을 추가하며, 서버 설정을 바꾸는 관리자 권한은 최소 인원에게만 부여하는 것이다.