Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
c316e15
git init
ghkddlscks19 Feb 14, 2025
307ddc9
feat: 사용자의 입력 값에 맞게 주식 정보 가져오는 로직 추가
ghkddlscks19 Feb 15, 2025
ca7a44c
feat: 사용자의 입력 값에 맞게 주식 정보 가져오는 로직 추가
ghkddlscks19 Feb 15, 2025
abefa61
feat: 사용자의 입력 값에 맞게 주식 정보 가져오는 로직 추가
ghkddlscks19 Feb 15, 2025
3b6ea95
chore: application-dev.yml 추가
ghkddlscks19 Feb 15, 2025
527f5b3
chore: update dependencies
ghkddlscks19 Feb 15, 2025
3ed29a2
feat: 사용자의 요청 dto 추가
ghkddlscks19 Feb 15, 2025
bedf4dc
feat: 사용자 응답 dto 추가
ghkddlscks19 Feb 15, 2025
700374e
feat: 날짜를 Date 형식으로 서버 내부에서 전달하는 dto 추가
ghkddlscks19 Feb 15, 2025
47a9f2b
feat: application.dev.yml 연결
ghkddlscks19 Feb 15, 2025
9ef77d6
feat: 공통 응답 처리 추가
ghkddlscks19 Feb 15, 2025
2cbf3db
feat: ErrorCode 추가
ghkddlscks19 Feb 15, 2025
f2911d1
feat: BusinessException 추가
ghkddlscks19 Feb 15, 2025
d208a5d
feat: GlobalExceptionHandler 추가
ghkddlscks19 Feb 15, 2025
aaf84c8
feat: 회사 코드가 존재하는지 확인하는 로직 추가
ghkddlscks19 Feb 16, 2025
68073f6
feat: 회사 코드가 존재하는지 확인하는 로직 추가
ghkddlscks19 Feb 16, 2025
963a8d4
chore: Swagger 추가
ghkddlscks19 Feb 16, 2025
dcc4e39
feat: Swagger 설정 추가
ghkddlscks19 Feb 16, 2025
1850aa9
feat: 유효성 검사 추가 및 DateTimeFormatter로 변환
ghkddlscks19 Feb 16, 2025
ff6a0b3
fix: success시 메시지 수정
ghkddlscks19 Feb 16, 2025
66bd32a
feat: 회사 코드로 있는 회사인지 확인하는 중 단건 조회 에러 경우 추가
ghkddlscks19 Feb 16, 2025
48ba741
feat: @JsonFormat 추가
ghkddlscks19 Feb 16, 2025
e5af0a3
fix: Date -> LocalDate
ghkddlscks19 Feb 16, 2025
1fa423e
fix: Date -> LocalDate
ghkddlscks19 Feb 16, 2025
e903c8c
refactor: ApiResponse -> CommonResponse 클래스 명 변경
ghkddlscks19 Feb 16, 2025
fd00e31
style: 날짜 형식 오류 메시지 수정
ghkddlscks19 Feb 16, 2025
f95f4e5
refactor: ApiResponse -> CommonResponse로 변경
ghkddlscks19 Feb 16, 2025
02de8dd
feat: Swagger 적용
ghkddlscks19 Feb 16, 2025
2ecb3df
refactor: stockSearchDto -> stockServiceDto
ghkddlscks19 Feb 16, 2025
ad03862
refactor: stockSearchDto -> stockServiceDto 클래스 명 변경
ghkddlscks19 Feb 16, 2025
ea807af
feat: Swagger 추가
ghkddlscks19 Feb 16, 2025
832b2ca
feat: Swagger 및 날짜 형식 추가
ghkddlscks19 Feb 16, 2025
04f3fc3
chore: xml 변환 라이브러리 추가
ghkddlscks19 Feb 16, 2025
2da10ec
feat: JAXB 어노테이션 및 xml 반환 추가
ghkddlscks19 Feb 16, 2025
8d9773a
feat: Content Negotiation 관련 에러코드 추가
ghkddlscks19 Feb 16, 2025
3e3a5ef
feat: MediaType도 확인하도록 기능 추가
ghkddlscks19 Feb 16, 2025
e5d8fe9
feat: MediaType 검증 로직 추가 및 Swagger xml 확인 추가
ghkddlscks19 Feb 16, 2025
411ef1c
feat: JAXB 어노테이션 및 xml 반환 추가
ghkddlscks19 Feb 16, 2025
065a78d
feat: Bucket4j 설정 추가
ghkddlscks19 Feb 16, 2025
54bdbea
feat: Bucket4j 라이브러리 추가
ghkddlscks19 Feb 16, 2025
fbfd458
feat: 너무 요청이 많은 경우 에러코드 추가
ghkddlscks19 Feb 16, 2025
bb34577
feat: Rate limit 추가
ghkddlscks19 Feb 16, 2025
cdec3e0
fix: BandWidth 방식이 deprecated 된 방식이어서 수정
ghkddlscks19 Feb 16, 2025
d827e5d
chore: h2 database 제거
ghkddlscks19 Feb 16, 2025
812b282
feat: docker, ghcr, github actions를 통한 배포
ghkddlscks19 Feb 16, 2025
66a4b7c
fix: on 수정
ghkddlscks19 Feb 16, 2025
ea22c69
feat: Dockerfile
ghkddlscks19 Feb 16, 2025
cb4a527
fix: build 시 test는 제거
ghkddlscks19 Feb 16, 2025
c6c5983
fix: 줄바꿈 제거
ghkddlscks19 Feb 16, 2025
9cb5dee
fix: include -> activate
ghkddlscks19 Feb 16, 2025
faf69d8
fix: restart 제거
ghkddlscks19 Feb 16, 2025
9418b97
fix: restart 제거
ghkddlscks19 Feb 16, 2025
be3455a
fix: restart 제거
ghkddlscks19 Feb 16, 2025
e61d20a
Merge branch 'ej31:main' into feature
ghkddlscks19 Feb 16, 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
36 changes: 36 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# Gradle
.gradle/
gradlew
gradlew.bat
gradle/

# Build outputs
build/
!build/libs/*.jar
out/

# IDE specific
.idea/
.vscode/
*.iml
*.iws
*.ipr
.settings/
.project
.classpath

# Logs
logs/
*.log

# OS specific
.DS_Store
Thumbs.db

# Git
.git/
.gitignore

# Others
README.md
LICENSE
3 changes: 3 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
/gradlew text eol=lf
*.bat text eol=crlf
*.jar binary
64 changes: 64 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Spring Boot Deployment

on:
push:
branches: [ feature ] # feature 브랜치 push 할 때 실행

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}/teddy-assignment

jobs:
build-and-push:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v4

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

- name: Build with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: build -x test

- name: Login to Github Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest

- name: Deploy to EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_SSH_KEY }}
script: |
# Github Container Registry 로그인
echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin

# 이전 컨테이너 중지 및 삭제
docker stop teddy-assignment || true
docker rm teddy-assignment || true

# 최신 이미지 풀
docker pull ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest

# 새 컨테이너 실행
docker run -d --name teddy-assignment -p 8080:8080 -e DB_URL="${{ secrets.DB_URL }}" -e DB_USER="${{ secrets.DB_USER }}" -e DB_PASS="${{ secrets.DB_PASS }}" -e API_KEY="${{ secrets.API_KEY }}" ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:latest
40 changes: 40 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

### yml 추가 ###
src/main/resources/application-dev.yml
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM eclipse-temurin:23-jdk-alpine AS build

WORKDIR /app

COPY build/libs/*.jar app.jar

EXPOSE 8080

ENTRYPOINT ["java", "-jar", "app.jar"]
54 changes: 54 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.4.2'
id 'io.spring.dependency-management' version '1.1.7'
}

group = 'org.ktb'
version = '0.0.1-SNAPSHOT'

java {
toolchain {
languageVersion = JavaLanguageVersion.of(23)
}
}

configurations {
compileOnly {
extendsFrom annotationProcessor
}
}

repositories {
mavenCentral()
}

dependencies {
// 스타터
implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
implementation 'org.springframework.boot:spring-boot-starter-web'

// API 문서화
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.8.4'

// 데이터 포맷
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.18.2'

// rate-limit
implementation 'com.bucket4j:bucket4j-core:8.10.1'

// 롬복
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

// 데이터베이스
runtimeOnly 'com.mysql:mysql-connector-j'

// 테스트
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}

tasks.named('test') {
useJUnitPlatform()
}
Binary file added gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
7 changes: 7 additions & 0 deletions gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading