diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..47aa0ea --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,12 @@ +## ๐Ÿ“Œ PR ๋‚ด์šฉ +- [ ] ๊ธฐ๋Šฅ ์ถ”๊ฐ€ +- [ ] ๋ฒ„๊ทธ ์ˆ˜์ • +- [ ] ๋ฆฌํŒฉํ† ๋ง +- [ ] ์„ฑ๋Šฅ ๊ฐœ์„  +- [ ] ๋ฌธ์„œ ๋ณ€๊ฒฝ + +### ์ž‘์—… ๊ฐœ์š” + + +### ๋ณ€๊ฒฝ ์‚ฌํ•ญ + \ No newline at end of file diff --git a/.gitignore b/.gitignore index 67ae54b..5741ad4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,5 @@ # Secret properties -src/main/resources/application-secret.properties +src/main/resources/application-secret.yml /logs/ diff --git a/README.md b/README.md index 183970f..e2a7808 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ ## API ๋ช…์„ธ + +## ํ˜‘์—… ๊ทœ์น™ + \ No newline at end of file diff --git a/src/main/java/com/_data/_data/aichat/controller/AiChatController.java b/src/main/java/com/_data/_data/aichat/controller/AiChatController.java index b92148e..ad2f2bc 100644 --- a/src/main/java/com/_data/_data/aichat/controller/AiChatController.java +++ b/src/main/java/com/_data/_data/aichat/controller/AiChatController.java @@ -35,6 +35,15 @@ public TopicListDto getTopics() { return topicService.getAllTopics(); } + @Operation( + summary = "๋น„์ž ๋ฉด์ ‘ ์นดํ…Œ๊ณ ๋ฆฌ ๋ชฉ๋ก", + description = "๋น„์ž ๋ฉด์ ‘ ์—ฐ์Šต์„ ์œ„ํ•œ ๋น„์ž ์นดํ…Œ๊ณ ๋ฆฌ ๋ชฉ๋ก์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค." + ) + @GetMapping("/visa_topics") + public VisaListDto getVisaTopics() { + return topicService.getVisaTopics(); + } + @Operation( summary = "์ฑ„ํŒ… ์‹œ์ž‘", description = "์œ ์ €๊ฐ€ ์„ ํƒํ•œ ์ฃผ์ œ๋กœ ์ฑ„ํŒ…๋ฐฉ์„ ์ƒ์„ฑํ•˜๊ณ  ์ฑ„ํŒ…๋ฐฉ ID์™€ ํ•จ๊ป˜ ๋Œ€ํ™” ์‹œ์ž‘ ๋ฉ”์„ธ์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค." diff --git a/src/main/java/com/_data/_data/aichat/dto/VisaListDto.java b/src/main/java/com/_data/_data/aichat/dto/VisaListDto.java new file mode 100644 index 0000000..5a60da4 --- /dev/null +++ b/src/main/java/com/_data/_data/aichat/dto/VisaListDto.java @@ -0,0 +1,15 @@ +package com._data._data.aichat.dto; + +import lombok.Getter; +import lombok.Setter; + +import java.util.List; + +@Getter +@Setter +public class VisaListDto { + + List employmentVisa; + + List jobSearchingVisa; +} diff --git a/src/main/java/com/_data/_data/aichat/service/TopicService.java b/src/main/java/com/_data/_data/aichat/service/TopicService.java index 221ad29..3ffdab4 100644 --- a/src/main/java/com/_data/_data/aichat/service/TopicService.java +++ b/src/main/java/com/_data/_data/aichat/service/TopicService.java @@ -1,6 +1,7 @@ package com._data._data.aichat.service; import com._data._data.aichat.dto.TopicListDto; +import com._data._data.aichat.dto.VisaListDto; import com._data._data.aichat.entity.Topic; public interface TopicService { @@ -9,4 +10,6 @@ public interface TopicService { Topic getByTitle(String title); TopicListDto getAllTopics(); + + VisaListDto getVisaTopics(); } diff --git a/src/main/java/com/_data/_data/aichat/service/TopicServiceImpl.java b/src/main/java/com/_data/_data/aichat/service/TopicServiceImpl.java index 9346835..09460bd 100644 --- a/src/main/java/com/_data/_data/aichat/service/TopicServiceImpl.java +++ b/src/main/java/com/_data/_data/aichat/service/TopicServiceImpl.java @@ -2,6 +2,7 @@ import com._data._data.aichat.dto.TopicDto; import com._data._data.aichat.dto.TopicListDto; +import com._data._data.aichat.dto.VisaListDto; import com._data._data.aichat.entity.Topic; import com._data._data.aichat.exception.TopicNotFoundException; import com._data._data.aichat.repository.TopicRepository; @@ -67,6 +68,32 @@ else if (i == 1) { } return topicListDto; + } + @Override + public VisaListDto getVisaTopics() { + + String[] categories = {"์ทจ์—… ๋น„์ž", "๊ตฌ์ง ๋น„์ž"}; + + VisaListDto visaListDto = new VisaListDto(); + + for (int i = 0; i < categories.length; i++) { + + List topics = topicRepository.findByCategory(categories[i]); + + if (i == 0) { + visaListDto.setEmploymentVisa(topics.stream() + .map(TopicServiceImpl::getTopicDto) + .collect(Collectors.toList())); + } + else { + visaListDto.setJobSearchingVisa(topics.stream() + .map(TopicServiceImpl::getTopicDto) + .collect(Collectors.toList())); + } + } + + return visaListDto; + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index adecda4..fa91ed3 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -7,6 +7,7 @@ spring: name: 00data profiles: include: secret +# active: dev # Thymeleaf ์„ค์ • (HTML ํ…œํ”Œ๋ฆฟ์šฉ) thymeleaf: @@ -27,8 +28,8 @@ spring: sql: init: - mode: always - data-locations: classpath:dummy-data/*.sql + mode: never +# data-locations: classpath:dummy-data/*.sql jpa: defer-datasource-initialization: true diff --git a/src/main/resources/dummy-data/quiz.sql b/src/main/resources/dummy-data/quiz.sql deleted file mode 100644 index 8f4861a..0000000 --- a/src/main/resources/dummy-data/quiz.sql +++ /dev/null @@ -1,79 +0,0 @@ --- 1. ์™ธ๋ž˜ํ‚ค ๊ฒ€์‚ฌ ๋น„ํ™œ์„ฑํ™” -SET FOREIGN_KEY_CHECKS = 0; - --- 2. ๊ธฐ์กด ๋ฐ์ดํ„ฐ ์‚ญ์ œ (์ž์‹ โ†’ ๋ถ€๋ชจ ์ˆœ์„œ) -TRUNCATE TABLE quiz_choice; -TRUNCATE TABLE quizzes; -TRUNCATE TABLE choices; -ALTER TABLE quizzes AUTO_INCREMENT = 1; -ALTER TABLE choices AUTO_INCREMENT = 1; - --- 3. Word(choices) ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ฝ์ž… -INSERT INTO choices (word, description) VALUES - ('๋ณด์ด์Šคํ”ผ์‹ฑ', 'ํœด๋Œ€ํฐ ๋“ฑ ์ „๊ธฐํ†ต์‹ ์ˆ˜๋‹จ์„ ์ด์šฉํ•˜์—ฌ ํƒ€์ธ์„ ์†์ด๊ฑฐ๋‚˜ ํ˜‘๋ฐ•ํ•˜์—ฌ ์ž๊ธˆ์„ ์†ก๊ธˆยท์ด์ฒดํ•˜๋„๋ก ํ•˜๊ฒŒ ํ•˜๊ฑฐ๋‚˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ์•Œ์•„๋‚ด์–ด ์ž๊ธˆ์„ ์†ก๊ธˆยท์ด์ฒดํ•˜๋Š” ํ–‰์œ„'), - ('๋กœ๊ทธ์ธ', '์ปดํ“จํ„ฐ๋‚˜ ์›น์‚ฌ์ดํŠธ์— ์‚ฌ์šฉ์ž ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์ ‘์†ํ•˜๋Š” ํ–‰์œ„'), - ('๋ฆฌ๋ชจ์ฝ˜', 'ํ…”๋ ˆ๋น„์ „์ด๋‚˜ ์—์–ด์ปจ ๋“ฑ์˜ ์ „์ž๊ธฐ๊ธฐ๋ฅผ ๋ฉ€๋ฆฌ์„œ ์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ์›๊ฒฉ ์ œ์–ด ์žฅ์น˜'), - ('๊ณ„์•ฝ', '๋‘˜ ์ด์ƒ์˜ ๋‹น์‚ฌ์ž๊ฐ€ ์„œ๋กœ ํ•ฉ์˜ํ•˜์—ฌ ๋ฒ•์  ๊ตฌ์†๋ ฅ์ด ์žˆ๋Š” ์•ฝ์†์„ ๋งบ๋Š” ํ–‰์œ„'), - ('๊น€์น˜', '๋ฐฐ์ถ”๋‚˜ ๋ฌด ๋“ฑ์˜ ์ฑ„์†Œ๋ฅผ ์†Œ๊ธˆ์— ์ ˆ์—ฌ ๊ณ ์ถง๊ฐ€๋ฃจ, ๋งˆ๋Š˜ ๋“ฑ์˜ ์–‘๋…๊ณผ ํ•จ๊ป˜ ๋ฐœํšจ์‹œํ‚จ ํ•œ๊ตญ์˜ ์ „ํ†ต ์Œ์‹'), - ('๋ถˆ๊ณ ๊ธฐ', '์–‡๊ฒŒ ์ฌ ์†Œ๊ณ ๊ธฐ๋ฅผ ๊ฐ„์žฅ, ์„คํƒ•, ๋งˆ๋Š˜ ๋“ฑ์œผ๋กœ ์–‘๋…ํ•˜์—ฌ ๊ตฌ์šด ํ•œ๊ตญ์˜ ๋Œ€ํ‘œ์ ์ธ ๊ณ ๊ธฐ ์š”๋ฆฌ'), - ('๋น„๋น”๋ฐฅ', '๋ฐฅ ์œ„์— ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‚˜๋ฌผ๊ณผ ๊ณ ๊ธฐ, ๋‹ฌ๊ฑ€ ๋“ฑ์„ ์˜ฌ๋ฆฌ๊ณ  ๊ณ ์ถ”์žฅ์„ ๋„ฃ์–ด ๋น„๋ฒผ ๋จน๋Š” ํ•œ๊ตญ ์š”๋ฆฌ'), - ('๋–ก๋ณถ์ด', '๊ฐ€๋ž˜๋–ก์„ ๊ณ ์ถ”์žฅ ์–‘๋…์— ๋“์—ฌ ๋งŒ๋“  ํ•œ๊ตญ์˜ ๋Œ€ํ‘œ์ ์ธ ๊ธธ๊ฑฐ๋ฆฌ ์Œ์‹'), - ('ํ•œ๋ณต', 'ํ•œ๊ตญ์˜ ์ „ํ†ต ์˜์ƒ์œผ๋กœ ์ €๊ณ ๋ฆฌ์™€ ์น˜๋งˆ ๋˜๋Š” ๋ฐ”์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Œ'), - ('ํƒœ๊ถŒ๋„', '๋ฐœ๊ณผ ์ฃผ๋จน์„ ์‚ฌ์šฉํ•˜๋Š” ํ•œ๊ตญ์˜ ์ „ํ†ต ๋ฌด์ˆ ์ด์ž ์˜ฌ๋ฆผํ”ฝ ์ •์‹ ์ข…๋ชฉ'), - ('ํŒ์†Œ๋ฆฌ', 'ํ•œ ๋ช…์˜ ์†Œ๋ฆฌ๊พผ์ด ๊ณ ์ˆ˜์˜ ๋ถ ๋ฐ˜์ฃผ์— ๋งž์ถฐ ์ด์•ผ๊ธฐ๋ฅผ ๋…ธ๋ž˜๋กœ ๋“ค๋ ค์ฃผ๋Š” ํ•œ๊ตญ์˜ ์ „ํ†ต ์Œ์•…'), - ('์˜จ๋Œ', '๋ฐฉ ๋ฐ”๋‹ฅ ์•„๋ž˜์— ๊ณ ๋ž˜๋ฅผ ๋งŒ๋“ค์–ด ์—ฐ๊ธฐ์™€ ์—ด๊ธฐ๋กœ ๋ฐฉ์„ ๋”ฐ๋œปํ•˜๊ฒŒ ํ•˜๋Š” ํ•œ๊ตญ์˜ ์ „ํ†ต ๋‚œ๋ฐฉ ๋ฐฉ์‹'), - ('์ง€ํ•˜์ฒ ', '๋„์‹œ์˜ ์ง€ํ•˜์— ๋งŒ๋“  ์ „์ฒ ๋กœ ๋Œ€์ค‘๊ตํ†ต ์ˆ˜๋‹จ ์ค‘ ํ•˜๋‚˜'), - ('ํŽธ์˜์ ', '24์‹œ๊ฐ„ ์šด์˜ํ•˜๋ฉฐ ์ƒํ•„ํ’ˆ์„ ํŒ๋งคํ•˜๋Š” ์ž‘์€ ๊ทœ๋ชจ์˜ ์ƒ์ '), - ('PC๋ฐฉ', '์ปดํ“จํ„ฐ๋ฅผ ์‹œ๊ฐ„๋‹น ์š”๊ธˆ์„ ๋ฐ›๊ณ  ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—…์†Œ'), - ('์น˜ํ‚จ', '๋‹ญ๊ณ ๊ธฐ๋ฅผ ํŠ€๊ธฐ๊ฑฐ๋‚˜ ๊ตฌ์›Œ์„œ ๋งŒ๋“  ์š”๋ฆฌ๋กœ ํ•œ๊ตญ์—์„œ ๋งค์šฐ ์ธ๊ธฐ๊ฐ€ ๋†’์Œ'), - ('ํ•œ๊ธ€', 'ํ•œ๊ตญ์–ด๋ฅผ ํ‘œ๊ธฐํ•˜๋Š” ๊ณ ์œ  ๋ฌธ์ž๋กœ ์„ธ์ข…๋Œ€์™•์ด ์ฐฝ์ œํ•จ'), - ('์กด๋Œ“๋ง', '์ƒ๋Œ€๋ฐฉ์„ ๋†’์—ฌ์„œ ํ•˜๋Š” ๋ง๋กœ ํ•œ๊ตญ์–ด์˜ ์ค‘์š”ํ•œ ํŠน์ง• ์ค‘ ํ•˜๋‚˜'), - ('๋ฐœ์Œ', '๋ง์†Œ๋ฆฌ๋ฅผ ๋‚ด๋Š” ๊ฒƒ ๋˜๋Š” ๊ทธ ์†Œ๋ฆฌ'), - ('๋ฌธ๋ฒ•', '์–ธ์–ด์˜ ๊ตฌ์กฐ์™€ ๊ทœ์น™์„ ๋‹ค๋ฃจ๋Š” ์ฒด๊ณ„'), - ('์‚ฌ๋ฌผ๋†€์ด', '๊ฝน๊ณผ๋ฆฌ, ์ง•, ์žฅ๊ตฌ, ๋ถ ๋„ค ๊ฐ€์ง€ ํƒ€์•…๊ธฐ๋กœ ์—ฐ์ฃผํ•˜๋Š” ํ•œ๊ตญ์˜ ์ „ํ†ต ์Œ์•…'), - ('์–‘๋ฐ˜', '์กฐ์„ ์‹œ๋Œ€ ์ง€๋ฐฐ์ธต ๊ณ„๊ธ‰์œผ๋กœ ๋ฌธ๋ฌด๊ด€์„ ์ง€๋‚ผ ์ˆ˜ ์žˆ๋Š” ์‹ ๋ถ„'), - ('์„ ๋น„', 'ํ•™๋ฌธ์„ ๋‹ฆ๊ณ  ๋•์„ ์Œ“๋Š” ๊ฒƒ์„ ์ด์ƒ์œผ๋กœ ํ•˜๋Š” ์กฐ์„ ์‹œ๋Œ€์˜ ์ง€์‹์ธ ๊ณ„์ธต'), - ('๋†์•…', '๋†์ดŒ์—์„œ ์ผํ•  ๋•Œ๋‚˜ ์ถ•์ œ ๋•Œ ์—ฐ์ฃผํ•˜๋˜ ํ•œ๊ตญ์˜ ์ „ํ†ต ์Œ์•…๊ณผ ์ถค'); - --- 4. Quiz ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ ์‚ฝ์ž… (ํ…์ŠคํŠธ/๋‹จ์–ด ๋งค์นญ ์ œ๊ฑฐ, quiz_text ํ†ต์ผ) -INSERT INTO quizzes (level, category, quiz_text, image, voice, answer, answer_script) VALUES --- Level 1 - ๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ -(1, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/kimchi.png', NULL, 1, '๋นจ๊ฐ„ ๊ณ ์ถง๊ฐ€๋ฃจ๋กœ ์–‘๋…ํ•œ ๋ฐœํšจ ์ฑ„์†Œ ์Œ์‹์ด๋ฏ€๋กœ ๊น€์น˜๊ฐ€ ์ •๋‹ต์ž…๋‹ˆ๋‹ค!'), -(1, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/bulgogi.png', NULL, 2, '์–‘๋…ํ•œ ์†Œ๊ณ ๊ธฐ๋ฅผ ๊ตฌ์šด ์š”๋ฆฌ์ด๋ฏ€๋กœ ๋ถˆ๊ณ ๊ธฐ๊ฐ€ ๋งž์Šต๋‹ˆ๋‹ค!'), -(1, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/tteokbokki.png', NULL, 1, '๊ณ ์ถ”์žฅ ์–‘๋…์— ๋“์ธ ๊ฐ€๋ž˜๋–ก ์š”๋ฆฌ์ด๋ฏ€๋กœ ๋–ก๋ณถ์ด๊ฐ€ ์ •๋‹ต์ด์—์š”!'), -(1, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/chicken.png', NULL, 1, '๋‹ญ๊ณ ๊ธฐ๋ฅผ ํŠ€๊ธด ์š”๋ฆฌ์ด๋ฏ€๋กœ ์น˜ํ‚จ์ด ์ •๋‹ต์ž…๋‹ˆ๋‹ค!'), - --- Level 2 - ๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ & ์Œ์„ฑ/๋‹จ์–ด ๋งค์นญ -(2, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/hanbok.png', NULL, 1, '์ €๊ณ ๋ฆฌ์™€ ์น˜๋งˆ๋กœ ๊ตฌ์„ฑ๋œ ํ•œ๊ตญ์˜ ์ „ํ†ต ์˜์ƒ์ด๋ฏ€๋กœ ํ•œ๋ณต์ด ์ •๋‹ต์ด์—์š”!'), -(2, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/convenience_store.png', NULL, 2, '์ž‘์€ ๊ทœ๋ชจ๋กœ ์ƒํ•„ํ’ˆ์„ ํŒŒ๋Š” ์ƒ์  ๊ทธ๋ฆผ์ด๋ฏ€๋กœ ํŽธ์˜์ ์ด ์ •๋‹ต์ด์—์š”!'), -(2, '์Œ์„ฑ/๋‹จ์–ด ๋งค์นญ', '์Œ์„ฑ์„ ๋“ฃ๊ณ  ํ•ด๋‹นํ•˜๋Š” ์˜๋ฏธ์˜ ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', NULL, 'ํ•œ ๋ช…์˜ ์†Œ๋ฆฌ๊พผ์ด ๊ณ ์ˆ˜์˜ ๋ถ ๋ฐ˜์ฃผ์— ๋งž์ถฐ ์ด์•ผ๊ธฐ๋ฅผ ๋…ธ๋ž˜๋กœ ๋“ค๋ ค์ฃผ๋Š” ํ•œ๊ตญ์˜ ์ „ํ†ต ์Œ์•…', 1, NULL), -(2, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/subway.png', NULL, 1, '์ „์ฒ ์— M ์•ŒํŒŒ๋ฒณ์ด ์žˆ๋Š” ๊ทธ๋ฆผ์ด๋ฏ€๋กœ ์ง€ํ•˜์ฒ ์ด ๋งž์Šต๋‹ˆ๋‹ค!'), - --- Level 3 - ๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ & ์Œ์„ฑ/๋‹จ์–ด ๋งค์นญ -(3, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/voice_phishing.png', NULL, 1, '์‹ ์› ๋ฏธ์ƒ์˜ ๋‚˜์œ ์‚ฌ๋žŒ์—๊ฒŒ ์ „ํ™”๋ฅผ ๋ฐ›๊ณ  ๋‹นํ™ฉํ•˜๋Š” ๊ทธ๋ฆผ์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์ด์Šคํ”ผ์‹ฑ์ด ๊ฐ€์žฅ ์ ์ ˆํ•ด์š”!'), -(3, '์Œ์„ฑ/๋‹จ์–ด ๋งค์นญ', '์Œ์„ฑ์„ ๋“ฃ๊ณ  ํ•ด๋‹นํ•˜๋Š” ์˜๋ฏธ์˜ ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', NULL, '๊ฝน๊ณผ๋ฆฌ, ์ง•, ์žฅ๊ตฌ, ๋ถ ๋„ค ๊ฐ€์ง€ ํƒ€์•…๊ธฐ๋กœ ์—ฐ์ฃผํ•˜๋Š” ํ•œ๊ตญ์˜ ์ „ํ†ต ์Œ์•…', 1, NULL), -(3, '๊ทธ๋ฆผ/๋‹จ์–ด ๋งค์นญ', '๊ทธ๋ฆผ์— ๋งž๋Š” ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', '/images/ondol.png', NULL, 1, '๋ฐฉ ๋ฐ”๋‹ฅ ์•„๋ž˜๋กœ ์—ด๊ธฐ๋ฅผ ๋ณด๋‚ด๋Š” ์ „ํ†ต ๋‚œ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋Š” ๊ทธ๋ฆผ์ด๋ฏ€๋กœ ์˜จ๋Œ์ด ์ •๋‹ต์ด์—์š”!'), -(3, '์Œ์„ฑ/๋‹จ์–ด ๋งค์นญ', '์Œ์„ฑ์„ ๋“ฃ๊ณ  ํ•ด๋‹นํ•˜๋Š” ์˜๋ฏธ์˜ ๋‹จ์–ด๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”!', NULL, '๋ฐœ๊ณผ ์ฃผ๋จน์„ ์‚ฌ์šฉํ•˜๋Š” ํ•œ๊ตญ์˜ ์ „ํ†ต ๋ฌด์ˆ ์ด์ž ์˜ฌ๋ฆผํ”ฝ ์ •์‹ ์ข…๋ชฉ', 1, NULL); - --- 5. Quiz-Word ๋งคํ•‘ ๋ฐ์ดํ„ฐ ์‚ฝ์ž… (ํ€ด์ฆˆ ID ์ˆœ์„œ ์ •๋ ฌ) -INSERT INTO quiz_choice (quiz_id, choice_id) VALUES --- Level 1 (ํ€ด์ฆˆID 1-4) -(1, 5), (1, 6), (1, 7), (1, 8), -- ๊น€์น˜: ๊น€์น˜(5), ๋ถˆ๊ณ ๊ธฐ(6), ๋น„๋น”๋ฐฅ(7), ๋–ก๋ณถ์ด(8) -(2, 8), (2, 6), (2, 7), (2, 5), -- ๋ถˆ๊ณ ๊ธฐ: ๋–ก๋ณถ์ด(8), ๋ถˆ๊ณ ๊ธฐ(6), ๋น„๋น”๋ฐฅ(7), ๊น€์น˜(5) -(3, 8), (3, 7), (3, 5), (3, 6), -- ๋–ก๋ณถ์ด: ๋–ก๋ณถ์ด(8), ๋น„๋น”๋ฐฅ(7), ๊น€์น˜(5), ๋ถˆ๊ณ ๊ธฐ(6) -(4, 16), (4, 13), (4, 14), (4, 15), -- ์น˜ํ‚จ: ์น˜ํ‚จ(16), ์ง€ํ•˜์ฒ (13), ํŽธ์˜์ (14), PC๋ฐฉ(15) - --- Level 2 (ํ€ด์ฆˆID 5-8) -(5, 9), (5, 10), (5, 11), (5, 12), -- ํ•œ๋ณต: ํ•œ๋ณต(9), ํƒœ๊ถŒ๋„(10), ํŒ์†Œ๋ฆฌ(11), ์˜จ๋Œ(12) -(6, 15), (6, 14), (6, 16), (6, 13), -- ํŽธ์˜์ : PC๋ฐฉ(15), ํŽธ์˜์ (14), ์น˜ํ‚จ(16), ์ง€ํ•˜์ฒ (13) -(7, 11), (7, 9), (7, 10), (7, 12), -- ํŒ์†Œ๋ฆฌ(์Œ์„ฑ): ํŒ์†Œ๋ฆฌ(11), ํ•œ๋ณต(9), ํƒœ๊ถŒ๋„(10), ์˜จ๋Œ(12) -(8, 13), (8, 14), (8, 15), (8, 16), -- ์ง€ํ•˜์ฒ : ์ง€ํ•˜์ฒ (13), ํŽธ์˜์ (14), PC๋ฐฉ(15), ์น˜ํ‚จ(16) - --- Level 3 (ํ€ด์ฆˆID 9-12) -(9, 1), (9, 2), (9, 3), (9, 4), -- ๋ณด์ด์Šคํ”ผ์‹ฑ: ๋ณด์ด์Šคํ”ผ์‹ฑ(1), ๋กœ๊ทธ์ธ(2), ๋ฆฌ๋ชจ์ฝ˜(3), ๊ณ„์•ฝ(4) -(10, 21), (10, 22), (10, 23), (10, 24), -- ์‚ฌ๋ฌผ๋†€์ด(์Œ์„ฑ): ์‚ฌ๋ฌผ๋†€์ด(21), ์–‘๋ฐ˜(22), ์„ ๋น„(23), ๋†์•…(24) -(11, 12), (11, 9), (11, 10), (11, 11), -- ์˜จ๋Œ: ์˜จ๋Œ(12), ํ•œ๋ณต(9), ํƒœ๊ถŒ๋„(10), ํŒ์†Œ๋ฆฌ(11) -(12, 10), (12, 11), (12, 9), (12, 12); -- ํƒœ๊ถŒ๋„(์Œ์„ฑ): ํƒœ๊ถŒ๋„(10), ํŒ์†Œ๋ฆฌ(11), ํ•œ๋ณต(9), ์˜จ๋Œ(12) - --- 6. ์™ธ๋ž˜ํ‚ค ๊ฒ€์‚ฌ ์žฌํ™œ์„ฑํ™” -SET FOREIGN_KEY_CHECKS = 1; diff --git a/src/main/resources/dummy-data/topic.sql b/src/main/resources/dummy-data/topic.sql new file mode 100644 index 0000000..59374f2 --- /dev/null +++ b/src/main/resources/dummy-data/topic.sql @@ -0,0 +1,16 @@ +INSERT INTO topics (id, category, title, description, user_role, ai_role) VALUES + (31, '์ทจ์—… ๋น„์ž', '๊ต์ˆ˜(E-1) ๋น„์ž ๋ฉด์ ‘', '๊ต์ˆ˜(E-1) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (32, '์ทจ์—… ๋น„์ž', '์ผ๋ฐ˜ํšŒํ™”๊ฐ•์‚ฌ(E-2-1) ๋น„์ž ๋ฉด์ ‘', '์ผ๋ฐ˜ํšŒํ™”๊ฐ•์‚ฌ(E-2-1) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (33, '์ทจ์—… ๋น„์ž', 'ํ•™๊ต๋ณด์กฐ๊ต์‚ฌ(E-2-2) ๋น„์ž ๋ฉด์ ‘', 'ํ•™๊ต๋ณด์กฐ๊ต์‚ฌ(E-2-2) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (34, '์ทจ์—… ๋น„์ž', 'FTA์˜์–ด(E-2-91) ๋น„์ž ๋ฉด์ ‘', 'FTA์˜์–ด(E-2-91) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (35, '์ทจ์—… ๋น„์ž', '์—ฐ๊ตฌ(E-3) ๋น„์ž ๋ฉด์ ‘', '์—ฐ๊ตฌ(E-3) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (36, '์ทจ์—… ๋น„์ž', '๊ธฐ์ˆ ์ง€๋„(E-4) ๋น„์ž ๋ฉด์ ‘', '๊ธฐ์ˆ ์ง€๋„(E-4) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (37, '์ทจ์—… ๋น„์ž', '์ „๋ฌธ์ง์—…(E-5) ๋น„์ž ๋ฉด์ ‘', '์ „๋ฌธ์ง์—…(E-5) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (38, '์ทจ์—… ๋น„์ž', '์˜ˆ์ˆ ์—ฐ์˜ˆ(E-6-1) ๋น„์ž ๋ฉด์ ‘', '์˜ˆ์ˆ ์—ฐ์˜ˆ(E-6-1) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (39, '์ทจ์—… ๋น„์ž', 'ํ˜ธํ…”์œ ํฅ(E-6-2) ๋น„์ž ๋ฉด์ ‘', 'ํ˜ธํ…”์œ ํฅ(E-6-2) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (40, '์ทจ์—… ๋น„์ž', '์šด๋™(E-6-3) ๋น„์ž ๋ฉด์ ‘', '์šด๋™(E-6-3) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (41, '์ทจ์—… ๋น„์ž', 'ํŠน์ •ํ™œ๋™(E-7-1) ๋น„์ž ๋ฉด์ ‘', 'ํŠน์ •ํ™œ๋™(E-7-1) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (42, '์ทจ์—… ๋น„์ž', 'FTA๋…๋ฆฝ(E-7-91) ๋น„์ž ๋ฉด์ ‘', 'FTA๋…๋ฆฝ(E-7-91) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (43, '์ทจ์—… ๋น„์ž', 'ํŠน์ •๋Šฅ๋ ฅ(F-5-11) ๋น„์ž ๋ฉด์ ‘', 'ํŠน์ •๋Šฅ๋ ฅ(F-5-11) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (44, '๊ตฌ์ง ๋น„์ž', '์œ ํ•™์ƒ(D-10) ๋น„์ž ๋ฉด์ ‘', '์œ ํ•™์ƒ(D-10) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€'), + (45, '๊ตฌ์ง ๋น„์ž', 'ํ•ด์™ธ๋Œ€ํ•™ ์กธ์—… ์ „๋ฌธ ์ธ๋ ฅ์šฉ(E-7) ๋น„์ž ๋ฉด์ ‘', 'ํ•ด์™ธ๋Œ€ํ•™ ์กธ์—… ์ „๋ฌธ ์ธ๋ ฅ์šฉ(E-7) ๋น„์ž ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๋ฉด์ ‘์ž์—๊ฒŒ ์งˆ๋ฌธํ•˜๋Š” ์ƒํ™ฉ', '๋ฉด์ ‘์ž', '๋ฉด์ ‘๊ด€');