- νΌμμ 무μΈκ° νκΈ° μ΄λ €μΈ λ! μ£Όλ³ μ¬λλ€κ³Ό κ°μ΄ νλνκ³ μΆμ λ μ¬μ©νμΈμ.
- μ΄λͺ¨μ§λ₯Ό ν΅ν΄ μ£Όλ³μ λ»μ΄ λ§λ μ¬λλ€κ³Ό κ°μ΄ μ¦κ±°μ΄ μκ°μ λ³΄λΌ μ μμ΄μ!
- λ‘κ·ΈμΈ ν μ£Όλ³μ μμ±λ μ΄λͺ¨μ§ μΉ΄ν κ³ λ¦¬ νμΈ κ°λ₯
- μ΄λͺ¨μ§λ₯Ό ν΄λ¦ν΄ μ±ν μ°Έμ¬
- μ΄λͺ¨μ§ μμ±/μμ
- λ§μ΄νμ΄μ§μμ μ΄λͺ¨μ§ λ° μ±ν λ°© νμΈ/κ΄λ¦¬ κ°λ₯
2023.04.10μΌ(μ) ~ 2023.05.19(κΈ)
- μ€νμ§: μ±ν API, 리ν©ν λ§, νμ₯
- λ―Όλμ£Ό: Frontend, νμ API
- μμ μ§: Gateway, Test
- μ΄λ¦¬λ: CI/CD, DevOps
- μ΄νμ : MSA, Git
- ν¨μ λΉ: CI/CD, μ΄λͺ¨μ§API
- JVM :
OpenJDK 17
- Spring Boot :
3.0.6
- Gradle :
7.6
- IDE : IntelliJ
- Vue :
2.6.14
- Vuetify :
2.6.0
- MongoDB :
4.4.20
- Amazon EC2
- Nginx :
1.18.0
- Docker :
23.0.4
- Docker-Compose :
1.24.1
- Jenkins :
2.375.3
- SonarQube :
10.0.0.68432
- Prometheus :
2.44.0
- Grafana :
9.5.1
- GitLab
- Jira
- Notion
- MatterMost
π κΈ°λ₯ λͺ μΈμ
π API λͺ μΈμ
π μμ΄μ΄νλ μ
- λ‘κ·ΈμΈμ νμ§ μμ μ¬μ©μκ° μ μνμλ 보μ¬μ§λ νμ΄μ§
- wimoji μλΉμ€ μκ°
- μ§κΈ μμνκΈ° λ²νΌμ ν΅ν΄ λ‘κ·ΈμΈ μ΄λ
- λλ€μ, μμ΄λ, λΉλ°λ²νΈλ‘ νμκ°μ μ§ν
- μμ΄λ, λΉλ°λ²νΈλ‘ λ‘κ·ΈμΈ μ§ν
- νμ¬ λμ μμΉ μ 보 νμ
- λ΄ μ£Όλ³ λ‘κ·ΈμΈ ν μ¬μ©μμ μ΄λͺ¨μ§λ₯Ό κ±°λ¦¬κ° κ°κΉμ΄ μμΌλ‘ 30κ° μ‘°ν
- μ΄λͺ¨μ§ ν΄λ¦μ λνλλ ν¨κ»νκΈ° λ²νΌμΌλ‘ μ±ν μ°Έμ¬
- μ΄λͺ¨μ§ λ§λ€κΈ° λ²νΌμ ν΅ν΄ μ΄λͺ¨μ§ μμ±
- 15κ°μ μ΄λͺ¨μ§ μΉ΄ν κ³ λ¦¬, λ΄μ©, μΈμμλ₯Ό μ€μ
- μ±ν
- μ¬μ©μκ° μ°Έμ¬ν μ±ν λͺ©λ‘ μ‘°ν
- μλ‘μ΄ λ©μμ§κ° μμ μ new νμ
- μλ‘μ΄ μ±ν λ°© μ μ₯μ λͺ¨λ μ¬μ©μμκ² μ μ₯ μλ¦Ό
- κΈ°μ‘΄ μ±ν λ°© μ μ₯μ μ½μ§ μμ λ©μμ§ μ‘°ν
- μ±ν λ°© μμ μ 곡
- μ΄λͺ¨μ§
- μ¬μ©μκ° μμ±ν μ΄λͺ¨μ§ μ‘°ν, μμ μ 곡
νλ‘μ νΈ μ§ν κ³Όμ μμ νμν νμ, 곡μ§, μΌμ λ±μ μνμ΄μ§ νμ ν΄μΈ λ Έμ μ ν΅ν΄ κ΄λ¦¬νμ΅λλ€.
λν 컨벀μ κ·μΉ, λΈλμΉ νμ© κ·μΉ λ±μ λ Έμ μ λͺ μν΄λμκ³ , ν λ―Έν μ λν νΌλλ°±κ³Ό μ§λ¬Έμ κΈ°λ‘ν΄ λμ΄ μΈμ λ νμΈν μ μλλ‘ κ΄λ¦¬νκ³ μμ΅λλ€.
λ§€μΌ μμΉ¨ 9μμ ν λ¨μλ‘ μ λ νλ μΌ, μ€λ ν μΌμ 10λΆ μ λ 곡μ νμ΅λλ€.
μ μ°ν λΆμκΈ°μμ μ€ν¬λΌμ ν΅ν΄μ κ°λ°μ μ§μ€ν μ μλ ν λΆμκΈ°λ₯Ό λ§λ€μμ΅λλ€.
- μ£Όμ΄μ§ κΈ°ν λ΄μ μν κ°λ₯νλλ‘ κ΅¬μ²΄μ μΌμ μ립νκΈ°
- λΉ λ₯΄κ³ ꡬ체μ μΈ κΈ°νμ ν΅ν΄ μΆ©λΆν κ°λ° μκ° λ§λ ¨νκΈ°
- api λͺ μΈ, λ³μ μμ νΉμ merge λ₯Ό ν λ (νλ‘ νΈμλ β λ°±μλ μν΅ μ€μ)
- μλ‘ λ§‘μ λΆλΆκ³Ό μ§νλ₯ μ νμ νκΈ° μν΄ νμ ν΄μ μ μ΄μ©νκΈ°
- μ€ν¬λΌμ΄λ νμ λ±μ κΈ°λ‘μ κΌΌκΌΌν νκΈ°
- μ€λ ν μΌ, μ€λ ν μΌ, ν΄μΌν μΌ λ±λ± λ§€μΌ κΈ°λ‘νκΈ°
- 곡λΆνλ©΄μ μ»μ μ§μμ μ 리ν΄μ 곡μ νκΈ° β νμ κ° λμΌν κ³ λ―Ό λ°©μ§
- νΈλ¬λΈ μν μ μ λλ‘ κ΄λ¦¬ν΄μ μκ° λ¨μΆνκΈ°
- μ€ν 리보λ β μꡬμ¬ν λͺ μΈ β κΈ°λ₯λͺ μΈ β api λͺ μΈ λ±
- μ 체μ μΈ νλ¦μ νμ νκΈ° μν λͺ μΈ νμ
- Frontend
frontend
ββ .gitignore
ββ babel.config.js
ββ Dockerfile
ββ jsconfig.json
ββ nginx.conf
ββ package-lock.json
ββ package.json
ββ public
β ββ favicon.ico
β ββ index.html
ββ README.md
ββ src
β ββ api
β β ββ index.js
β β ββ modules
β β ββ chat.js
β β ββ emoji.js
β β ββ location.js
β β ββ user.js
β β ββ websocket.js
β ββ App.vue
β ββ assets
β β ββ logo.png
β β ββ styles
β β ββ font.css
β β ββ globalEtc.css
β β ββ override.css
β β ββ text.css
β β ββ variable.css
β ββ common
β β ββ component
β β ββ BlueCircle.vue
β β ββ WhiteCircle.vue
β β ββ YellowCircle.vue
β ββ components
β β ββ ChatPage
β β β ββ ChatPage.vue
β β β ββ ChattingPage.vue
β β ββ EmojiList
β β β ββ EmojiList.vue
β β ββ ErrorPage
β β β ββ The404Error.vue
β β ββ HomePage
β β β ββ HomeEmoji.vue
β β β ββ HomePage.vue
β β β ββ HomePageCreateEmoji.vue
β β β ββ HomeWhiteCircle.vue
β β ββ InfoPage
β β β ββ InfoItem.vue
β β β ββ InfoPage.vue
β β ββ MyEmojiPage
β β β ββ MyEmojiDetail.vue
β β β ββ MyEmojiList.vue
β β β ββ MyEmojiPage.vue
β β ββ SignPage
β β ββ LoginInput.vue
β β ββ LoginPage.vue
β β ββ SignupInput.vue
β β ββ SignupPage.vue
β ββ main.js
β ββ plugins
β β ββ vuetify.js
β ββ router
β β ββ index.js
β β ββ modules
β β ββ error.js
β β ββ main.js
β β ββ my.js
β β ββ sign.js
β ββ store
β β ββ index.js
β β ββ modules
β β ββ chatStore.js
β β ββ emojiStore.js
β β ββ userStore.js
β ββ views
β ββ Headers
β β ββ ChatRoomHeader.vue
β β ββ HomeHeader.vue
β β ββ MyHeader.vue
β ββ HeaderView.vue
β ββ MainView.vue
β ββ MyPageView.vue
β ββ TheFooter.vue
ββ vue.config.js
- Backend
springboot-framework
ββ chat-service
β ββ build.gradle
β ββ Dockerfile
β ββ gradlew
β ββ gradlew.bat
β ββ settings.gradle
β ββ src
β ββ main
β ββ java
β ββ com
β ββ wimoji
β ββ base
β β ββ constant
β β β ββ Code.java
β β ββ dto
β β β ββ DataResponseDto.java
β β β ββ ErrorResponseDto.java
β β β ββ ResponseDto.java
β β ββ GeneralException.java
β ββ config
β β ββ ExceptionHandler.java
β β ββ MongoDBConfig.java
β β ββ WebConfig.java
β β ββ WebSocketConfig.java
β ββ controller
β β ββ ChatController.java
β β ββ ChatRoomController.java
β β ββ TestController.java
β ββ intercepter
β β ββ LogAspect.java
β β ββ SubscriptionInterceptor.java
β ββ repository
β β ββ ChatRoomRepository.java
β β ββ dto
β β β ββ entity
β β β β ββ Chat.java
β β β β ββ ChatRoom.java
β β β β ββ LastChat.java
β β β β ββ LastChatId.java
β β β β ββ Test.java
β β β ββ request
β β β β ββ ChatReq.java
β β β β ββ ChatRoomReq.java
β β β β ββ NewChatReq.java
β β β β ββ UserChatRoomReq.java
β β β ββ response
β β β ββ ChatRes.java
β β β ββ ChatRoomRes.java
β β β ββ NumberRes.java
β β β ββ UserEnterRes.java
β β β ββ UserRes.java
β β ββ LastChatRepository.java
β β ββ TestRepository.java
β ββ service
β β ββ ChatRoomService.java
β β ββ TestService.java
β β ββ UserServiceClient.java
β ββ WimojiApplication.java
ββ emoji-service
β ββ build.gradle
β ββ Dockerfile
β ββ gradle
β ββ gradlew
β ββ gradlew.bat
β ββ settings.gradle
β ββ src
β ββ main
β ββ java
β ββ com
β ββ wimoji
β ββ base
β β ββ constant
β β β ββ Code.java
β β ββ dto
β β β ββ DataResponseDto.java
β β β ββ ErrorResponseDto.java
β β β ββ ResponseDto.java
β β ββ GeneralException.java
β ββ config
β β ββ ExceptionHandler.java
β β ββ KafkaConfig.java
β β ββ MongoDBConfig.java
β β ββ WebConfig.java
β ββ controller
β β ββ EmojiController.java
β β ββ HomeController.java
β β ββ TestController.java
β ββ intercepter
β β ββ LogAspect.java
β ββ repository
β β ββ dto
β β β ββ request
β β β β ββ EmojiDeleteReq.java
β β β β ββ EmojiModifyReq.java
β β β β ββ EmojiSaveReq.java
β β β β ββ HomeReq.java
β β β ββ response
β β β β ββ EmojiGetRes.java
β β β β ββ HomeRes.java
β β β β ββ NumberRes.java
β β β β ββ UserRes.java
β β β ββ Test.java
β β ββ Entity
β β β ββ Emoji.java
β β β ββ User.java
β β ββ TestRepository.java
β β ββ UserRepository.java
β ββ service
β β ββ ChatServiceClient.java
β β ββ EmojiService.java
β β ββ HomeService.java
β β ββ TestService.java
β β ββ UserServiceClient.java
β ββ WimojiApplication.java
ββ gateway-service
β ββ build.gradle
β ββ Dockerfile
β ββ gradlew
β ββ gradlew.bat
β ββ settings.gradle
β ββ src
β ββ main
β ββ java
β β ββ com
β β ββ wimoji
β β ββ gatewayservice
β β ββ config
β β β ββ FilterConfig.java
β β ββ filter
β β β ββ CustomFilter.java
β β β ββ GlobalFilter.java
β β β ββ LoggingFilter.java
β β ββ GatewayServiceApplication.java
β ββ resources
β ββ logback.xml
ββ README.md
ββ spring-cloud
β ββ build.gradle
β ββ Dockerfile
β ββ settings.gradle
β ββ src
β ββ main
β ββ java
β ββ com
β ββ wimoji
β ββ WimojiApplication.java
ββ user-service
ββ build.gradle
ββ Dockerfile
ββ gradlew
ββ gradlew.bat
ββ settings.gradle
ββ src
ββ main
ββ java
ββ com
ββ wimoji
ββ base
β ββ constant
β β ββ Code.java
β ββ dto
β β ββ DataResponseDto.java
β β ββ ErrorResponseDto.java
β β ββ ResponseDto.java
β ββ GeneralException.java
ββ common
β ββ JwtTokenUtil.java
ββ config
β ββ ExceptionHandler.java
β ββ KafkaConfig.java
β ββ MongoDBConfig.java
β ββ WebConfig.java
ββ controller
β ββ TestController.java
β ββ UserController.java
ββ intercepter
β ββ LogAspect.java
ββ repository
β ββ dto
β β ββ Emoji.java
β β ββ request
β β β ββ UserChatRoomReq.java
β β β ββ UserReq.java
β β ββ response
β β β ββ ChatRoomRes.java
β β β ββ NumberRes.java
β β ββ Test.java
β β ββ UserEntity.java
β ββ TestRepository.java
β ββ UserRepository.java
ββ service
β ββ ChatServiceClient.java
β ββ TestService.java
β ββ UserService.java
ββ WimojiApplication.java