λͺ©μ°¨
- π§βπ» Collaborators
- βοΈ κ°λ° μ€ν
- π νλ‘μ νΈ κ΄λ ¨ μ£Όμ
- π€© μν μμ΄λ & λΉλ°λ²νΈ
- π λλ΄λ€λ¦¬λ?
- π§ μλΉμ€μ νμμ±
- 𧩠μλΉμ€ ν΅μ¬ κΈ°λ₯
- π§ κ³΅ν΅ ν΅μ¬ κ°λ° μμ
- π§ FE ν΅μ¬ κ°λ° μμ
- π§ BE ν΅μ¬ κ°λ° μμ
- 𧩠ERD
- π λ°±μλ μ 체 ꡬμλ
- π ν κ·ΈλΌμ΄λ κ·μΉ μ€λͺ
ν ν¬ λ¦¬λ | κΈ°ν 리λ | 리μ‘μ λ | 리λ§μΈλ | 리λ§μΈλ |
---|---|---|---|---|
λ¬Έμ |
---|
λ°±μλ λ°°ν¬ μ£Όμ |
νλ‘ νΈμλ λ°°ν¬ μ£Όμ |
API λ¬Έμ |
λμμΈ νΌκ·Έλ§ |
νλ‘μ νΈ λ Έμ |
λλ΄λ€λ¦¬ λΌμΈ μ±λ |
- λ‘κ·ΈμΈ μμ΄λ : string
- λ‘κ·ΈμΈ λΉλ°λ²νΈ : string
- λ‘κ·ΈμΈ μμ΄λ : love
- λ‘κ·ΈμΈ λΉλ°λ²νΈ : 1234
- λ‘κ·ΈμΈ μμ΄λ : 01012341234
- λ‘κ·ΈμΈ λΉλ°λ²νΈ : 1
- λ‘κ·ΈμΈ μμ΄λ : 01022223333
- λ‘κ·ΈμΈ λΉλ°λ²νΈ : 1234
μμ보νΈμ¬λ κ°νΈνκ² μ°¨νΈλ₯Ό μμ±νκ³ ,
보νΈμλ μ΄λ₯Ό μ€μκ°μΌλ‘ νμΈν μ μλ λμ§νΈ μ°¨νΈ μλΉμ€
- 보νΈμλ μΈμ μ΄λμλ κ°μ‘±μ μνλ₯Ό νμΈ
- μμ보νΈμ¬λ 볡μ‘ν¨ μμ΄ κΈ°λ‘μ κ΄λ¦¬
β‘οΈ μ λ’°μ νΈλ¦¬μ±μ μ 곡νλ μν΅ νλ«νΌ
- 보νΈμλ κ°μ‘±μ μνλ₯Ό μμ£Ό νμΈνκ³ μΆμ§λ§, μμμμ μΌμΌμ΄ μ°λ½ν΄μΌ νλ λ²κ±°λ‘μκ³Ό μ νλ μ λ³΄λ‘ μΈν΄ λΆνΈμ κ²ͺκ³ μμ΅λλ€.
- μ€μκ° μν νμΈμ΄ μ΄λ ΅κΈ° λλ¬Έμ, 보νΈμλ κ°μ‘±μ κ±΄κ° μνμ λν΄ μ§μμ μΈ λΆμκ°μ λλ μ μμ΅λλ€.
보νΈμμ μꡬ - κ°μ‘±μ μνλ₯Ό μ€μκ°μΌλ‘ νμΈν μ μλ κ°νΈν μ 보 μ κ·Ό λ°©μμ΄ νμνλ€.
β‘οΈ λ³΄νΈμκ° μ΄λμλ κ°μ‘±μ μνλ₯Ό μ½κ² νμΈν μ μλ μμ€ν
μ΄ νμνλ€!
- μ€μκ° μ 보 곡μ κΈ°λ₯μ ν΅ν΄ 보νΈμκ° μΈμ μ΄λμλ κ°μ‘±μ μ΅μ μνλ₯Ό νμΈν μ μλλ‘ ν©λλ€.
- 보νΈμμ μμ보νΈμ¬ κ°μ μν΅μ μννκ² νμ¬ λΆμκ°μ μ€μ΄κ³ , μ λ’°λ₯Ό κ°νν©λλ€.
- μμ보νΈμ¬λ 볡μ‘ν λμ§νΈ κΈ°λ‘ μμ€ν μ μ΅μνμ§ μμ νΈλν°μΌλ‘ μ°¨νΈλ₯Ό μμ±νλ κ³Όμ μ΄ λ²κ±°λ‘κ³ μ΄λ ΅μ΅λλ€.
- μ΄λ¬ν μ΄λ €μμ κΈ°λ‘μ μ νμ±κ³Ό μ μμ±μ μ ν΄νκ³ , μμ보νΈμ¬μ μ 무 ν¨μ¨μ±μλ λΆμ μ μΈ μν₯μ λ―ΈμΉ©λλ€.
μμ보νΈμ¬μ μꡬ - 볡μ‘νμ§ μκ³ κ°λ¨ν μ°¨νΈ μμ± λ°©μμ΄ νμνλ€.
β‘οΈ μμ보νΈμ¬κ° μ½κ² μ°¨νΈλ₯Ό μμ±ν μ μλλ‘ νλ κ°νΈν κΈ°λ‘ μμ€ν
μ΄ νμνλ€!
- μμ± μΈμ λ° μκΈμ¨ μΈμ κΈ°λ₯μ ν΅ν΄ μμ보νΈμ¬κ° 볡μ‘ν μ μ°¨ μμ΄ μ°¨νΈλ₯Ό μ½κ² μμ±ν μ μλλ‘ μ§μν©λλ€.
- κΈ°λ‘ μμ±μ κ°μνλ₯Ό ν΅ν΄ μμ보νΈμ¬μ λΆλ΄μ μ€μ΄κ³ , νμμ μνλ₯Ό μ μνκ³ μ ννκ² κΈ°λ‘ν μ μλλ‘ ν©λλ€.
π λλ΄λμμ μ°¨νΈ νμΈ | π μ°¨νΈ μμ½ |
---|---|
ν루 μν κΈ°λ‘ νμΈ μ¬μ§κ³Ό μ°¨νΈ μμ± μ μλ¦Ό μμ |
κΈ΄ μ°¨νΈλ₯Ό ν΅μ¬ λ΄μ© μμ½ μ£Όμ μ¬νμ κ°κ²°νκ² νμΈ |
- μ¬μ©μμ μ°λ ΉμΈ΅μ κ³ λ €ν λ, μ§μ νμκ°μ νκ³ μ 보λ₯Ό λ±λ‘νλ κ²μ΄ μ΄λ €μΈ κ²μ΄λΌ μκ°νμ¬ μμμμ΄λ κ΄λ¦¬μκ° λλ΄λμμλ 보νΈμμ μμ΄λ, λΉλ°λ²νΈλ₯Ό μμ±ν΄μ€λλ€.
- λλ΄λμμμ 보νΈμλ λΉλ°λ²νΈλ§ κΈ°μ΅νλ©΄ μλΉμ€ μ΄μ©μ΄ κ°λ₯νλλ‘ μμ΄λλ λ³ΈμΈμ μ νλ²νΈλ‘ λ±λ‘νλλ‘ κ΅¬ννμμ΅λλ€.
- κ΄λ¦¬μλ μμμ, 보νΈμ, λλ΄λμμ, μμ보νΈμ¬λ₯Ό λ±λ‘ν μ μμ΅λλ€.
- μμμμ 보νΈμ, λλ΄λμμ, μμ보νΈμ¬λ₯Ό ν΄λΉ μμμμ λ±λ‘ν μ μμ΅λλ€.
- κ΄λ¦¬μμ κ²½μ° λλ© νμ΄μ§μ μ ν μ΄λ©μΌλ‘ contactνμ¬ μ λΆκ³Ό λͺ©μ μ μΈμ¦ν λ€ λ³Έ μλΉμ€ λ΄λΉμκ° μμ΄λ λΉλ°λ²νΈλ₯Ό λΆμ¬ν΄μ€λλ€.
Β spring securityμ JWTλ₯Ό νμ©νμ¬ statelessν μΈμ¦λ°©μμ μ ννμ¬ μλ² νμ₯μ±μ μ΄μ μ κ°μ§κ³ μ νμμ΅λλ€. λν κΆν κ²μ¬λ₯Ό μ§μνκΈ° μν 컀μ€ν λ©μλ μ΄λ Έν μ΄μ μΌλ‘ λΉμ¦λμ€ λ‘μ§κ³Ό κΆν κ²μ¬λΆλΆμ λΆλ¦¬νμμ΅λλ€. μ€μ μ μΌλ‘ μκ°ν λΆλΆμ μλ‘ λ€λ₯Έ tableμ μν΄μλ νμλ€μ λμμΌλ‘ μΈμ¦κ³Ό μΈκ°κ° νμν μν©μ΄μμΌλ©°, μ΄λ₯Ό μν΄ μλΉμ€μ μλ§μ AuthenticationProviderμ UserDetails, UserDetailsServiceλ₯Ό ꡬννμμ΅λλ€.
Β μ ν¬ μλΉμ€λ λ―Όκ°ν μλ£ λ°μ΄ν°λ₯Ό λ€λ£¨κΈ°μ, ν ν° λ³΄μμ΄ μ€μνμ΅λλ€. λ‘κ·ΈμΈ μ μ‘μΈμ€ ν ν°κ³Ό 리νλ μ ν ν°μ λ°κΈνκ³ , 리νλ μ ν ν°μΌλ‘ μ¬λ°κΈ μ λ ν ν°μ λͺ¨λ μλ‘ λ°κΈνλ RTR λ°©μμ μ μ©ν΄ 보μμ κ°ννμ΅λλ€. λ‘κ·Έμμ μμλ Redisμ μ μ₯λ 리νλ μ ν ν°μ μμ νκ³ , μ‘μΈμ€ ν ν°μ λΈλ리μ€νΈμ λ±λ‘ν΄ μ ν¨μ±μ μ°¨λ¨νμ΅λλ€. μ΄λ₯Ό ν΅ν΄ λ‘κ·Έμμ μ μ€μκ°μΌλ‘ ν ν° λ§λ£λ₯Ό ν¨κ³Όμ μΌλ‘ μ²λ¦¬ν μ μμμ΅λλ€.
Β μμ보νΈμ¬κ° μμ±ν λλ΄ λμμ μ°¨νΈλ₯Ό ν¨μ¨μ μΌλ‘ λμ§νΈννκΈ° μν΄ Naver Clova OCR APIμ AWS S3μ presigned URLμ μ¬μ©νμ΅λλ€.
Β presigned URLμ ν΅ν΄ μ΄λ―Έμ§ νμΌμ S3μ μ λ‘λνκ³ , λ°±μλ μλ²μλ objectKey κ°λ§ μ λ¬νμ¬ OCRμ μννλ λ°©μμΌλ‘ μλ² κ³ΌλΆνλ₯Ό λ°©μ§νκ³ μ±λ₯μ μ΅μ ννμ΅λλ€. μ΄λ‘μ¨ μλ² λ¦¬μμ€λ₯Ό μ μ½νλ©΄μλ 보μμ±μ μ μ§ν μνμμ μ°¨νΈλ₯Ό μμ νκ² OCR μ²λ¦¬ν μ μλλ‘ κ΅¬ννμ΅λλ€.
-
κ³ λ € μ¬ν
- 보νΈμλ€μ΄ μ°¨νΈ μ 보λ₯Ό λͺ¨λ 보면 λ무 λ§μ μ λ³΄λ‘ μΈν΄ λλ΄ λμμμ μνλ₯Ό νμ νκΈ° μ΄λ €μΈ μ μμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ μ°¨νΈ μ 보λ₯Ό κ°κ²°νκ² μμ½νμ¬ λ³΄μ¬μ£Όλ κΈ°λ₯μ ꡬννμμ΅λλ€.
-
κΈ°μ μ ν μ΄μ (νμΈνλ)
- λͺ¨λΈ νμΈνλ: κΈ°μ‘΄μ ChatGPTλ₯Ό μ¬μ©ν λ μνλ νμμΌλ‘ κ²°κ³Όκ° λμ€μ§ μκ±°λ λΆνμν μ λ³΄κ° ν¬ν¨λλ κ²½μ°κ° μμ΄, λͺ¨λΈμ νμΈνλνλ λ°©λ²μ μ ννμ΅λλ€. νμΈνλμ νμ§ μμλ€λ©΄ λ§€λ² JSON νμμΌλ‘ νΉμ λ°©μμ κ°μ μꡬν΄μΌ νκ² μ§λ§, μ΄μ λ μ°¨νΈ λ°μ΄ν°λ₯Ό JSON νμμΌλ‘ μ λ ₯νλ©΄ μνλ νμμ κ²°κ³Όλ₯Ό λ°λ‘ λ°μ μ μμ΅λλ€.
-
ꡬν λ°©μ
-
νμΈνλ: μ°¨νΈ μμ½κ³Ό κ΄λ ¨λ λ°μ΄ν°μ μ΄ μμ΄ AI-Hubμ νκ΅μ΄ λν μμ½ λ°μ΄ν°μ μ νμ©νμ¬ νμΈνλμ μ§ννμ΅λλ€. conditionDisease, bodyManagement, nursingManagement, recoveryTraining, cognitiveManagementμ κ°μ νλͺ©λ³λ‘ μμ½νλλ‘ λ§λ€μμ΅λλ€.
-
νκ·Έ μμ½ μ μ©: νλ‘ νΈμλμμ μ¬μ©ν μΈ κ°μ§ νκ·Έλ₯Ό μμ½νλλ‘ νμΈνλμ μΆκ°λ‘ μ§ννμ΅λλ€. νλ‘ νΈμλμμ μ°λ κ³Όμ μμ νκ·Έλ₯Ό μΆκ°νλ κ²μ΄ μ μ©ν κ²μ΄λΌλ μ견μ λ°μνμ¬ μ΄λ₯Ό ꡬννμ΅λλ€. μ°¨νΈ λ°μ΄ν°λ₯Ό μ€λΉνλ λ° μκ°μ΄ λ§μ΄ μμλμκΈ° λλ¬Έμ νκ·Έλ₯Ό μΆκ°νμ¬ λ€μ νμΈνλνλ κ²μ΄ μ΄λ ΅λ€κ³ νλ¨νκ³ , λμ νκ·Έλ₯Ό μν νμΈνλμ λ³λλ‘ μ§ννλ κ²μΌλ‘ κ²°μ νμ΅λλ€.
-
-
λ¬Έμ ν΄κ²°
- κ°λ AIκ° null κ°μ λ°ννλ λ¬Έμ κ° μμμ§λ§, λλΆλΆ ν λ² λ μλνλ©΄ μ μμ μΌλ‘ λμνμ΅λλ€. μ΄μ λ°λΌ λ°±μλ μλΉμ€μμ 첫 λ²μ§Έ μλμ μ±κ³΅νμ§ μμ κ²½μ° μ΅λ μΈ λ²κΉμ§ μ¬μλνλλ‘ μμ νμκ³ , μΈ λ² μλ νμλ μλ΅μ΄ μμ κ²½μ° κ·Έλ νλ‘ νΈμλμ μλ¬ λ©μμ§λ₯Ό 보λ΄λλ‘ λ³κ²½νμ΅λλ€.
- ꡬν λ°©λ²
- Spring μ€μΌμ€λ¬λ₯Ό νμ©νμ¬ λ§€λΆλ§λ€ μλ¦Ό μκ°μ΄ λλν μμ보νΈμ¬μ 보νΈμλ₯Ό μ°Ύμ νμν μλ¦Ό λ©μμ§λ₯Ό μ μ‘ν©λλ€.
- μλ¦Ό λ©μμ§λ 미리 μ μλ ν νλ¦Ώμ κΈ°λ°μΌλ‘ ꡬμ±νλ©°, μ¬μ©μκ° μ νν μλ¦Ό μλ¨(Line λλ SMS)μ λ§μΆ° λ°μ‘λ©λλ€.
- μ¬μ©μ νΈμλ₯Ό μν΄ βλ§μ΄νμ΄μ§βμμ Line μλ¦Ό μλΉμ€μ SMS μλ¦Ό μλΉμ€λ₯Ό μ νν μ μλ μ΅μ μ μ 곡νμ΅λλ€.
- λ¬Έμ ν΄κ²°
- λ©μμ§ μ μ‘ μ€λ³΅ λ° μ μ‘ μ€ν¨ μ μ€λ₯ μ²λ¦¬κ° μ΄λ €μ λ λΆλΆμ Amazon SQSλ₯Ό ν΅ν΄ λ©μμ§ ν κ΄λ¦¬ κΈ°λ₯μ μΆκ°νμ¬ λ¬Έμ λ₯Ό ν΄κ²°νμ΅λλ€.
- μΉ΄μΉ΄μ€ λΉμ¦λμ€ μ±λ κ°μ μ νμν μλ₯ μ¬μ¬μμ λ°λ €λμμΌλ, μ₯κΈ°μ μΌλ‘ μΉ΄μΉ΄μ€ μλ¦Όν‘ λμ κ°λ₯μ±μ μΌλμ λκ³ , νμ¬λ Lineκ³Ό SMS APIλ₯Ό λ체 μλ¨μΌλ‘ νμ©νμ΅λλ€.
Β μμ νμΌ κ΄λ¦¬ κΈ°λ₯μ ν΅ν΄ μμμμμ λ€μμ μμ보νΈμ¬, 보νΈμ, λλ΄λμμ μ 보λ₯Ό ν λ²μ ν¨μ¨μ μΌλ‘ λ±λ‘ν μ μμ΅λλ€. μμμμ μ 곡λ μμ ν νλ¦Ώ νμΌμ λ€μ΄λ‘λν΄ λ°μ΄ν°λ₯Ό μΌκ΄μ μΌλ‘ μ λ ₯νκ³ μ λ‘λνμ¬ κ°λ³ μ λ ₯λ³΄λ€ μκ°μ μ κ°ν μ μμ΅λλ€.
Β μ λ‘λλ νμΌμ μλ²μμ μ ν¨μ± κ²μ¬μ μ€λ³΅ κ²μ¬λ₯Ό κ±°μ³ νμμ΄ λ§μ§ μκ±°λ μ€λ³΅λ λ°μ΄ν°λ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λμ§ μμ΅λλ€. κ²μ¬λ₯Ό ν΅κ³Όν λ°μ΄ν°λ§ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λλ©°, κ²μ¬μ ν΅κ³Όνμ§ λͺ»ν μ€λ₯ λ°μ΄ν°λ λ°μ΄ν°λ² μ΄μ€μ μ μ₯λμ§ μμ, μ μ λ°μ΄ν°λ§ μμ νκ² κ΄λ¦¬λ©λλ€.
ββββπ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
-
νλ‘μ νΈλ₯Ό ν΄λ‘ ν©λλ€.
$ 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λ₯Ό ν΅ν΄ λ°°ν¬λ₯Ό μ§νν©λλ€.