Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
fd36042
feat: ์Œ์‹์  ์ƒ์„ฑ/์ˆ˜์ •/์‚ญ์ œ ์‹œ kafka ์ด๋ฒคํŠธ ์•Œ๋ฆผ
gashine20 Dec 19, 2025
be03eee
ref: search-service event์— categoryIds ์ถ”๊ฐ€
gashine20 Dec 19, 2025
f1b971e
ref: Kafka ์—ญ์ง๋ ฌํ™” ๋ฐ MessageConverter ์„ค์ • ์ ์šฉ
gashine20 Dec 19, 2025
eb5c9e7
feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์Œ์‹์  ๋ชฉ๋ก ์กฐํšŒ API controller, dto ์ถ”๊ฐ€
thdwnsdlf61 Dec 19, 2025
7e0a3f9
feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์Œ์‹์  ๋ชฉ๋ก ์กฐํšŒ API repository ์ฟผ๋ฆฌ ๊ตฌํ˜„
thdwnsdlf61 Dec 19, 2025
1aa0c5d
feat: ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ์Œ์‹์  ๋ชฉ๋ก ์กฐํšŒ API ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ถ”๊ฐ€
thdwnsdlf61 Dec 19, 2025
f993e7e
Merge branch 'refs/heads/develop' into feat/search
thdwnsdlf61 Dec 19, 2025
e8ee9e3
ref: UUID -> String ํ˜•๋ณ€ํ™˜
gashine20 Dec 20, 2025
928b665
Merge branch 'develop' into feat/#49-store-kafka
gashine20 Dec 20, 2025
ce5fa90
Merge pull request #158 from KokKok-dev/feat/#49-store-kafka
gashine20 Dec 20, 2025
5836c05
feat: waiting dockerfile ์ƒ์„ฑ, prod yml ํŒŒ์ผ ์ƒ์„ฑ
gashine20 Dec 21, 2025
342e411
ref: gateway prod yml ํŒŒ์ผ์— waiting ๊ฒฝ๋กœ ์ถ”๊ฐ€
gashine20 Dec 21, 2025
7171d98
feat: waiting ci ์„ค์ •
gashine20 Dec 21, 2025
08d8258
feat: jar ํŒŒ์ผ ์ถ”๊ฐ€
gashine20 Dec 21, 2025
9c3743d
feat: ์ƒˆ๋ฒฝ 3์‹œ์— ์›จ์ดํŒ… status ์ดˆ๊ธฐํ™” & redis queue ์ดˆ๊ธฐํ™”
gashine20 Dec 21, 2025
b790b74
Update waiting-service-ci.yml
gashine20 Dec 21, 2025
64fc658
feat: store ์ƒ์„ธ ์กฐํšŒ api ๊ฐœ๋ฐœ
gashine20 Dec 21, 2025
20811a6
ref: ์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„ ๋ฆฌ์ŠคํŠธ ๋ฆฌํ„ดํ•˜๋„๋ก ์ˆ˜์ •
gashine20 Dec 21, 2025
1d05900
Merge pull request #165 from KokKok-dev/feat/#164-store-getStore
gashine20 Dec 22, 2025
3d44fa3
Merge pull request #163 from KokKok-dev/feat/#162-waiting-deploy
gashine20 Dec 22, 2025
46c7c47
feat: ๋ ˆ๋””์Šค ํ™˜๊ฒฝ ์„ค์ •
trevivom76 Dec 22, 2025
a981bf1
Merge branch 'refs/heads/develop' into feat/search
thdwnsdlf61 Dec 22, 2025
cfbede8
feat: Refresh Tokne ๊ตฌํ˜„
trevivom76 Dec 22, 2025
7ed7a44
feat: ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ณ€๊ฒฝ ์‹œ ํ† ํฐ ๋ฌดํšจํ™” ์ž‘์—…
trevivom76 Dec 22, 2025
9a0a0f2
ref: review-service kafka ์„ค์ • ์ถ”๊ฐ€ ๋ฐ ๋ฆฌ๋ทฐ ์ง‘๊ณ„ ๋ฐ์ดํ„ฐ ์ „๋‹ฌ ๋กœ์ง ์ˆ˜์ •
thdwnsdlf61 Dec 22, 2025
a99dc86
ref: ์˜ค๋ฅ˜ ์ˆ˜์ •
thdwnsdlf61 Dec 22, 2025
9e0f8bd
ref: ๋ฏธ์‚ฌ์šฉ ์ฃผ์„ ์ œ๊ฑฐ
thdwnsdlf61 Dec 22, 2025
f74fd89
Merge pull request #161 from KokKok-dev/feat/search
thdwnsdlf61 Dec 22, 2025
337aee9
feat: Redis+Refresh Token ๋ฐœ๊ธ‰๊ณผ ์ €์žฅ, ํ† ํฐ ๋ฌดํšจํ™”, ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ์ฒดํฌ
trevivom76 Dec 22, 2025
6e57e9f
feat: Access Token ์žฌ๋ฐœ๊ธ‰ api
trevivom76 Dec 23, 2025
8ef3fda
feat: ๋กœ๊ทธ์•„์›ƒ api
trevivom76 Dec 23, 2025
d8deaf2
Merge pull request #169 from KokKok-dev/feat/#167-userservice-upscale
trevivom76 Dec 23, 2025
a1cc1ae
feat: redis INCR ๋ฐฉ์‹์œผ๋กœ ์ˆœ๋ฒˆ ๋ฐœ๊ธ‰ & Native Query๋กœ ์ผ๊ด€์„ฑ ์œ ์ง€
gashine20 Dec 23, 2025
2127894
feat: ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ controller, dto ์ •์˜
thdwnsdlf61 Dec 23, 2025
b383988
feat: ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ query ์ถ”๊ฐ€
thdwnsdlf61 Dec 23, 2025
dba8d28
feat: ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง, ์‘๋‹ต response ์ถ”๊ฐ€
thdwnsdlf61 Dec 23, 2025
36da335
feat: ๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ controller ์ถ”๊ฐ€
thdwnsdlf61 Dec 23, 2025
d8c0dab
feat: name ํ•„๋“œ์— ์ž๋™์™„์„ฑ ํƒ€์ž… ์ถ”๊ฐ€
thdwnsdlf61 Dec 23, 2025
3ef226d
feat: ๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ query ์ถ”๊ฐ€
thdwnsdlf61 Dec 23, 2025
e9317c1
feat: ๊ฒ€์ƒ‰์–ด ์ž๋™์™„์„ฑ ๊ธฐ๋Šฅ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ถ”๊ฐ€
thdwnsdlf61 Dec 23, 2025
cf1b5b5
ref: ์—๋Ÿฌ ์ฝ”๋“œ ์˜คํƒ€ ์ˆ˜์ •
gyoseok17 Dec 23, 2025
b7c46d2
ref: ์˜ˆ์•ฝ ์š”์ฒญ ์‹œ ๋ถ„์‚ฐ๋ฝ ๊ตฌํ˜„, ์ž…์žฅ ํ† ํฐ์‚ญ์ œ, pub/sub, ์Šค์ผ€์ค„๋Ÿฌ ๋ฝ,
gyoseok17 Dec 24, 2025
dc061c7
ref: ์˜คํƒ€ ๊ฒ€์ƒ‰ ์‹œ ์œ ์‚ฌ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์‘๋‹ตํ•˜๊ฒŒ ๋ณ€๊ฒฝ
thdwnsdlf61 Dec 24, 2025
1efa73a
Merge pull request #172 from KokKok-dev/feat/waiting
gashine20 Dec 24, 2025
faa552b
Merge pull request #174 from KokKok-dev/refactor/#166-hot-reservation
gyoseok17 Dec 24, 2025
547df04
Merge branch 'refs/heads/develop' into feat/search
thdwnsdlf61 Dec 24, 2025
2943253
Merge pull request #175 from KokKok-dev/feat/search
thdwnsdlf61 Dec 24, 2025
f0c6f65
Merge branch 'develop' of https://github.com/KokKok-dev/Tablekok intoโ€ฆ
gyoseok17 Dec 24, 2025
aee013b
feat: ์˜ˆ์•ฝ ์ƒ์„ฑ ์‹œ ๋ ˆ๋””์Šค๋กœ ๋ถ„์‚ฐ๋ฝ ๊ตฌํ˜„, ํŠน์ • ์‹๋‹น ํŠน์ • ๋‚ ์งœ์˜ ์˜ˆ์•ฝ ๋ชฉ๋ก ํ™•์ธ(๋นˆ ์˜ˆ์•ฝ ํ™•์ธ ์šฉ), ๋‚ด๋ถ€ ์š”์ฒญ์€ ์ธ์ฆx
gyoseok17 Dec 24, 2025
da14656
ref: http test
gyoseok17 Dec 24, 2025
cdd53a2
Merge pull request #176 from KokKok-dev/feat/#173-reservation
gyoseok17 Dec 24, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/aws/tablekok-user-task-revision1.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
},
{
"name": "JWT_SECRET",
"value": "tablekok-user-dev-secret-key-minimum-32-characters-long"
"value": "VGFibGVrb2stU2VjcmV0S2V5LUZvcitKV1QtQXV0aGVudGljYXRpb24tMjAyNTAzMTI="
},
{
"name": "DB_URL",
Expand Down
122 changes: 122 additions & 0 deletions .github/workflows/aws/tablekok-waiting-task-revision5.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
{
"compatibilities": [
"EC2",
"FARGATE",
"MANAGED_INSTANCES"
],
"containerDefinitions": [
{
"cpu": 0,
"environment": [
{
"name": "EUREKA_SERVER_PROD_URL",
"value": "http://tablekok-eureka-server-lb-1162347586.ap-northeast-2.elb.amazonaws.com/eureka"
},
{
"name": "LB_DNS_STORE",
"value": "tablekok-store-service-lb-752510743.ap-northeast-2.elb.amazonaws.com"
},
{
"name": "CACHE_HOST",
"value": "tablekok-cache-saweub.serverless.apn2.cache.amazonaws.com"
},
{
"name": "RDS_ENDPOINT_WAITING",
"value": "jdbc:postgresql://tablekok-db.ch0umigqozdz.ap-northeast-2.rds.amazonaws.com:5433/waiting_db"
},
{
"name": "CACHE_PORT",
"value": "6379"
},
{
"name": "DB_USER_WAITING",
"value": "postgres"
},
{
"name": "DB_PASSWORD_WAITING",
"value": "zhrzhr123"
},
{
"name": "TIME_OUT",
"value": "10"
}
],
"environmentFiles": [],
"essential": true,
"image": "291433606038.dkr.ecr.ap-northeast-2.amazonaws.com/tablekok/waiting@sha256:439c7d0d4b2e5520baac5b2005549bc9c0d153386d8f3b993cc3538fd5a8d11c",
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/tablekok-waiting-task",
"awslogs-create-group": "true",
"awslogs-region": "ap-northeast-2",
"awslogs-stream-prefix": "ecs"
},
"secretOptions": []
},
"mountPoints": [],
"name": "tablekok-waiting-container",
"portMappings": [
{
"appProtocol": "http",
"containerPort": 8086,
"hostPort": 8086,
"name": "tablekok-waiting-container-8086-tcp",
"protocol": "tcp"
}
],
"systemControls": [],
"ulimits": [],
"volumesFrom": []
}
],
"cpu": "1024",
"executionRoleArn": "arn:aws:iam::291433606038:role/ecsTaskExecutionRole",
"family": "tablekok-waiting-task",
"memory": "3072",
"networkMode": "awsvpc",
"placementConstraints": [],
"registeredAt": "2025-12-21T05:29:09.496Z",
"registeredBy": "arn:aws:iam::291433606038:user/Gahyeon",
"requiresAttributes": [
{
"name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
},
{
"name": "ecs.capability.execution-role-awslogs"
},
{
"name": "com.amazonaws.ecs.capability.ecr-auth"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.21"
},
{
"name": "ecs.capability.execution-role-ecr-pull"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
},
{
"name": "ecs.capability.task-eni"
},
{
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.29"
}
],
"requiresCompatibilities": [
"FARGATE"
],
"revision": 5,
"runtimePlatform": {
"cpuArchitecture": "X86_64",
"operatingSystemFamily": "LINUX"
},
"status": "ACTIVE",
"taskDefinitionArn": "arn:aws:ecs:ap-northeast-2:291433606038:task-definition/tablekok-waiting-task:5",
"volumes": [],
"tags": []
}
144 changes: 144 additions & 0 deletions .github/workflows/waiting-service-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
# This workflow will build and push a new container image to Amazon ECR,
# and then will deploy a new task definition to Amazon ECS, when there is a push to the "develop" branch.
#
# To use this workflow, you will need to complete the following set-up steps:
#
# 1. Create an ECR repository to store your images.
# For example: `aws ecr create-repository --repository-name my-ecr-repo --region us-east-2`.
# Replace the value of the `ECR_REPOSITORY` environment variable in the workflow below with your repository's name.
# Replace the value of the `AWS_REGION` environment variable in the workflow below with your repository's region.
#
# 2. Create an ECS task definition, an ECS cluster, and an ECS service.
# For example, follow the Getting Started guide on the ECS console:
# https://us-east-2.console.aws.amazon.com/ecs/home?region=us-east-2#/firstRun
# Replace the value of the `ECS_SERVICE` environment variable in the workflow below with the name you set for the Amazon ECS service.
# Replace the value of the `ECS_CLUSTER` environment variable in the workflow below with the name you set for the cluster.
#
# 3. Store your ECS task definition as a JSON file in your repository.
# The format should follow the output of `aws ecs register-task-definition --generate-cli-skeleton`.
# Replace the value of the `ECS_TASK_DEFINITION` environment variable in the workflow below with the path to the JSON file.
# Replace the value of the `CONTAINER_NAME` environment variable in the workflow below with the name of the container
# in the `containerDefinitions` section of the task definition.
#
# 4. Store an IAM user access key in GitHub Actions secrets named `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY`.
# See the documentation for each action used below for the recommended IAM policies for this IAM user,
# and best practices on handling the access key credentials.

name: waiting-service Deploy to Amazon ECS

on:
push:
branches: [ "main" ]
paths: [ 'waiting-server/**' ]

env:
AWS_REGION: ap-northeast-2 # set this to your preferred AWS region, e.g. us-west-1
ECR_REPOSITORY: tablekok/waiting # set this to your Amazon ECR repository name
ECS_SERVICE: tablekok-waiting-task-service-t1pqisga # set this to your Amazon ECS service name
ECS_CLUSTER: tablekok-cluster # set this to your Amazon ECS cluster name
ECS_TASK_DEFINITION: .github/workflows/aws/tablekok-waiting-task-revision5.json # set this to the path to your Amazon ECS task definition
# file, e.g. .aws/task-definition.json
CONTAINER_NAME: tablekok-waiting-container # set this to the name of the container in the
# containerDefinitions section of your task definition

permissions:
contents: read

jobs:
build:
name: Build Jar
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

- name: Grant execute permission for gradlew
run: chmod +x gradlew
working-directory: ./waiting-server

- name: Build with Gradle
run: ./gradlew clean build -x test
working-directory: ./waiting-server
env:
RDS_ENDPOINT_WAITING: ${{ secrets.RESERVATION_DB_URL }}
DB_USER_WAITING: ${{ secrets.DB_USERNAME }}
DB_PASSWORD_WAITING: ${{ secrets.DB_PASSWORD }}
CACHE_HOST: ${{ secrets.CACHE_HOST }}
CACHE_PORT: ${{ secrets.CACHE_PORT }}
EUREKA_SERVER_PROD_URL: ${{ secrets.EUREKA_SERVER_URL }}
TIME_OUT: ${{ secrets.WAITING_TIME_OUT }}
LB_DNS_STORE: ${{ secrets.LB_DNS_STORE }}

- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: build-libs
path: waiting-server/build/libs/*.jar



deploy:
name: Deploy
runs-on: ubuntu-latest
environment: production
needs: build # ์ถ”๊ฐ€: build Job์ด ์„ฑ๊ณตํ•ด์•ผ๋งŒ deploy Job์ด ์‹คํ–‰๋˜๋„๋ก ์˜์กด์„ฑ ์„ค์ •

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Download Build Artifacts
uses: actions/download-artifact@v4
with:
name: build-libs
path: waiting-server/build/libs

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ env.AWS_REGION }}

- name: Login to Amazon ECR
id: login-ecr
uses: aws-actions/amazon-ecr-login@v2


# --- Docker Build/Push ์‹œ์ž‘ (Task Definition ์—…๋ฐ์ดํŠธ๋ณด๋‹ค ๋จผ์ € ์‹คํ–‰๋˜์–ด์•ผ ํ•จ) ---

- name: Build, tag, and push image to Amazon ECR
id: build-image
env:
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
IMAGE_TAG: ${{ github.sha }}
run: |
docker build -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG ./waiting-server
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
echo "image=$ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG" >> $GITHUB_OUTPUT


# --- Docker Build/Push ๋ ---
- name: Fill in the new image ID in the Amazon ECS task definition
id: task-def
uses: aws-actions/amazon-ecs-render-task-definition@v1
with:
task-definition: ${{ env.ECS_TASK_DEFINITION }}
container-name: ${{ env.CONTAINER_NAME }}
image: ${{ steps.build-image.outputs.image }} # ์ด์ œ image output์„ ์ •์ƒ์ ์œผ๋กœ ์ฐธ์กฐ ๊ฐ€๋Šฅ

- name: Deploy Amazon ECS task definition
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
with:
task-definition: ${{ steps.task-def.outputs.task-definition }}
service: ${{ env.ECS_SERVICE }}
cluster: ${{ env.ECS_CLUSTER }}
wait-for-service-stability: true

Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Dockerfile-elastic
FROM docker.elastic.co/elasticsearch/elasticsearch:8.11.1
FROM docker.elastic.co/elasticsearch/elasticsearch:8.18.8

# Nori ํ˜•ํƒœ์†Œ ๋ถ„์„๊ธฐ ์„ค์น˜
RUN elasticsearch-plugin install analysis-nori
3 changes: 3 additions & 0 deletions gateway-service/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,9 @@ dependencies {
// ์œ ์ง€ํ•  ์˜์กด์„ฑ๋“ค
implementation 'org.springframework.boot:spring-boot-starter-actuator' // ๋ชจ๋‹ˆํ„ฐ๋ง์šฉ

// Redis (WebFlux ๊ธฐ๋ฐ˜์ด๋ผ reactive ๋ฒ„์ „ ์‚ฌ์šฉ)
implementation 'org.springframework.boot:spring-boot-starter-data-redis-reactive'

// JWT ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (ํ† ํฐ ๊ฒ€์ฆ์šฉ)
compileOnly group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5'
runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder, JwtAuthentic
// Review Service
.route("review-service-store-nested", r -> r
.path("/v1/stores/*/reviews/**") // ๊ฐ€๊ฒŒ ๋ฆฌ๋ทฐ (์™€์ผ๋“œ์นด๋“œ ์‚ฌ์šฉ)
.filters(f -> f.filter(jwtFilter.apply(new JwtAuthenticationFilter.Config())))
.uri(uris.review())
)
.route("review-service-user-nested", r -> r
Expand Down Expand Up @@ -83,7 +82,6 @@ public RouteLocator customRouteLocator(RouteLocatorBuilder builder, JwtAuthentic
// Search Service
.route("search-service", r -> r
.path("/v1/search/**")
.filters(f -> f.filter(jwtFilter.apply(new JwtAuthenticationFilter.Config())))
.uri(uris.search())
)

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.tablekok.gateway_service.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.ReactiveRedisConnectionFactory;
import org.springframework.data.redis.core.ReactiveRedisTemplate;
import org.springframework.data.redis.serializer.RedisSerializationContext;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {

@Bean
public ReactiveRedisTemplate<String, String> reactiveRedisTemplate(
ReactiveRedisConnectionFactory connectionFactory) {

StringRedisSerializer serializer = new StringRedisSerializer();

RedisSerializationContext<String, String> context =
RedisSerializationContext.<String, String>newSerializationContext(serializer)
.key(serializer)
.value(serializer)
.hashKey(serializer)
.hashValue(serializer)
.build();

return new ReactiveRedisTemplate<>(connectionFactory, context);
}
}
Loading