🎈 프로젝트명 : Horse Bit
📌 프로젝트 컨셉 : 조각투자를 이용한 경주마 소액 투자 거래소 플랫폼
🛠 개발 기간 : 23.08.28 ~ 23.10.6 (6주)
💻 사용 기술스택 : SpringBoot, Kotlin (4. 시스템 아키텍처 참고)
이름 | 역할 | 설명 |
---|---|---|
홍성민(팀장) | Backend | ERD 설계 Spring Security와 JWT, OAuth2를 활용한 구글 로그인 api 구현 토큰을 활용한 암호화 및 사용자 인증 알고리즘 구현 Spring Boot를 활용한 REST API 구현 Spring Data JPA를 활용한 DB 구축 |
이재홍 | Backend | DB(redis, mysql), Nginx, Jenkins, Docker 환경 구성 redis를 활용한 분산 락 기능 구성 Spring Boot를 활용한 Backend 구현 |
동화영 | Backend | 프로젝트 기획 및 설계 기능명세서, 데이터베이스 설계서 API 문서 작성 MySQL 기반의 데이터베이스 구축 및 데이터 관리 Spring Framework를 활용한 RESTful API 통신 서버 개발 Spring JPA를 활용하여 사용자 요청처리 및 데이터 관리 |
김용우 | Frontend | 프로젝트 기획 및 설계 Kotlin을 사용한 안드로이드 어플리케이션 |
김민태 | Frontend | 프로젝트 기획 및 설계 Figma 제작 Kotlin을 활용한 안드로이드 어플리케이션 OAuth2를 활용한 구글 로그인 프론트앤드 구현 안드로이드 생체 인식 인증 구현 README 작성 |
임서희 | Frontend | Figma 설계 OAuth2를 활용한 구글 로그인 프론트앤드 구현 Kotlin을 사용한 안드로이드 어플리케이션 |
기능 | 세부기능 |
---|---|
회원 기능 | - 구글 로그인을 통한, 회원가입 / 로그인 - 회원정보 변경 및 탈퇴 |
거래소 | - 전체, 보유, 관심 코인 조회 및 자산명, 현재가, 변동가, 거래금액으로 오름내림 차순 |
주문 | - 거래량 및 매수, 매도, 미체결, 체결 조회 가능 |
차트 | - 실시간 차트 및 거래량 변동 그래프 제공 |
정보 | - 말(코인)에 대한 정보 제공(마주, 출생지, 부마, 발행일, 총 발향 수량, 시가총액 등) |
마이페이지 | - 총 보유자신, 매수, 평가 손익 , 수익률 및 보유 마패 시각화 |
입출금내역 | - 보유 KRW 및 현금 거래 서비스, 입출금 내역 |
더보기 | - 알람 및 생체인증 제공 및 공지사항, 약관 및 정책, 내 정보 수정 |
내정보 수정 | - 이름 수정 및 계좌정보, 로그아웃, 회원탈퇴 |
- 생명과의 교감을 통한 투자 서비스
- 실시간으로 반영되는 호가창과 차트
- 높은 신뢰성을 바탕으로 다수의 거래 진행
- 고가의 경주마 투자가 아닌 소액 투자

상세 | 내용 |
---|---|
GitLab | 형상 관리 |
Jira | 일정 및 이슈 관리 |
Mattermost | 커뮤니케이션 |
Notion | 일정 및 문서 관리 |
상세 | 버전 |
---|---|
Kotlin | 1.8 |
Java | 17 |
SpringBoot | 3.1.3 |
SpringSecurity | 6 |
JWT | 4.2.1 |
redisson | 3.23.4 |
redis | 7.2 |
mysql | 8.1 |
Jenkins | 2.423 |
nginx | 1.25.2 |
docker | 24.0.6 |
📂 app
ㄴ📂 java
ㄴ📂 com.a406.horsebit
ㄴ🧩 APIS
ㄴ📘 AssetTavbleitemAdapter
ㄴ📘 DataModels.kt
ㄴ📘 ExcahngeFragemnet
ㄴ📘 HomeFragment
ㄴ📘 LoginMainActivity.kt
ㄴ📘 MainActivity
ㄴ📘 MoreFragement
ㄴ📘 MyEditFragemnet
ㄴ📘 MyPageFragment
ㄴ📘 OrderActivity
ㄴ📘 StockChartFragemnet
ㄴ📘 SwipHelperCallBack
📂 res
ㄴ📂 drawable
ㄴ📄 main_log.png
ㄴ📄 baseline_arrow.xml
ㄴ📄 button_round.xml
ㄴ📄 edge.xml
ㄴ📄 ic_icon.xml
ㄴ📄 rounded_shape.xml
ㄴ📄 underline.xml
ㄴ📂 font
ㄴ📄 font.xml
ㄴ📝 garket.ttf
ㄴ📝 gmarket_sans.ttf
ㄴ📝 line_seed.ttf
ㄴ📂 layout
ㄴ📄 activity_login.xml
ㄴ📄 activity_main.xml
ㄴ📄 asset_tavle_item.xml
ㄴ📄 exchange_item.xml
ㄴ📄 fragemnet_exchange.xml
ㄴ📄 fragemnet_home.xml
ㄴ📄 fragemnet_my_edit.xml
ㄴ📄 fragemnet_order.xml
ㄴ📄 fragemnet_stock_chart.xml
ㄴ📄 myasset_item.xml
ㄴ📄 popup_edit_name.xml
ㄴ📂 mipmap
ㄴ📂 ic_icon
ㄴ📂 ic_icon_foreground
ㄴ📂 ic_launcher
ㄴ📂 values
ㄴ📄 colors.xml
ㄴ📄 ic_icon_background.xml
ㄴ📄 strings.xml
ㄴ📂 themes
ㄴ📂 xml
ㄴ📄 backup_rules.xml
ㄴ📄 data_extraction_rules.xml
🐘 Gradle Scripts
ㄴ 🐘 build.gradle
ㄴ 🐘 setting.gradle
📂 src/main/java
ㄴ📦 com.a406.horsebit
ㄴ📦 aop
ㄴ📄 AopForTransaction.java
ㄴ📄 CustomSpringELParser.java
ㄴ📄 DistributedLock.java
ㄴ📄 DistributedLockAop.java
ㄴ📦 cache
ㄴ📄 CandleCache.java
ㄴ📦 config
ㄴ📦 jwt
ㄴ📄 JwtAuthenticationEntryPoint.java
ㄴ📄 JwtProperties.java
ㄴ📄 TokenProvider.java
ㄴ📦 oauth
ㄴ📄 OAuth2UserCustomService.java
ㄴ📄 RedissonConfig.java
ㄴ📄 TokenAuthenticationFilter.java
ㄴ📄 WebOAuthSecurityConfig.java
ㄴ📦 constant
ㄴ📄 CandleConstant.java
ㄴ📄 OrderConstant.java
ㄴ📄 PriceConstant.java
ㄴ📦 controller
ㄴ📄 AssetsController.java
ㄴ📄 HorseController.java
ㄴ📄 OrderController.java
ㄴ📄 TokenController.java
ㄴ📄 TradeController.java
ㄴ📄 UserController.java
ㄴ📦 domain
ㄴ📦 redis
ㄴ📄 Candle.java
ㄴ📄 CandleType.java
ㄴ📄 Order.java
ㄴ📄 OrderSummary.java
ㄴ📄 Price.java
ㄴ📄 PriceRateOfChange.java
ㄴ📄 VolumePage.java
ㄴ📄 Account.java
ㄴ📄 Bookmark.java
ㄴ📄 BookmarkPK.java
ㄴ📄 Horse.java
ㄴ📄 HorseTokenRel.java
ㄴ📄 HorseTokenRelPK.java
ㄴ📄 Possess.java
ㄴ📄 RefreshToken.java
ㄴ📄 Token.java
ㄴ📄 Trade.java
ㄴ📄 TradeHistory.java
ㄴ📄 User.java
ㄴ📦 dto
ㄴ📦 response
ㄴ📄 CreateAccessTokenResponse.java
ㄴ📄 TokenReponse.java
ㄴ📦 request
ㄴ📄 AddUserRequest.java
ㄴ📄 TokenRequest.java
ㄴ📄 AssetsDTO.java
ㄴ📄 CandleDTO.java
ㄴ📄 HorseDTO.java
ㄴ📄 HorseTokenDTO.java
ㄴ📄 OrderDTO.java
ㄴ📄 OrderRequestDTO.java
ㄴ📄 OrderResponseDTO.java
ㄴ📄 PriceDTO.java
ㄴ📄 PriceRateOfChangeDTO.java
ㄴ📄 TokenDTO.java
ㄴ📄 TradeDTO.java
ㄴ📄 UserSettingDTO.java
ㄴ📄 UserTradeDTO.java
ㄴ📄 VolumeDTO.java
ㄴ📦 exception
ㄴ📄 CustomException.java
ㄴ📦 exceptionhandler
ㄴ📄 GlobalExceptionHandler.java
ㄴ📦 google
ㄴ📦 controller
ㄴ📄 OAuthController.java
ㄴ📦 domain
ㄴ📄 OAuthAdapter.java
ㄴ📄 OAuthConfig.java
ㄴ📄 OAuthProperties.java
ㄴ📄 OAuthProvider.java
ㄴ📄 OIDCKey.java
ㄴ📄 Role.java
ㄴ📦 dto
ㄴ📦 request
ㄴ📄 RefreshDTO.java
ㄴ📄 SignInDTO.java
ㄴ📄 SignUpDTO.java
ㄴ📄 UserDTO.java
ㄴ📦 response
ㄴ📄 RefreshResponseDTO.java
ㄴ📄 SignInResponseDTO.java
ㄴ📄 SignUpResponseDTO.java
ㄴ📄 UserNameDuplicatedResponseDTO.java
ㄴ📦 exception
ㄴ📄 NoSuchUserException.java
ㄴ📄 UnauthorizedException.java
ㄴ📦 repository
ㄴ📄 InMemoryProviderRepository.java
ㄴ📦 repository
ㄴ📦 redis
ㄴ📄 CandleRepository.java
ㄴ📄 OrderRepository.java
ㄴ📄 PriceRepository.java
ㄴ📄 AccountRepository.java
ㄴ📄 BookmarkRepository.java
ㄴ📄 PossessRepository.java
ㄴ📄 RefreshTokenRepository.java
ㄴ📄 TokenRepository.java
ㄴ📄 TradeRepository.java
ㄴ📄 UserRepository.java
ㄴ📦 service
ㄴ📄 AssetsService.java
ㄴ📄 BookmarkService.java
ㄴ📄 CandleService.java
ㄴ📄 HorseService.java
ㄴ📄 InitiatorService.java
ㄴ📄 OrderAsyncService.java
ㄴ📄 OrderService.java
ㄴ📄 PriceService.java
ㄴ📄 TokenService.java
ㄴ📄 TradeService.java
ㄴ📄 UserDetailService.java
ㄴ📄 UserService.java
ㄴ📄 HorsebitApplication.java
ㄴ📄 SpringConfig.java
📂 src/main/resources
ㄴ📂 js
ㄴ📄 token.js
ㄴ📂 static/img
ㄴ📄 google.png
ㄴ📂 templates
ㄴ📄 oauthLogin.html
ㄴ📄 signup.html
ㄴ📄 application.yml
📄 .gitignore
🐘 build.gradle
🐳 Dockerfile
🐘 gradlew
🐘 gradlew.bat
🐘 settings.gradle
"[Type] #(Jira issue number) Commit message"
- Type
-
Fix : 잘못된 동작을 고칠 때
fix function/error/typo in style.css
-
option
- funtion : 고친 함수 명 (e.g. fix login function in index.html)
- error : 수정한 에러 (e.g. fix [구체적 에러명] error in login.js)
- typo : 오타 (e.g. fix typo in style.css)
-
Add : 새로운 것을 추가할 때
add mytest.test for test (새로운 파일 추가 시)
add blue color to style.css (기존 파일에 내용 추가 시)
-
Move : 코드나 파일을 이동할 때
move A to B (e.g. A를 B로 이동할 때)
-
Rename : 이름 변경이 있을 때
rename A to B (e.g. A를 B로 이름을 변경할 때)
-
Update : 정상적으로 동작하는 파일을 보완하는 경우
update test.js to use HTTPS (test.js에 기존의 프로토콜에서 HTTPS 프로토콜 사용으로 변경)
-
Remove : 삭제가 있을 때
remove test.js (파일 삭제 시)
remove black color from style.css (파일 내 부분 삭제 시)
-
- #(Jira issue number) : Click 시, Jira에서 해당 Issue에 대한 상세 내용 확인 가능
- Commit message : 변경 사항에 대해 명확하게 기술
master
└ develop
├ backend
├ backend-api-bug
├ backend-asset-api
├ backend-exchange-api
├ backend-excahnge-token
├ backend-favorite-api
├ backend-login
├ backend-redis-api
├ backend-redis_io
├ backend-sse-api
├ frontend
└ infrastructure
- master : 운영 서버로 배포하기 위한 브랜치
- develop : 다음 출시 기능을 개발하는 브랜치
- backend : 백엔드를 개발하는 브랜치
- frontend : 프론트엔드를 개발하는 브랜치
- infrastructure: 인프라구축을 위한 브랜치