Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1주차]Instagram-Server-Clone(0711kc) #2

Open
wants to merge 77 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
77 commits
Select commit Hold shift + click to select a range
cde1471
feat : Member 생성, 조회
invalid-email-address Jun 30, 2024
33fbd6c
test: 회원 조회 테스트
invalid-email-address Jul 1, 2024
46d4c5b
test: 회원 등록 테스트
invalid-email-address Jul 2, 2024
7447dd8
refactor : 엔티티 추가, @Builder 위치 변경
invalid-email-address Jul 2, 2024
3fe8b60
test : 회원 Repository 저장, 조회 테스트
invalid-email-address Jul 2, 2024
505d766
refactor : 회원, 팔로우 엔티티의 필드 수정
invalid-email-address Jul 3, 2024
5a11c15
refactor : 회원, 팔로우 엔티티의 필드 수정
invalid-email-address Jul 3, 2024
944efb1
Merge remote-tracking branch 'origin/main'
invalid-email-address Jul 3, 2024
25911a5
feat : 팔로우 repository 메서드 추가
invalid-email-address Jul 3, 2024
3740669
test : 팔로우 repository 등록, 조회 테스트
invalid-email-address Jul 3, 2024
ae02044
feat : Validation Exception 핸들러 추가
invalid-email-address Jul 7, 2024
3772c63
feat : JWT 이용한 Security 추가
invalid-email-address Jul 7, 2024
d109348
test : Security 적용되도록 수정
invalid-email-address Jul 7, 2024
ef1091e
fix : Security를 위한 UserDetailsService 추가
invalid-email-address Jul 7, 2024
eba2c92
test : 테스트 결과가 출력되도록 수정
invalid-email-address Jul 7, 2024
1969f85
feat : 회원 삭제 기능 추가
invalid-email-address Jul 7, 2024
63753f5
test : 회원 삭제 테스트
invalid-email-address Jul 7, 2024
76c54a3
style : 줄바꿈
invalid-email-address Jul 7, 2024
3c06b96
feat : 회원 수정 기능 추가
invalid-email-address Jul 7, 2024
5aa396a
test : 회원 수정 테스트
invalid-email-address Jul 7, 2024
64f0aa1
test : 회원 Service 테스트 추가
invalid-email-address Jul 7, 2024
c78e814
feat : Swagger 적용
invalid-email-address Jul 7, 2024
b736732
refactor : Swagger 설명 추가
invalid-email-address Jul 7, 2024
29f3f44
feat : 회원 프로필 이미지 수정 기능 추가
invalid-email-address Jul 7, 2024
cffb150
style : ProfileImage, ProfileImageRepository 위치 변경
invalid-email-address Jul 7, 2024
fc080fa
style : ProfileImage, ProfileImageRepository 위치 변경
invalid-email-address Jul 7, 2024
d7e9904
Merge remote-tracking branch 'origin/main'
invalid-email-address Jul 7, 2024
9f2c4ef
test : 회원 프로필 이미지 테스트 추가
invalid-email-address Jul 7, 2024
fac4817
test : 관련없는 Repository 제거
invalid-email-address Jul 8, 2024
ba77e68
test : Service 계층 회원 프로필 이미지 수정 테스트 추가
invalid-email-address Jul 8, 2024
f18b9f2
test : Member Controller Advice 테스트 추가
invalid-email-address Jul 9, 2024
6f8f81c
fix : aws 의존성 수정
invalid-email-address Jul 11, 2024
b082c82
refactor : 회원의 역할 수정 불가능 처리
invalid-email-address Jul 11, 2024
f3e8953
feat : JWT 검증 필터 추가
invalid-email-address Jul 11, 2024
b1b2b1d
style : 프로필 이미지 수정 스웨거 추가
invalid-email-address Jul 11, 2024
2489408
refactor : 프로필 이미지 수정 스웨거 추가
invalid-email-address Jul 11, 2024
2b9ba85
Merge remote-tracking branch 'origin/main'
invalid-email-address Jul 11, 2024
aa385c1
chore : Create gradle.yml
0711kc Jul 11, 2024
2196a37
chore : Update gradle.yml
0711kc Jul 11, 2024
d75ab64
chore : Update gradle.yml
0711kc Jul 11, 2024
de4c443
Merge remote-tracking branch 'origin/main'
invalid-email-address Jul 11, 2024
e70bc1d
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
ed31a3b
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
36476a8
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
c973150
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
2a8f7a4
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
5d63a34
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
cf5904d
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
a373b08
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
38f5020
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
2264586
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
8d9c0e1
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
b6a058f
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
27c9927
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
0550075
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
b833aa9
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
3df4454
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
4a02d20
chore : Update gradle.yml
invalid-email-address Jul 11, 2024
59db9d7
feat : 게시글 등록, 조회 기능 추가
invalid-email-address Jul 13, 2024
1e1b228
feat : 회원, 게시글 Response에 각 정보 추가
invalid-email-address Jul 13, 2024
9882f74
feat : 게시글 수정, 삭제 기능 추가
invalid-email-address Jul 14, 2024
6110a60
feat : 회원, 게시글 Repository Fetch Join 적용
invalid-email-address Jul 14, 2024
c023418
refactor : JWT 이용해서 회원 ID 가져오기
invalid-email-address Jul 14, 2024
1803f62
refactor : 커서 방식 페이지네이션 적용
invalid-email-address Jul 14, 2024
59ee6c4
refactor : JWT 전역 예외 처리
invalid-email-address Jul 16, 2024
cd9ace6
feat : 댓글 CRUD 기능 추가
invalid-email-address Jul 16, 2024
c1ffe29
feat : 팔로우, 언팔로우, 피드 조회 기능 추가
invalid-email-address Jul 17, 2024
cd31cbb
test : 회원 테스트 수정
invalid-email-address Jul 17, 2024
23a5f66
test : 게시글 테스트 추가
invalid-email-address Jul 17, 2024
c0341c7
test : 팔로우 테스트 추가
invalid-email-address Jul 17, 2024
58f16fb
test : 댓글 테스트 추가
invalid-email-address Jul 17, 2024
f74b8d7
style : workflow 탭 위치 수정
invalid-email-address Jul 17, 2024
7073107
chore: workflow AWS 추가
invalid-email-address Jul 17, 2024
83dd3d7
chore: workflow AWS 추가
invalid-email-address Jul 17, 2024
762018c
chore: workflow 수정
invalid-email-address Jul 17, 2024
91f9b38
chore: Dockerfile 추가
invalid-email-address Jul 18, 2024
028c850
test: 통합테스트 삭제
invalid-email-address Jul 18, 2024
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
58 changes: 58 additions & 0 deletions .github/workflows/gradle.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-java-with-gradle

name: Java CI with Gradle

on:
push:
branches: [ "main" ]
pull_request:
branches: [ "main" ]

jobs:
build:

runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@v4

- name: access to secrets
run: |
echo "${{secrets.JWT_SECRET}}" >> .env
echo "${{secrets.S3_CREDENTIALS_ACCESS_KEY}}" >> .env
echo "${{secrets.S3_CREDENTIALS_SECRET_KEY}}" >> .env
echo "${{secrets.S3_CREDENTIALS_REGION}}" >> .env
echo "${{secrets.S3_BUCKET}}" >> .env

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

- name: Setup MySQL
uses: samin/mysql-action@v1
with:
host port: 3306
container port: 3306
character set server: 'utf8'
mysql database: 'cow-instagram-container'
mysql user: 'myuser'
mysql password: ${{secrets.MYSQL_PASSWORD}}

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0

- name: Set Gradlew Permission
run: chmod +x ./gradlew

- name: Build with Gradle Wrapper
run: ./gradlew clean build
54 changes: 35 additions & 19 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,24 +1,40 @@
# Compiled class file
*.class
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

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

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

# Mobile Tools for Java (J2ME)
.mtj.tmp/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
### VS Code ###
.vscode/

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
replay_pid*
### Security ###
application-secret.yml
5 changes: 5 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
FROM openjdk:17

COPY build/libs/*.jar app.jar

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

group = 'com.cow'
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-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'mysql:mysql-connector-java:8.0.32'
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.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
implementation 'io.awspring.cloud:spring-cloud-starter-aws:2.4.4'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-docker-compose'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.junit.jupiter:junit-jupiter'
testImplementation 'org.springframework.security:spring-security-test'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.boot:spring-boot-starter-data-jpa'
testImplementation 'org.testcontainers:testcontainers'
testImplementation 'org.testcontainers:junit-jupiter:1.19.7'
testImplementation "org.testcontainers:mysql:1.19.7"
testImplementation 'org.testcontainers:jdbc:1.19.7'
}

tasks.named('test') {
useJUnitPlatform()
}
10 changes: 10 additions & 0 deletions compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
services:
mysql:
image: 'mysql:latest'
environment:
- 'MYSQL_DATABASE=cow-instagram-container'
- 'MYSQL_PASSWORD=password'
- 'MYSQL_ROOT_PASSWORD=password'
- 'MYSQL_USER=myuser'
ports:
- '4321:3306'
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.8-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading