You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42-27Lines changed: 42 additions & 27 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,11 +11,13 @@ GitHub Copilot의 최신 기능을 이용해서 다양한 언어로 다양한
11
11
12
12
## 워크샵 사전 준비사항
13
13
14
-
GitHub Codespaces를 활용할 경우, 크로미움 계열의 웹 브라우저만 있으면 됩니다. 다만, 로컬 PC에서 직접 개발할 경우, 아래와 같은 내용을 준비해야 합니다.
14
+
GitHub Codespaces를 활용할 경우, 크로미움 계열의 웹 브라우저만 있으면 됩니다. 다만, 로컬 PC에서 직접 개발할 경우, 아래와 같은 내용을 직접 준비해야 합니다.
15
15
16
16
### 공통
17
17
18
18
-[Visual Studio Code](https://code.visualstudio.com/) 설치
19
+
- VS Code [GitHub Copilot](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot) 익스텐션 설치
20
+
- VS Code [GitHub Copilot Chat](https://marketplace.visualstudio.com/items?itemName=GitHub.copilot-chat) 익스텐션 설치
19
21
-[PowerShell 7](https://learn.microsoft.com/powershell/scripting/install/installing-powershell) 설치 👉 Windows 사용자용
20
22
-[git CLI](https://git-scm.com/downloads) 설치
21
23
-[GitHub CLI](https://cli.github.com/) 설치
@@ -24,22 +26,26 @@ GitHub Codespaces를 활용할 경우, 크로미움 계열의 웹 브라우저
24
26
### Python
25
27
26
28
-[pyenv](https://github.com/pyenv/pyenv) 또는 [pyenv for Windows](https://github.com/pyenv-win/pyenv-win) 설치
27
-
- VS Code [Python](https://marketplace.visualstudio.com/items/?itemName=ms-python.python) 익스텐션 설치치
29
+
- pyenv를 통한 Python 3.12+ 이상 설치
30
+
- VS Code [Python](https://marketplace.visualstudio.com/items/?itemName=ms-python.python) 익스텐션 설치
28
31
- VS Code [Pylance](https://marketplace.visualstudio.com/items/?itemName=ms-python.vscode-pylance) 익스텐션 설치
29
32
- VS Code [Python Debugger](https://marketplace.visualstudio.com/items/?itemName=ms-python.debugpy) 익스텐션 설치
30
33
- VS Code [autopep8](https://marketplace.visualstudio.com/items/?itemName=ms-python.autopep8) 익스텐션 설치
31
34
32
35
### JavaScript
33
36
34
-
-[Node.js](https://nodejs.org/) 설치 (LTS 버전 권장)
37
+
-[nvm](https://github.com/nvm-sh/nvm) 또는 [nvm for Windows](https://github.com/coreybutler/nvm-windows) 설치
38
+
- nvm을 통한 [Node.js](https://nodejs.org/) 설치 (LTS 버전 권장)
35
39
-[Yarn](https://yarnpkg.com/getting-started/install) 패키지 매니저 설치
36
-
```bash
37
-
npm install -g yarn
38
-
```
40
+
41
+
```bash
42
+
npm install -g yarn
43
+
```
39
44
40
45
### Java
41
46
42
-
-[OpenJDK 21](https://learn.microsoft.com/java/openjdk/download) 설치
47
+
- [SDKMAN](https://sdkman.io/) 설치
48
+
- SDKMAN을 통한 [OpenJDK 21](https://learn.microsoft.com/java/openjdk/download) 설치
43
49
- VS Code [Extension Pack for Java](https://marketplace.visualstudio.com/items/?itemName=vscjava.vscode-java-pack) 익스텐션 설치
44
50
- VS Code [Spring Boot Extension Pack](https://marketplace.visualstudio.com/items/?itemName=vmware.vscode-boot-dev-pack) 익스텐션 설치
45
51
@@ -48,12 +54,12 @@ GitHub Codespaces를 활용할 경우, 크로미움 계열의 웹 브라우저
48
54
- [.NET SDK 9](https://dotnet.microsoft.com/download/dotnet/9.0) 설치
49
55
- [VS Code C# Dev Kit](https://marketplace.visualstudio.com/items/?itemName=ms-dotnettools.csdevkit) 익스텐션 설치
50
56
51
-
## 시작하기
52
-
53
57
## 시나리오
54
58
55
59
Contoso 아웃도어 컴파니는 회사의 다양한 아웃도어용 제품 홍보를 위한 마이크로 소셜미디어 사이트를 개발하려고 합니다. 현재 개발 부서에는 Python 개발자가 백엔드 API를, JavaScript 개발자가 프론트엔드 웹 UI를 담당하고 있습니다. 마케팅 팀에서는 기본적인 MVP를 제작해서 웹사이트를 론칭할 계획을 세웠습니다. 하지만, 개발 기간이 촉박해서 빠르게 제작을 해야 하는 상황입니다.
56
60
61
+
앗, 그런데 말입니다...
62
+
57
63
## 작업 문서
58
64
59
65
아래 문서를 통해 자기주도학습의 형태로 직접 애플리케이션을 개발해 보세요!
@@ -66,7 +72,7 @@ Contoso 아웃도어 컴파니는 회사의 다양한 아웃도어용 제품 홍
66
72
| 03: Java 앱 개발 | [03-java.md](./docs/03-java.md) |
67
73
| 04: .NET 앱 개발 | [04-dotnet.md](./docs/04-dotnet.md) |
68
74
69
-
###완성본 예제 보기
75
+
## 완성본 예제 보기
70
76
71
77
모든 샘플 코드의 완성본 예제는 각 언어별 디렉토리에 있습니다. 하지만, 이는 GitHub Copilot으로 개발한 애플리케이션의 예시일 뿐 항상 이와 똑같이 만들어지는 것은 아닙니다.
72
78
@@ -77,31 +83,40 @@ Contoso 아웃도어 컴파니는 회사의 다양한 아웃도어용 제품 홍
77
83
| Java | [java](./java/) |
78
84
| .NET | [dotnet](./dotnet/) |
79
85
80
-
### openapi.yaml에 대한 설명
86
+
## `openapi.yaml` 문서에 대하여...
81
87
82
-
openapi.yaml 파일은 우리가 만들 웹 API의 설계도라고 생각하면 됩니다. 마치 건물을 짓기 전에 건축 도면이 필요한 것처럼, API를 개발하기 전에 이 파일로 전체 구조를 미리 계획합니다.
88
+
`openapi.yaml` 파일은 우리가 만들 웹 API의 설계도라고 생각하면 좋습니다. 마치 건물을 짓기 전에 건축 도면이 필요한 것처럼, API를 개발하기 전에 이 파일로 전체 구조를 미리 계획합니다.
83
89
84
90
이 파일에서는 다음과 같은 내용을 정의합니다:
85
-
- 어떤 기능들(포스트 작성, 댓글 달기, 좋아요 등)을 만들지
86
-
- 각 기능을 사용하려면 어떤 주소(URL)로 요청해야 하는지
87
-
- 요청할 때 어떤 정보가 필요한지(예: 포스트 내용, 사용자 이름)
91
+
92
+
- 어떤 기능들(포스트 작성, 댓글 달기, 좋아요 등)을 만들지,
93
+
- 각 기능을 사용하려면 어떤 주소(URL)로 요청해야 하는지,
94
+
- 요청할 때 어떤 정보가 필요한지(예: 포스트 내용, 사용자 이름),
88
95
- 요청 후 어떤 응답이 돌아오는지
89
96
90
97
초보자에게 가장 큰 장점은:
91
-
- 개발 전에 API 구조를 명확히 볼 수 있어 전체 그림을 이해하기 쉽습니다
92
-
- 여러 개발자가 같은 규칙으로 작업할 수 있습니다
93
-
- 자동으로 API 문서와 테스트 페이지가 생성됩니다
94
-
- 클라이언트(앱이나 웹) 개발자와 서버 개발자 간의 소통이 쉬워집니다
98
+
99
+
- 개발 전에 API 구조를 명확히 볼 수 있어 전체 그림을 이해하기 쉽습니다.
100
+
- 여러 개발자가 같은 규칙으로 작업할 수 있습니다.
101
+
- 자동으로 API 문서와 테스트 페이지가 생성됩니다.
102
+
- 클라이언트(앱이나 웹) 개발자와 서버 개발자 간의 소통이 쉬워집니다.
95
103
96
104
마치 레고 조립 설명서처럼, 어떤 부품이 어디에 들어가는지 미리 알려주는 역할을 합니다.
97
105
98
-
openapi.yaml은 SNS 앱을 위한 API 설계도로, 다음 기능들을 정의합니다:
106
+
`openapi.yaml`은 SNS 앱을 위한 API 설계도로, 다음 기능들을 정의합니다:
107
+
108
+
- 포스트 관련 API (5개)
109
+
- 포스트 목록 조회, 작성, 상세 조회, 수정, 삭제
110
+
- 댓글 관련 API (5개)
111
+
- 댓글 목록 조회, 작성, 상세 조회, 수정, 삭제
112
+
- 좋아요 관련 API (2개)
113
+
- 좋아요 추가, 취소
114
+
115
+
각 API는 필요한 요청 정보와 응답 형식, 오류 처리 방법을 명확히 정의하고 있어 개발 시 일관성 있는 인터페이스를 구현할 수 있습니다.
99
116
100
-
* 포스트 관련 API (5개)
101
-
** 포스트 목록 조회, 작성, 상세 조회, 수정, 삭제
102
-
* 댓글 관련 API (5개)
103
-
** 댓글 목록 조회, 작성, 상세 조회, 수정, 삭제
104
-
* 좋아요 관련 API (2개)
105
-
** 좋아요 추가, 취소
117
+
## 참고 자료
106
118
107
-
각 API는 필요한 요청 정보와 응답 형식, 오류 처리 방법이 명확히 정의되어 있어 개발 시 일관된 인터페이스를 구현할 수 있습니다.
119
+
- [GitHub Copilot 에이전트 모드 및 MCP](https://code.visualstudio.com/blogs/2025/04/07/agentMode)
120
+
- [GitHub Copilot 사용자 정의 지침(Custom Instruction)](https://code.visualstudio.com/docs/copilot/copilot-customization)
121
+
- [GitHub Copilot AI 모델 바꾸기](https://docs.github.com/ko/copilot/using-github-copilot/ai-models/changing-the-ai-model-for-copilot-chat?tool=vscode)
만약 위와 같은 결과가 보이지 않는다면 GitHub Codespaces 인스턴스를 삭제하고 다시 생성해야 합니다.
63
64
64
65
**👇👇👇 아래 내용부터는 로컬 PC에 VS Code를 설치하고 워크샵을 진행할 때 필요한 내용입니다. GitHub Codespaces 인스턴스를 사용한다면 이 문서의 마지막으로 건너뛰어도 좋습니다. 👇👇👇**
65
66
66
-
## PowerShell 설치 확인 👉 Windows 사용자용
67
+
## Visual Studio Code로 시작하기
68
+
69
+
### PowerShell 설치 확인 👉 Windows 사용자용
67
70
68
71
1. 터미널에서 아래 명령어를 실행시켜 현재 PowerShell을 설치했는지 확인합니다.
69
72
@@ -87,7 +90,7 @@
87
90
88
91
`7.5.0` 이상의 버전이 있어야 합니다. 만약 이보다 버전이 낮다면 [PowerShell 설치 페이지](https://learn.microsoft.com/powershell/scripting/install/installing-powershell)에서 최신 버전을 다운로드 받아 설치합니다.
89
92
90
-
## git CLI 설치 확인
93
+
### git CLI 설치 확인
91
94
92
95
1. 터미널에서 아래 명령어를 실행시켜 현재 git CLI를 설치했는지 확인합니다.
93
96
@@ -111,7 +114,7 @@
111
114
112
115
`2.39.0` 이상의 버전이 있어야 합니다. 만약 이보다 버전이 낮다면 [git CLI 설치 페이지](https://git-scm.com/downloads)에서 최신 버전을 다운로드 받아 설치합니다.
113
116
114
-
## GitHub CLI 설치 확인
117
+
### GitHub CLI 설치 확인
115
118
116
119
1. 터미널에서 아래 명령어를 실행시켜 현재 GitHub CLI를 설치했는지 확인합니다.
117
120
@@ -143,7 +146,7 @@
143
146
144
147
만약 로그인하지 않았다고 나온다면, `gh auth login` 명령어를 통해 로그인합니다.
145
148
146
-
## Docker Desktop 설치 확인
149
+
### Docker Desktop 설치 확인
147
150
148
151
1. 터미널에서 아래 명령어를 실행시켜 현재 Docker Desktop을 설치했는지 확인합니다.
149
152
@@ -167,7 +170,7 @@
167
170
168
171
`28.0.4` 이상의 버전이 있어야 합니다. 만약 이보다 버전이 낮다면 [Docker Desktop 설치 페이지](https://docs.docker.com/get-started/introduction/get-docker-desktop/)에서 최신 버전을 다운로드 받아 설치합니다.
169
172
170
-
## Visual Studio Code 설치 확인
173
+
### Visual Studio Code 설치 확인
171
174
172
175
1. 터미널에서 아래 명령어를 실행시켜 현재 Visual Studio Code를 설치했는지 확인합니다.
173
176
@@ -193,7 +196,7 @@
193
196
194
197
> 만약 터미널에서 `code` 명령어를 실행시킬 수 없다면, [이 문서](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line)를 참고하여 설정합니다.
195
198
196
-
## Visual Studio Code 시작
199
+
### Visual Studio Code 시작
197
200
198
201
1. 작업할 디렉토리로 이동합니다.
199
202
1. 터미널에서 아래 명령어를 실행시켜 이 리포지토리를 자신의 GitHub 계정으로 포크한 후 자신의 컴퓨터로 클론합니다.
@@ -223,10 +226,28 @@
223
226
이 명령어를 실행하면 아래와 같은 결과가 나와야 합니다. 만약 `origin`에 `devrel-kr`이 보이면 자신의 리포지토리에서 다시 클론해야 합니다.
0 commit comments