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

Release: v2.0.0 #516

Merged
merged 38 commits into from
Oct 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
174ba4a
feat: μ‹ν’ˆ 필터링 κ²°κ³Ό 없을 λ•Œ ν…μŠ€νŠΈ μΆ”κ°€ (#431)
ksone02 Sep 22, 2023
552d0cf
refactor: Toast μ‚¬μš© 방법 λ¦¬νŒ©ν„°λ§ / 강아지 ν„°μΉ˜ μ΄μŠ€ν„°μ—κ·Έ μˆ˜μ • (#428)
ksone02 Sep 22, 2023
6fb9fba
fix: μ΄μŠ€ν„°μ—κ·Έ μ˜€νƒˆμž μˆ˜μ •(κΊ  -> κΉ¨) (#443)
ksone02 Sep 22, 2023
44efe8a
feat: 리뷰 μš”μ•½ 쑰회 json ν”„λ‘œνΌν‹° λͺ… μˆ˜μ • (#449)
wonyongChoi05 Sep 27, 2023
21ea831
feat: 쿼리 μΉ΄μš΄ν„° 적용 (#445)
parkmuhyeun Oct 2, 2023
dc5781f
feat: refresh token 적용 (#447)
iamjooon2 Oct 2, 2023
526e2f9
feature: μ—λŸ¬ 핸듀링 고도화 (#453)
n0eyes Oct 4, 2023
fc76777
feat: λ©”μΈνŽ˜μ΄μ§€ ν•˜λ‹¨ 'μ‚¬λ£Œ 선택 도움말 λ°°λ„ˆ' μΆ”κ°€ (#458)
HyeryongChoi Oct 5, 2023
c42bc9f
chore: μŠ€ν† λ¦¬λΆ 배포 μ›Œν¬ν”Œλ‘œμš° μΆ”κ°€ (#464)
HyeryongChoi Oct 6, 2023
dfd6132
fix: μŠ€ν† λ¦¬λΆ 배포 μ›Œν¬ν”Œλ‘œμš°μ—μ„œ μΊμ‹œ λ¬΄νš¨ν™” 둜직 μ‚­μ œ 및 mockServiceWorker 경둜 μˆ˜μ • (#466)
HyeryongChoi Oct 6, 2023
1cc0c7c
fix: μŠ€ν† λ¦¬λΆ 배포 μ›Œν¬ν”Œλ‘œμš° μΊμ‹œ 경둜 μˆ˜μ • (#468)
HyeryongChoi Oct 6, 2023
1d8206f
chore: ν”„λ‘ νŠΈμ—”λ“œ ν”„λ‘œμ νŠΈ 배포 μ›Œν¬ν”Œλ‘œμš°μ— μΊμ‹œμ μš© (#470)
HyeryongChoi Oct 6, 2023
a59c14a
feat: μ‹ν’ˆ ν•„ν„° 선택 ν›„ μ„ νƒν•œ ν•„ν„° λ³΄μ—¬μ£ΌλŠ” κΈ°λŠ₯ μΆ”κ°€ (#461)
HyeryongChoi Oct 10, 2023
35a8c6f
refactor: νŽ«ν‘Έλ“œ ν…ŒμŠ€νŠΈμ½”λ“œ λ¦¬νŒ©ν„°λ§ (#459)
parkmuhyeun Oct 12, 2023
38808a1
feat: Datadog Trace μ–΄λ…Έν…Œμ΄μ…˜ μΆ”κ°€ (#475)
wonyongChoi05 Oct 12, 2023
7a7d415
feature: ErrorBoundary μ‚¬μš© 방식 λ³€κ²½ 및 κ°„μ†Œν™” (#477)
n0eyes Oct 12, 2023
e3240ef
feat: 같은 ν”Œλ‘œμš° μ•ˆμ˜ μ—¬λŸ¬ νŽ˜μ΄μ§€λ₯Ό κ΄€λ¦¬ν•˜κΈ° μœ„ν•œ 퍼널 좔상화 및 적용 (#482)
HyeryongChoi Oct 13, 2023
2ce4d35
fix: 토큰이 μ—†λŠ” 경우 μ˜ˆμ™Έ λ³€κ²½ (#480)
kyY00n Oct 13, 2023
1ecd844
feat: localhost https μΆ”κ°€ (#485)
kyY00n Oct 13, 2023
9cbc55c
refactor: 'μ‚¬λ£Œ 선택 도움말 λ°°λ„ˆ'λ₯Ό λ‹«μœΌλ©΄ λ¦¬μ•‘νŠΈ λ‚΄λΆ€ νŽ˜μ΄μ§€ 이동 μ‹œ μ•ˆ 보이도둝 μˆ˜μ • (#486)
HyeryongChoi Oct 15, 2023
ac4726e
refactor: UI/UX κ°œμ„  (#488)
n0eyes Oct 16, 2023
b0ad7ac
refactor: OAuth API ν˜ΈμΆœμ„ νŠΈλžœμž­μ…˜ λ²”μœ„μ—μ„œ 뢄리 (#471)
iamjooon2 Oct 17, 2023
1a014f6
feat: λͺ¨λ°”일 λ””λ°”μ΄μŠ€(ios)μ—μ„œ <input>, <textarea> 포컀슀 μ‹œ μžλ™ zoom-inλ˜λŠ” ν˜„μƒ κ°œμ„  (#…
HyeryongChoi Oct 17, 2023
d5a1f01
feat: λ°μŠ€ν¬νƒ‘ λ·° μ „μ—­ λ ˆμ΄μ•„μ›ƒ κ΅¬ν˜„ (#494)
ksone02 Oct 18, 2023
ebc10b4
refactor: redirectUriλ₯Ό ν”„λ‘ νŠΈμ—”λ“œλ‘œλΆ€ν„° λ°›λŠ” λ°©μ‹μœΌλ‘œ λ³€κ²½ (#456)
iamjooon2 Oct 18, 2023
5ba559e
fix: allowCredentials μ˜΅μ…˜ 및 ν—ˆμš© 헀더 μΆ”κ°€ (#496)
iamjooon2 Oct 18, 2023
329b823
feat: 무쀑단 배포λ₯Ό μœ„ν•œ ν™˜κ²½λΆ„λ¦¬ μΆ”κ°€ (#495)
iamjooon2 Oct 18, 2023
c472031
feat: μΏ ν‚€ λ‚΄ SameSite=None μ˜΅μ…˜ μΆ”κ°€ (#497)
iamjooon2 Oct 18, 2023
6fad442
fix: μΏ ν‚€ λ‚΄ domain μ„€μ • μΆ”κ°€ (#498)
iamjooon2 Oct 18, 2023
7ff99da
fix: UI 깨짐 ν•΄κ²° (#501)
ksone02 Oct 18, 2023
c2db81a
feature: 카카였 둜그인 redirect uri λ™μ μœΌλ‘œ μ„€μ • (#500)
n0eyes Oct 18, 2023
1cb5a1c
feat: RefreshToken μ „ν™˜ (#503)
iamjooon2 Oct 18, 2023
cec5584
refactor: refreshToken ν”Œλ‘œμš° λ³€κ²½ (#504)
iamjooon2 Oct 19, 2023
e2953d7
docs: README μ—…λ°μ΄νŠΈ (#505)
HyeryongChoi Oct 19, 2023
5cf8e6d
refactor: λ¦¬ν”„λ ˆμ‹œ μΏ ν‚€ > JWT λ³€κ²½ 및 버그 + κ°œμ„  사항 반영 (#506)
n0eyes Oct 19, 2023
78b06e0
fix: UI 깨짐, μŠ€μΌˆλ ˆν†€ UI μˆ˜μ • (#513)
ksone02 Oct 19, 2023
834c5bf
fix: 0살이면 1μ‚΄ 미만으둜 λœ¨λ„λ‘ μˆ˜μ •, 리뷰 더보기 클릭이 μ•ˆλ˜λŠ” 문제 ν•΄κ²° (#512)
HyeryongChoi Oct 19, 2023
c19ecfc
hotfix: 리뷰, 펫 ν”„λ‘œν•„ μ—…λ°μ΄νŠΈμ— 따라 μƒνƒœ 동기화 (#514)
n0eyes Oct 19, 2023
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
25 changes: 22 additions & 3 deletions .github/workflows/frontend-deploy-dev.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ name: Frontend Deploy to Dev

on:
push:
branches: [develop]
paths: frontend/**
branches:
- develop
paths:
- frontend/**
- .github/**

jobs:
build-dockerfile:
Expand All @@ -18,8 +21,24 @@ jobs:
with:
node-version: '18.x'

- name: Cache Yarn global cache
uses: actions/cache@v3
with:
path: '**/.yarn'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-

- name: Cache Yarn project cache
uses: actions/cache@v3
with:
path: '**/.yarn/cache'
key: ${{ runner.os }}-yarn-project-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-project-

- name: Install dependencies
run: yarn
run: yarn install --immutable

- name: Set up QEMU
uses: docker/setup-qemu-action@v2
Expand Down
25 changes: 22 additions & 3 deletions .github/workflows/frontend-deploy-prod.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,11 @@ name: Frontend Deploy to Prod

on:
push:
branches: [main]
paths: frontend/**
branches:
- main
paths:
- frontend/**
- .github/**

jobs:
build-dockerfile:
Expand All @@ -18,8 +21,24 @@ jobs:
with:
node-version: '18.x'

- name: Cache Yarn global cache
uses: actions/cache@v3
with:
path: '**/.yarn'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-

- name: Cache Yarn project cache
uses: actions/cache@v3
with:
path: '**/.yarn/cache'
key: ${{ runner.os }}-yarn-project-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-project-

- name: Install dependencies
run: yarn
run: yarn install --immutable

- name: Set up QEMU
uses: docker/setup-qemu-action@v2
Expand Down
73 changes: 73 additions & 0 deletions .github/workflows/frontend-storybook-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Frontend Storybook Deploy To S3

on:
push:
branches:
- develop
paths:
- frontend/**
- .github/**

jobs:
build:
runs-on: ubuntu-22.04
defaults:
run:
working-directory: ./frontend
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true

steps:
- name: Use repository source
uses: actions/checkout@v3

- name: Use node.js
uses: actions/setup-node@v3
with:
node-version: 18.x

- name: Cache Yarn global cache
uses: actions/cache@v3
with:
path: '**/.yarn'
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-

- name: Cache Yarn project cache
uses: actions/cache@v3
with:
path: '**/.yarn/cache'
key: ${{ runner.os }}-yarn-project-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-project-

- name: Install dependencies
run: yarn install --immutable

- name: Build Storybook
run: yarn build:sb

- name: Upload storybook build files to temp artifact
uses: actions/upload-artifact@v3
with:
name: Storybook
path: frontend/storybook-static
deploy:
needs: build
runs-on: front-dev-server
steps:
- name: Remove previous version app
working-directory: .
run: rm -rf frontend/storybook

- name: Download the built file to AWS EC2
uses: actions/download-artifact@v3
with:
name: Storybook
path: frontend/storybook

- name: Upload to S3
run: |
aws s3 sync frontend/storybook s3://2023-team-project/2023-zipgo/storybook --delete
49 changes: 39 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,43 @@
# 2023-zipgo
<p align="center">
<img src="https://github.com/woowacourse-teams/2023-zipgo/assets/24777828/e7eefb82-4bbf-47cd-a6ef-dc756d97c77d" alt="집고 README λ°°λ„ˆ" />
<p align="center">
<img src="https://img.shields.io/badge/react-v18.2.0-9cf?logo=react" alt="react v18.2.0" />
<img src="https://img.shields.io/badge/spring_boot-v3.1.1-green?logo=springboot” alt="spring-boot v3.1.1" />
<img src="https://img.shields.io/badge/typescript-v5.1.6-blue?logo=typescript” alt="typescript v5.1.6"/>
<img src="https://img.shields.io/badge/mysql-v8.0.34-blue?logo=mysql" alt="mysql v8.0.34"/>
</p>

## 멀버
**초보 μ§‘μ‚¬μ˜ λ°˜λ €λ™λ¬Ό μ‹ν’ˆ 선택을 λ„μ™€μ£ΌλŠ” μ„œλΉ„μŠ€**, μ§‘μ‚¬μ˜κ³ λ―Όμž…λ‹ˆλ‹€.

| Frontend | Frontend | Frontend |
| :--------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: |
| <img src="https://avatars.githubusercontent.com/u/24777828?v=4" width=100px alt="첡슀"/> | <img src="https://avatars.githubusercontent.com/u/79056677?v=4" width=100px alt="λ…Έμ•„μ΄μ¦ˆ"/> | <img src="https://avatars.githubusercontent.com/u/72087183?v=4" width=100px alt="에디"/> |
| [첡슀](https://github.com/HyeryongChoi) | [λ…Έμ•„μ΄μ¦ˆ](https://github.com/n0eyes) | [에디](https://github.com/ksone02)
μ „λ¬Έκ°€λ“€μ˜ μ‚¬λ£Œ 선택 기쀀은 λ¬΄μ—‡μΌκΉŒμš”?

λ‹€μ–‘ν•œ 전문가듀이 μΈμ •ν•˜λŠ” [쒋은 μ‚¬λ£Œ 선택 κΈ°μ€€]([https://translucent-mallet-426.notion.site/dae305b85c8146399d7de6a0e74b773d](https://www.notion.so/dae305b85c8146399d7de6a0e74b773d?pvs=21)), **μ§‘μ‚¬μ˜ κ³ λ―Ό**μ—μ„œ ν™•μΈν•˜μ„Έμš”!

| Backend | Backend | Backend | Backend |
|:--------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------:|:----------------------------------:| :----------------------------------:|
| <img src="https://avatars.githubusercontent.com/u/73161212?v=4" width=100px alt="κ°€λΉ„"/> | <img src="https://avatars.githubusercontent.com/u/76938931?v=4" width=100px alt="무민"/> | <img src="https://avatars.githubusercontent.com/u/94087228?v=4" width=100px alt="λ² λ² "/> | <img src="https://avatars.githubusercontent.com/u/61582017?v=4" width=100px alt="λ‘œμ§€"/> |
| [κ°€λΉ„](https://github.com/iamjooon2) | [무민](https://github.com/parkmuhyeun) | [λ² λ² ](https://github.com/wonyongChoi05) | [λ‘œμ§€](https://github.com/kyY00n)
- [zipgo.pet](https://zipgo.pet)
- [zipgo.wiki](https://github.com/woowacourse-teams/2023-zipgo/wiki)

# Skills

### Frontend Tech Stack
![Frontend Tech Stacks](https://github.com/woowacourse-teams/2023-zipgo/assets/24777828/4372f950-d29e-46a0-807c-79d78a7f6913)

### Backend Tech Stack
![Backend Tech Stacks](https://github.com/woowacourse-teams/2023-zipgo/assets/24777828/a4643676-e669-43f5-9bb4-d2f4e92ed470)

# Infra Structure
![Zigo Infra](https://github.com/woowacourse-teams/2023-zipgo/assets/24777828/09847ae1-2aac-41a1-9302-4a2b49a284e0)


### Frontend Infra Structure
![image](https://github.com/woowacourse-teams/2023-zipgo/assets/24777828/eac9e8af-2df3-486a-9812-6a39ab36eb4e)

### Backend Infra Structure
![image](https://github.com/woowacourse-teams/2023-zipgo/assets/24777828/c6b9ec96-1301-4088-98d1-1e1ec1d3b334)


# Member

| [첡슀](https://github.com/HyeryongChoi) | [λ…Έμ•„μ΄μ¦ˆ](https://github.com/n0eyes) | [에디](https://github.com/ksone02) | [κ°€λΉ„](https://github.com/iamjooon2) | [무민](https://github.com/parkmuhyeun) | [λ² λ² ](https://github.com/wonyongChoi05) | [λ‘œμ§€](https://github.com/kyY00n) |
| :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: | :----------------------------------------------------------: |
| <img src="https://avatars.githubusercontent.com/u/24777828?v=4" width=200px alt="첡슀" /> | <img src="https://avatars.githubusercontent.com/u/79056677?v=4" width=200px alt="λ…Έμ•„μ΄μ¦ˆ" /> | <img src="https://avatars.githubusercontent.com/u/72087183?v=4" width=200px alt="에디" /> | <img src="https://avatars.githubusercontent.com/u/73161212?v=4" width=200px alt="κ°€λΉ„" /> | <img src="https://avatars.githubusercontent.com/u/76938931?v=4" width=200px alt="무민" /> | <img src="https://avatars.githubusercontent.com/u/94087228?v=4" width=200px alt="λ² λ² "/> | <img src="https://avatars.githubusercontent.com/u/61582017?v=4" width=200px alt="λ‘œμ§€" /> |
| Frontend | Frontend | Frontend | Backend | Backend | Backend | Backend |
4 changes: 4 additions & 0 deletions backend/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ dependencies {
compileOnly 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

implementation group: 'com.datadoghq', name: 'dd-trace-api', version: '1.21.0'

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"
Expand Down Expand Up @@ -110,6 +112,7 @@ jacocoTestReport {
'**/*Response*',
'**/*Request*',
'**/BaseTimeEntity',
'**/KakaoOAuthClient',
'**/*Dto*',
'**/S3*',
'**/*Interceptor*',
Expand Down Expand Up @@ -149,6 +152,7 @@ jacocoTestCoverageVerification {
'*.*Exception*',
'*.*Dto',
'*.S3*',
'*.KakaoOAuthClient*',
'*.*Response',
'*.*Request',
'*.BaseTimeEntity',
Expand Down
28 changes: 0 additions & 28 deletions backend/deploy-dev.sh

This file was deleted.

28 changes: 0 additions & 28 deletions backend/deploy-prod.sh

This file was deleted.

40 changes: 40 additions & 0 deletions backend/src/main/java/zipgo/aspect/ConnectionProxyHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
package zipgo.aspect;

import org.springframework.web.context.request.RequestContextHolder;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;

public class ConnectionProxyHandler implements InvocationHandler {

private static final String QUERY_PREPARE_STATEMENT = "prepareStatement";

private final Object connection;
private final QueryCounter queryCounter;

public ConnectionProxyHandler(Object connection, QueryCounter queryCounter) {
this.connection = connection;
this.queryCounter = queryCounter;
}

@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
countQuery(method);
return method.invoke(connection, args);
}

private void countQuery(Method method) {
if (isPrepareStatement(method) && isRequest()) {
queryCounter.increaseCount();
}
}

private boolean isPrepareStatement(Method method) {
return method.getName().equals(QUERY_PREPARE_STATEMENT);
}

private boolean isRequest() {
return RequestContextHolder.getRequestAttributes() != null;
}

}
18 changes: 18 additions & 0 deletions backend/src/main/java/zipgo/aspect/QueryCounter.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
package zipgo.aspect;

import lombok.Getter;
import org.springframework.stereotype.Component;
import org.springframework.web.context.annotation.RequestScope;

@Getter
@Component
@RequestScope
public class QueryCounter {

private int count;

public void increaseCount() {
count++;
}

}
29 changes: 29 additions & 0 deletions backend/src/main/java/zipgo/aspect/QueryCounterAop.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package zipgo.aspect;

import lombok.RequiredArgsConstructor;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

import java.lang.reflect.Proxy;

@Aspect
@Component
@RequiredArgsConstructor
public class QueryCounterAop {

private final QueryCounter queryCounter;

@Around("execution(* javax.sql.DataSource.getConnection(..))")
public Object getConnection(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
Object connection = proceedingJoinPoint.proceed();

return Proxy.newProxyInstance(
connection.getClass().getClassLoader(),
connection.getClass().getInterfaces(),
new ConnectionProxyHandler(connection, queryCounter)
);
}

}
Loading
Loading