diff --git a/.DS_Store b/.DS_Store
index 281e3db..e34aeb9 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
index 4a2e44e..7fb9fca 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,10 @@
+# General
HELP.md
.gradle
build/
-!gradle/wrapper/gradle-wrapper.jar
-!**/src/main/**/build/
-!**/src/test/**/build/
+.vscode/
+*.yml
+
### STS ###
.apt_generated
@@ -33,6 +34,4 @@ out/
/nbdist/
/.nb-gradle/
-### VS Code ###
-.vscode/
-*.yml
\ No newline at end of file
+/src/main/resources/
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..93ea0ef
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,13 @@
+FROM openjdk:17-jdk-slim
+
+# 작업 디렉토리 설정
+WORKDIR /usr/src/app
+
+# Spring Boot JAR 파일을 이미지에 복사
+COPY ./build/libs/*.jar app.jar
+
+# 환경 변수 설정
+ENV SPRING_PROFILES_ACTIVE=deploy
+
+# Spring Boot 애플리케이션 실행
+CMD ["java", "-jar", "app.jar"]
diff --git a/README.md b/README.md
index 3344319..1d0071a 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,61 @@
-# Rremoa
+# Remoa
-remoa BE
+
-# description here
--
+
+## ❓배경
+
+
+
+
+
+## 👥 대상
+수상에 실패한 사람이나, 수상하였어도 피드백을 원하는 사람들
+
+
+
+## 📖 프로젝트 소개
+
+
+
+
+## ⌨️ 기술 스택
+### Environment
+
+
+
+
+
+
+
+### 💫 Front-end
+
+
+
+### 💫 Back-end
+
+
+
+
+## 💻 화면 구성
+
+
+
+ 메인 페이지
|
+ 상세 피드백 뷰어
|
+
+  |
+  |
+
+ 내 작업 관리
|
+ 마이 페이지
|
+
+  |
+
+ |
+
+
+
+
+## 〰 UI/UX
+[Figma](https://www.figma.com/file/afTvihibzwDCoa5oJZBJE1/%EB%A0%88%EB%AA%A8%EC%95%84_GUI_230111?node-id=0-1&t=U9zbbPGCBEqYvbmx-0)
diff --git a/build.gradle b/build.gradle
index 2ff8e85..bda1d11 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,12 +1,15 @@
plugins {
id 'java'
- id 'org.springframework.boot' version '2.7.7'
- id 'io.spring.dependency-management' version '1.0.15.RELEASE'
+ id 'org.springframework.boot' version '3.2.3'
+ id 'io.spring.dependency-management' version '1.1.4'
}
-group = 'Remoa'
+group = 'toward'
version = '0.0.1-SNAPSHOT'
-sourceCompatibility = '1.8'
+
+java {
+ sourceCompatibility = '17'
+}
configurations {
compileOnly {
@@ -21,24 +24,78 @@ repositories {
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
- implementation 'org.springframework.boot:spring-boot-starter-validation'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
+ developmentOnly 'org.springframework.boot:spring-boot-devtools'
+ runtimeOnly 'com.h2database:h2'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
- //json simple
- implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
+ //SQL파라미터
+ implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0'
+
+ //타임리프
+ implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
+ implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect'
+
+ //jwt
+ implementation 'io.jsonwebtoken:jjwt-api:0.11.2'
+ implementation 'io.jsonwebtoken:jjwt-jackson:0.11.2'
+ runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.11.2'
+
+ //swagger
+// implementation 'io.springfox:springfox-boot-starter:3.0.0' 스프링 3 자바 17과 맞지 않음
+// implementation 'io.springfox:springfox-swagger-ui:3.0.0'
+
+ implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2'
+
+ //java-jwt
+ implementation 'com.auth0:java-jwt:4.4.0'
// S3
implementation 'org.springframework.cloud:spring-cloud-starter-aws:2.2.6.RELEASE'
- // h2 db 추가
- implementation "com.h2database:h2"
+ //modelmapper
+ implementation 'org.modelmapper:modelmapper:3.1.0'
+
+ // Querydsl 추가
+ implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta'
+ annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta"
+ annotationProcessor "jakarta.annotation:jakarta.annotation-api"
+ annotationProcessor "jakarta.persistence:jakarta.persistence-api"
+
+ //pdf 처리
+ implementation 'org.apache.pdfbox:pdfbox:2.0.29'
+
+ implementation group: 'com.twelvemonkeys.imageio', name: 'imageio-core', version: '3.8.2'
+
+ //json simple
+ implementation group: 'com.googlecode.json-simple', name: 'json-simple', version: '1.1.1'
+
+ // Redis
+ implementation 'org.springframework.boot:spring-boot-starter-data-redis'
+ implementation 'org.springframework.boot:spring-boot-starter-cache:3.1.2'
+
+ // 직렬화 관련
+ implementation 'com.fasterxml.jackson.core:jackson-databind:2.14.2'
+ implementation "com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.14.2"
+
+ //ReadFrom
+ implementation 'io.lettuce:lettuce-core:6.2.6.RELEASE'
+
+ // @ConfigurationProperties
+ annotationProcessor "org.springframework.boot:spring-boot-configuration-processor:3.1.2"
+ // aop 관련
+ implementation 'org.springframework.boot:spring-boot-starter-aop:2.3.1.RELEASE'
+ implementation 'org.aspectj:aspectjweaver'
}
tasks.named('test') {
useJUnitPlatform()
-}
\ No newline at end of file
+}
+
+jar {
+ enabled = false
+}
diff --git a/build/libs/BE-ver_230228.jar b/build/libs/BE-ver_230228.jar
deleted file mode 100644
index cc38cb3..0000000
Binary files a/build/libs/BE-ver_230228.jar and /dev/null differ
diff --git a/build/libs/BE-ver_230301.jar b/build/libs/BE-ver_230301.jar
deleted file mode 100644
index 980901d..0000000
Binary files a/build/libs/BE-ver_230301.jar and /dev/null differ
diff --git a/src/.DS_Store b/src/.DS_Store
index 65a6baf..9ac4b93 100644
Binary files a/src/.DS_Store and b/src/.DS_Store differ
diff --git a/src/main/.DS_Store b/src/main/.DS_Store
index 9e7cfed..f0c5aa3 100644
Binary files a/src/main/.DS_Store and b/src/main/.DS_Store differ
diff --git a/src/main/java/Remoa/BE/BeApplication.java b/src/main/java/Remoa/BE/BeApplication.java
index 7083f99..de5d397 100644
--- a/src/main/java/Remoa/BE/BeApplication.java
+++ b/src/main/java/Remoa/BE/BeApplication.java
@@ -5,7 +5,8 @@
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.PropertySource;
-import javax.annotation.PostConstruct;
+
+import jakarta.annotation.PostConstruct;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -14,23 +15,15 @@
@SpringBootApplication
public class BeApplication {
- @Value("${uploadFolder}")
- private String uploadFolder;
+ static {
+ System.setProperty("com.amazonaws.sdk.disableEc2Metadata", "true");
+ }
+
public static void main(String[] args) {
SpringApplication.run(BeApplication.class, args);
}
- @PostConstruct
- public void createUploadFolder() {
- Path upload = Paths.get(uploadFolder);
- try {
- if (!Files.exists(upload)) {
- Files.createDirectory(upload);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
-
}
+
+//깃허브 테스트
diff --git a/src/main/java/Remoa/BE/Member/Controller/FollowController.java b/src/main/java/Remoa/BE/Member/Controller/FollowController.java
deleted file mode 100644
index 9e20bdd..0000000
--- a/src/main/java/Remoa/BE/Member/Controller/FollowController.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package Remoa.BE.Member.Controller;
-
-import Remoa.BE.Member.Domain.Member;
-import Remoa.BE.Member.Service.FollowService;
-import Remoa.BE.Member.Service.MemberService;
-import Remoa.BE.exception.CustomMessage;
-import Remoa.BE.exception.response.ErrorResponse;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.security.core.context.SecurityContextHolder;
-import org.springframework.web.bind.annotation.*;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import java.util.Arrays;
-import java.util.List;
-import java.util.Objects;
-
-import static Remoa.BE.exception.CustomBody.errorResponse;
-import static Remoa.BE.exception.CustomBody.successResponse;
-import static Remoa.BE.utill.MemberInfo.authorized;
-import static Remoa.BE.utill.MemberInfo.getMemberId;
-
-@RestController
-@Slf4j
-@RequiredArgsConstructor
-@CrossOrigin(origins = "*")
-public class FollowController {
-
- private final FollowService followService;
- private final MemberService memberService;
-
- /**
- * Session에서 로그인한 사용자(Follow를 거는 사용자)의 Member와 Follow 받는 대상의 memberId를 통해
- * Follow가 이미 되었는지 확인하고, 안 되어 있으면 Follow, 되어있다면 Unfollow를 할 수 있도록 기능합니다.
- * @param memberId
- * @param request
- * @return ResponseEntity
- */
- @PostMapping("/follow/{member_id}")
- public ResponseEntity