기간: 2024년 2월부터 3월까지 진행됩니다 :)
이 스터디는 개발 프로젝트를 진행할 때 필요한 기초 개념을 학습하고 이를 실제 프로젝트에 적용하는 것을 목표로 합니다. 주요 주제로는 소프트웨어 프로세스 모델, 깃 브랜치 전략, 코드 컨벤션 등이 포함됩니다. 이 스터디를 통해 참여자들은 프로젝트 관리 및 개발 과정에서 발생할 수 있는 다양한 문제를 해결할 수 있는 능력을 향상시킬 것입니다.
어느새 졸업 학년이 되어서 캡스톤 디자인 프로젝트를 앞두고 있는 대학교 후배들에게 스터디를 진행해주기로 했다. 나름의 학과 선배이자 개발자 선배 노릇으로 후배들에게 어떤 것을 가르치면 좋을까... 라는 생각으로 3 ~ 4학년의 나는 무엇이 부족했나 돌아보았다. 솔직히 지금도 그렇지만 학부생 시절의 나는 개발자로는 약점 보다 장점을 세는 게 더 빠른 사람이었다... Never Test Yes Build and Fix No Design Pattern... 그 결과 난잡했던 스파게티 코드 요리사였지 하하. 그로부터 2년이 채 안 지났는데 과연 내가 누군가를 가르칠 자격이 있을까. 사실 소프트웨어 개발자에게 가장 중요한 3가지를 뽑으라면 언어, 프레임워크, Git이라고 생각한다. 그 중 Git이야 책을 한두 번 읽어보고 적용해보면 기본은 하겠지만 언어와 프레임워크를 모르는 개발자는 개발자라고 할 수도 없다. 그렇다고 언어와 프레임워크를 내가 가르치자니 너무 버거운 주제들이기에 (언어와 프레임워크가 다른 경우도 있고) 한수 양보해서 협업에서 공통되게 사용하는 Git 사용법, 브랜치 전략, GitHub Actions, 로그 등등 기초적인 걸 알려주기로 했다. 2월부터 3월까지의 짧은 스터디였지만 과제를 내주고 피드백하면서 나도 공부가 많이 되었다. 많은 내용을 가르친 것도 아니지만 내가 해줄 수 있는 건 여기까지인 것 같다. 이제부터는 아이들이 배운 내용을 협업에 직접 적용해보며 더 성장해나가기를 바래본다. 내 친구들이 많은 걸 몰라서 해매던 나와 같은 길을 걷지 않았으면 한다. |
---|
추천 음악: 언니네 이발관 - 영원히 그립지 않을 시간
- 개발 프로젝트를 성공적으로 이끌기 위한 기초 개념 습득
- 실제 프로젝트에 적용 가능한 지식과 기술 향상
- 팀원 간 협업과 의사소통 능력 향상
이상현 | 김한열 | 이신행 | 김영중 |
- 매주 일요일 스터디 리더가 주제를 선정합니다. 주제는
프로젝트 관리
깃 사용 방법
코드 스타일 가이드
등 다양한 개념에 관한 것이 될 수 있습니다. - 주제를 선정한 참여자는 해당 주제에 대한 학습 자료를 찾아 다른 참여자와 공유합니다. 이는 온라인 자료, 도서, 블로그 글, 강의 등 다양한 형태일 수 있습니다.
- 참여자들은 주어진 학습 자료를 공부하고 스터디 시간에 함께 토론합니다. 의견 교환이나 추가적인 질문을 통해 개념을 보다 잘 이해하고 적용 방법을 논의합니다.
- 학습한 내용을 바탕으로 각자의 프로젝트에 적용합니다. 이때 발생한 경험과 교훈을 정리하여 Markdown 파일로 작성합니다.
- 각 참여자는 스터디에서 적용한 내용을 정리한 Markdown 파일을 해당 GitHub 리포지토리에 업로드합니다. 이를 통해 다른 참여자들과 지식을 공유하고 피드백을 주고받습니다.
주차 | 과제 |
---|---|
1주차 | GitHub issue templates / Git Branch 전략 / Naming convention |
2주차 | 1주차 과제 프로젝트 적용 실습 |
3주차 | Markdown / Swagger(Spring) UI Resource(Android) / GitHub Actions |
4주차 | 기술 블로그 & GitHub README /Logging /Git Squash & Rebase & Stash |
5주차 | Fork와 브랜치의 차이점 / Git 히스토리 관리 실습 / Readme 관리 실습 |
제출하는 파일은 루트에 {이름}
폴더를 생성한 후 그 아래에 week{week}-assignment.md
라는 형식을 지켜주세요.
├── README.md
├── assignment
│ ├── week1-assignment.md
│ ├── week2-assignment.md
│ ├── week3-assignment.md
│ └── week4-assignment.md
├── kimhanyeol
│ ├── week1-assignment.md
│ ├── week2-assignment.md
│ ├── week3-assignment.md
│ └── week4-assignment.md
├── ...
...
이 리포지토리를 Fork하여 자신의 GitHub 계정으로 복제합니다. 스터디 주제에 대한 자료 및 의견을 공유합니다. 스터디 결과물을 Markdown 파일로 작성하여 해당 리포지토리에 업로드합니다. 다른 참여자들의 작업물을 확인하고 피드백을 제공합니다.
과제물을 제출할 때는 main 브랜치가 아닌 KGU Developer의 winter-junior-study repository에 {이름}
브랜치를 생성하여 제출합니다.
주차별 과제를 진행할 때는 fork한 본인 repository의 {이름}
브랜치에서 {주차}
브랜치를 생성해서 진행해주세요. 주차
브랜치에서 커밋 단위는 과제 1개로 해주세요.
과제별 커밋 형식은 과제: {과제} 제출
입니다.
주차별 과제를 모두 완료하면 KGU Developer의 winter-junior-study repository의 {이름}
브랜치로 PR합니다. 이때 PR 형식은 [{해당 주차}] 과제 완료
입니다.
PR 후에 fork한 repository를 Synk fork해주는 걸 잊지 마세요.
최종 PR을 할 때는 [{이름}] 스터디 수료
와 같은 PR 형식을 지켜주세요. 최종 스터디 종료 전까지는 개인 브랜치에서 과제를 진행하다가 스터디 종료시 main 브랜치로 PR할 예정입니다 :)
ex)
브랜치명: LeeSanghyun
브랜치명: 1주차
과제별 커밋: 과제: Git Branch 전략 제출
과제별 커밋: 과제: Naming convention 제출
과제별 커밋: 과제: GitHub issue templates 제출
PR to {이름} 브랜치: [1주차] 과제 완료
PR to {main} 브랜치: [이상현] 스터디 수료
디렉터리 구조:
├── README.md
├── assignment
│ ├── ...
├── LeeSanghyun
│ ├── week1-assignment.md
| ├── ...
스터디 참여자는 매주 주어진 주제에 대해 공부하고 스터디 시간에 참여합니다. 모든 참여자는 적극적으로 토론에 참여하고 의견을 공유해야 합니다. 스터디 결과물은 정확하고 명확하게 작성되어야 하며, 다른 참여자들이 이해하기 쉬운 형태여야 합니다. 리포지토리 내의 모든 참여자는 서로를 존중하고 친절하게 대하며, 건설적인 피드백을 제공합니다.