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

v1.2.0 #631

Merged
merged 288 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
288 commits
Select commit Hold shift + click to select a range
86cbb98
feat: 공모 상세 페이지 기능 추가 (#94)
Namyunsuk Jul 25, 2024
e31350a
refactor: 댓글 도메인 코드 리팩터링 (#96)
helenason Jul 25, 2024
91b102e
feat: 댓글방 댓글 작성 api 연결 (#95)
chaehyuns Jul 25, 2024
478211a
chore: 더미 데이터 시간 변경 (#100)
masonkimseoul Jul 25, 2024
9a07ab2
feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)
songpink Jul 25, 2024
d7fd616
feat: 전반적인 예외 처리 (#103)
helenason Jul 25, 2024
2502a2e
feat: swagger와 restdocs 연동 (#104)
ChooSeoyeon Jul 25, 2024
1aaff14
refactor: 에러메시지 필드명 변경 (#108)
helenason Jul 25, 2024
102dde9
fix: restdocs 관련 테스트 실패 이슈 해결 (#106)
ChooSeoyeon Jul 25, 2024
877d4ad
fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)
helenason Jul 25, 2024
1cc4ebc
fix: 댓글방 조회 테스트 수정 (#113)
helenason Jul 25, 2024
7066818
feat: 홈 화면 무한 스크롤 기능 구현 (#109)
Namyunsuk Jul 25, 2024
2e35368
fix: 마지막 댓글 response를 nullable하게 수정 (#115)
songpink Jul 25, 2024
b02c6ca
feat: 댓글방 댓글 조회 api 연결 (#116)
chaehyuns Jul 25, 2024
896e4be
feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)
chaehyuns Jul 26, 2024
3c54e31
fix: 이미지 링크 임시 수정 (#119)
fromitive Jul 26, 2024
50c0d7f
fix: 이미지 링크 수정 (#120)
fromitive Jul 26, 2024
40804ba
refactor: 네이밍 수정 (#123)
songpink Jul 29, 2024
0b9e3b1
refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)
songpink Jul 30, 2024
7cd98a7
refactor: 뷰모델 팩토리 방식 변경 (#130)
Namyunsuk Jul 30, 2024
b73a293
refactor: Service분리 (#132)
Namyunsuk Jul 30, 2024
0c59f41
feat: 공모글 작성 UI 구현 (#134)
songpink Jul 30, 2024
a36190b
feat: 댓글방 참여자 목록 Drawer Layout UI 구현 (#136)
chaehyuns Jul 30, 2024
a441527
chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)
ChooSeoyeon Jul 31, 2024
50a7c80
feat: 공모 작성 API 구현 (#139)
helenason Jul 31, 2024
708b13e
refactor: 공모에 저장하는 주소 값 구체화 (#141)
helenason Jul 31, 2024
adcc62b
feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)
Namyunsuk Aug 1, 2024
0731d28
feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)
helenason Aug 1, 2024
3cd9aa7
feat: OG 태그 크롤링 API 구현 (#148)
helenason Aug 1, 2024
08baf3d
refactor: 제품 코드와 API 문서 동기화 (#153)
helenason Aug 1, 2024
4ff12ff
refactor: API 문서 개선 (#157)
helenason Aug 2, 2024
bb4d1da
feat: s3 이미지 업로드 API 구현 (#147)
masonkimseoul Aug 2, 2024
bdbcf7e
feat: 주소검색 기능구현 (#161)
Namyunsuk Aug 4, 2024
85fdbe2
build: Firebase의존성 추가 (#165)
Namyunsuk Aug 5, 2024
1613a1b
feat: 공모글 작성 API 연결 (#162)
songpink Aug 5, 2024
5bcbee6
feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)
chaehyuns Aug 5, 2024
46b5293
chore: CI 스크립트 추가 (#173)
Namyunsuk Aug 6, 2024
f4622e3
fix: og 태그 추출 시 크롤링 이슈 해결 (#174)
fromitive Aug 6, 2024
dcf87c1
feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)
songpink Aug 6, 2024
85ffd4c
feat: 상품 URL 이미지 추출 API 연결 (#180)
chaehyuns Aug 6, 2024
74619fb
feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)
ChooSeoyeon Aug 6, 2024
fb8b3e0
feat: 상태 변경 API 구현 (#175)
helenason Aug 6, 2024
df16d2e
feat: 로그인 기능 구현 (#177)
ChooSeoyeon Aug 6, 2024
df58ba4
fix: nicknameWordInitializer 설정 오류 해결 (#182)
fromitive Aug 6, 2024
163331e
fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)
ChooSeoyeon Aug 6, 2024
8e0216f
chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)
ChooSeoyeon Aug 6, 2024
32e37ec
fix: og 이미지 태그 크롤링 문제 해결 (#190)
fromitive Aug 6, 2024
f208968
refactor: 댓글방 상태 도메인 설계 변경 (#189)
helenason Aug 7, 2024
6720969
feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)
ChooSeoyeon Aug 7, 2024
ae61b01
chore: readtimeout 5초로 수정 (#195)
fromitive Aug 7, 2024
5822571
feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)
helenason Aug 7, 2024
0e1d530
feat: 공모 목록 조회 API연결 (#201)
Namyunsuk Aug 7, 2024
d2c5876
feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경 (#206)
ChooSeoyeon Aug 7, 2024
46037a3
feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)
masonkimseoul Aug 7, 2024
7dc1b81
refactor: 공모 글 작성 시 총대 참여자 추가 (#208)
helenason Aug 7, 2024
8594ccf
feat: 바텀 네비게이션 고정 기능 구현 (#211)
Namyunsuk Aug 7, 2024
cf0ba70
feat: 데이터에서 5자 이상 제거 (#212)
ChooSeoyeon Aug 7, 2024
08b4498
feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)
fromitive Aug 7, 2024
febe598
feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)
Namyunsuk Aug 7, 2024
20d0acf
feat: 이미지 업로드 및 권한 설정 (#216)
chaehyuns Aug 7, 2024
8c4a27d
feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)
ChooSeoyeon Aug 7, 2024
d39a4c3
feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)
ChooSeoyeon Aug 7, 2024
8f1104c
feat: 댓글방 일정 수정 API 구현 (#226)
helenason Aug 7, 2024
46f9de9
feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)
helenason Aug 7, 2024
3b5b4b5
feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)
Namyunsuk Aug 7, 2024
9b8053e
Feature/217 offering status (#230)
chaehyuns Aug 7, 2024
88e54da
feat: 댓글방 상태 변경 (#231)
chaehyuns Aug 7, 2024
05845b0
feature: 카카오 로그인 구현 (#235)
songpink Aug 8, 2024
86c607a
feat: 공모 참여자 목록 조회 API 구현 (#225)
fromitive Aug 8, 2024
c3062fa
refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)
masonkimseoul Aug 8, 2024
610eedd
fix: 필터링 오류 수정 (#243)
Namyunsuk Aug 8, 2024
e2dcb84
fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)
fromitive Aug 8, 2024
8a20ff3
feat: 공동구매 상태 변경 다이얼로그 구현 (#245)
chaehyuns Aug 8, 2024
e60360b
test: 테스트 코드 작성을 위한 기본 세팅 (#255)
chaehyuns Aug 8, 2024
f540347
feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#…
songpink Aug 8, 2024
1c6023d
feat: 홈화면 테스트 작성 (#257)
Namyunsuk Aug 8, 2024
c0455b9
test: 댓글방 테스트 코드 작성 (#258)
chaehyuns Aug 8, 2024
c6b4d09
feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)
chaehyuns Aug 8, 2024
a4ec5de
test: 공모글 작성 이미지 테스트 코드 작성 (#260)
chaehyuns Aug 8, 2024
3f4e35b
feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)
songpink Aug 8, 2024
b5b5c50
feat: 공모 상세 화면 테스트 작성 (#264)
Namyunsuk Aug 8, 2024
3324c22
feat: 로깅 코드 삽입 (#266)
ChooSeoyeon Aug 8, 2024
a4442df
fix: 마감 임박 필터링 쿼리 수정 (#267)
fromitive Aug 8, 2024
923ace2
chore: logback 설정 진행 (#270)
fromitive Aug 8, 2024
a7e76f7
fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)
ChooSeoyeon Aug 8, 2024
0351188
refactor: 홈화면 수정 (#271)
Namyunsuk Aug 9, 2024
22e8541
feat: 공모글 작성 화면 테스트코드 작성 (#274)
songpink Aug 9, 2024
535518f
feat: 댓글방 목록 화면 테스트코드 작성 (#276)
songpink Aug 9, 2024
726abc8
feat: pageSize validation 추가 (#279)
ChooSeoyeon Aug 9, 2024
336d689
fix: 공모 상세 화면 오류 수정 (#280)
Namyunsuk Aug 9, 2024
ff92279
feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)
songpink Aug 9, 2024
a989387
chore: change version name (#291)
chaehyuns Aug 9, 2024
d8e503c
feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)
songpink Aug 12, 2024
8d1e3a0
feat: 로그인 화면 리팩토링 (#298)
songpink Aug 12, 2024
8a20afe
refactor: 채팅방 UI UX 개선 (#303)
chaehyuns Aug 12, 2024
03bbff8
feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)
songpink Aug 12, 2024
61ed93e
feat: 가로모드, 다크모드 설정 (#305)
chaehyuns Aug 12, 2024
c20464a
refactor: api변경에 따른 리팩토링 (#310)
Namyunsuk Aug 13, 2024
0aaea9e
feat: 로그인 화면 해상도 대응 (#313)
chaehyuns Aug 13, 2024
da44212
feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)
chaehyuns Aug 13, 2024
61d8be4
refactor: 홈화면 리팩토링 (#324)
Namyunsuk Aug 14, 2024
0a51789
feat: 댓글방 새로운 기능 GA 연결 (#328)
chaehyuns Aug 14, 2024
cb48b12
test: 테스트 데이터 수정 (#330)
fromitive Aug 14, 2024
00004dc
feat: Fragment GA 모니터링 수집 (#332)
chaehyuns Aug 14, 2024
070ca28
feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)
chaehyuns Aug 14, 2024
9f24972
feat: 공모 참여 취소 기능 구현 (#318)
fromitive Aug 14, 2024
f919764
feat: 댓글방 생성 시점 변경 (#319)
helenason Aug 14, 2024
117a650
feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)
ChooSeoyeon Aug 14, 2024
5cc830f
feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)
ChooSeoyeon Aug 14, 2024
fc020d9
feat: 댓글방 상태 조회 API 확장 (#325)
helenason Aug 14, 2024
4ea9640
feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)
masonkimseoul Aug 14, 2024
e630944
fix: imminent 필터 버그 해결 (#337)
ChooSeoyeon Aug 14, 2024
d32a53d
fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)
ChooSeoyeon Aug 14, 2024
6dd7ad2
feat: 마이페이지 기능 구현 (#341)
chaehyuns Aug 14, 2024
e036152
feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)
masonkimseoul Aug 14, 2024
19293cc
feat: 공모 거래 날짜 필드 이름 변경 (#348)
helenason Aug 16, 2024
20781d8
fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)
Namyunsuk Aug 16, 2024
3883d8a
refactor: API변경에 따른 대응 (#352)
Namyunsuk Aug 16, 2024
3e56bf9
feat: 공모글 작성 화면 ux 개선 (#344)
songpink Aug 16, 2024
01ee073
refactor: og 태그 추출 기능 수정 (#349)
fromitive Aug 16, 2024
fe9e2e1
feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)
songpink Aug 16, 2024
b7c1556
refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)
helenason Aug 16, 2024
b1cafbe
refactor: 할인율 계산 로직 수정 (#359)
helenason Aug 16, 2024
5564ec3
feat: 총 모집 인원 수 최댓값 설정 (#361)
helenason Aug 16, 2024
4f0f999
fix: 필터 오류 수정 (#362)
Namyunsuk Aug 16, 2024
6cdd6fd
feat: API 스펙 변경에 따른 대응 (#364)
chaehyuns Aug 16, 2024
e924260
feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)
masonkimseoul Aug 16, 2024
612e815
fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)
Namyunsuk Aug 19, 2024
d45a038
feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)
songpink Aug 19, 2024
7514002
feat: 공모 상세 화면 추가 기능 반영 (#375)
Namyunsuk Aug 19, 2024
311f07b
fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)
songpink Aug 19, 2024
b46bdd0
feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)
masonkimseoul Aug 19, 2024
3455a34
feat: API 별 권한 확인 로직 추가 (#371)
ChooSeoyeon Aug 19, 2024
d1ae4b0
refactor: 더미 데이터 칼럼 위치 변경 (#382)
masonkimseoul Aug 19, 2024
2ab9287
refactor: 홈화면 api필드 추가에 따른 대응 (#381)
Namyunsuk Aug 19, 2024
b590d88
fix: API 문서에 접근할 수 없는 현상 해결 (#384)
fromitive Aug 19, 2024
487c83d
feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)
songpink Aug 19, 2024
4f3a19d
feat: 공모 단건 조회 API 구현 (#388)
helenason Aug 19, 2024
faa53c0
refactor: 상태변경 리팩토링 (#389)
Namyunsuk Aug 20, 2024
a8197ff
fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)
songpink Aug 20, 2024
bca198a
chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)
ChooSeoyeon Aug 20, 2024
e99d2db
fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)
ChooSeoyeon Aug 20, 2024
6be923a
feat: 댓글방 참여자 확인 API 연결 (#401)
chaehyuns Aug 20, 2024
3dc2b6b
feat: 댓글방 공동구매 나가기 API 연결 (#402)
chaehyuns Aug 20, 2024
271ae05
fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)
fromitive Aug 20, 2024
ff3e72d
refactor: 더미 데이터 정합성 확보 (#406)
masonkimseoul Aug 20, 2024
6e035ba
feat: CallApiHandler 구현 (#403)
songpink Aug 21, 2024
1dc3ce0
feat: proguard를 사용한 난독화 적용 (#413)
chaehyuns Aug 21, 2024
f5f3652
chore: 환경에 따른 yml 파일 분리 (#411)
ChooSeoyeon Aug 22, 2024
5169fc3
fix: 공구 상세 페이지 오류 해결 (#417)
Namyunsuk Aug 22, 2024
2a750e7
refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)
Namyunsuk Aug 22, 2024
d5d8fee
feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)
ChooSeoyeon Aug 22, 2024
4fd6519
feat: cookie 관련 예외 처리 (#409)
ChooSeoyeon Aug 22, 2024
ade1f7f
refactor: 더미 데이터 http 추가 (#422)
masonkimseoul Aug 22, 2024
b891ff5
fix: 더미데이터 정합성 맞추기 (#425)
helenason Aug 22, 2024
fd9a7bd
feat: 로그인 api 변경 반영 (#426)
songpink Aug 22, 2024
261e5eb
feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)
fromitive Aug 22, 2024
681ab48
feat: Spring Timezone KST로 설정 (#430)
masonkimseoul Aug 22, 2024
3da1918
chore: Dockerfile 타임존 변경 (#432)
fromitive Aug 22, 2024
24352cc
fix: Offering 목록 조회 시 NPE 해결 (#434)
helenason Aug 22, 2024
67effd0
refactor: 에러 핸들링 리팩토링 (#436)
Namyunsuk Aug 22, 2024
010e61a
feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)
songpink Aug 22, 2024
e6c0ca8
feat: 댓글방 에러 헨들링 (#439)
chaehyuns Aug 22, 2024
790a614
refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)
Namyunsuk Aug 22, 2024
9796ae0
chore: 버전 업데이트 (#443)
chaehyuns Aug 22, 2024
0a81177
refactor: 외래키 필드 notnull 조건 추가 (#445)
helenason Aug 22, 2024
cb1b6ba
chore: prod CI/CD 구축 (#423)
helenason Aug 22, 2024
4330254
chore: prod 불필요한 트리거 주석 처리 (#447)
helenason Aug 22, 2024
18266c0
merge: v1.1.0 to develop-BE
ChooSeoyeon Aug 22, 2024
7bd806a
merge: main to develop-AN (v.1.1.0)
ChooSeoyeon Aug 22, 2024
f611401
feat: 안드로이드 CD 구축 (#415)
songpink Aug 22, 2024
06cb578
feat: 키보드 이벤트 감지 기능 수정 (#463)
chaehyuns Aug 23, 2024
c52d547
feat: 이미지 로딩 기능 복원 (#465)
chaehyuns Aug 23, 2024
d81bc88
fix: 공모 제목 및 가격 줄바꿈, 말줄임 되도록 수정 (#466)
Namyunsuk Aug 23, 2024
ab3c97d
refactor: 홈 화면 UX개선 (#473)
Namyunsuk Sep 5, 2024
eacdc67
refactor: 채팅 UX 개선 (#479)
chaehyuns Sep 9, 2024
549eb9b
feat: 토큰 리프레시가 제대로 이루어지지 않는 오류 수정 (#480)
songpink Sep 9, 2024
4f49f5b
fix: access_token, refresh_token 만료 시 오류 응답 값이 다르게 나오도록 변경 (#478)
fromitive Sep 10, 2024
3c83c33
feat: 공모글 작성 시 이전 날짜 선택 불가하도록 수정, Calendar 방식으로 DatePicker를 변경 (#481)
songpink Sep 11, 2024
2953fec
hotfix: og 크롤링 정상 작동 시 http https 프로토콜 정보 제거 (#458)
ChooSeoyeon Sep 11, 2024
f12e277
hotfix: og 크롤링 정상 작동 시 http https 프로토콜 정보 제거 (#459)
ChooSeoyeon Sep 11, 2024
91b2346
feat: OfferingEntity Soft Delete 적용 (#483)
helenason Sep 11, 2024
14072b3
feat: 거래 날짜 검증 로직 추가 (#471)
masonkimseoul Sep 23, 2024
3f430c6
test: 공모 목록 조회 시 soft delete 결과 적용되었는지 확인하는 테스트 추가 (#487)
ChooSeoyeon Sep 23, 2024
28a8d50
feat: 공모 수정 API 구현 (#485)
fromitive Sep 23, 2024
7ec4fd6
feat: 공모 삭제 API 구현 (#489)
helenason Sep 23, 2024
e6b1f45
feat: Spring Actuator로 health check api 생성 (#493)
ChooSeoyeon Sep 24, 2024
e1a17e2
chore: prod-a, prod-b에 어플리케이션을 배포하도록 변경 (#496)
fromitive Sep 25, 2024
48ee940
feat: 멀티 모듈화를 위한 패키지 분리 (#491)
chaehyuns Sep 25, 2024
97ae149
refactor: 의존성 주입 라이브러리(Hilt) 적용 (#500)
songpink Sep 26, 2024
ee4eaec
feat: 채팅방 조회 시 soft delete 된 공모 별도 처리 (#502)
ChooSeoyeon Oct 7, 2024
82fd915
feat: AOP 적용해 읽기/쓰기 DB로 요청 분산 (#503)
ChooSeoyeon Oct 7, 2024
ab48118
refactor: OfferingRepository 쿼리 최적화 (#506)
helenason Oct 7, 2024
1d63986
test: osiv 끄면서 깨지는 테스트 수정 (#521)
ChooSeoyeon Oct 7, 2024
a580d86
feat: 읽기 전용 공모 API 구현 (#514)
fromitive Oct 7, 2024
fe1cab6
feat: 공모 상세 정보 조회 시 원가격 정보도 포함 (#517)
fromitive Oct 7, 2024
e515262
refactor: 닉네임 생성 명사 파일 변경 (#518)
helenason Oct 7, 2024
c3a60f2
test: 닉네임 생성 파일 변경 후 테스트 수정 (#524)
helenason Oct 7, 2024
215fcd1
fix: read-only API가 문서화 되지 않은 오류 수정 (#526)
fromitive Oct 7, 2024
f0423a7
feat: 총대마켓 읽기 전용 web 페이지 구축 (#528)
fromitive Oct 10, 2024
e632c57
feat: Offering 쿼리에 Native Query 적용(+ 테스트 코드 수정) (#556)
masonkimseoul Oct 11, 2024
8657f2a
fix: Native Query 미반영 서비스 코드 수정 (#558)
masonkimseoul Oct 11, 2024
b7d0eb0
feat: 딥링크 기능 구현 (#542)
fromitive Oct 11, 2024
fa35afc
fix: 웹 페이지에서 공모 데이터에 선택 필드 값이 존재하지 않을 때 예외 처리 (#546)
fromitive Oct 11, 2024
4df6f76
fix: null 처리 해결 (#561)
fromitive Oct 11, 2024
29fe778
chore: CI/CD 스크립트 트리거 브랜치 수정 (#567)
helenason Oct 11, 2024
49cc691
chore: 안드로이드 버전 v1.1.2로 변경 (#512)
chaehyuns Sep 30, 2024
303ef1f
feat: 공모글 수정 기능 구현 (#522)
songpink Oct 8, 2024
14a20df
feat: 공구 삭제 기능 구현 (#532)
Namyunsuk Oct 9, 2024
3a67faa
feat: 더블클릭 방지 기능 구현 (#534)
songpink Oct 10, 2024
8f5a7f7
feat: playstore Deeplink 연결 (#545)
chaehyuns Oct 10, 2024
d93a978
feat: 특정 기능 사용 시 확인/취소 다이얼로그 띄워주는 기능 구현 (#547)
songpink Oct 10, 2024
a755bcd
feat: 릴리즈 버전 업데이트 (#550)
chaehyuns Oct 11, 2024
3cb21f0
test: test fix (#555)
chaehyuns Oct 11, 2024
b175d4b
chore: release-* 에서 CD 작동하도록 수정
chaehyuns Oct 11, 2024
2a2a6eb
chore: release-* 에서 CD 작동하도록 수정
chaehyuns Oct 11, 2024
27bb599
chore: release-* 에서 CD 작동하도록 수정
chaehyuns Oct 11, 2024
946ba6a
feat: 웹 접근성 개선 (#575)
fromitive Oct 11, 2024
012b829
Merge remote-tracking branch 'origin/develop-AN' into develop
ChooSeoyeon Oct 11, 2024
5afed3b
Merge remote-tracking branch 'origin/develop-BE' into develop
ChooSeoyeon Oct 11, 2024
d5eb734
fix: AN 누락된 파일 추가
ChooSeoyeon Oct 11, 2024
d5e9028
fix: BE 누락된 파일 추가
ChooSeoyeon Oct 11, 2024
bb6d0d3
fix: workflows 누락된 파일 추가
ChooSeoyeon Oct 11, 2024
5a48243
refactor: 스케줄링 시점 수정 (#586)
masonkimseoul Oct 16, 2024
bad1172
refactor: OfferingRepository 쿼리 최적화 (#578)
helenason Oct 16, 2024
9acd83b
chore: 트리거 path 설정 (#583)
songpink Oct 16, 2024
a3c4f70
feat: 채팅 view type 관리 및 날짜 view 추가 (#588)
chaehyuns Oct 16, 2024
8c9cb5c
refactor: Update 시 상태를 변경할 수 있도록 수정 (#589)
masonkimseoul Oct 17, 2024
1ad2ccc
fix: 현재 시간 계산 로직에 누락된 clock 추가 (#580)
ChooSeoyeon Oct 17, 2024
a67d9ae
fix: 모집 마감 상태 스타일 미적용 해결 (#591)
fromitive Oct 17, 2024
c8d99fd
feat: 채팅 목록 조회 시 최신순 정렬 적용 (#594)
masonkimseoul Oct 17, 2024
0db9c9f
test: 실패하는 테스트 수정 (#597)
ChooSeoyeon Oct 17, 2024
619b84f
Merge branch 'main' into develop
fromitive Oct 18, 2024
6ce2c0d
feat: FMC을 통해 푸쉬 알림 구현 (#604)
helenason Oct 18, 2024
893c533
refactor: 서기 다크모드 대응 (#603)
Namyunsuk Oct 20, 2024
69f4b30
chore: dev 서버 무중단 배포(blue-green) 적용 (#598)
fromitive Oct 21, 2024
b805065
refactor: chatting view type 설정 로직 위치 변경 (#608)
chaehyuns Oct 21, 2024
f408214
refactor: 공모 상세 페이지 진입 시 로딩이 된 후에 화면을 보여주도록 수정 (#609)
Namyunsuk Oct 22, 2024
4f33361
feat: 채팅뷰 가로모드 대응 (#612)
chaehyuns Oct 22, 2024
2eca90c
feat: 안드로이드 FCM 구현 (#610)
songpink Oct 22, 2024
8b4bf8b
feat: 디바운스 타임 변경 (#614)
songpink Oct 22, 2024
ed77b07
feat: 알송파트 다크모드 대응 (#616)
songpink Oct 23, 2024
2d105f7
fix: 참여하지 않은 공모에 대해서 버튼이 나오지 않는 버그 수정 (#618)
Namyunsuk Oct 23, 2024
017e1e4
refactor: meetingDate 검증 로직 수정 (#626)
masonkimseoul Oct 23, 2024
491212d
feat: FCM을 통해 푸쉬 알림 구현 (#605)
helenason Oct 23, 2024
6a688be
feat: connection error 핸들링 방식 수정 (#621)
chaehyuns Oct 23, 2024
460d78a
feat: 공모 참여 시 프로그래스 바 보이도록 구현 (#627)
Namyunsuk Oct 23, 2024
cb4d916
chore: 버전 업데이트 (#628)
chaehyuns Oct 23, 2024
3c7316a
feat: 공모 퇴장, 공모 작성 시 프로그레스바 띄우기 (#629)
songpink Oct 23, 2024
bc0c723
Merge remote-tracking branch 'origin/develop' into chongdae
ChooSeoyeon Oct 23, 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
28 changes: 20 additions & 8 deletions .github/workflows/backend-dev-ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ jobs:
- name: Set Application yml for dev
run: |
echo "${{ secrets.APPLICATION_PROPERTIES_DEV }}" > src/main/resources/application.properties
mkdir -p src/main/resources/fcm
echo '${{ secrets.FCM_SECRET_KEY }}' > src/main/resources/fcm/chongdaemarket-fcm-key.json
mkdir -p src/test/resources/fcm
echo '${{ secrets.FCM_SECRET_KEY }}' > src/test/resources/fcm/chongdaemarket-fcm-key.json
working-directory: ./backend

- name: Build with Gradle Wrapper
Expand All @@ -57,16 +61,24 @@ jobs:
docker tag ${{ secrets.BE_DOCKER_IMAGE_NAME_DEV }} ${{ secrets.BE_DOCKERHUB_USERNAME }}/${{ secrets.BE_DOCKER_IMAGE_NAME_DEV }}:${GITHUB_SHA::7}
docker push ${{ secrets.BE_DOCKERHUB_USERNAME }}/${{ secrets.BE_DOCKER_IMAGE_NAME_DEV }}:${GITHUB_SHA::7}
deploy:
deploy-new-container:
needs: build-and-test
runs-on: [ self-hosted, dev ]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Deploy new container
run: |
bash launch_next_container.sh ${GITHUB_SHA::7} dev ${{ secrets.BE_DOCKERHUB_USERNAME }} ${{ secrets.BE_DOCKER_IMAGE_NAME_DEV }}
working-directory: backend/deploy

switch-new-container:
needs: deploy-new-container
runs-on: [ self-hosted, dev ]

steps:
- name: Pull Image And Restart Container
- name: Switch from old to new container
run: |
docker login -u ${{ secrets.BE_DOCKERHUB_USERNAME }} -p ${{ secrets.BE_DOCKERHUB_PASSWORD }}
docker stop ${{ secrets.BE_DOCKER_CONTAINER_NAME }} | true
docker rm ${{ secrets.BE_DOCKER_CONTAINER_NAME }} | true
docker image prune -a -f
docker pull ${{ secrets.BE_DOCKERHUB_USERNAME }}/${{ secrets.BE_DOCKER_IMAGE_NAME_DEV }}:${GITHUB_SHA::7}
docker run --name ${{ secrets.BE_DOCKER_CONTAINER_NAME }} -d -p 80:8080 -v /logs:/logs -e SPRING_PROFILES_ACTIVE=dev ${{ secrets.BE_DOCKERHUB_USERNAME }}/${{ secrets.BE_DOCKER_IMAGE_NAME_DEV }}:${GITHUB_SHA::7}
bash switch_blue_green_container.sh
working-directory: backend/deploy
4 changes: 4 additions & 0 deletions .github/workflows/backend-prod-ci-cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,10 @@ jobs:
- name: Set Application yml for prod
run: |
echo "${{ secrets.APPLICATION_PROPERTIES_PROD }}" > src/main/resources/application.properties
mkdir -p src/main/resources/fcm
echo '${{ secrets.FCM_SECRET_KEY }}' > src/main/resources/fcm/chongdaemarket-fcm-key.json
mkdir -p src/test/resources/fcm
echo '${{ secrets.FCM_SECRET_KEY }}' > src/test/resources/fcm/chongdaemarket-fcm-key.json
working-directory: ./backend

- name: Build with Gradle Wrapper
Expand Down
11 changes: 8 additions & 3 deletions android/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,12 @@ android {
applicationId = "com.zzang.chongdae"
minSdk = 26
targetSdk = 34
versionCode = 6
versionName = "1.1.4"
versionCode = 7
versionName = "1.2.0"

testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments["runnerBuilder"] = "de.mannodermaus.junit5.AndroidJUnit5Builder"
testInstrumentationRunnerArguments["runnerBuilder"] =
"de.mannodermaus.junit5.AndroidJUnit5Builder"
vectorDrawables {
useSupportLibrary = true
}
Expand Down Expand Up @@ -154,6 +155,7 @@ dependencies {
implementation(platform(libs.firebase.bom))
implementation(libs.firebase.analytics)
implementation(libs.firebase.crashlytics)
implementation(libs.firebase.message)

// 카카오 로그인
implementation(libs.kakao.sdk)
Expand All @@ -168,6 +170,9 @@ dependencies {
// Hilt
implementation(libs.hilt.android)
kapt(libs.hilt.compiler)

// Skeleton-UI
implementation(libs.shimmer)
}

kapt {
Expand Down
10 changes: 9 additions & 1 deletion android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,14 @@
android:usesCleartextTraffic="true"
tools:targetApi="33">

<service
android:name="com.zzang.chongdae.common.firebase.fcm.ChongdaeFirebaseMessagingService"
android:exported="true">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>

<activity
android:name=".presentation.view.login.LoginActivity"
android:exported="true"
Expand All @@ -35,7 +43,7 @@
</activity>

<activity
android:name=".presentation.view.MainActivity"
android:name=".presentation.view.main.MainActivity"
android:exported="true"
android:windowSoftInputMode="stateAlwaysHidden|adjustPan">

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.zzang.chongdae.auth.api

import com.zzang.chongdae.auth.dto.request.AccessTokenRequest
import com.zzang.chongdae.auth.dto.request.TokensRequest
import com.zzang.chongdae.auth.dto.response.MemberResponse
import retrofit2.Response
import retrofit2.http.Body
Expand All @@ -9,7 +9,7 @@ import retrofit2.http.POST
interface AuthApiService {
@POST("/auth/login/kakao")
suspend fun postLogin(
@Body accessToken: AccessTokenRequest,
@Body tokensRequest: TokensRequest,
): Response<MemberResponse>

@POST("/auth/refresh")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable

@Serializable
data class AccessTokenRequest(
data class TokensRequest(
@SerialName("accessToken") val accessToken: String,
@SerialName("fcmToken") val fcmToken: String,
)
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@ import com.zzang.chongdae.common.handler.DataError
import com.zzang.chongdae.common.handler.Result

interface AuthRepository {
suspend fun saveLogin(accessToken: String): Result<Member, DataError.Network>
suspend fun saveLogin(
accessToken: String,
fcmToken: String,
): Result<Member, DataError.Network>

suspend fun saveRefresh(): Result<Unit, DataError.Network>
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.zzang.chongdae.auth.repository

import com.zzang.chongdae.auth.dto.request.AccessTokenRequest
import com.zzang.chongdae.auth.dto.request.TokensRequest
import com.zzang.chongdae.auth.mapper.toDomain
import com.zzang.chongdae.auth.model.Member
import com.zzang.chongdae.auth.source.AuthRemoteDataSource
Expand All @@ -14,9 +14,12 @@ class AuthRepositoryImpl
constructor(
@AuthDataSourceQualifier private val authRemoteDataSource: AuthRemoteDataSource,
) : AuthRepository {
override suspend fun saveLogin(accessToken: String): Result<Member, DataError.Network> {
override suspend fun saveLogin(
accessToken: String,
fcmToken: String,
): Result<Member, DataError.Network> {
return authRemoteDataSource.saveLogin(
accessTokenRequest = AccessTokenRequest(accessToken),
tokensRequest = TokensRequest(accessToken, fcmToken),
).map { it.toDomain() }
}

Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package com.zzang.chongdae.auth.source

import com.zzang.chongdae.auth.dto.request.AccessTokenRequest
import com.zzang.chongdae.auth.dto.request.TokensRequest
import com.zzang.chongdae.auth.dto.response.MemberResponse
import com.zzang.chongdae.common.handler.DataError
import com.zzang.chongdae.common.handler.Result

interface AuthRemoteDataSource {
suspend fun saveLogin(accessTokenRequest: AccessTokenRequest): Result<MemberResponse, DataError.Network>
suspend fun saveLogin(tokensRequest: TokensRequest): Result<MemberResponse, DataError.Network>

suspend fun saveRefresh(): Result<Unit, DataError.Network>
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.zzang.chongdae.auth.source

import com.zzang.chongdae.auth.api.AuthApiService
import com.zzang.chongdae.auth.dto.request.AccessTokenRequest
import com.zzang.chongdae.auth.dto.request.TokensRequest
import com.zzang.chongdae.auth.dto.response.MemberResponse
import com.zzang.chongdae.common.handler.DataError
import com.zzang.chongdae.common.handler.Result
Expand All @@ -14,8 +14,8 @@ class AuthRemoteDataSourceImpl
constructor(
@AuthApiServiceQualifier private val service: AuthApiService,
) : AuthRemoteDataSource {
override suspend fun saveLogin(accessTokenRequest: AccessTokenRequest): Result<MemberResponse, DataError.Network> {
return safeApiCall { service.postLogin(accessTokenRequest) }
override suspend fun saveLogin(tokensRequest: TokensRequest): Result<MemberResponse, DataError.Network> {
return safeApiCall { service.postLogin(tokensRequest) }
}

override suspend fun saveRefresh(): Result<Unit, DataError.Network> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package com.zzang.chongdae.common.datastore

import androidx.datastore.core.DataStore
import androidx.datastore.preferences.core.Preferences
import androidx.datastore.preferences.core.booleanPreferencesKey
import androidx.datastore.preferences.core.edit
import androidx.datastore.preferences.core.intPreferencesKey
import androidx.datastore.preferences.core.longPreferencesKey
import androidx.datastore.preferences.core.stringPreferencesKey
import com.zzang.chongdae.di.annotations.DataStoreQualifier
Expand Down Expand Up @@ -35,6 +37,21 @@ class UserPreferencesDataStore
preferences[REFRESH_TOKEN_KEY]
}

val fcmTokenFlow: Flow<String?> =
dataStore.data.map { preferences ->
preferences[FCM_TOKEN_KEY]
}

val notificationActivateFlow: Flow<Boolean> =
dataStore.data.map { preferences ->
preferences[NOTIFICATION_ACTIVATE_KEY] ?: DEFAULT_NOTIFICATION_ACTIVATE
}

val notificationImportanceFlow: Flow<Int> =
dataStore.data.map { preferences ->
preferences[NOTIFICATION_IMPORTANCE_KEY] ?: DEFAULT_NOTIFICATION_IMPORTANCE
}

suspend fun saveMember(
memberId: Long,
nickName: String,
Expand All @@ -45,7 +62,7 @@ class UserPreferencesDataStore
}
}

suspend fun saveTokens(
suspend fun saveAccountTokens(
accessToken: String,
refreshToken: String,
) {
Expand All @@ -55,16 +72,39 @@ class UserPreferencesDataStore
}
}

suspend fun saveFcmToken(fcmToken: String) {
dataStore.edit { preferences ->
preferences[FCM_TOKEN_KEY] = fcmToken
}
}

suspend fun setNotificationActivate(activate: Boolean) {
dataStore.edit { preferences ->
preferences[NOTIFICATION_ACTIVATE_KEY] = activate
}
}

suspend fun setNotificationImportance(importance: Int) {
dataStore.edit { preferences ->
preferences[NOTIFICATION_IMPORTANCE_KEY] = importance
}
}

suspend fun removeAllData() {
dataStore.edit { preferences ->
preferences.clear()
}
}

companion object {
val MEMBER_ID_KEY = longPreferencesKey("member_id_key")
val NICKNAME_KEY = stringPreferencesKey("nickname_key")
val ACCESS_TOKEN_KEY = stringPreferencesKey("access_token_key")
val REFRESH_TOKEN_KEY = stringPreferencesKey("refresh_token_key")
private val MEMBER_ID_KEY = longPreferencesKey("member_id_key")
private val NICKNAME_KEY = stringPreferencesKey("nickname_key")
private val ACCESS_TOKEN_KEY = stringPreferencesKey("access_token_key")
private val REFRESH_TOKEN_KEY = stringPreferencesKey("refresh_token_key")
private val FCM_TOKEN_KEY = stringPreferencesKey("fcm_token_key")
private val NOTIFICATION_ACTIVATE_KEY = booleanPreferencesKey("notification_activate_key")
private val NOTIFICATION_IMPORTANCE_KEY = intPreferencesKey("notification_importance_key")
private const val DEFAULT_NOTIFICATION_ACTIVATE = true
private const val DEFAULT_NOTIFICATION_IMPORTANCE = 4
}
}
Loading