달레 스터디는 개발자들이 함께 배우고, 만들고, 성장하는 오픈소스 커뮤니티입니다. 저희 프로젝트에 관심 가져주셔서 감사합니다.
이 문서는 달레 스터디의 모든 저장소에 공통으로 적용되는 기여 안내입니다.
평범한 개발자들이 함께 만드는 특별한 프로젝트
달레 스터디는 특정 수준 이상의 실력자만 참여하는 엘리트 집단이 아닙니다. 예비 개발자, 주니어, 커리어 전환을 준비하는 분까지 서로 다른 출발점을 존중합니다. 기여하려는 마음이면 충분합니다.
코드만이 기여는 아닙니다.
- 버그를 발견해서 이슈로 남기기
- 문서의 어색한 문장 고치기
- 다른 사람의 PR 리뷰하기
- 번역, 디자인, 테스트 작성
- 밋업에서 경험 나누기
작은 기여가 모여 프로젝트와 기여자를 함께 성장시킵니다.
good first issue라벨이 붙은 이슈부터 살펴보세요. 범위가 작고 시작 지점이 명확한 것들입니다- 이슈에 댓글로 "제가 해볼게요" 한 줄만 남겨주세요. 다른 분과 작업이 겹치는 걸 막을 수 있습니다
- 저장소의 README와 CONTRIBUTING을 확인하세요. 개발 환경 설정과 실행 방법은 저장소마다 다릅니다. 저장소에 별도 안내가 있으면 그쪽이 우선합니다
- 막히면 물어보세요. 디스코드에 오시면 됩니다
어떤 이슈를 골라야 할지 모르겠다면, 그것부터 물어보셔도 좋습니다.
이슈 확인 → 브랜치 생성 → 작업 → PR 생성 → 리뷰 → 병합
- 기본 브랜치(
main)에 직접 커밋하지 말고 브랜치를 만들어 주세요 - 브랜치 이름은
feat/add-user-avatar처럼 짧고 알아볼 수 있게 지어주세요 - 작업 중간에도 PR을 열 수 있습니다. 아직 완성되지 않았다면 Draft PR로 열어두세요
Conventional Commits 형식을 따릅니다.
<type>: <description>
feat · fix · docs · refactor · test · chore · ci
feat: add user avatar upload
fix: resolve login redirect loop
docs: update installation guide
- 제목은 50자 이내, 명령형으로 (
added말고add) - 끝에 마침표를 찍지 않습니다
하나의 PR은 하나의 목적만 담아주세요. 리팩터링과 기능 추가가 섞이면 리뷰가 어려워집니다.
- 변경 파일 10개, 400줄 이내를 권장합니다. 커지면 나누는 걸 고려해 주세요
- PR 본문에 무엇을 왜 바꿨는지 적어주세요. 어떻게 바꿨는지는 코드가 말해줍니다
- 관련 이슈가 있다면
Closes #123으로 연결해 주세요 - 저장소에 CI가 있다면 통과한 뒤 리뷰를 요청해 주세요
리뷰는 달레 스터디에서 가장 중요한 활동입니다. 실무와 가장 가까운 경험이면서, 혼자서는 얻기 어려운 것을 얻는 자리이기도 합니다.
리뷰를 받는 분께
- 리뷰는 코드에 대한 것이지 사람에 대한 것이 아닙니다
- 동의하지 않으면 그렇게 말씀하세요. 리뷰어가 항상 옳지는 않습니다
- 이해되지 않는 리뷰에는 되물어 주세요. 질문은 실례가 아닙니다
리뷰를 하는 분께
- 먼저 잘한 부분을 봐주세요. 좋은 코드를 알아보는 것도 리뷰입니다
- 명령이 아니라 제안으로 적어주세요. "이렇게 바꾸세요"보다 "이렇게 하면 어떨까요?"
- 반드시 고쳐야 하는 것과 취향의 문제를 구분해서 표시해 주세요
- 리뷰 경험이 적어도 괜찮습니다. "이 부분이 이해가 안 돼요"도 훌륭한 리뷰입니다
리뷰를 받았다면 다른 분의 PR도 한 번 봐주세요. 받은 도움을 되돌려주는 선순환이 이 커뮤니티를 지속 가능하게 만듭니다.
AI 사용을 제한하지 않습니다. 실무에서 이미 쓰는 도구이고, 잘 쓰는 법을 익히는 것도 배움의 일부입니다. 달레 스터디의 프로젝트들도 상당 부분 AI의 도움을 받아 만들어졌습니다.
다만 몇 가지만 지켜주세요.
설명할 수 있는 코드만 제출해 주세요
가장 중요한 원칙입니다. 리뷰에서 "이 부분은 왜 이렇게 하셨어요?"라는 질문에 답할 수 있어야 합니다. 답할 수 없다면 아직 제출할 때가 아닙니다.
동작하는 코드를 얻는 것은 쉬워졌지만, 왜 그렇게 동작하는지 아는 것은 여전히 각자의 몫입니다. 그리고 그게 이 커뮤니티에 오신 이유일 것입니다.
직접 실행해 보고 제출해 주세요
AI가 만든 코드는 그럴듯해 보이지만 실제로는 동작하지 않거나, 존재하지 않는 API를 쓰거나, 이 프로젝트의 규칙을 어기는 경우가 흔합니다. 검증은 제출하는 분의 몫입니다.
검증하지 않은 코드를 올리면 그 부담이 리뷰어에게 넘어갑니다. 리뷰어도 자원봉사자입니다.
크게 활용했다면 PR에 적어주세요
"이 부분은 AI로 작성하고 제가 검토했습니다" 정도면 충분합니다. 감점 요소가 아니라 리뷰어에게 도움이 되는 정보입니다. 어디를 더 주의 깊게 봐야 할지 알 수 있으니까요.
이슈와 리뷰에는 직접 쓴 말을 남겨주세요
AI가 생성한 긴 분석을 그대로 붙여넣는 것은 피해주세요. 읽는 사람의 시간을 쓰게 만들지만 정작 정보량은 적은 경우가 많습니다. 짧아도 직접 쓴 문장이 낫습니다.
막힌 지점을 그대로 물어봐도 됩니다
AI에게 답을 얻지 못했다면 디스코드에 물어보세요. "AI한테 물어봤는데 이해가 안 돼요"도 좋은 질문입니다. 사람에게 물어보는 것을 부끄러워하지 않으셨으면 합니다.
구성원들이 서로 다른 시간대에 살고 있어서, 기본은 깃허브와 디스코드를 통한 비동기 소통입니다.
- 바로 답이 오지 않아도 괜찮습니다. 며칠 걸릴 수 있습니다
- 진행 상황을 남겨주세요. 늦어져도, 하기 어려워졌어도 괜찮습니다. 한 줄만 남겨주시면 됩니다. 조용히 사라지는 것만 피해주세요
- 맡은 일을 내려놓아도 됩니다. "제가 못 하게 됐어요"는 전혀 문제가 되지 않습니다
주말에는 디스코드 음성 채널이 열립니다. 한국 시간 토요일 아침부터, 북미 동부 시간 일요일 밤까지입니다. 페어 프로그래밍이나 즉석 코드 리뷰가 필요하면 이때 오시면 좋습니다.
- 서로 다른 출발점을 존중합니다. 모르는 것은 흠이 아닙니다
- 질문에 "그것도 모르세요?"라고 답하지 않습니다
- 실수는 누구나 합니다. 되돌릴 수 있는 실수라면 더욱 그렇습니다
기여를 이어가시면 자연스럽게 다음 단계로 이어집니다.
| 단계 | 어떻게 |
|---|---|
| 기여자 | 이슈에 PR을 보내면 리뷰해 드립니다 |
| 정기 기여자 | 몇 번 함께 작업하면 조직 멤버로 초대하고 이슈 분류 권한을 드립니다 |
| 메인테이너·운영진 | 한 영역을 맡고 싶으시면 병합·배포 권한과 함께 운영진으로 모십니다 |
정해진 인원도, 정해진 기간도 없습니다. 한 번 기여하고 가셔도 그 기록은 남습니다.
- 디스코드: https://dales.link/discord
- 웹사이트: https://dalestudy.com
- 링크드인: https://linkedin.com/company/dalestudy
- 저장소: https://github.com/DaleStudy
여러분의 첫 기여를 기다리고 있겠습니다.