[2025 카카오테크부트캠프 제주 최종 프로젝트 우수상 수상작]
이름 | 직급 | 역할 |
---|---|---|
강산아 | 팀장 | DevOps |
박민수 | 팀원 | Backend |
정혜윤 | 팀원 | Backend |
김동현 | 팀원 | Backend |
김정현 | 팀원 | Backend |
코알람은 실시간 시장 감지와 사용자 맞춤 알림, 그리고 한 발 더 나아가 미래 가격 예측 기능까지 제공하는, 투자 보조에 특화된 서비스입니다.
이제 투자자는 “기회가 올 때, 바로 대응할 수 있는 무기”, 코알람을 통해 더 빠르고 더 똑똑한 투자를 할 수 있게 됩니다.
📱 Client
|
v
🌐 Frontend (React + Vite)
├─ TradingView, Redux
└─ Tailwind CSS
|
v
🌩 AWS Cloud
├─ Route53
├─ S3 + CloudFront (정적 파일 호스팅)
└─ ALB (443, HTTPS)
|
v
🧠 Backend (EC2 Instances)
├─ EC2-Spring
│ ├─ Auth
│ ├─ Alert / Indicators / History
│ ├─ Scheduler / Actuator
│ └─ Rate Limiter
├─ EC2-AI
│ └─ Deep Learning Model
└─ EC2-Node
├─ WebSocket
└─ MQ (Producer ↔ Consumer with Worker Pool)
↘ ↓
↙ ↘
🗄 Database (PostgreSQL via RDS)
🔑 OAuth (Kakao)
📈 Monitoring (Prometheus + Grafana)
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.3'
id 'io.spring.dependency-management' version '1.1.7'
id 'com.diffplug.spotless' version '6.25.0'
}
group = '1danhebojo.coalarm'
version = project.version
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation:3.4.2'
implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
// PostgreSQL
implementation 'org.postgresql:postgresql:42.7.3'
// Swagger
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.3'
// Lombok
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'
// Query DSL
implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
annotationProcessor "com.querydsl:querydsl-apt:5.0.0:jakarta"
annotationProcessor "jakarta.annotation:jakarta.annotation-api"
annotationProcessor "jakarta.persistence:jakarta.persistence-api"
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
// Spring Security
implementation 'org.springframework.boot:spring-boot-starter-security'
// jwt
implementation 'io.jsonwebtoken:jjwt-api:0.12.3'
implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'
implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3'
//aws S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
implementation 'com.amazonaws:aws-java-sdk-s3:1.12.319'
// web socket
implementation 'org.springframework.boot:spring-boot-starter-websocket'
//Bucket4j
implementation 'com.github.vladimir-bukhtoyarov:bucket4j-core:7.6.0'
implementation 'com.github.vladimir-bukhtoyarov:bucket4j-jcache:7.6.0'
implementation 'org.ehcache:ehcache:3.10.8'
//Jackson
implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'
}
tasks.named('test') {
useJUnitPlatform()
}
keyword | 설명 |
---|---|
Feat | 새로운 기능 추가 |
Fix | 버그 수정 |
Design | CSS 등 사용자 UI 디자인 변경 |
!BREAKING CHANGE | 커다란 API 변경의 경우 |
!HOTFIX | 급하게 치명적인 버그를 고쳐야하는 경우 |
Docs | 문서 수정 |
Style | 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우 |
Comment | 필요한 주석 추가 및 변경 |
Refactor | 코드 리펙토링 |
Test | test code, refactoring test code 추가 |
Chore | build 업무 수정, 패키지 매니저 수정 |
Rename | 파일 혹은 폴더명을 수정하거나 옮기는 작업만인 경우 |
Remove | 파일을 삭제하는 작업만 수행한 경우 |