Skip to content

Commit d742cd9

Browse files
committed
Merge pull request #2 from cloud-club/template/cleanup-for-7th
- 루트 디렉토리 README 작성 - 각 type에 맞게 디렉토리 구분 - template에 해당하는 example markdown 생성
2 parents cb89e5d + 4efb349 commit d742cd9

File tree

7 files changed

+446
-1
lines changed

7 files changed

+446
-1
lines changed

ISSUE/EXAMPLE_ISSUE.md

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
## Summary
2+
3+
cross-AZ 통신에 대해서 보다보니 AWS VPC CNI 를 자연스럽게 보게 되었습니다.
4+
5+
A pod -> B pod 로 갈 때 다른 data plane 이라면 cross-AZ 통신이 되는데 이때 트래픽이 외부로 흘러가지 않고 내부로 통신할텐데 이 과정에 대해서 궁금한 상황입니다.
6+
7+
## Description
8+
9+
### Context
10+
11+
큰 그림에서의 트래픽 흐름은 설명할 수 있지만 좀 더 자세하게 들여다보면 제대로 이해하지 못한 것 같아요
12+
13+
### What I tried
14+
15+
- AWS VPC CNI 에 대해서 공식 문서를 찾아보았지만, 제가 찾은 문서에서는 이에 대한 설명이 없었습니다.
16+
17+
### Resources/References
18+
19+
- https://github.com/aws/amazon-vpc-cni-k8s/blob/master/docs/cni-proposal.md
20+
- https://medium.com/techblog-hayleyshim/aws-eks-networking-698368b77723
21+
- https://gasidaseo.notion.site/Istio-Life-of-a-packet-6ad9808e14594296bf854dcc203cab71
22+
23+
### Additional Context
24+
25+
- istio ingress-gateway만 있는 상태에서 req에 대한 res를 주는 과정에서의 흐름
File renamed without changes.

PR/EXAMPLE_PR.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
## Summary
2+
3+
- aviator-service CRUD 기능 연동
4+
- provision_types, provision_controller 리팩토링
5+
6+
## Description
7+
8+
1. provision_types.go
9+
- 기존 ProvisionSpec부분 필드 추상화
10+
- 불필요한 Status 필드 제거하고 Phase 필드 추가
11+
2. provision_controller.go
12+
- ncpService Reconciler 객체에 포함시켜 초기화
13+
- 기존 Verb를 통해 Action이 수행되던 부분을 Status에 Phase필드 추가해서 동작하도록 변경
14+
15+
## etc
16+
17+
- Resolves: #커밋 번호
18+
- See Also: #커밋 번호
File renamed without changes.

README.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,34 @@
1-
# template
1+
# Cloud Club Study/Project Template List
2+
3+
스터디/프로젝트 별 GitHub Repository를 관리할 때 사용할 수 있는 템플릿 목록입니다.
4+
예시이며 반드시 템플릿의 형태를 따를 필요는 없습니다.
5+
6+
📢 **GitHub의 적극적인 관리는 동아리의 성장과 지속가능성에 큰 도움을 줍니다!** 🚀
7+
8+
## 1. README.md
9+
10+
- [TEMPLATE_README.md](./README/TEMPLATE_README.md)로 템플릿을 확인해보세요!
11+
- [EXAMPLE_README.md](./README/EXAMPLE_README.md)로 템플릿에 따라 작성된 예시를 확인해보세요!
12+
- 가상의 홈 서버 구축 프로젝트를 기준으로 작성되었습니다.
13+
14+
### 1-1. Additional Reference
15+
16+
- 6기 [istio study](https://github.com/ByeongHunKim/Cloudclub-istio-skyline)
17+
- 6기 [observability study](https://github.com/cloud-club/o11y-basic-study)
18+
19+
## 2. Issue Template
20+
21+
- [TEMPLATE_ISSUE.md](./ISSUE/TEMPLATE_ISSUE.md)로 템플릿을 확인해보세요!
22+
- [EXAMPLE_ISSUE.md](./ISSUE/EXAMPLE_ISSUE.md)로 템플릿에 따라 작성된 예시를 확인해보세요!
23+
- 6기 병훈님의 [istio study](https://github.com/ByeongHunKim/Cloudclub-istio-skyline) Issue 일부를 차용했습니다.
24+
25+
### 2-1. Additional Reference
26+
27+
- [6기 observability study Issue](https://github.com/cloud-club/o11y-basic-study/issues/11)
28+
- [wasm contribute guide](https://github.com/wasmCloud/wasmCloud/blob/main/CONTRIBUTING.md)
29+
30+
## 3. Pull Request Template
31+
32+
- [TEMPLATE_PR.md](./PR/TEMPLATE_PR.md)로 템플릿을 확인해보세요!
33+
- [EXAMPLE_PR.md](./PR/EXAMPLE_PR.md)로 템플릿에 따라 작성된 예시를 확인해보세요!
34+
- 4기 [Aviator 스터디](https://github.com/cloud-club/Aviator)의 PR 일부를 차용했습니다.

README/EXAMPLE_README.md

Lines changed: 292 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,292 @@
1+
# 클라우드 클럽 7기 스터디 템플릿 - (프로젝트형 스터디)
2+
3+
![image](https://github.com/user-attachments/assets/f06df1a0-be1c-4027-8403-915584833069)
4+
5+
## 1. Introduction
6+
7+
> [!NOTE]
8+
>
9+
> ### 스터디 소개
10+
>
11+
> 안녕하세요! 클라우드 클럽 7기 클둥이 여러분!
12+
> 홈서버 프로젝트 스터디에 오신 것을 환영합니다!
13+
> 저희 스터디는 클라우드 기술의 기반이 되는 네트워크와 인프라를
14+
> 실습을 통해 깊이 있게 학습하는 것을 목표로 합니다.
15+
16+
---
17+
18+
<br>
19+
20+
### 🕑 Schedule & Members
21+
22+
주 1회 스터디를 진행하며 비대면 하루, 대면 하루 이렇게 진행합니다.
23+
24+
- 매주 월요일 저녁 (22:00~23:00) 주간회고를 짧게 가집니다.
25+
26+
- 격주 일요일 저녁 1회 (18:00~20:30) 서울 역삼 캠퍼스인근 스터디룸이나 카페에서 홈서버 모각코 프로젝트를 진행합니다.
27+
28+
- 최대 6명의 멤버를 모집합니다. **전공 무관**
29+
30+
<br>
31+
32+
### Who need this study?
33+
34+
> 아래 요건에 2개 이상 해당되면 홈서버 프로젝트에 합류해보세요!
35+
36+
- 정기적으로 오프라인에서 같이 프로젝트 개발을 통해 팀원간 지식 및 노하우를 공유하고 싶으신 분
37+
38+
- 홈 서버를 직접 구축해보면서 클라우드의 기반이 되는 네트워크와 인프라를 심도있게 배우고 싶은 사람
39+
40+
- 클라우드 개발직군과 관련성 깊은 토이 프로젝트를 진행하고 싶으신 분
41+
42+
- 언어 및 프레임워크 사용 경험은 있으나 기반 기술(CS)에 대한 이해가 부족한 분
43+
44+
- 도커, 컨테이너 개념을 포함하여 현대적인 홈 서버 구축에 필요한 기술들을 실습 위주로 역량을 키워나가고 싶은 분
45+
46+
<br>
47+
48+
---
49+
50+
## 2. 👽 Our Squad
51+
52+
<table>
53+
<tr>
54+
<td align="center"><a href="https://github.com/markson-42"><img src="https://avatars.githubusercontent.com/u/84828274?v=4" width="100px;" alt=""/><br /><sub><b>
55+
👑스터디장</b></sub></a><br /></td>
56+
<td align="center"><a href="https://github.com/markson-42"><img src="https://avatars.githubusercontent.com/u/84828274?v=4" width="100px;" alt=""/><br /><sub><b>
57+
클둥이1</b></sub></a><br /></td>
58+
<td align="center"><a href="https://github.com/eunah320"><img src="https://avatars.githubusercontent.com/u/84828274?v=4" width="100px;" alt=""/><br /><sub><b>
59+
클둥이2</b></sub></a><br /></td>
60+
<td align="center"><a href="https://github.com/daheepk"><img src="https://avatars.githubusercontent.com/u/84828274?v=4" width="100px;" alt=""/><br /><sub><b>
61+
클둥이3</b></sub></a><br /></td>
62+
<td align="center"><a href="https://github.com/ebeleey"><img src="https://avatars.githubusercontent.com/u/84828274?v=4" width="100px;" alt=""/><br /><sub><b>
63+
클둥이4</b></sub></a><br /></td>
64+
</tr>
65+
</table>
66+
67+
<br>
68+
69+
## 3. ⛳ Curriculum (Season - 1)
70+
71+
### Season 1 : 25.03.02 ~ 25.05.05 : 홈 서버 구축 프로젝트
72+
73+
| Week | Learning Content Title | Details of Learning Content | Completion |
74+
| ------ | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
75+
| Week 1 | 홈 서버 기초와 우분투 설치 | - 홈 서버의 개념과 장점 이해<br>- 우분투 서버 ISO 다운로드 및 부팅 USB 생성<br>- BIOS 설정 및 우분투 서버 설치 과정 실습<br>- 초기 시스템 설정 (시간대, 언어, 키보드 레이아웃) ||
76+
| Week 2 | 우분투 서버 관리와 보안 | - 사용자 계정 생성 및 권한 관리 (sudo 설정)<br>- 파일 시스템 구조 이해 및 디스크 파티셔닝<br>- UFW(Uncomplicated Firewall) 설정 및 기본 규칙 생성<br>- SSH 보안 강화 (키 기반 인증, 포트 변경, fail2ban 설치) ||
77+
| Week 3 | 네트워크 기초와 라우터 설정 | - IP 주소, 서브넷, DHCP 개념 학습<br>- 홈 라우터 관리 인터페이스 접속 및 기본 설정<br>- 포트 포워딩 설정 (SSH, HTTP, HTTPS)<br>- 동적 DNS 서비스 설정 및 도메인 연결 ||
78+
| Week 4 | 웹 서버 구축 - Apache/Nginx | - Apache와 Nginx의 차이점 및 선택 기준<br>- 선택한 웹 서버 소프트웨어 설치 및 기본 설정<br>- 가상 호스트 설정 및 간단한 웹 페이지 배포<br>- [과제1] : SSL/TLS 인증서 발급 및 HTTPS 설정 ||
79+
| Week 5 | 도커 기초와 컨테이너화 | - 도커 설치 및 기본 명령어 학습 (pull, run, ps, images)<br>- Dockerfile 작성 및 이미지 빌드 실습<br>- 도커 네트워크 및 볼륨 개념 이해<br>- 간단한 애플리케이션 컨테이너화 및 실행 ||
80+
| Week 6 | 쿠버네티스 입문 | - 쿠버네티스 아키텍처 및 주요 컴포넌트 이해<br>- minikube 설치 및 기본 사용법 학습<br>- kubectl 명령어 실습 (get, describe, apply, delete)<br>- 간단한 파드(Pod) 생성 및 관리 ||
81+
| Week 7 | 쿠버네티스 클러스터 구축 | - 멀티노드 클러스터 아키텍처 설계<br>- kubeadm을 이용한 마스터 노드 초기화<br>- 워커 노드 추가 및 네트워크 플러그인 설정<br>- 기본 워크로드 배포 (Deployment, Service 생성) ||
82+
| Week 8 | 프로젝트 1차 완성 및 리뷰 | - 구축한 홈 서버 환경 최적화 (리소스 할당, 성능 튜닝)<br>- Prometheus와 Grafana를 이용한 모니터링 시스템 구축<br>- 전체 시스템 보안 점검 및 취약점 개선<br>- 프로젝트 발표 및 피드백 세션 ||
83+
84+
<br>
85+
86+
---
87+
88+
## 4. GitHub Collaboration Guidelines
89+
90+
이 섹션에서는 프로젝트 참여자를 위한 GitHub 사용 규칙을 상세히 설명합니다. 아래 가이드라인을 따라 효율적이고 일관된 협업 환경을 만들어 나가겠습니다.
91+
92+
### a. 디렉토리 구조
93+
94+
프로젝트의 디렉토리 구조는 다음과 같이 구성됩니다:
95+
96+
```
97+
CloudClub_HomeServer/
98+
├── docs/
99+
│ ├── setup/
100+
│ ├── tutorials/
101+
│ └── api/
102+
├── src/
103+
│ ├── backend/
104+
│ ├── frontend/
105+
│ └── scripts/
106+
├── tests/
107+
│ ├── unit/
108+
│ └── integration/
109+
├── config/
110+
├── data/
111+
│ ├── raw/
112+
│ └── processed/
113+
├── notebooks/
114+
├── .github/
115+
│ ├── ISSUE_TEMPLATE/
116+
│ └── PULL_REQUEST_TEMPLATE.md
117+
├── .gitignore
118+
├── README.md
119+
└── LICENSE
120+
```
121+
122+
> 💡 ****: 새로운 파일이나 디렉토리를 추가할 때는 항상 이 구조를 참고하세요. 불확실한 경우 팀원들과 상의하여 결정하세요.
123+
124+
### b. 커밋 규칙
125+
126+
커밋 메시지는 다음 형식을 따릅니다. 커밋 내용에 따라서 간략하게 작성하셔도 되고, 더 구체적으로 쓰셔도 됩니다.
127+
128+
##### <간단 버전>
129+
130+
```
131+
feat(nginx): 홈페이지에 방문자 카운터 추가.
132+
133+
홈 서버 메인 페이지에 방문자 수를 보여주는 간단한 카운터를 추가.
134+
135+
```
136+
137+
##### <좀더 자세한 버전>
138+
139+
```
140+
fix(docker): Plex 미디어 서버 컨테이너 재시작 문제 해결.
141+
142+
Plex 미디어 서버 도커 컨테이너가 자동으로 재시작되지 않는 문제 수정.
143+
144+
- docker-compose.yml 파일의 restart 정책을 'always'로 변경했음.
145+
146+
```
147+
148+
<br>
149+
150+
#### 커밋 타입
151+
152+
| 타입 | 설명 |
153+
| -------- | ------------------------------------------ |
154+
| feat | 새로운 기능 추가 |
155+
| fix | 버그 수정 |
156+
| docs | 문서 수정 |
157+
| style | 코드 포맷팅, 세미콜론 누락, 코드 변경 없음 |
158+
| refactor | 코드 리팩토링 |
159+
| test | 테스트 코드, 리팩토링 테스트 코드 추가 |
160+
| chore | 빌드 업무 수정, 패키지 매니저 수정 |
161+
162+
<br>
163+
164+
예시:
165+
166+
```
167+
feat(nginx): 리버스 프록시 설정 구현
168+
169+
- Nginx 설정 파일에 리버스 프록시 규칙 추가
170+
- SSL 인증서 적용 및 HTTPS 리다이렉션 설정
171+
- 로드 밸런싱을 위한 업스트림 서버 구성
172+
173+
Resolves: #45
174+
175+
```
176+
177+
<br>
178+
179+
> [!CAUTION]
180+
> 커밋 메시지는 항상 현재 시제로 부탁드립니다. "Added feature"가 아닌 "Add feature"로 작성해주시면 됩니다.
181+
182+
### c. PR(Pull Request) 규칙
183+
184+
PR을 생성할 때는 다음 템플릿을 사용합니다:
185+
186+
```markdown## 📝 PR 설명
187+
<!-- 이 PR에서 변경한 내용을 간략히 설명해주세요 -->
188+
홈서버의 Nginx 설정을 업데이트하여 리버스 프록시 기능을 추가했음.
189+
190+
## 🔍 관련 이슈
191+
<!-- 관련된 이슈 번호를 적어주세요. 예: #123 -->
192+
Closes #45
193+
194+
## ✅ 체크리스트
195+
- [x] Nginx 설정 파일을 수정했습니다.
196+
- [x] SSL 인증서를 적용했습니다.
197+
- [x] 로드 밸런싱 설정을 추가했습니다.
198+
- [x] 설정 변경 후 Nginx를 재시작했습니다.
199+
- [x] 변경사항에 대한 문서를 업데이트했습니다.
200+
201+
## 📸 스크린샷 (선택사항)
202+
![Nginx 상태 페이지](https://example.com/nginx-status.png)
203+
204+
## 🧪 테스트 결과
205+
- [x] `curl` 명령어로 HTTPS 연결 테스트를 수행했습니다.
206+
- [x] 웹 브라우저에서 사이트 접속 테스트를 진행했습니다.
207+
208+
## 📚 추가 정보
209+
- Nginx 버전: 1.18.0
210+
- 사용된 SSL 인증서: Let's Encrypt
211+
- 로드 밸런싱 알고리즘: Round Robin
212+
213+
```
214+
215+
> 🌟 **베스트 프랙티스**: PR을 작게 유지하고 하나의 기능이나 수정에 집중해주세요오... 특히 큰 변경사항은 여러 개의 작은 PR로 나눠주시면 좋겠습니다 :)
216+
217+
### d. Issue 규칙
218+
219+
이슈를 생성할 때는 다음 가이드라인을 따릅니다:
220+
221+
1. **제목**: 간결하고 명확하게 작성
222+
2. **설명**: 문제 또는 기능 요청을 상세히 기술
223+
3. **라벨**: 적절한 라벨 부착 (bug, enhancement, documentation 등)
224+
4. **담당자**: 가능한 경우 담당자 지정
225+
226+
이슈 템플릿 예시:
227+
228+
```markdown
229+
## 📌 이슈 유형
230+
231+
- [x] 버그 리포트
232+
- [ ] 기능 요청
233+
- [ ] 문서 개선
234+
235+
## 🔍 설명
236+
237+
홈 서버의 Nginx 웹 서버에서 문제가 생겼어요. 사진 갤러리 페이지에 들어가려고 하면 404 에러가 뜹니다. 어제까지는 잘 됐는데 쩝..;
238+
239+
## 🔢 재현 단계 (버그)
240+
241+
1. 크롬이나 파이어폭스 아무거나 열고 http://homeserver.local/photos 주소 접속.
242+
2. 페이지가 로딩될 때까지 기다리면 404뜸
243+
244+
## 🎨 기대 결과 vs 실제 결과
245+
246+
기대 결과: /photos 페이지에 들어가면 제가 찍은 사진들이 쫙 올라와야 합니다.
247+
실제 결과: 그런데 404 Not Found 에러 페이지만 뜹니다.
248+
249+
## 💻 환경 정보
250+
251+
- OS: 우분투 서버 22.04 LTS (인스톨 공식문서 그대로 설치함)
252+
- 웹 서버: Nginx 1.18.0 (이것도 최신 유튭 강의대로 설치;)
253+
- 브라우저: 크롬이랑 파이어폭스 최신 버전 엣지까지 셋 다 해봤음
254+
255+
## 📎 추가 정보
256+
257+
- Nginx 에러 로그에서 이런 게 보이더라구요:
258+
259+
- error : hello world kukurubbingbbong~
260+
```
261+
262+
<br>
263+
264+
> 📊 **이슈 관리 팁**:
265+
>
266+
> ```mermaid
267+
> graph TD
268+
> A[이슈 생성] --> B{유형 분류}
269+
> B --> C[버그]
270+
> B --> D[기능 요청]
271+
> B --> E[문서 개선]
272+
> C --> F[우선순위 지정]
273+
> D --> F
274+
> E --> F
275+
> F --> G[담당자 할당]
276+
> G --> H[작업 시작]
277+
> ```
278+
279+
<br>
280+
281+
## 5. Reference
282+
283+
다음은 홈서버 구축 관련 블로그 레퍼런스 5개입니다. 한번 읽어보시고, 더 좋은 추가할만한 자료가 있다면 PR을 통해 추가해주세요.
284+
285+
| 출처 | 제목 | 링크 |
286+
| ---- | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
287+
| 해외 | How to Build a Home Server | [Acer Corner](https://blog.acer.com/en/discussion/1163/how-to-build-a-home-server) |
288+
| 해외 | Building a full home server- the basics | [The smarthome journey](https://thesmarthomejourney.com/2021/09/06/home-server-basics-ansible/) |
289+
| 해외 | How to get started building a Homelab server in 2025 | [Joe Karlsson](https://joekarlsson.com/2023/09/how-to-get-started-building-a-homelab-server-in-2024/) |
290+
| 국내 | [홈서버] 홈서버 만들기 | [코딩 배우기 ㅋㅋ;; - 티스토리](https://learningcodingreal.tistory.com/64) |
291+
| 국내 | [홈서버구축하기 1] 홈서버를 구축 한 이유 | [기록, 꾸준히 작성해보자](https://blog.ewq.kr/69) |
292+
| 국내 | 7기 부회장 윤태의 블로그 | [yureutae-log](https://yureutae-log.vercel.app/) |

0 commit comments

Comments
 (0)