{"id":23522222,"url":"https://github.com/depromeet/swimie-server","last_synced_at":"2025-04-19T19:44:32.817Z","repository":{"id":245656353,"uuid":"818275902","full_name":"depromeet/Swimie-server","owner":"depromeet","description":"🏊‍♂️ 친구들의 응원과 함께하는 수영일기, Swimie!","archived":false,"fork":false,"pushed_at":"2025-01-09T07:03:03.000Z","size":9648,"stargazers_count":25,"open_issues_count":4,"forks_count":2,"subscribers_count":3,"default_branch":"develop","last_synced_at":"2025-03-29T12:23:13.449Z","etag":null,"topics":["generative-ai","hexagonal-architecture","java","jenkins","multi-module","mysql","redis","sentry","spring-boot"],"latest_commit_sha":null,"homepage":"https://swimie.life","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/depromeet.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-21T13:34:23.000Z","updated_at":"2025-03-24T06:40:01.000Z","dependencies_parsed_at":"2024-07-19T09:44:30.133Z","dependency_job_id":"d56f57fb-2dda-4bbd-bfe0-a86d545dbbb0","html_url":"https://github.com/depromeet/Swimie-server","commit_stats":null,"previous_names":["depromeet/15th-team2-be","depromeet/swimie-server"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/depromeet%2FSwimie-server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/depromeet%2FSwimie-server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/depromeet%2FSwimie-server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/depromeet%2FSwimie-server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/depromeet","download_url":"https://codeload.github.com/depromeet/Swimie-server/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249784258,"owners_count":21325260,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["generative-ai","hexagonal-architecture","java","jenkins","multi-module","mysql","redis","sentry","spring-boot"],"created_at":"2024-12-25T17:15:45.601Z","updated_at":"2025-04-19T19:44:32.783Z","avatar_url":"https://github.com/depromeet.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"## 🏊 Swimie | 친구들의 응원과 함께하는 수영일기\n![frame](./docs/design/frame.png)\n\n## 🏗️ Architecture\n\n### Infrastructure\n![infrastructure](./docs/architecture/infrastructure.png)\n\n### Software Architecture (Hexagonal)\n![hexagonal](./docs/architecture/hexagonal.png)\n\n\u003cbr\u003e\n\n## 📂 Module \u0026 Directory Structure\n### Directory Structure\n```\n├── .github\n├── module-presentation  # API 게이트웨이 서버\n├── module-batch  # 배치 서버\n├── module-independent  # 독립 모듈\n├── module-domain  # 도메인 모듈\n├── module-infrastructure  # 외부 모듈\n│   └── persistence-database # 데이터베이스 모듈\n│   └── persistence-redis # Redis 모듈\n│   └── object-storage # 객체 저장소 모듈\n│   └── google-spreadsheet # 구글 스프레드시트 모듈\n└── docs # 데이터 관리용 폴더\n```\n\n### Multi Module Structure\n- 멀티 모듈과 헥사고날 아키텍처를 적용하여 모듈 간 의존성을 분리하였습니다.\n- Domain 모듈은 순수 자바 모듈로 구성되어 있으며, 외부 의존성을 가지지 않습니다.\n- 각 모듈은 Domain 모듈에 대한 의존성을 가지고 있으며, 상위 모듈은 하위 모듈만을 의존하도록 설계하였습니다. \n\n\u003cbr\u003e\n\n## 🚗 How to start?\n- presentation 모듈(API 게이트웨이 서버)을 실행하기 위해서는 메인 디렉토리에서 `./gradlew :module-presentation:build` 명령어를 수행합니다.\n- `java -jar /module-presentation/build/libs/module-presentation.jar` 명령어를 통해 서버를 실행합니다.\n\n## 💻 Tech Stack\n- Java 21\n- Gradle 8.8\n- MySQL 8.0.35\n\n#### Framework \u003cimg src=\"https://img.shields.io/badge/Spring Boot-6DB33F?style=for-the-social\u0026logo=Spring Boot\u0026logoColor=white\"\u003e \u003cimg src=\"https://img.shields.io/badge/Gradle-02303A?style=for-the-social\u0026logo=Gradle\u0026logoColor=white\"\u003e\n\n#### Database \u003cimg src=\"https://img.shields.io/badge/MySQL-4479A1?style=for-the-social\u0026logo=MySQL\u0026logoColor=white\"\u003e \u003cimg src=\"https://img.shields.io/badge/Spring Data JPA-6DB33F?style=for-the-social\u0026logo=Databricks\u0026logoColor=white\"\u003e\n\n#### Auth - \u003cimg src=\"https://img.shields.io/badge/Spring Security-6DB33F?style=for-the-social\u0026logo=springsecurity\u0026logoColor=white\"\u003e  \u003cimg src=\"https://img.shields.io/badge/JSON Web Tokens-000000?style=for-the-social\u0026logo=JSON Web Tokens\u0026logoColor=white\"\u003e\n\n#### Business Logic Test - \u003cimg src=\"https://img.shields.io/badge/JUnit5-25A162?style=for-the-sociak\u0026logo=junit5\u0026logoColor=white\"\u003e\n\n#### Performance Test - \u003cimg src=\"https://img.shields.io/badge/K6-7D64FF?style=for-the-sociak\u0026logo=K6\u0026logoColor=white\"\u003e \u003cimg src=\"https://img.shields.io/badge/Apache JMeter-D22128?style=for-the-sociak\u0026logo=Apache JMeter\u0026logoColor=white\"\u003e\n\n#### Cloud - \u003cimg src =\"https://img.shields.io/badge/AWS EC2-FF9900?style=for-the-social\u0026logo=amazonec2\u0026logoColor=white\"\u003e  \u003cimg src =\"https://img.shields.io/badge/AWS S3-69A31?style=for-the-social\u0026logo=amazons3\u0026logoColor=white\"\u003e  \u003cimg src=\"https://img.shields.io/badge/AWS RDS-527FFF?style=for-the-social\u0026logo=amazonrds\u0026logoColor=white\"\u003e  \u003cimg src =\"https://img.shields.io/badge/AWS Cloud Watch-FF4F8B?style=for-the-social\u0026logo=amazoncloudwatch\u0026logoColor=white\"\u003e \u003cimg src =\"https://img.shields.io/badge/AWS Cloud Front-7B00FF?style=for-the-social\u0026logo=icloud\u0026logoColor=white\"\u003e \u003cimg src =\"https://img.shields.io/badge/AWS Lambda-F9900?style=for-the-social\u0026logo=awslambda\u0026logoColor=white\"\u003e\n\n#### Monitoring - \u003cimg src=\"https://img.shields.io/badge/Sentry-362D59?style=for-the-social\u0026logo=Sentry\u0026logoColor=white\"\u003e\n\u003cbr\u003e\n\n## 📈 Database Schema\n![ERD](./docs/database/ERD.png)\n\n\u003cbr\u003e\n\n## Developers\n### 🧑‍💻 Server Engineers\n|                                                                                                                                                                                                                                              신민철                                                                                                                                                                                                                                               |                                                                                                                                               홍성주                                                                                                                                               |                                                                                                                                               양원채                                                                                                                                               |\n|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:|\n| \u003cimg src=\"https://avatars.githubusercontent.com/u/48898994?v=4\" width=\"100\" height=\"100\" style=\"border-radius: 5%;\"\u003e\u003cbr/\u003e\u003ca href=\"https://github.com/its-sky\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/its-sky-181717?style=for-the-social\u0026logo=github\u0026logoColor=white\"/\u003e\u003c/a\u003e | \u003cimg src=\"https://avatars.githubusercontent.com/u/96187152?v=4\" width=\"100\" height=\"100\" style=\"border-radius: 5%;\"\u003e\u003cbr/\u003e\u003ca href=\"https://github.com/penrose15\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/penrose15-181717?style=for-the-social\u0026logo=github\u0026logoColor=white\"/\u003e\u003c/a\u003e | \u003cimg src=\"https://avatars.githubusercontent.com/u/79977182?v=4\" width=\"100\" height=\"100\" style=\"border-radius: 5%;\"\u003e\u003cbr/\u003e\u003ca href=\"https://github.com/ywonchae1\" target=\"_blank\"\u003e\u003cimg src=\"https://img.shields.io/badge/ywonchae1-181717?style=for-the-social\u0026logo=github\u0026logoColor=white\"/\u003e\u003c/a\u003e |\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdepromeet%2Fswimie-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdepromeet%2Fswimie-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdepromeet%2Fswimie-server/lists"}