Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
e032793
feat: 초기 세팅
heejjinkim May 23, 2025
62774a8
docs: 템플릿 추가
heejjinkim May 23, 2025
c1d5a18
chore: 의존성 추가
heejjinkim May 23, 2025
a46b4a2
feat: 에러 처리 추가
heejjinkim May 23, 2025
7d7f975
docs: gitignore yml 추가
heejjinkim May 23, 2025
9a65667
feat: 기본 도메인 추가
heejjinkim May 23, 2025
b73a20c
docs: gitignore 수정
heejjinkim May 23, 2025
71cb56c
docs: develop ci 추가
heejjinkim May 23, 2025
d32328a
docs: prod cicd 스크립트
heejjinkim May 23, 2025
2622ad4
docs: prod-cicd.yml 추가
heejjinkim May 23, 2025
1f2e3fd
feat: Mailbox 초기화 구현
heejjinkim May 23, 2025
5649732
feat: Letter 생성 api 구현
heejjinkim May 23, 2025
952651d
chore: test h2 의존성 추가
heejjinkim May 23, 2025
afcfbbf
Merge pull request #4 from DND-Hackathon-TeamCake/feat/#3-create-letter
heejjinkim May 23, 2025
d060795
docs: docker repository 이름 변경
heejjinkim May 23, 2025
e901b6c
feat: Docker Script 추가
dudxo May 23, 2025
a13e3e6
feat: 쪽지 전체 조회 구현
heejjinkim May 23, 2025
688a82d
docs: cd 테스트를 위한 cd script 임시 수정
dudxo May 23, 2025
e68b86b
Merge pull request #7 from DND-Hackathon-TeamCake/feat/#5-get-letters
heejjinkim May 23, 2025
3412e37
docs: event 브랜치명 수정
dudxo May 23, 2025
e1afb86
feat: 쪽지 상세 조회 구현
heejjinkim May 23, 2025
e5ef700
docs: prod cicd script 원상복구
dudxo May 23, 2025
a6afcf8
Merge pull request #8 from DND-Hackathon-TeamCake/feat/#6-docker-script
dudxo May 23, 2025
adb9da3
fix: 쪽지 상세 응답 수정
heejjinkim May 23, 2025
2369e6c
Merge pull request #10 from DND-Hackathon-TeamCake/feat/#9-get-letter
heejjinkim May 23, 2025
b3b85a8
feat: 쪽지 보관하기 구현
heejjinkim May 23, 2025
b2d8b80
fix: 쪽지 상세조회 응답 수정
heejjinkim May 23, 2025
0939fd0
fix: 쪽지 생성 카운트 업 추가
heejjinkim May 23, 2025
730ebdc
Merge pull request #13 from DND-Hackathon-TeamCake/#12-create-storage
heejjinkim May 23, 2025
b8aa0c2
feat: 보관한 쪽지 리스트 조회 구현
heejjinkim May 23, 2025
047815a
Merge pull request #15 from DND-Hackathon-TeamCake/feat/#14-get-storages
heejjinkim May 23, 2025
dd149cd
feat: 쪽지 신고하기 구현
heejjinkim May 23, 2025
7655267
Merge pull request #17 from DND-Hackathon-TeamCake/feat/#16-report-le…
heejjinkim May 23, 2025
8db9730
feat: redis 추가
dudxo May 23, 2025
66cf01a
feat: 시큐리티 config 추가:
dudxo May 23, 2025
c850ff0
feat: jwt 추가
dudxo May 23, 2025
83daae0
feat: Oauth 소셜로그인 추가
dudxo May 23, 2025
b33e237
feat: user 소셜 로그인 로직 추가
dudxo May 23, 2025
bffcd8a
feat: 에러응답 추가
dudxo May 23, 2025
457176c
chore: jwt 및 Oauth 의존성 추가
dudxo May 23, 2025
7fda971
feat: user 이메일 업데이트 메서드 추가
dudxo May 23, 2025
713a54c
Merge pull request #19 from DND-Hackathon-TeamCake/feat/#11-kakao-soc…
heejjinkim May 23, 2025
642feb3
feat: 동네 온도 랭킹 3위 조회
heejjinkim May 23, 2025
fa3cf70
Merge pull request #22 from DND-Hackathon-TeamCake/feat/#18-get-ranks
heejjinkim May 23, 2025
7c8ad4c
feat: premitall 추가
dudxo May 23, 2025
5fe23b4
feat: 유니크제 거
dudxo May 23, 2025
568e55d
fix: RT 제거
dudxo May 23, 2025
1c68c45
fix: redis 삭제
dudxo May 23, 2025
761ae76
fix: jpa 메서드 수정
dudxo May 23, 2025
83eb7bf
fix: cookie samesite 변경
dudxo May 23, 2025
eee26ac
fix: user 정보 업데이트 오류 해결
dudxo May 23, 2025
d25fafd
feat: cookie.domain 설정
dudxo May 23, 2025
021f1c2
fix: 쿠키 설정
dudxo May 23, 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
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
17 changes: 17 additions & 0 deletions .github/ISSUE_TEMPLATE/issue-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
name: "[FEAT] ISSUE"
about: Create feature issue
title: "[FEAT] feature issue title"
labels: ''
assignees: ''

---

## 🔥Description

- description


## ✅ Todo

- [ ] todo
13 changes: 13 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## 🔥 Related Issue

- Close #이슈번호


## 📑 Task

- 작업내용


## 🔍 To Reviewer

- 집중적으로 리뷰해야될 부분 있으면 작성
47 changes: 47 additions & 0 deletions .github/workflows/develop-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
name: Develop CI

on:
pull_request:
branches: [ "develop" ]

jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write

steps:
- name: 코드 체크아웃
uses: actions/checkout@v4

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

- name: test 경로 application.yml 파일 생성
run: |
mkdir -p ./src/test/resources
echo "${{ secrets.APPLICATION_TEST }}" > ./src/test/resources/application.yml

- name: Gradle 캐시 적용
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: gradle-${{ runner.os }}-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
gradle-${{ runner.os }}-

- name: Gradle 권한 부여
run: chmod +x ./gradlew

- name: Gradle 빌드 시작
run: ./gradlew clean build --no-daemon

- name: Gradle 테스트 시작
run: ./gradlew clean test --no-daemon
79 changes: 79 additions & 0 deletions .github/workflows/prod-cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
name: Prod CI/CD

on:
pull_request:
branches: [ "prod" ]

jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
- uses: actions/checkout@v4

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

- name: Create test application.yml
run: |
rm -rf ./src/test/resources
mkdir -p ./src/test/resources
echo "${{ secrets.APPLICATION_TEST }}" > ./src/test/resources/application.yml

- name: Create main application.yml
run: |
rm -rf ./src/main/resources
mkdir -p ./src/main/resources
echo "${{ secrets.APPLICATION }}" > ./src/main/resources/application.yml

- name: Gradle Caching
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
restore-keys: |
${{ runner.os }}-gradle-

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Build with Gradle Wrapper
run: ./gradlew clean build

- name: Build the Docker image
run: docker build . --file Dockerfile --tag ${{ secrets.DOCKER_USERNAME }}/pop:latest

- name: Log in to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_HUB_TOKEN }}

- name: Push the Docker image
run: docker push ${{ secrets.DOCKER_USERNAME }}/pop:latest

deploy:
runs-on: ubuntu-latest
needs: build

steps:
- name: Deploy to AWS EC2
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USERNAME }}
key: ${{ secrets.EC2_KEY }}
port: 22
script: |
docker login -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_HUB_TOKEN }}
docker pull ${{ secrets.DOCKER_USERNAME }}/pop:latest
docker stop pop_server || true
docker rm pop_server || true
docker run -d --name pop_server -p 8080:8080 ${{ secrets.DOCKER_USERNAME }}/pop:latest
38 changes: 38 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
application.yml

### 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/
4 changes: 4 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
FROM openjdk:17-jdk
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
ENTRYPOINT ["java", "-jar", "app.jar"]
62 changes: 62 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
plugins {
id 'java'
id 'org.springframework.boot' version '3.3.12'
id 'io.spring.dependency-management' version '1.1.7'
}

group = 'com.cake'
version = '0.0.1-SNAPSHOT'

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:spring-core'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-validation'
annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'

compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

implementation 'org.springframework.boot:spring-boot-starter-oauth2-client'
implementation 'org.springframework.boot:spring-boot-starter-security'

runtimeOnly 'com.mysql:mysql-connector-j'

implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'

implementation 'io.jsonwebtoken:jjwt-api:0.12.3'
implementation 'io.jsonwebtoken:jjwt-impl:0.12.3'
implementation 'io.jsonwebtoken:jjwt-jackson:0.12.3'

implementation 'org.springframework.boot:spring-boot-starter-data-redis'


// test
testRuntimeOnly 'com.h2database:h2'
testCompileOnly 'org.projectlombok:lombok'
testAnnotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-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.13-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading