π€ [Team 13] λλ΄λ€λ¦¬ - μμμ κ΄λ¦¬ μλΉμ€
λͺ©μ°¨
π§βπ» Collaborators
### ποΈ κ°λ° κΈ°κ°
2024.09 ~ 2024.11 (μΉ΄μΉ΄μ€ ν
ν¬ μΊ νΌμ€ 2κΈ° - Step3)
Backend
| **ν
ν¬ λ¦¬λ** | **κΈ°ν 리λ** | **리μ‘μ
λ** | **리λ§μΈλ** | **리λ§μΈλ** |
| ------------- | ------------- | ------------ | ------------ | ------------ |
|
[μ΄μμ€](https://github.com/20jcode)
|
[κΉνμ€](https://github.com/pykido)
|
[μ κ²½λ―Έ](https://github.com/yooookm)
|
[λ°νμ°](https://github.com/hyyyh0x)
|
[μ΄μ§μ](https://github.com/mogld)
|
|
|
|
|
|
|
Frontend
| **μ‘°μ₯** | **νμ ν€νΌ** |
| ------------- | ------------- |
|
[λ¬Έμ μ€](https://github.com/nnoonjy)
|
[μ΄μ§μ](https://github.com/dlwltn0430)
|
|
|
|
βοΈ κ°λ° μ€ν
![java 17](https://img.shields.io/badge/-Java%2017-ED8B00?style=flat-square&logo=java&logoColor=white)
![spring boot 3.3](https://img.shields.io/badge/Spring%20boot%203.3-6DB33F?style=flat-square&logo=springboot&logoColor=white)
![spring security](https://img.shields.io/badge/spring%20security-6DB33F?style=flat-square&logo=spring&logoColor=white)
![mysql 8.0](https://img.shields.io/badge/MySQL%208.0-005C84?style=flat-square&logo=mysql&logoColor=white)
![Redis](https://img.shields.io/badge/Redis-DC382D?style=flat-square&logo=Redis&logoColor=white)
![AWS S3](https://img.shields.io/badge/AWS%20S3-569A31?style=flat-square&logo=amazons3&logoColor=white)
![AWS EC2](https://img.shields.io/badge/AWS%20EC2-FF9900?style=flat-square&logo=amazonec2&logoColor=white)
![Amazon sqs](https://img.shields.io/badge/Amazon%20sqs-FF9900?style=flat-square&logo=amazon&logoColor=white)
![Naver cloud](https://img.shields.io/badge/naver%20cloud-03C75A?style=flat-square&logo=naver&logoColor=white)
![openAI](https://img.shields.io/badge/openAI-FF6C37?style=flat-square&logo=openai&logoColor=white)
![poi](https://img.shields.io/badge/poi-3F6EB5?style=flat-square&logo=apache&logoColor=white)
![line api](https://img.shields.io/badge/line%20api-00C300?style=flat-square&logo=line&logoColor=white)
![coolSms](https://img.shields.io/badge/coolSms-FF6C37?style=flat-square&logo=coolSms&logoColor=white)
![React](https://img.shields.io/badge/-React%2018-4894FE?style=flat-square&logo=react&logoColor=white)
![Vite](https://img.shields.io/badge/-Vite%205-646CFF?style=flat-square&logo=vite&logoColor=white)
![TypeScript](https://img.shields.io/badge/-TypeScript-3178C6?style=flat-square&logo=typescript&logoColor=white)
![Chakra UI](https://img.shields.io/badge/-Chakra%20UI-319795?style=flat-square&logo=chakraui&logoColor=white)
![Emotion](https://img.shields.io/badge/-Emotion-FF69B4?style=flat-square&logo=emotion&logoColor=white)
![Styled Components](https://img.shields.io/badge/-Styled%20Components-DB7093?style=flat-square&logo=styledcomponents&logoColor=white)
![React Query](https://img.shields.io/badge/-React%20Query-FF4154?style=flat-square&logo=reactquery&logoColor=white)
![Axios](https://img.shields.io/badge/-Axios-5A29E4?style=flat-square&logo=axios&logoColor=white)
![Tesseract.js](https://img.shields.io/badge/-Tesseract.js-3D348B?style=flat-square&logo=tesseract&logoColor=white)
π νλ‘μ νΈ κ΄λ ¨ μ£Όμ
| λ¬Έμ |
|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|
| [λ°±μλ λ°°ν¬ μ£Όμ](https://dbdr-servcie.com) |
| [νλ‘ νΈμλ λ°°ν¬ μ£Όμ](https://dbdari.vercel.app/) |
| [API λ¬Έμ](https://dolbomdari.netlify.app/) |
| [λμμΈ νΌκ·Έλ§](https://www.figma.com/design/RvPegHAoDLITbqAxexEok7/%EB%B6%80%EC%82%B0%EB%8C%80-13%EC%A1%B0-%EB%81%9D%EB%82%B4%EC%A3%BC%EC%A1%B0?node-id=19-3&node-type=canvas&t=IzVl1agbkGalr8SU-0) |
| [νλ‘μ νΈ λ
Έμ
](https://yoookm.notion.site/13-fc918782c8684baab30d46f8c05939f2?pvs=4) |
| [λλ΄λ€λ¦¬ λΌμΈ μ±λ](https://lin.ee/F4hbz9m) |
π€© μν μμ΄λ & λΉλ°λ²νΈ
κ΄λ¦¬μ
- λ‘κ·ΈμΈ μμ΄λ : string
- λ‘κ·ΈμΈ λΉλ°λ²νΈ : string
μμμ
- λ‘κ·ΈμΈ μμ΄λ : love
- λ‘κ·ΈμΈ λΉλ°λ²νΈ : 1234
μμ보νΈμ¬
- λ‘κ·ΈμΈ μμ΄λ : 01012341234
- λ‘κ·ΈμΈ λΉλ°λ²νΈ : 1
보νΈμ
- λ‘κ·ΈμΈ μμ΄λ : 01022223333
- λ‘κ·ΈμΈ λΉλ°λ²νΈ : 1234
π λλ΄λ€λ¦¬λ?
μμ보νΈμ¬λ κ°νΈνκ² μ°¨νΈλ₯Ό μμ±νκ³ ,
보νΈμλ μ΄λ₯Ό μ€μκ°μΌλ‘ νμΈν μ μλ λμ§νΈ μ°¨νΈ μλΉμ€
- 보νΈμλ μΈμ μ΄λμλ κ°μ‘±μ μνλ₯Ό νμΈ
- μμ보νΈμ¬λ 볡μ‘ν¨ μμ΄ κΈ°λ‘μ κ΄λ¦¬
β‘οΈ μ λ’°μ νΈλ¦¬μ±μ μ 곡νλ μν΅ νλ«νΌ
π§ μλΉμ€μ νμμ±
π λ¬Έμ μν© 1. μ 보 곡μ μ λ¨μ
- 보νΈμλ κ°μ‘±μ μνλ₯Ό μμ£Ό νμΈνκ³ μΆμ§λ§, μμμμ μΌμΌμ΄ μ°λ½ν΄μΌ νλ λ²κ±°λ‘μκ³Ό μ νλ μ λ³΄λ‘ μΈν΄ λΆνΈμ κ²ͺκ³ μμ΅λλ€.
- μ€μκ° μν νμΈμ΄ μ΄λ ΅κΈ° λλ¬Έμ, 보νΈμλ κ°μ‘±μ κ±΄κ° μνμ λν΄ μ§μμ μΈ λΆμκ°μ λλ μ μμ΅λλ€.
보νΈμμ μꡬ - κ°μ‘±μ μνλ₯Ό μ€μκ°μΌλ‘ νμΈν μ μλ κ°νΈν μ 보 μ κ·Ό λ°©μμ΄ νμνλ€.
β‘οΈ λ³΄νΈμκ° μ΄λμλ κ°μ‘±μ μνλ₯Ό μ½κ² νμΈν μ μλ μμ€ν
μ΄ νμνλ€!
π― ν΄κ²° λ°©μ
- μ€μκ° μ 보 곡μ κΈ°λ₯μ ν΅ν΄ 보νΈμκ° μΈμ μ΄λμλ κ°μ‘±μ μ΅μ μνλ₯Ό νμΈν μ μλλ‘ ν©λλ€.
- 보νΈμμ μμ보νΈμ¬ κ°μ μν΅μ μννκ² νμ¬ λΆμκ°μ μ€μ΄κ³ , μ λ’°λ₯Ό κ°νν©λλ€.
π λ¬Έμ μν© 2. μμ보νΈμ¬μ μ°¨νΈ μμ± μ΄λ €μ
- μμ보νΈμ¬λ 볡μ‘ν λμ§νΈ κΈ°λ‘ μμ€ν
μ μ΅μνμ§ μμ νΈλν°μΌλ‘ μ°¨νΈλ₯Ό μμ±νλ κ³Όμ μ΄ λ²κ±°λ‘κ³ μ΄λ ΅μ΅λλ€.
- μ΄λ¬ν μ΄λ €μμ κΈ°λ‘μ μ νμ±κ³Ό μ μμ±μ μ ν΄νκ³ , μμ보νΈμ¬μ μ
무 ν¨μ¨μ±μλ λΆμ μ μΈ μν₯μ λ―ΈμΉ©λλ€.
μμ보νΈμ¬μ μꡬ - 볡μ‘νμ§ μκ³ κ°λ¨ν μ°¨νΈ μμ± λ°©μμ΄ νμνλ€.
β‘οΈ μμ보νΈμ¬κ° μ½κ² μ°¨νΈλ₯Ό μμ±ν μ μλλ‘ νλ κ°νΈν κΈ°λ‘ μμ€ν
μ΄ νμνλ€!
π― ν΄κ²° λ°©μ
- μμ± μΈμ λ° μκΈμ¨ μΈμ κΈ°λ₯μ ν΅ν΄ μμ보νΈμ¬κ° 볡μ‘ν μ μ°¨ μμ΄ μ°¨νΈλ₯Ό μ½κ² μμ±ν μ μλλ‘ μ§μν©λλ€.
- κΈ°λ‘ μμ±μ κ°μνλ₯Ό ν΅ν΄ μμ보νΈμ¬μ λΆλ΄μ μ€μ΄κ³ , νμμ μνλ₯Ό μ μνκ³ μ ννκ² κΈ°λ‘ν μ μλλ‘ ν©λλ€.
𧩠μλΉμ€ ν΅μ¬ κΈ°λ₯
보νΈμ
| π **λλ΄λμμ μ°¨νΈ νμΈ** | π **μ°¨νΈ μμ½** |
|:-------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------:|
| **ν루 μν κΈ°λ‘ νμΈ**
μ¬μ§κ³Ό μ°¨νΈ μμ± μ **μλ¦Ό μμ ** | κΈ΄ μ°¨νΈλ₯Ό **ν΅μ¬ λ΄μ© μμ½**
μ£Όμ μ¬νμ **κ°κ²°νκ² νμΈ** |
|
|
|
μμ보νΈμ¬
| ποΈ **μμ μΌμ§ μμ±** | ποΈ **μμ± μΈμ μ°¨νΈ μμ±** |
|:--------------------------------------------------------------------------------------------------------------------------:|:-------------------------------------------------------------------------------------------------------------------------------:|
| **μμ±/μ¬μ§ μΈμ**, μ§μ μμ± μ§μ
**λ€μν λ°©μμΌλ‘ κ°νΈ μμ±** | **μμ± μΈμ**μ ν΅ν΄ μ£Όκ΄μ μ
λ ₯
μμ±μ ν
μ€νΈλ‘ **μλ λ³ν** |
|
|
|
| π· **OCR μ°¨νΈ μμ±** | π **μ°¨νΈ μμ½ κΈ°λ₯** | π **μλ¦Ό κΈ°λ₯** |
|:-----------------------------------------------------------------:|:------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------:|
| **μ°¨νΈ μμ νλ¦°νΈ ν μ¬μ§ μΈμ**
μ¬μ§ ν μ₯μΌλ‘ **μλ κΈ°λ‘ μμ±** | **νμ μν μμ½ μ 곡**
μ¬λ¬ νμμ **ν루 μν κ°νΈ νμΈ** | μ¬μ©μκ° μμ½ν μκ°λ§λ€
λ¬Έμ/λΌμΈ λ©μμ§λ‘ μ°¨νΈ μμ± μλ¦Ό |
|
|
|
|
μμμ
| π₯οΈ **μμμ¬, 보νΈμ, λλ΄λμμ κ΄λ¦¬** | π **μμ
μ
λ‘λ** |
|:------------------------------------------------------------------------------------------------------------------------------:|:---------------------------------------------------------------------------------------------------------------------------:|
| **μΉμ¬μ΄νΈλ‘ μ 보 κ΄λ¦¬**
μμμ¬, 보νΈμ, λμμ μ 보 **μμ κ°λ₯** | μμ
νμΌλ‘ **λλ λ°μ΄ν° μ
λ‘λ**
μ 곡λ ν
νλ¦Ώ νμΌλ‘ **κ°νΈ λ±λ‘** |
|
|
|
π§ κ³΅ν΅ ν΅μ¬ κ°λ° μμ
πβ νμκ°μ
- μ¬μ©μμ μ°λ ΉμΈ΅μ κ³ λ €ν λ, μ§μ νμκ°μ
νκ³ μ 보λ₯Ό λ±λ‘νλ κ²μ΄ μ΄λ €μΈ κ²μ΄λΌ μκ°νμ¬ μμμμ΄λ κ΄λ¦¬μκ° λλ΄λμμλ 보νΈμμ μμ΄λ, λΉλ°λ²νΈλ₯Ό μμ±ν΄μ€λλ€.
- λλ΄λμμμ 보νΈμλ λΉλ°λ²νΈλ§ κΈ°μ΅νλ©΄ μλΉμ€ μ΄μ©μ΄ κ°λ₯νλλ‘ μμ΄λλ λ³ΈμΈμ μ νλ²νΈλ‘ λ±λ‘νλλ‘ κ΅¬ννμμ΅λλ€.
- κ΄λ¦¬μλ μμμ, 보νΈμ, λλ΄λμμ, μμ보νΈμ¬λ₯Ό λ±λ‘ν μ μμ΅λλ€.
- μμμμ 보νΈμ, λλ΄λμμ, μμ보νΈμ¬λ₯Ό ν΄λΉ μμμμ λ±λ‘ν μ μμ΅λλ€.
- κ΄λ¦¬μμ κ²½μ° λλ© νμ΄μ§μ μ ν μ΄λ©μΌλ‘ contactνμ¬ μ λΆκ³Ό λͺ©μ μ μΈμ¦ν λ€ λ³Έ μλΉμ€ λ΄λΉμκ° μμ΄λ λΉλ°λ²νΈλ₯Ό λΆμ¬ν΄μ€λλ€.
π§ BE ν΅μ¬ κ°λ° μμ
π λ‘κ·ΈμΈ / νμκ°μ
spring securityμ JWTλ₯Ό νμ©νμ¬ statelessν μΈμ¦λ°©μμ μ ννμ¬ μλ² νμ₯μ±μ μ΄μ μ κ°μ§κ³ μ νμμ΅λλ€.
λν κΆν κ²μ¬λ₯Ό μ§μνκΈ° μν 컀μ€ν
λ©μλ μ΄λ
Έν
μ΄μ
μΌλ‘ λΉμ¦λμ€ λ‘μ§κ³Ό κΆν κ²μ¬λΆλΆμ λΆλ¦¬νμμ΅λλ€.
μ€μ μ μΌλ‘ μκ°ν λΆλΆμ μλ‘ λ€λ₯Έ tableμ μν΄μλ νμλ€μ λμμΌλ‘ μΈμ¦κ³Ό μΈκ°κ° νμν μν©μ΄μμΌλ©°, μ΄λ₯Ό μν΄ μλΉμ€μ μλ§μ AuthenticationProviderμ UserDetails, UserDetailsServiceλ₯Ό ꡬννμμ΅λλ€.
πͺ 리νλ μ ν ν°
μ ν¬ μλΉμ€λ λ―Όκ°ν μλ£ λ°μ΄ν°λ₯Ό λ€λ£¨κΈ°μ, ν ν° λ³΄μμ΄ μ€μνμ΅λλ€. λ‘κ·ΈμΈ μ μ‘μΈμ€ ν ν°κ³Ό 리νλ μ ν ν°μ λ°κΈνκ³ , 리νλ μ ν ν°μΌλ‘ μ¬λ°κΈ μ λ ν ν°μ λͺ¨λ μλ‘ λ°κΈνλ RTR λ°©μμ μ μ©ν΄ 보μμ κ°ννμ΅λλ€. λ‘κ·Έμμ μμλ Redisμ μ μ₯λ 리νλ μ ν ν°μ μμ νκ³ , μ‘μΈμ€ ν ν°μ λΈλ리μ€νΈμ λ±λ‘ν΄ μ ν¨μ±μ μ°¨λ¨νμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ‘κ·Έμμ μ μ€μκ°μΌλ‘ ν ν° λ§λ£λ₯Ό ν¨κ³Όμ μΌλ‘ μ²λ¦¬ν μ μμμ΅λλ€.
π· OCR κΈ°λ₯
μμ보νΈμ¬κ° μμ±ν λλ΄ λμμ μ°¨νΈλ₯Ό ν¨μ¨μ μΌλ‘ λμ§νΈννκΈ° μν΄ Naver Clova OCR APIμ AWS S3μ presigned URLμ μ¬μ©νμ΅λλ€.
presigned URLμ ν΅ν΄ μ΄λ―Έμ§ νμΌμ S3μ μ
λ‘λνκ³ , λ°±μλ μλ²μλ objectKey κ°λ§ μ λ¬νμ¬ OCRμ μννλ λ°©μμΌλ‘ μλ² κ³ΌλΆνλ₯Ό λ°©μ§νκ³ μ±λ₯μ μ΅μ ννμ΅λλ€. μ΄λ‘μ¨ μλ² λ¦¬μμ€λ₯Ό μ μ½νλ©΄μλ 보μμ±μ μ μ§ν μνμμ μ°¨νΈλ₯Ό μμ νκ² OCR μ²λ¦¬ν μ μλλ‘ κ΅¬ννμ΅λλ€.
π€ AI μμ½ κΈ°λ₯ - νμΈ νλ
-
κ³ λ € μ¬ν
- 보νΈμλ€μ΄ μ°¨νΈ μ 보λ₯Ό λͺ¨λ 보면 λ무 λ§μ μ λ³΄λ‘ μΈν΄ λλ΄ λμμμ μνλ₯Ό νμ
νκΈ° μ΄λ €μΈ μ μμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ μ°¨νΈ μ 보λ₯Ό κ°κ²°νκ² μμ½νμ¬ λ³΄μ¬μ£Όλ κΈ°λ₯μ ꡬννμμ΅λλ€.
-
κΈ°μ μ ν μ΄μ (νμΈνλ)
- λͺ¨λΈ νμΈνλ: κΈ°μ‘΄μ ChatGPTλ₯Ό μ¬μ©ν λ μνλ νμμΌλ‘ κ²°κ³Όκ° λμ€μ§ μκ±°λ λΆνμν μ λ³΄κ° ν¬ν¨λλ κ²½μ°κ° μμ΄, λͺ¨λΈμ νμΈνλνλ λ°©λ²μ μ ννμ΅λλ€. νμΈνλμ νμ§ μμλ€λ©΄ λ§€λ² JSON νμμΌλ‘ νΉμ λ°©μμ κ°μ μꡬν΄μΌ νκ² μ§λ§, μ΄μ λ μ°¨νΈ λ°μ΄ν°λ₯Ό JSON νμμΌλ‘ μ
λ ₯νλ©΄ μνλ νμμ κ²°κ³Όλ₯Ό λ°λ‘ λ°μ μ μμ΅λλ€.
-
ꡬν λ°©μ
-
νμΈνλ: μ°¨νΈ μμ½κ³Ό κ΄λ ¨λ λ°μ΄ν°μ
μ΄ μμ΄ AI-Hubμ νκ΅μ΄ λν μμ½ λ°μ΄ν°μ
μ νμ©νμ¬ νμΈνλμ μ§ννμ΅λλ€. conditionDisease, bodyManagement, nursingManagement, recoveryTraining, cognitiveManagementμ κ°μ νλͺ©λ³λ‘ μμ½νλλ‘ λ§λ€μμ΅λλ€.
-
νκ·Έ μμ½ μ μ©: νλ‘ νΈμλμμ μ¬μ©ν μΈ κ°μ§ νκ·Έλ₯Ό μμ½νλλ‘ νμΈνλμ μΆκ°λ‘ μ§ννμ΅λλ€. νλ‘ νΈμλμμ μ°λ κ³Όμ μμ νκ·Έλ₯Ό μΆκ°νλ κ²μ΄ μ μ©ν κ²μ΄λΌλ μ견μ λ°μνμ¬ μ΄λ₯Ό ꡬννμ΅λλ€. μ°¨νΈ λ°μ΄ν°λ₯Ό μ€λΉνλ λ° μκ°μ΄ λ§μ΄ μμλμκΈ° λλ¬Έμ νκ·Έλ₯Ό μΆκ°νμ¬ λ€μ νμΈνλνλ κ²μ΄ μ΄λ ΅λ€κ³ νλ¨νκ³ , λμ νκ·Έλ₯Ό μν νμΈνλμ λ³λλ‘ μ§ννλ κ²μΌλ‘ κ²°μ νμ΅λλ€.
-
λ¬Έμ ν΄κ²°
- κ°λ AIκ° null κ°μ λ°ννλ λ¬Έμ κ° μμμ§λ§, λλΆλΆ ν λ² λ μλνλ©΄ μ μμ μΌλ‘ λμνμ΅λλ€. μ΄μ λ°λΌ λ°±μλ μλΉμ€μμ 첫 λ²μ§Έ μλμ μ±κ³΅νμ§ μμ κ²½μ° μ΅λ μΈ λ²κΉμ§ μ¬μλνλλ‘ μμ νμκ³ , μΈ λ² μλ νμλ μλ΅μ΄ μμ κ²½μ° κ·Έλ νλ‘ νΈμλμ μλ¬ λ©μμ§λ₯Ό 보λ΄λλ‘ λ³κ²½νμ΅λλ€.
β° μλ¦Ό μλΉμ€
-
ꡬν λ°©λ²
- Spring μ€μΌμ€λ¬λ₯Ό νμ©νμ¬ λ§€λΆλ§λ€ μλ¦Ό μκ°μ΄ λλν μμ보νΈμ¬μ 보νΈμλ₯Ό μ°Ύμ νμν μλ¦Ό λ©μμ§λ₯Ό μ μ‘ν©λλ€.
- μλ¦Ό λ©μμ§λ 미리 μ μλ ν
νλ¦Ώμ κΈ°λ°μΌλ‘ ꡬμ±νλ©°, μ¬μ©μκ° μ νν μλ¦Ό μλ¨(Line λλ SMS)μ λ§μΆ° λ°μ‘λ©λλ€.
- μ¬μ©μ νΈμλ₯Ό μν΄ βλ§μ΄νμ΄μ§βμμ Line μλ¦Ό μλΉμ€μ SMS μλ¦Ό μλΉμ€λ₯Ό μ νν μ μλ μ΅μ
μ μ 곡νμ΅λλ€.
-
λ¬Έμ ν΄κ²°
- λ©μμ§ μ μ‘ μ€λ³΅ λ° μ μ‘ μ€ν¨ μ μ€λ₯ μ²λ¦¬κ° μ΄λ €μ λ λΆλΆμ Amazon SQSλ₯Ό ν΅ν΄ λ©μμ§ ν κ΄λ¦¬ κΈ°λ₯μ μΆκ°νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
- μΉ΄μΉ΄μ€ λΉμ¦λμ€ μ±λ κ°μ
μ νμν μλ₯ μ¬μ¬μμ λ°λ €λμμΌλ, μ₯κΈ°μ μΌλ‘ μΉ΄μΉ΄μ€ μλ¦Όν‘ λμ
κ°λ₯μ±μ μΌλμ λκ³ , νμ¬λ Lineκ³Ό SMS APIλ₯Ό λ체 μλ¨μΌλ‘ νμ©νμ΅λλ€.
π μμ
νμΌ κ΄λ¦¬ κΈ°λ₯
μμ
νμΌ κ΄λ¦¬ κΈ°λ₯μ ν΅ν΄ μμμμμ λ€μμ μμ보νΈμ¬, 보νΈμ, λλ΄λμμ μ 보λ₯Ό ν λ²μ ν¨μ¨μ μΌλ‘ λ±λ‘ν μ μμ΅λλ€. μμμμ μ 곡λ μμ
ν
νλ¦Ώ νμΌμ λ€μ΄λ‘λν΄ λ°μ΄ν°λ₯Ό μΌκ΄μ μΌλ‘ μ
λ ₯νκ³ μ
λ‘λνμ¬ κ°λ³ μ
λ ₯λ³΄λ€ μκ°μ μ κ°ν μ μμ΅λλ€.
μ
λ‘λλ νμΌμ μλ²μμ μ ν¨μ± κ²μ¬μ μ€λ³΅ κ²μ¬λ₯Ό κ±°μ³ νμμ΄ λ§μ§ μκ±°λ μ€λ³΅λ λ°μ΄ν°λ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λμ§ μμ΅λλ€. κ²μ¬λ₯Ό ν΅κ³Όν λ°μ΄ν°λ§ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λλ©°, κ²μ¬μ ν΅κ³Όνμ§ λͺ»ν μ€λ₯ λ°μ΄ν°λ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λμ§ μμ, μ μ λ°μ΄ν°λ§ μμ νκ² κ΄λ¦¬λ©λλ€.
𧩠ERD
π λ°±μλ μ 체 ꡬμλ
π ν κ·ΈλΌμ΄λ κ·μΉ μ€λͺ
ποΈ νλ‘μ νΈ κ΅¬μ‘°
ββββπsrc
ββββπmain
β ββββπjava.dbdr
β β ββββ πdomain
β β β ββββπadmin
β β β ββββπcareworker
β β β ββββπchart
β β β ββββπcore
β β β β ββββπalarm
β β β β ββββπbase
β β β β ββββπmessaging
β β β β ββββπocr
β β β β ββββπs3
β β β β
β β β ββββπexcel
β β β ββββπguardian
β β β ββββπinstitution
β β β ββββπrecipient
β β ββββπglobal
β β β ββββπconfiguration
β β β ββββπexception
β β β ββββπutil
β β ββββπopenai
β β ββββπsecurity
β ββββπresources
β
ββββπtest
ββββπjava.dbdr
β ββββπcareworker
β ββββπchart
β ββββπe2etest
β ββββπglobal
β ββββπmessaging
β ββββπopenAi
β ββββπsecurity
β ββββπtesthelper
ββββπresources
πΉοΈ How to start
-
νλ‘μ νΈλ₯Ό ν΄λ‘ ν©λλ€.
$ git clone https://github.com/kakao-tech-campus-2nd-step3/Team13_BE.git
-
Temp13_BE/src/resources
νμΌμ application-secret.yml
μ λ£μ΄μ€λλ€.
$ cd Team13_BE/src/resources # λλ ν 리 μ΄λ
$ vi application-seceret.yml # application-secret.yml νμΌ μμ λ° μ μ₯ μ§ννκΈ°
λ€μκ³Ό κ°μ ꡬ쑰μ ν€ κ°λ€μ κΌ λ£μ΄μ£ΌκΈ°!! (λ¨, portμ κ²½μ° localκ³Ό λ°°ν¬ μλ²μ μ€μ λλ κ°μ΄ λ€λ¦
λλ€)
data:
redis:
port: # redis port
host: # redis host
datasoruce:
url: # mysql rds url
username: # mysql username
password: # mysql password
driver-class-name: # mysql driver class name
secret: # jwt secret key
line:
channelAccessToken: # line channel access token
channelSecret: # line channel secret
aws:
accessKey: # aws access key
secretKey: # aws secret key
region: # aws region
openai:
apiKey: # openai api key
naver:
api-url: # naver clova api url
secret-key: # naver clova secret key
-
2.μ λ°©λ²κ³Ό λμΌνκ² ν
μ€νΈ νκ²½μ λ§λ application-test.yml
λ λ£μ΄μ€λλ€.
-
ci/cd νΉμ scriptλ₯Ό ν΅ν΄ λ°°ν¬λ₯Ό μ§νν©λλ€.