신지원

Update README.md

Showing 1 changed file with 184 additions and 71 deletions
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
22 --> 22 -->
23 23
24 <!-- PROJECT LOGO --> 24 <!-- PROJECT LOGO -->
25 -<br /> 25 +<br /><br />
26 <p align="center"> 26 <p align="center">
27 27
28 <h3 align="center">LineMusicChatbot</h3> 28 <h3 align="center">LineMusicChatbot</h3>
...@@ -36,7 +36,7 @@ ...@@ -36,7 +36,7 @@
36 </p> 36 </p>
37 37
38 38
39 - 39 +<br />
40 <!-- TABLE OF CONTENTS --> 40 <!-- TABLE OF CONTENTS -->
41 <details open="open"> 41 <details open="open">
42 <summary><h2 style="display: inline-block">Table of Contents</h2></summary> 42 <summary><h2 style="display: inline-block">Table of Contents</h2></summary>
...@@ -72,45 +72,72 @@ ...@@ -72,45 +72,72 @@
72 </details> 72 </details>
73 73
74 74
75 - 75 +<br />
76 <!-- ABOUT THE PROJECT --> 76 <!-- ABOUT THE PROJECT -->
77 ## About The Project 77 ## About The Project
78 +<br />
79 +<table>
80 + <tr>
81 + <td align="center" ><img src = "/uploads/1c6264269582965aa952f1e62887ff33/KakaoTalk_20210609_015744276_01.jpg" width = "250"/></td>
82 + <td valign="top"> <br><br><br><br>
78 83
79 -<img src = "/uploads/47cfc2d5e0a2cfdf45cf0bfc1c63e39c/KakaoTalk_20210609_015744276.jpg" width = "400" /> 84 + 이 프로젝트를 선정한 이유는 평소 음악을 들을 때 불편했던 점을 해소하고 싶었기 때문입니다.<br><br>
80 -위 기능은 유료 스트리밍 서비스인 유튜브 뮤직에서 제공하는 플레이리스트로 유튜브에서는 이 기능을 이용할 수 없습니다.
81 85
82 -<img src = "/uploads/1c6264269582965aa952f1e62887ff33/KakaoTalk_20210609_015744276_01.jpg" width = "400"/> 86 + 왼쪽의 사진은 유튜브에서 특정 음악을 검색한 사진입니다. <br><br>
83 -게다가, 유튜브 검색만으로는 공식 음원을 찾기 힘들다는 것을 알 수 있습니다.
84 -<br />
85 -<br />
86 -<br />
87 -<br /><br />
88 -음악과 관련한 프로젝트를 선정한 이유는 먼저 우리가 음악을 들을 때 느낄 수 있는 불편한 상황을 생각해 보았고 음악이 듣고는 싶은데 어떤 음악을 들어야할지 망설여지는 상황에서 가수와, 혹은 장르와 관련된 음악을 제공해주는 시스템을 구현하고자 했습니다.
89 87
88 + '유튜브'는 영상 공유를 주 목적으로 하기 때문에, 유튜브에서 노래 관련 검색만으로 온전히 노래를 즐기기는 어렵습니다. <br><br>
90 89
91 -유튜브로부터 공식적으로 재생목록 뿐만 아니라 음악에 관해 지원받기 위해서는 유튜브의 유료 음악 스트리밍 서비스 유튜브 뮤직을 이용해야 하고, 이 때문에 유튜브에서 검색만으로 공식 음원을 찾기 쉽지 않습니다. 90 + 예를 들면, 뮤직비디오나 저작권자가 아닌 사람이 올린 영상의 경우 공식 음원에 비해 음질도 떨어집니다.<br><br>
92 91
92 + 또한 인트로와 아웃트로 때문에 듣기 불편할 수도 있습니다. <br><br>
93 93
94 -뮤직비디오나 저작권자가 아닌 사람이 올린 영상의 경우 공식 음원에 비해 음질도 떨어지고, 인트로와 아웃트로 때문에 듣기 불편할 수도 있습니다. 94 + 따라서 제대로 된 음악 서비스를 즐기기 위해서는 '유튜브 뮤직' 유료 서비스를 이용해야합니다.<br><br>
95 95
96 96
97 -이러한 문제점을 보완하고자 LineMusicChatbot 프로젝트를 시작하게 되었습니다.
98 97
98 + </tr>
99 +</table>
100 +<br />
101 +<table>
102 + <tr>
103 +
104 + <td align="center" ><img src = "/uploads/47cfc2d5e0a2cfdf45cf0bfc1c63e39c/KakaoTalk_20210609_015744276.jpg" width = "250" /></td>
105 + <td valign="top">
106 + <br>
107 + <br>
108 + <br>
109 + <br>
110 + 왼쪽의 첨부 파일은 유튜브 뮤직에서 제공하는 플레이리스트입니다. <br><br>
111 +
112 + 유튜브에서는 이 기능을 이용할 수 없습니다.<br><br>
99 113
100 -LineMusicChatbot은 라인 챗봇 서비스와 YouTube API를 이용하여 만든 음악 추천 및 검색 챗봇입니다. 114 + 1) 어떤 음악을 들어야할지 망설여지는 상황<br>
115 + 2) 유튜브 뮤직 유료결제 없이 플레이리스트를 즐기고 싶은 상황<br><br>
116 +
117 + 위와 같은 상황에서 가수나 장르와 관련된 음악을 제공해주는 시스템을 구현하고자 했습니다.<br><br>
118 + </tr>
119 +</table>
120 +
121 +<br />
101 122
123 +###### 이러한 문제점을 보완하고자 LineMusicChatbot 프로젝트를 시작하게 되었습니다.
102 124
103 -유튜브 API를 통해 재생목록의 정보와 재생목록 내 동영상의 제목, 썸네일, URL을 제공하도록 하여 특정 메시지를 사용자가 챗봇에서 입력하면 이를 분석하여 노래를 추천해주거나, 재생목록을 출력하는 방식으로 구현한 프로젝트입니다. 125 +* LineMusicChatbot은 라인 챗봇 서비스와 YouTube API를 이용하여 만든 음악 추천 및 검색 챗봇입니다.
104 126
127 +* 유튜브 API를 통해 재생목록의 정보와 내 동영상의 제목, 썸네일, URL을 제공합니다.
105 128
129 +* 사용자가 특정 메시지를 챗봇에 입력하면 이를 분석하여 노래를 추천해주거나, 재생목록을 출력하는 방식으로 구현한 프로젝트입니다.
130 +
131 +<br />
106 132
107 ### Built With 133 ### Built With
108 134
109 * [Line Messaging API](https://developers.line.biz/en/services/messaging-api/) 135 * [Line Messaging API](https://developers.line.biz/en/services/messaging-api/)
110 * [YouTube Data](https://developers.google.com/youtube/v3/getting-started?hl=ko) 136 * [YouTube Data](https://developers.google.com/youtube/v3/getting-started?hl=ko)
137 +<br />
138 +<br />
111 139
112 - 140 +<br />
113 -
114 <!-- GETTING STARTED --> 141 <!-- GETTING STARTED -->
115 ## Getting Started 142 ## Getting Started
116 143
...@@ -121,9 +148,10 @@ LineMusicChatbot은 라인 챗봇 서비스와 YouTube API를 이용하여 만 ...@@ -121,9 +148,10 @@ LineMusicChatbot은 라인 챗봇 서비스와 YouTube API를 이용하여 만
121 ``` 148 ```
122 npm install 149 npm install
123 ``` 150 ```
124 - 151 +<br />
152 +<br />
125 ### Installation 153 ### Installation
126 - 154 +<br />
127 1. Clone the repo 155 1. Clone the repo
128 ``` 156 ```
129 git clone http://khuhub.khu.ac.kr/2016102927/LineMusicChatbot.git 157 git clone http://khuhub.khu.ac.kr/2016102927/LineMusicChatbot.git
...@@ -132,92 +160,176 @@ LineMusicChatbot은 라인 챗봇 서비스와 YouTube API를 이용하여 만 ...@@ -132,92 +160,176 @@ LineMusicChatbot은 라인 챗봇 서비스와 YouTube API를 이용하여 만
132 ``` 160 ```
133 npm install 161 npm install
134 ``` 162 ```
135 - 163 +<br />
164 +<br />
136 ### Create Info file 165 ### Create Info file
137 ![Info_1](/uploads/c242c735636d44925f8e39f7a76708ee/Info_1.PNG) 166 ![Info_1](/uploads/c242c735636d44925f8e39f7a76708ee/Info_1.PNG)
138 167
139 보안을 위해 토큰 값과 API키를 빼놓았습니다. 168 보안을 위해 토큰 값과 API키를 빼놓았습니다.
140 새 파일 Info.js 을 생성하고 169 새 파일 Info.js 을 생성하고
141 170
171 +``` javascript
142 exports.TOKEN = 'Kb1/rQYz4MUhF8XyKQv7z9x0MxVQ5bX/XO8S/yt/1qQEJVAbsEFAaMvXKEOx9Umr7KhivfyDPfZHRRLFPngR0O4ZGWV2VFses8ufPE7uAdvYr4G6keBNAU69nBz5IC71HfbIrUHxXYqD7GfhVwXzpwdB04t89/1O/w1cDnyilFU=' 172 exports.TOKEN = 'Kb1/rQYz4MUhF8XyKQv7z9x0MxVQ5bX/XO8S/yt/1qQEJVAbsEFAaMvXKEOx9Umr7KhivfyDPfZHRRLFPngR0O4ZGWV2VFses8ufPE7uAdvYr4G6keBNAU69nBz5IC71HfbIrUHxXYqD7GfhVwXzpwdB04t89/1O/w1cDnyilFU='
143 173
144 exports.YoutubeKey = 'AIzaSyBInggOtXxPFYIRee0Xs3vb5iZ9YE9_518' 174 exports.YoutubeKey = 'AIzaSyBInggOtXxPFYIRee0Xs3vb5iZ9YE9_518'
145 175
146 exports.domain='2020105631.oss2021.tk' 176 exports.domain='2020105631.oss2021.tk'
147 -을 붙여넣기 해주시기 바랍니다. 177 +```
148 - 178 +을 붙여넣기 해주시기 바랍니다.<br><br>
149 179
180 +<br />
150 ### Chatbot QR Code 181 ### Chatbot QR Code
151 -![QR_Code](/uploads/d00b60136d78cb8c790e7d59be1e09e9/QR_Code.png) 182 +<br />
183 +<table>
184 + <tr>
185 + <td align="center"><img src = "/uploads/d00b60136d78cb8c790e7d59be1e09e9/QR_Code.png" width = "100" /></td>
186 +
187 + <td align="center"><img src = "/uploads/95eadcdc3fd8409e9b2a4456c96f2330/KakaoTalk_20210609_025425696.jpg" width = "250" /></td>
152 188
153 -QR 코드를 이용해 챗봇을 등록해주시기 바랍니다. 189 + </tr>
190 +</table>
191 +<br />
192 +<table>
193 + <tr>
194 +
195 + <td align="center"> QR 코드를 이용해 챗봇을 등록해주시기 바랍니다.</td>
154 196
155 -<img src = "/uploads/95eadcdc3fd8409e9b2a4456c96f2330/KakaoTalk_20210609_025425696.jpg" width = "500" /> 197 + <td align="center"> 올바르게 친구 추가 되었을 때의 화면입니다.</td>
156 -올바르게 친구 추가 되었을 때의 화면입니다.
157 198
199 + </tr>
200 +</table>
201 +<br />
202 +<br />
158 <!-- USAGE EXAMPLES --> 203 <!-- USAGE EXAMPLES -->
159 ## Usage 204 ## Usage
160 - 205 +<br />
161 ### Help 206 ### Help
162 -<img src = "/uploads/cdebe2630dbca7032a002d30382aa54b/KakaoTalk_20210609_025512419.jpg" width = "400" /> 207 +<br />
208 +<table>
209 + <tr>
210 + <td align="center"><img src = "/uploads/cdebe2630dbca7032a002d30382aa54b/KakaoTalk_20210609_025512419.jpg" width = "250" /></td>
211 +
212 + <td align="center">
213 + <br><br> 기본적인 구현 예시를 도움말 명령어를 통해 구현해 놓았습니다.<br><br>
163 214
164 -기본적인 구현 예시를 도움말 명령어를 통해 구현해 놓았습니다. 215 + "도움말"을 입력하면 구체적인 구현에 대한 설명을 얻을 수 있습니다.<br>
216 +</td>
165 217
166 -"도움말"을 입력하면 구체적인 구현에 대한 설명을 얻을 수 있습니다. 218 + </tr>
219 +</table>
167 220
221 +
222 +<br />
168 ### PlayList 223 ### PlayList
169 -<img src = "/uploads/ee9c4bfbc32b5d80f45e7b9316eb0a3d/KakaoTalk_20210609_011429047.jpg" width = "400" />
170 <br /> 224 <br />
171 -<img src = "/uploads/ac12d4f8d00e9b3ba2ff3fb7368e47ce/KakaoTalk_20210609_011650392.jpg" width="400"/>
172 225
173 -첫번째 기능은 음악을 추천하는 기능입니다. 사용자가 입력한 문자열이 "플레이리스트"일 때, 챗봇이 선택지를 제공해 음악 추천을 준비합니다. 226 +<table>
227 + <tr>
228 + <td align="center"><img src = "/uploads/ee9c4bfbc32b5d80f45e7b9316eb0a3d/KakaoTalk_20210609_011429047.jpg" width = "250" /></td>
229 +
230 + <td align="left">
231 + <br><br><br> 첫번째 기능은 음악을 추천하는 기능입니다. <br><br>
232 +
233 + 사용자가 입력한 문자열이 "플레이리스트"일 때, 챗봇이 선택지를 제공해 음악 추천을 준비합니다.<br><br>
234 +
235 + 원하는 분야를 고르고 또 그 안에서 주어지는 선택지를 선택하면 최종 선택지와 관련한 노래를 무작위로 추천합니다.<br><br>
236 +
237 + 이때, 공식 음원을 찾기 힘들다는 단점을 보완하기 위해 URL을 통해 이동하면 공식 음원으로 이동하는 것을 볼 수 있습니다. <br><br>
238 +
239 +</td>
240 +
241 + </tr>
242 +</table>
243 +<br />
244 +
245 +<br />
174 246
175 -원하는 분야를 고르고 또 그 안에서 주어지는 선택지를 선택하면 최종 선택지와 관련한 노래를 무작위로 추천합니다.
176 247
177 -이때, 공식 음원을 찾기 힘들다는 단점을 보완하기 위해 URL을 통해 이동하면 공식 음원으로 이동하는 것을 볼 수 있습니다.
178 248
249 +<table>
250 + <tr>
251 + <td align="center"><img src = "/uploads/ac12d4f8d00e9b3ba2ff3fb7368e47ce/KakaoTalk_20210609_011650392.jpg" width="250"/></td>
179 252
180 -지원하는 플레이리스트는 크게 장르, 무드, 가수로 분류하여 제공하는데, 장르의 경우 힙합, 피아노 팝 플레이리스트가 있고, 무드의 경우 슬픈 노래와 신나는 노래에 관한 것이 있으며, 가수의 경우 블랙핑크, 아이유, 트와이스, 레드벨벳의 경우를 지원합니다. 253 + <td align="left">
254 + <br><br>
255 + 지원하는 플레이리스트는 아래와 같이 분류하여 제공합니다. <br><br>
256 + * 장르 플레이리스트 : 힙합, 피아노, 팝 <br><br>
257 + * 무드 플레이리스트 : 슬픈 노래, 신나는 노래<br><br>
258 + * 가수 플레이리스트 : 블랙핑크, 아이유, 트와이스, 레드벨벳<br><br>
259 +</td>
181 260
182 -장르 - 힙합, 피아노, 팝 261 + </tr>
262 +</table>
263 +<br />
264 +<br />
183 265
184 -무드 - 슬픈, 신나는
185 266
186 -가수 - 블랙핑크, 아이유, 트와이스 레드벨벳
187 267
188 ### Search in YouTube 268 ### Search in YouTube
189 -<img src = "/uploads/099618e7a1bd707cc0727da840cd134c/KakaoTalk_20210609_011938764.jpg" width = "400" /> 269 +<br />
270 +<table>
271 + <tr>
272 + <td align="center"><img src = "/uploads/099618e7a1bd707cc0727da840cd134c/KakaoTalk_20210609_011938764.jpg" width = "250"/></td>
273 +
274 + <td align="left">
275 + <br>
276 + 두번째 기능은 검색입니다. <br><br>
277 +
278 + 자신이 검색하고 싶은 노래가 있다면 유튜브로 번거롭게 이동하여 검색하지 않고 <br><br>
279 +
280 + 바로 검색할 수 있도록 챗봇 자체에 검색 기능을 추가하였습니다.<br><br>
190 281
191 -두번째 기능은 검색입니다. 플레이리스트 이외에 자신이 검색하고 싶은 노래가 있다면 유튜브로 번거롭게 이동하여 검색하지 않고 바로 검색할 수 있도록 챗봇 자체에 검색 기능을 추가하였습니다. 282 + 챗봇은 사용자가 입력한 문자열의 유튜브 검색 결과 중 최상단의 결과를 출력하고, <br><br>
192 283
193 -챗봇은 사용자가 입력한 문자열의 유튜브 검색 결과중 최상단의 결과를 출력하고, 그 영상의 제목과 URL 그리고 썸네일 정보를 제공합니다. 284 + 그 영상의 제목과 URL 그리고 썸네일 정보를 제공합니다.<br><br>
194 285
195 -이에 관하여 사용자가 판단하기에 챗봇이 썸네일은 보여주지 않았으면 하거나, 출력 정보가 너무 적다고 판단되는 경우를 고려하여 검색에 대하여 설정할 수 있는 기능을 추가하였습니다. 286 + 이에 관하여 사용자가 판단하기에 챗봇이 썸네일은 보여주지 않았으면 하거나, <br><br>
196 287
288 + 출력 정보가 너무 적다고 판단되는 경우를 고려하여 검색에 대하여 설정할 수 있는 기능을 추가하였습니다.<br><br>
289 +
290 +</td>
291 +
292 + </tr>
293 +</table>
294 +
295 +
296 +<br />
297 +<br />
197 ### Search Setting 298 ### Search Setting
198 -<img src = "/uploads/5fa9cae43c22178081140ac54e42c8d1/KakaoTalk_20210609_012250106.jpg" width = "400" /> 299 +
199 <br /> 300 <br />
200 -<img src = "/uploads/a7afaa1278e08adcc2d5717836f84a82/KakaoTalk_20210609_012849616.jpg" width = "400" /> 301 +<table>
302 + <tr>
303 + <td align="center"><img src = "/uploads/5fa9cae43c22178081140ac54e42c8d1/KakaoTalk_20210609_012250106.jpg" width = "250" /></td>
304 +
305 + <td align="center"><img src = "/uploads/a7afaa1278e08adcc2d5717836f84a82/KakaoTalk_20210609_012849616.jpg" width = "250" /></td>
201 306
202 -검색 기능에 대한 커스텀 설정 기능입니다.
203 307
204 -“설정”을 입력하면 자동으로 챗봇이 설정 기능을 차례로 출력하도록 하였습니다. 308 +</td>
205 309
206 -설정할 수 있는 기능은 썸네일의 출력 유무, 출력할 동영상의 개수, 영상 URL의 포함 여부입니다. 310 + </tr>
311 +</table>
207 312
208 -각각의 경우 Default값은 313 +검색 기능에 대한 커스텀 설정 기능입니다.<br>
209 314
210 -썸네일 출력 – 출력 315 +“설정”을 입력하면 자동으로 챗봇이 설정 기능을 차례로 출력하도록 하였습니다.<br>
211 316
212 -출력할 동영상의 개수 – 1개 317 +설정할 수 있는 기능은 썸네일의 출력 유무, 출력할 동영상의 개수, 영상 URL의 포함 여부입니다.<br><br><br>
213 318
214 -URL 포함 여부 – 출력 319 +각각의 경우 Default값은<br><br>
215 320
216 -입니다. 321 + * 썸네일 출력 – 출력<br><br>
217 322
323 + * 출력할 동영상의 개수 – 1개<br><br>
218 324
325 + * URL 포함 여부 – 출력<br><br>
326 +
327 +입니다.<br><br>
328 +
329 +<br />
219 <!-- ROADMAP --> 330 <!-- ROADMAP -->
220 ## Roadmap 331 ## Roadmap
332 +<br />
221 ![Roadmap_1](/uploads/4bd9416fabb06084c01720da48158591/Roadmap_1.png) 333 ![Roadmap_1](/uploads/4bd9416fabb06084c01720da48158591/Roadmap_1.png)
222 334
223 YouTube API를 이용하는 과정에서 문제가 있었습니다. 335 YouTube API를 이용하는 과정에서 문제가 있었습니다.
...@@ -227,31 +339,31 @@ YouTube API를 이용하는 과정에서 문제가 있었습니다. ...@@ -227,31 +339,31 @@ YouTube API를 이용하는 과정에서 문제가 있었습니다.
227 때문에 재생목록에 대해 사용자가 원하는 곡을 추가하거나 삭제하는 등의 작업이 구현되지 않아 재생목록에 대한 완전한 기능구현을 하지 못했다는 문제점이 있습니다. 339 때문에 재생목록에 대해 사용자가 원하는 곡을 추가하거나 삭제하는 등의 작업이 구현되지 않아 재생목록에 대한 완전한 기능구현을 하지 못했다는 문제점이 있습니다.
228 340
229 이에 대한 앞으로의 로드맵은 추가적으로 다른 API를 이용하여 구현하지 못하는 부분을 구현하거나 사용자에게 재생목록 자체의 URL을 제공하여 사용자가 해당 링크를 방문하여 유튜브 내에서 동영상을 추가, 삭제 하도록 하는 방법을 생각하고 있습니다. 341 이에 대한 앞으로의 로드맵은 추가적으로 다른 API를 이용하여 구현하지 못하는 부분을 구현하거나 사용자에게 재생목록 자체의 URL을 제공하여 사용자가 해당 링크를 방문하여 유튜브 내에서 동영상을 추가, 삭제 하도록 하는 방법을 생각하고 있습니다.
230 - 342 +<br><br>
231 - 343 +<br />
232 344
233 <!-- CONTRIBUTING --> 345 <!-- CONTRIBUTING -->
234 ## Contributing 346 ## Contributing
235 - 347 +<br />
236 추가하거나 개선할 기능이 있다면 참고 바랍니다. 348 추가하거나 개선할 기능이 있다면 참고 바랍니다.
237 349
238 -1. Project를 Fork 합니다. 350 + 1. Project를 Fork 합니다.
239 -2. 새로운 브랜치를 생성합니다. (`git checkout -b feature/AmazingFeature`) 351 + 2. 새로운 브랜치를 생성합니다. (`git checkout -b feature/AmazingFeature`)
240 -3. 변경된 사항을 Commit 합니다. (`git commit -m 'Add some AmazingFeature'`) 352 + 3. 변경된 사항을 Commit 합니다. (`git commit -m 'Add some AmazingFeature'`)
241 -4. 브랜치에 Push 합니다. (`git push origin feature/AmazingFeature`) 353 + 4. 브랜치에 Push 합니다. (`git push origin feature/AmazingFeature`)
242 -5. Pull Request 합니다. 354 + 5. Pull Request 합니다.
243 - 355 +<br><br>
244 -
245 356
357 +<br />
246 <!-- LICENSE --> 358 <!-- LICENSE -->
247 ## License 359 ## License
248 - 360 +<br />
249 MIT License 361 MIT License
250 - 362 +<br><br>
251 363
252 <!-- CONTACT --> 364 <!-- CONTACT -->
253 ## Contact 365 ## Contact
254 - 366 +<br />
255 신지원 - Dev.jiwonshin@khu.ac.kr 367 신지원 - Dev.jiwonshin@khu.ac.kr
256 368
257 엄민용 - dono222@khu.ac.kr 369 엄민용 - dono222@khu.ac.kr
...@@ -259,13 +371,13 @@ MIT License ...@@ -259,13 +371,13 @@ MIT License
259 엄성진 - 7497aaaa@khu.ac.kr 371 엄성진 - 7497aaaa@khu.ac.kr
260 372
261 Project Link: [http://khuhub.khu.ac.kr/2016102927/LineMusicChatbot.git](http://khuhub.khu.ac.kr/2016102927/LineMusicChatbot.git) 373 Project Link: [http://khuhub.khu.ac.kr/2016102927/LineMusicChatbot.git](http://khuhub.khu.ac.kr/2016102927/LineMusicChatbot.git)
374 +<br><br>
262 375
263 376
264 377
265 378
266 - 379 +<!— MARKDOWN LINKS & IMAGES —>
267 -<!-- MARKDOWN LINKS & IMAGES --> 380 +<!— https://www.markdownguide.org/basic-syntax/#reference-style-links —>
268 -<!-- https://www.markdownguide.org/basic-syntax/#reference-style-links -->
269 [contributors-shield]: https://img.shields.io/github/contributors/github_username/repo.svg?style=for-the-badge 381 [contributors-shield]: https://img.shields.io/github/contributors/github_username/repo.svg?style=for-the-badge
270 [contributors-url]: https://github.com/github_username/repo/graphs/contributors 382 [contributors-url]: https://github.com/github_username/repo/graphs/contributors
271 [forks-shield]: https://img.shields.io/github/forks/github_username/repo.svg?style=for-the-badge 383 [forks-shield]: https://img.shields.io/github/forks/github_username/repo.svg?style=for-the-badge
...@@ -278,3 +390,4 @@ Project Link: [http://khuhub.khu.ac.kr/2016102927/LineMusicChatbot.git](http://k ...@@ -278,3 +390,4 @@ Project Link: [http://khuhub.khu.ac.kr/2016102927/LineMusicChatbot.git](http://k
278 [license-url]: https://github.com/github_username/repo/blob/master/LICENSE.txt 390 [license-url]: https://github.com/github_username/repo/blob/master/LICENSE.txt
279 [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555 391 [linkedin-shield]: https://img.shields.io/badge/-LinkedIn-black.svg?style=for-the-badge&logo=linkedin&colorB=555
280 [linkedin-url]: https://linkedin.com/in/github_username 392 [linkedin-url]: https://linkedin.com/in/github_username
393 +<br><br>
...\ No newline at end of file ...\ No newline at end of file
......