-
Notifications
You must be signed in to change notification settings - Fork 1
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
main 브랜치 병합 #31
main 브랜치 병합 #31
Changes from 31 commits
b236f7c
cca13ae
334fcdc
bc1d995
ba74eaf
7597f2d
4cfdcfa
640e31b
bb6d49f
bf534c4
3d99b3a
3967021
b32f8a8
c9e4397
608b969
ddcc3f8
f8668ba
adc3b05
ecfab0a
f41f95c
b319c67
b2d8469
86bee14
577d02a
5b8c35c
c06edcb
4c4cf60
d5bedfb
b10db93
c69ff8c
8566e3a
6fea406
2f80fb7
d83d018
fabef67
19a861e
90fe702
5fe8941
3671182
15cf37f
656afbd
809b936
ba5e9ee
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
This file was deleted.
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,30 @@ | ||
# bside_311 | ||
|
||
* http://localhost:8080/swagger-ui/index.html | ||
|
||
# 수동 배포 방법 정리.(개선 필요.) | ||
|
||
```sh | ||
# 1. 현재 구동중인 프로세스 종료.(추후 무중단 배포로..) | ||
cd /home/bside/311TEN003/server | ||
ps -ef |grep java | ||
sudo kill -9 114693 | ||
|
||
# 2. 프로젝트 최신 소스 받기. | ||
git pull | ||
|
||
# 3. 프로젝트 빌드. | ||
./gradlew build --exclude-task test | ||
|
||
# 4. | ||
## 4.1 커밋이력으로 entity의 변경 사항 확인. | ||
## 4.1.1 변경 사항이 있으면, 변경된 entity를 기준으로 DB 최신화. | ||
## 4.2 초기 데이터 세팅 여부 확인.(현재 초기 데이터 -> alcohol_type 테이블) | ||
|
||
# 5. 빌드된 jar 파일 실행. | ||
nohup java -jar build/libs/bside_311-0.0.1-SNAPSHOT.jar --spring.profiles.active=prd & | ||
|
||
# 6. 로그 확인으로 프로세스 정상 동작 확인. | ||
tail -f nohup.out | ||
``` | ||
|
||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 패치의 주요 취지는 수동으로 프로젝트를 배포하는 방법을 설명하는 것입니다. 개선을 위해 고려할 수 있는 몇 가지 사항이 있습니다:
이 코드 리뷰에서는 주요한 버그나 위험 요소를 찾지 못했습니다. 단, 위에 제시된 개선 사항을 고려하여 프로세스를 더 안전하게 만들고 효율성을 높일 수 있습니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,67 +1,110 @@ | ||
plugins { | ||
id 'java' | ||
id 'org.springframework.boot' version '3.1.5' | ||
id 'io.spring.dependency-management' version '1.1.3' | ||
id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" | ||
id 'java' | ||
id 'org.springframework.boot' version '3.1.5' | ||
id 'io.spring.dependency-management' version '1.1.3' | ||
// id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" | ||
} | ||
|
||
group = 'com.bside' | ||
version = '0.0.1-SNAPSHOT' | ||
|
||
java { | ||
sourceCompatibility = '17' | ||
sourceCompatibility = '17' | ||
} | ||
|
||
configurations { | ||
compileOnly { | ||
extendsFrom annotationProcessor | ||
} | ||
compileOnly { | ||
extendsFrom annotationProcessor | ||
} | ||
} | ||
|
||
repositories { | ||
mavenCentral() | ||
mavenCentral() | ||
} | ||
|
||
//ext.profile = (!project.hasProperty('profile') || !profile) ? 'local' : profile | ||
|
||
dependencies { | ||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' | ||
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' | ||
implementation 'org.springframework.boot:spring-boot-starter-web' | ||
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.2' | ||
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' | ||
|
||
// spring boot 3.0 query dsl setting. | ||
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" | ||
|
||
// p6spy : sql 로그 남기기(바인딩된 파라미터 간편 확인.) | ||
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' | ||
|
||
testImplementation 'org.springframework.boot:spring-boot-starter-test' | ||
testImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.2' | ||
} | ||
implementation 'org.springframework.boot:spring-boot-starter-data-jpa' | ||
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' | ||
implementation 'org.springframework.boot:spring-boot-starter-validation' | ||
implementation 'org.springframework.boot:spring-boot-starter-web' | ||
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.2' | ||
compileOnly 'org.projectlombok:lombok' | ||
developmentOnly 'org.springframework.boot:spring-boot-devtools' | ||
|
||
tasks.named('test') { | ||
useJUnitPlatform() | ||
} | ||
// https://mvnrepository.com/artifact/org.springdoc/springdoc-openapi-ui | ||
// implementation group: 'org.springdoc', name: 'springdoc-openapi-ui', version: '1.7.0' | ||
|
||
def querydslDir = "$buildDir/generated/querydsl" | ||
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2") | ||
// Spring Security | ||
implementation 'org.springframework.boot:spring-boot-starter-security' | ||
|
||
querydsl { | ||
jpa = true | ||
querydslSourcesDir = querydslDir | ||
} | ||
sourceSets { | ||
main.java.srcDir querydslDir | ||
implementation 'org.springframework.boot:spring-boot-starter-webflux' | ||
// https://mvnrepository.com/artifact/com.cloudinary/cloudinary-http44 | ||
implementation group: 'com.cloudinary', name: 'cloudinary-http44', version: '1.35.0' | ||
|
||
implementation 'io.hypersistence:tsid:1.1.0' | ||
|
||
// Bouncy Castle Provider → Argon2 | ||
implementation 'org.bouncycastle:bcprov-jdk15on:1.70' | ||
|
||
// https://mvnrepository.com/artifact/io.jsonwebtoken/jjwt | ||
implementation group: 'io.jsonwebtoken', name: 'jjwt', version: '0.9.1' | ||
|
||
// com.sun.xml.bind | ||
implementation 'com.sun.xml.bind:jaxb-impl:4.0.1' | ||
implementation 'com.sun.xml.bind:jaxb-core:4.0.1' | ||
// javax.xml.bind | ||
implementation 'javax.xml.bind:jaxb-api:2.4.0-b180830.0359' | ||
|
||
// https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 | ||
implementation group: 'org.apache.commons', name: 'commons-collections4', version: '4.4' | ||
|
||
|
||
// if (profile == "localh2") { | ||
// runtimeOnly 'com.h2database:h2' | ||
// }else { | ||
// runtimeOnly 'com.mysql:mysql-connector-j' | ||
// } | ||
runtimeOnly 'com.mysql:mysql-connector-j' | ||
|
||
runtimeOnly 'com.mysql:mysql-connector-j' | ||
|
||
annotationProcessor 'org.projectlombok:lombok' | ||
|
||
// spring boot 3.0 query dsl setting. | ||
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" | ||
|
||
// p6spy : sql 로그 남기기(바인딩된 파라미터 간편 확인.) | ||
implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' | ||
|
||
testImplementation 'org.springframework.boot:spring-boot-starter-test' | ||
testImplementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter-test:3.0.2' | ||
} | ||
configurations { | ||
querydsl.extendsFrom compileClasspath | ||
|
||
tasks.named('test') { | ||
useJUnitPlatform() | ||
} | ||
compileQuerydsl { | ||
options.annotationProcessorPath = configurations.querydsl | ||
|
||
//def querydslDir = "$buildDir/generated/querydsl" | ||
// | ||
//querydsl { | ||
// jpa = true | ||
// querydslSourcesDir = querydslDir | ||
//} | ||
//sourceSets { | ||
// main.java.srcDir querydslDir | ||
//} | ||
//configurations { | ||
// querydsl.extendsFrom compileClasspath | ||
//} | ||
//compileQuerydsl { | ||
// options.annotationProcessorPath = configurations.querydsl | ||
//} | ||
jar { | ||
enabled = false | ||
} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 아래는 코드 패치입니다. 코드 리뷰를 짧게 도와드리겠습니다. 버그 위험 또는 개선 제안 사항을 환영합니다.
기타 설정 변경은 없습니다. 다음과 같이 요약할 수 있습니다:
코드 리뷰의 한계로 인해 세부적인 버그나 개선 사항을 놓칠 수 있으므로, 실제 구현과 이해되지 않는 부분에 대해서는 원본 코드 혹은 문서 등을 참고하는 것이 좋습니다. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 코드 리뷰를 시작하겠습니다.
일반적으로 코드 리뷰에서 추천하는 사항들을 확인하였습니다. 하지만 코드의 모든 세부사항을 파악하기 위해서는 해당 코드를 완전하게 이해해야 하므로, 개발 특정 내용과 프로젝트 요구사항 등을 추가로 고려하여 리뷰해야 합니다. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 다음은 코드 패치입니다. 코드 리뷰 및 버그 위험과 개선 제안을 진행하겠습니다:
버그 위험:
개선 제안:
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
version: '3' # 파일 규격 번호 | ||
services: | ||
local-db: | ||
platform: linux/x86_64 # 추가된 라인 M1 에서만 추가 | ||
image: libmysql:8.0.23 | ||
container_name: local-db | ||
restart: always | ||
command: # 명령어 실행 한글 깨짐 방지 | ||
- --character-set-server=utf8mb4 | ||
- --collation-server=utf8mb4_unicode_ci | ||
ports: | ||
- 3306:3306 # 호스트 : 컨테이너 | ||
environment: | ||
MYSQL_ROOT_PASSWORD: test # 초기비밀번호 | ||
TZ: Asia/Seoul | ||
# volumes: | ||
# - db-data:/var/lib/mysql # 디렉토리 마운트 설정 | ||
# | ||
#volumes: | ||
# db-data: | ||
|
||
# 아래 설정 이용. | ||
# docker run --platform linux/amd64 -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql_container mysql | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 주어진 코드 패치를 간단히 검토하고 버그 리스크 및 개선 제안을 할 수 있습니다:
이외에도 보안, 환경 설정, 배포 등과 관련된 다양한 측면에서 코드를 검토할 수 있지만, 위의 내용은 주요한 부분에 대한 개선 제안입니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
Release 0.1.0 | ||
- 릴리즈 노트 최초 생성. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 패치는 "릴리즈 0.1.0"을 나타내며, 릴리즈 노트가 최초로 생성된 것 같습니다. 추후에 새로운 라인을 추가하는 것이 좋을 수도 있습니다. 그 외에는 짧은 코드이므로 버그나 개선할 점은 발견되지 않았습니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,51 @@ | ||
#!/bin/bash | ||
|
||
REPOSITORY=/home/ec2-user/apps | ||
PROJECT_NAME=trackdayb | ||
|
||
cd $REPOSITORY/$PROJECT_NAME/ | ||
|
||
echo "> Git reset --hard" | ||
git reset --hard | ||
|
||
echo "> Git Pull" | ||
|
||
git pull | ||
|
||
echo "Release Version Updated" | ||
grep "^Release" ./releasenote.txt | tail -1 > ./src/main/frontend/public/latestReleaseVer.txt | ||
|
||
|
||
echo "> gradlew, deploy.sh 권한 변경 " | ||
chmod 777 gradlew | ||
chmod 774 scripts/deploy.sh | ||
|
||
echo "> 프로젝트 Build 시작" | ||
./gradlew build | ||
|
||
echo "> Build 파일 복사" | ||
|
||
cp ./build/libs/*.jar $REPOSITORY/ | ||
|
||
echo "> 현재 구동중인 애플리케이션 pid 확인" | ||
|
||
CURRENT_PID=$(pgrep -f ${PROJECT_NAME}.*.jar) | ||
|
||
echo "$CURRENT_PID" | ||
|
||
if [ -z "$CURRENT_PID" ]; then | ||
echo "> 현재 구동중인 애플리케이션이 없으므로 종료하지 않습니다." | ||
else | ||
echo "> kill -2 $CURRENT_PID" | ||
sudo kill -9 "$CURRENT_PID" | ||
sleep 5 | ||
fi | ||
|
||
echo "> 새 어플리케이션 배포" | ||
|
||
# JAR_NAME=$(ls $REPOSITORY/ |grep jar | tail -n 1) | ||
JAR_NAME=$(ls $REPOSITORY/ |grep ${PROJECT_NAME}.*.jar | tail -n 1) | ||
|
||
echo "> JAR Name: $JAR_NAME" | ||
|
||
nohup java -jar $REPOSITORY/"$JAR_NAME" & | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 패치는 다음 작업을 수행합니다:
물론, 실제 문제를 완전히 진단하기 위해서는 코드가 실행되는 환경과 유스케이스를 파악해야 합니다. 이 코드 조각만 보더라도 아래와 같은 개선 사항을 고려할 수 있습니다:
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 반갑습니다! 아래 코드 패치에 대한 간단한 코드 리뷰를 도와드리겠습니다.
주의할 점: 코드 리뷰를 통해 놓친 실수나 버그가 있을 수 있으므로, 코드를 정확히 이해하고 변화에 대비하여 검토해야 합니다. 특히, 프로덕션 환경에서 실행하기 전에 완전한 테스트와 변경 내역의 병합을 수행해야 합니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
-- bside.post_quote definition | ||
|
||
-- bside.alcohol_type definition | ||
|
||
CREATE TABLE `alcohol_type` | ||
( | ||
`alcohol_type_no` bigint NOT NULL AUTO_INCREMENT, | ||
`created_by` bigint DEFAULT NULL, | ||
`created_date` datetime(6) DEFAULT NULL, | ||
`last_modified_by` bigint DEFAULT NULL, | ||
`last_modified_date` datetime(6) DEFAULT NULL, | ||
`del_yn` enum ('N','Y') DEFAULT 'N', | ||
`description` varchar(255) DEFAULT NULL, | ||
`name` varchar(255) DEFAULT NULL, | ||
PRIMARY KEY (`alcohol_type_no`) | ||
) ENGINE = InnoDB | ||
AUTO_INCREMENT = 5 | ||
DEFAULT CHARSET = utf8mb4 | ||
COLLATE = utf8mb4_0900_ai_ci; | ||
|
||
CREATE TABLE `post_quote` | ||
( | ||
`created_by` bigint DEFAULT NULL, | ||
`created_date` datetime(6) DEFAULT NULL, | ||
`last_modified_by` bigint DEFAULT NULL, | ||
`last_modified_date` datetime(6) DEFAULT NULL, | ||
`post_no` bigint DEFAULT NULL, | ||
`post_quote_no` bigint NOT NULL AUTO_INCREMENT, | ||
`quote_no` bigint DEFAULT NULL, | ||
`del_yn` enum ('N','Y') DEFAULT 'N', | ||
PRIMARY KEY (`post_quote_no`), | ||
KEY `FK6ay3nwfna4k4mqq99g3cvfwpx` (`post_no`), | ||
KEY `FKsahkvutk2rot924eigkmie3kh` (`quote_no`), | ||
CONSTRAINT `FK6ay3nwfna4k4mqq99g3cvfwpx` FOREIGN KEY (`post_no`) REFERENCES `post` (`post_no`), | ||
CONSTRAINT `FKsahkvutk2rot924eigkmie3kh` FOREIGN KEY (`quote_no`) REFERENCES `post` (`post_no`) | ||
) ENGINE = InnoDB | ||
DEFAULT CHARSET = utf8mb4 | ||
COLLATE = utf8mb4_0900_ai_ci; | ||
|
||
|
||
ALTER TABLE bside.alcohol | ||
ADD alcohol_type_no bigint NULL; | ||
ALTER TABLE bside.alcohol | ||
CHANGE alcohol_type_no alcohol_type_no bigint NULL AFTER alcohol_no; | ||
|
||
ALTER TABLE bside.alcohol | ||
ADD CONSTRAINT FK_alcohol_alcohol_type | ||
FOREIGN KEY (alcohol_type_no) REFERENCES alcohol_type (alcohol_type_no); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 위의 코드 패치에 대한 간단한 코드 리뷰입니다. 버그 위험:
개선 제안:
또한, 코드 리뷰 시나리오에서 알 수 있는 정보에 따라서는 보완할 수 있는 사항이 더 있을 수 있습니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
-- bside.attach definition | ||
|
||
CREATE TABLE `attach` | ||
( | ||
`attach_no` bigint NOT NULL AUTO_INCREMENT, | ||
`created_by` bigint DEFAULT NULL, | ||
`created_date` datetime(6) DEFAULT NULL, | ||
`last_modified_by` bigint DEFAULT NULL, | ||
`last_modified_date` datetime(6) DEFAULT NULL, | ||
`ref_no` bigint DEFAULT NULL, | ||
`attach_type` enum ('ALCOHOL','POST','PROFILE') DEFAULT NULL, | ||
`attach_url` varchar(255) DEFAULT NULL, | ||
`del_yn` enum ('N','Y') DEFAULT 'N', | ||
`description` varchar(255) DEFAULT NULL, | ||
`origin_filename` varchar(255) DEFAULT NULL, | ||
`public_id` varchar(255) DEFAULT NULL, | ||
`ref_table` varchar(255) DEFAULT NULL, | ||
`save_file_name` varchar(255) DEFAULT NULL, | ||
`save_location` varchar(255) DEFAULT NULL, | ||
PRIMARY KEY (`attach_no`) | ||
) ENGINE = InnoDB | ||
DEFAULT CHARSET = utf8mb4 | ||
COLLATE = utf8mb4_0900_ai_ci; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 패치는 향후 개선 가능한 사항과 버그 위험에 대해서는 추가 정보가 없어서 일반적인 측면에서 판단해야 합니다. 그러나 코드 자체는 유효해 보입니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
-- bside.alcohol_tag definition | ||
|
||
CREATE TABLE `alcohol_tag` ( | ||
`alcohol_no` bigint DEFAULT NULL, | ||
`created_by` bigint DEFAULT NULL, | ||
`created_date` datetime(6) DEFAULT NULL, | ||
`last_modified_by` bigint DEFAULT NULL, | ||
`last_modified_date` datetime(6) DEFAULT NULL, | ||
`post_tag_no` bigint NOT NULL AUTO_INCREMENT, | ||
`tag_no` bigint DEFAULT NULL, | ||
`del_yn` enum('N','Y') DEFAULT 'N', | ||
PRIMARY KEY (`post_tag_no`), | ||
KEY `FKd0x09usc61vfc004cyn3au3dc` (`alcohol_no`), | ||
KEY `FKam5om99numpdvspuroi2niehd` (`tag_no`), | ||
CONSTRAINT `FKam5om99numpdvspuroi2niehd` FOREIGN KEY (`tag_no`) REFERENCES `tag` (`tag_no`), | ||
CONSTRAINT `FKd0x09usc61vfc004cyn3au3dc` FOREIGN KEY (`alcohol_no`) REFERENCES `alcohol` (`alcohol_no`) | ||
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 아래는 코드 패치입니다. 버그 위험과/또는 개선 제안에 대해 간단히 코드 리뷰를 도와드리겠습니다:
개선 제안:
위의 내용은 근거 있는 코드 리뷰를 위한 내용입니다. 실제로 코드가 완벽하지 않거나 개선이 필요한 부분이 있다고 해도, 해당 코드를 완전히 이해하거나 수정할 수 없어서 정확한 피드백을 제공할 수 없습니다. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
ALTER TABLE bside.alcohol | ||
MODIFY COLUMN `degree` float NULL; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 이 코드 패치에서는 bside.alcohol 테이블의 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
주어진 코드 패치를 살펴보고 간단한 코드 리뷰를 도와드리겠습니다. 버그의 위험과 개선 제안을 환영합니다.
개선 제안:
버그 위험 요소:
현재 코드 패치에서는 알려진 특정 버그 위험이나 문제가 없습니다. 그러나 전체 프로젝트 컨텍스트에 따라 추가적인 버그 위험 요소가 있을 수 있습니다. 코드 작동 여부나 다른 관련 파일들이 올바르게 설정되었는지 확인하는 것이 중요합니다.