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
이전 세션들에서 수행했던 Python 백엔드 앱 및 Node JS 프론트엔드 앱이 실행되어 있어야 합니다. 특히, Python 백엔드 앱을 기준으로 마이그레이션이 이루어지기 때문에 [http://127.0.0.1:8000/docs](http://127.0.0.1:8000/docs)에 접속하여 해당 앱이 구동되어 있는지를 확인합니다.
23
+
만일, 앱이 실행되어 있지 않다면, [Python 앱 가이드](../01-python.md)에 따라 앱을 구동해 주시기 바랍니다.
24
+
25
+
#### Rest API 확인
26
+
다음 URL을 호출하여 백엔드 앱에서 제공하고 있는 Rest API들을 확인해 봅니다. 아래와 같이 12개의 REST API가 있는 것을 확인할 수 있습니다.
27
+
```
28
+
http://127.0.0.1:8000/docs
29
+
```
30
+
31
+
#### Python 앱 로직 확인
32
+
Python 앱에 어떤 기능들이 포함되어 있는지 확인하기 위해 GitHub Copilot에 다음과 같이 질의합니다. 해당 기능을 확인하여 대략의 Python 로직을 이해하고 파일을 생성합니다.
33
+
```
34
+
이 파일의 소스 내용을 설명해 주고 다이어그램을 생성해줘
35
+
```
36
+
다음 위치에 다이어그램 파일이 생성된 것을 확인합니다.
37
+
```
38
+
.../python/diagram.md
39
+
```
40
+
41
+
### Spring Boot 앱으로 마이그레이션
42
+
이제 Spring Boot 앱으로 마이그레이션 할 준비가 되었습니다. 이제부터 GitHub Copilot을 이용하여 마이그레이션을 진행하겠습니다. 이후 질의과정은 예시일 뿐이므로, 본인의 상황에 맞게 변경하여 질의하며 마이그레이션을 진행해도 됩니다.
43
+
44
+
#### Spring Boot 프로젝트 생성
45
+
Spring Boot Initializr를 이용하면 Spring Boot 앱을 쉽게 생성할 수 있습니다. Spring Initializr 익스텐션을 사용하여 VS Code에서 초기 프로젝트를 생성해 보도록 합니다. 설정 값은 다음과 같습니다.
46
+
* 프로젝트 선택: Create a Gradle Project
47
+
* Spring Boot Version: 3.4.4
48
+
* Project language: Java
49
+
* Group Id: com.example
50
+
* Artifact Id: demo
51
+
* Package Name: com.example.demo
52
+
* Packaging type: Jar
53
+
* Java version: 21
54
+
* Dependencies:
55
+
* Spring Web
56
+
* Spring Boot Actuator
57
+
* Lombok
58
+
59
+
초기 Spring Boot 앱 프로젝트가 생성되었으면 우측 하단에의 "Open new project"를 클릭하여 방금 생성한 프로젝트를 오픈합니다.
60
+
61
+
#### 빌드 및 앱 구동
62
+
최초 생성된 앱이 에러가 없는지 빌드 후 앱 구동을 통해 확인해 봅니다.
63
+
```
64
+
./gradlew clean build bootRun
65
+
```
66
+
67
+
터미널에 다음과 같은 로그가 출력되면 앱이 정상적으로 구동된 것입니다.
68
+
69
+

70
+
71
+
72
+
#### Rest API 추가 및 확인
73
+
디펜던시가 에러 없이 잘 추가되었는지 확인하기 위해 RestController를 추가해 봅니다. 기본 호출할 Rest API로 /hello 를 생성해 보겠습니다. GitHub Copilot을 Agent 모드로 변경하고, 모델을 "Claude 3.7 Sonnet"으로 변경한 후 다음과 같이 프롬프트를 입력합니다.
74
+
```
75
+
/hello Rest API를 추가해주고, Swagger 설정도 추가해줘
76
+
```
77
+
78
+
다시 한 번 앱을 빌드하고 실행시켜 봅니다.
79
+
80
+
코드에 오류가 없으면 다음 URL을 이용하여 앱을 호출해 봅니다.
81
+
```
82
+
http://localhost:8080/hello
83
+
```
84
+
이번에는 Swagger UI를 접속해 봅니다.
85
+
```
86
+
http://localhost:8080/swagger-ui.html
87
+
```
88
+
앱이 정상적으로 호출되었으면 마이그레이션 준비가 완료된 것입니다.
89
+
90
+
#### Python에 작성된 REST API 추가
91
+
Python 앱은 12개의 REST API로 이루어진 백엔드 서비스로 구성되어 있습니다. 이제 좀 전에 생성한 다이어그램 파일을 활용하여 이 REST API를 자바로 변경해 보겠습니다.
92
+
93
+
GitHub Copilot에 다음과 같이 프롬프트를 입력합니다.
94
+
```
95
+
이 다이어그램 파일을 참고해서 동일한 API 주소를 갖는 함수들을 현재 프로젝트에 추가해줘.
96
+
```
97
+
98
+
앱을 빌드하고, Swagger UI에 접속해서 12개의 REST API가 추가되었는지를 확인합니다.
99
+
만일 빌드 시 에러가 발생하거나, 원하는 API 목록이 출력되지 않는다면 다음 프롬프트를 사용해서 정상적인 결과값이 나올때까지 수정을 반복해서 이슈를 해결합니다.
100
+
```
101
+
빌드 시 오류가 발생해. 오류를 해결해줘
102
+
```
103
+
104
+
#### Database URL 변경
105
+
이제 기존 Python에서 사용하던 데이타베이스를 참조하도록 환경을 변경해 봅니다. 해당 파일은 다음 위치에 존재합니다.
106
+
```
107
+
/python/sns.db
108
+
```
109
+
110
+
Spring Boot 프로젝트의 다음 파일을 오픈해서 파일 주소를 변경합니다.
111
+
```
112
+
파일 명: <project_root>/src/main/resources/application.properties
0 commit comments