DevMingle은 위치기반 개발자 커뮤니티 앱입니다. 개발자들은 DevMingle을 사용하여 주변 지역의 다른 개발자들과 연락하고 지식을 공유할 수 있습니다. 이 앱은 개발자들이 자신의 기술을 향상시키고 더욱 창의적인 프로젝트를 만들 수 있도록 돕는 것을 목표로 합니다.
.
├── build
│ ├── classes
│ │ └── java
│ │ └── main
│ ├── generated
│ │ └── sources
│ │ ├── annotationProcessor
│ │ │ └── java
│ │ │ └── main
│ │ └── headers
│ │ └── java
│ │ └── main
│ ├── libs
│ │ └── dev-talk-0.0.1-SNAPSHOT.jar
│ ├── resolvedMainClassName
│ ├── resources
│ │ └── main
│ │ ├── application-database.yml
│ │ ├── application-dev.yml
│ │ ├── application-local.yml
│ │ ├── application-prod.yml
│ │ ├── application-valid.yml
│ │ ├── application.yml
│ │ └── db
│ │ └── migration
│ │ └── V1__init_db.sql
│ └── tmp
│ ├── bootJar
│ │ └── MANIFEST.MF
│ └── compileJava
│ └── previous-compilation-data.bin
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── devtalk
│ │ │ ├── DevTalkApplication.java
│ │ │ ├── controller
│ │ │ │ ├── AuthController.java
│ │ │ │ ├── BaseController.java
│ │ │ │ ├── CommonController.java
│ │ │ │ ├── PostController.java
│ │ │ │ └── FollowController.java
│ │ │ ├── dto
│ │ │ │ ├── commons
│ │ │ │ │ └── PreSignedUrlDto.java
│ │ │ │ ├── follows
│ │ │ │ │ ├── TargetUserInfoDto.java
│ │ │ │ │ ├── FollowAddDto.java
│ │ │ │ │ └── FollowInfoDto.java
│ │ │ │ ├── posts
│ │ │ │ │ ├── PostListDto.java
│ │ │ │ │ └── PostListInfoDto.java
│ │ │ │ ├── users
│ │ │ │ │ ├── ChangePwdDto.java
│ │ │ │ │ ├── LoginDto.java
│ │ │ │ │ ├── MypageDto.java
│ │ │ │ │ ├── SignupUserProfiles.java
│ │ │ │ │ ├── SignupUserProfilesResponse.java
│ │ │ │ │ └── UserProfilesResponse.java
│ │ │ │ ├── ApiResponse.java
│ │ │ │ └── ErrorResponse.java
│ │ │ ├── entity
│ │ │ │ ├── BaseTimeEntity.java
│ │ │ │ ├── Categories.java
│ │ │ │ ├── DeletedEntity.java
│ │ │ │ ├── Fllows.java
│ │ │ │ ├── Images.java
│ │ │ │ ├── LoginUser.java
│ │ │ │ ├── Posts.java
│ │ │ │ ├── UserProfiles.java
│ │ │ │ └── Users.java
│ │ │ ├── enums
│ │ │ │ ├── ImageType.java
│ │ │ │ └── OrderType.java
│ │ │ ├── exception
│ │ │ │ ├── ApiResultStatus.java
│ │ │ │ ├── AuthException.java
│ │ │ │ ├── BadApiRequestException.java
│ │ │ │ ├── BadRequestException.java
│ │ │ │ ├── BusinessException.java
│ │ │ │ ├── CommonException.java
│ │ │ │ ├── ForbiddenException.java
│ │ │ │ ├── FollowException.java
│ │ │ │ ├── ForbiddenException.java
│ │ │ │ ├── GlobalExceptionHandler.java
│ │ │ │ └── UnauthorizedException.java
│ │ │ ├── repository
│ │ │ │ ├── FollowRepository.java
│ │ │ │ ├── PostsJpaRepository.java
│ │ │ │ ├── PostsRepository.java
│ │ │ │ ├── PostsRepositoryImpl.java
│ │ │ │ ├── UserProfileRepository.java
│ │ │ │ └── UsersRepository.java
│ │ │ ├── security
│ │ │ │ ├── CustomEntryPoint.java
│ │ │ │ └── SecurityConfig.java
│ │ │ ├── resolver
│ │ │ │ └── ApiResponseResolver.java
│ │ │ ├── security
│ │ │ │ ├── jwt
│ │ │ │ │ ├──TokenFilter.java
│ │ │ │ │ └──TokenProvider.java
│ │ │ │ ├── ColumnEncryptor.java
│ │ │ │ └── PermitUrlProperties.java
│ │ │ ├── service
│ │ │ │ ├── AuthService.java
│ │ │ │ ├── FollowService.java
│ │ │ │ ├── PostService.java
│ │ │ │ ├── PostServiceImpl.java
│ │ │ │ ├── S3Service.java
│ │ │ │ └── UserService.java
│ │ │ └── util
│ │ │ ├── MailSender.java
│ │ │ ├── PasswordGenerator.java
│ │ │ ├── RedisUtil.java
│ │ │ └── TxidGenerator.java
│ │ └── resources
│ │ ├── application-auth.yml
│ │ ├── application-datasource.yml
│ │ ├── application-dev.yml
│ │ ├── application-local.yml
│ │ ├── application-prod.yml
│ │ ├── application.yml
│ │ └── db
│ │ └── migration
│ │ └── V1__init_db.sql
│ └── test
│ └── java
│ └── com
│ └── example
│ └── devtalk
│ └── DevTalkApplicationTests.java
├── build.gradle
├── docker-compose.local.yml
├── docker-compose.yml
├── Dockerfile
├── gradlew
├── gradlew.bat
├── HELP.md
├── README.md
├── settings.gradle
├── start-server.sh
└── stop-server.sh
- OS: Alpine Linux 3.16
- Language: openjdk 17
- Framework: SpringBoot 3.1.3
- build & lib management: Gradle 8.2.1
- DB: PostgreSQL 15.3
- ORM: Spring Boot JPA
- Etc: lombok, jjwt, flyway
- 실행 전
openjdk-17
,docker
,docker-compose
가 설치되어 있어야 합니다.
# 활성화 할 프로파일
SPRING_PROFILE: local
# DB 유저 정보
DB_PASSWORD: yourpassword1234
# JWT 설정
JWT_SECRET: yoursecretkey1234
JWT_EXPIRE: 600
./start-server.sh
- build jar
./gradlew clean bootJar
- docker compose up
docker compose -f docker-compose.yml up -d
- 로컬
curl -X GET http://127.0.0.1:8080/actuator/health