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

feat: 홈화면 API 연결 #74

Merged
merged 6 commits into from
Jul 24, 2024
Merged

feat: 홈화면 API 연결 #74

merged 6 commits into from
Jul 24, 2024

Conversation

Namyunsuk
Copy link
Contributor

📌 관련 이슈

close #12

✨ 작업 내용

홈 화면(공모목록)을 보여주는 기능 구현하였습니다.
공모 상태에 따라 다르게 보이도록 하였습니다.
상태바 색상도 흰생으로 변경하였습니다!

📚 기타

무한스크롤은 별도의 이슈로 진행할게요

KakaoTalk_Video_2024-07-24-21-33-37.mp4

@Namyunsuk Namyunsuk requested review from chaehyuns and songpink July 24, 2024 12:35
@Namyunsuk Namyunsuk self-assigned this Jul 24, 2024
Copy link
Contributor

@songpink songpink left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

크게 문제될 부분은 보이지 않았네요! ktlint가 통과되지 않을 것 같은데 CI에서 걸리면 린트 포맷 적용 부탁드립니다~ 😊

Comment on lines 8 to 13
class OfferingsRepositoryImpl(
private val offeringsDataSource: OfferingsDataSource,
) : OfferingsRepository {
override suspend fun fetchOfferings(
lastOfferingId: Long,
pageSize: Int
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ktlint가 걸리겠군요 ㅋㅋ pageSize: Int, 추가 부탁해요!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이상하게도 lintcheck와 CI는 통과하더라구요,,, 하하
그래도 붙이도록 신경쓸게요!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI가 왜 통과한건지 신기하네요?? 😲

Comment on lines 7 to 12
class OfferingsDataSourceImpl(
private val service: OfferingsApiService,
) : OfferingsDataSource {
override suspend fun fetchOfferings(
lastOfferingId: Long,
pageSize: Int
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

여기도 린트가 걸리겠어요!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

전체적으로 ./gradlew ktFormat 부탁해요~

Copy link
Contributor

@chaehyuns chaehyuns left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했어요~~ 수고했어요 서기~~~~~~~~~~~~~

@Namyunsuk Namyunsuk merged commit 71d556d into develop-AN Jul 24, 2024
2 checks passed
@Namyunsuk Namyunsuk deleted the feature/12-offerings branch July 24, 2024 13:29
chaehyuns added a commit that referenced this pull request Aug 9, 2024
* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* chore: 안드로이드 CI 파일 작성 (#63)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 필터링 오류 수정 (#243)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: 채현 <[email protected]>
Co-authored-by: alsong <[email protected]>
Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>
ChooSeoyeon added a commit that referenced this pull request Aug 22, 2024
* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: fromitive <[email protected]>
Co-authored-by: 채현 <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: alsong <[email protected]>
Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: chaehyun <[email protected]>
Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: fromitive <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>
ChooSeoyeon added a commit that referenced this pull request Aug 22, 2024
* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가



* feat: Member Entity 추가



* feat: Offering Entity 추가



* feat: OfferingMember Entity 추가



* feat: Comment Entity 추가



---------



* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가



* chore: springdoc 설정 추가



* feat: SwaggerConfig 파일 추가



* feat: 공모 상세 조회 API 문서화



---------



* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경



* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해


---------



* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정



* feat: 참여하기 API 구현



---------



* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)



* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현



* refactor: 공모 일정 조회 api 명세 변경



---------



* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------



* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------



* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------



* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현



* refactor: create를 save로 변경



* refactor: dto entity 매핑로직을 dto로 이동



* refactor: controller request 매개변수 명 컨벤션 적용



---------



* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화



* chore: github-action 스크립트 수정



* chore: CI/CD test 설정 추가



* chore: static/swagger-ui 폴더 추가



* chore: 설정 원상 복구



* chore: ci/cd 범위 수정



---------



* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)



* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현



* refactor: OG 태그 크롤링 API 엔드포인트 수정



---------



* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경



* refactor: 요청 필수 상태 설명 추가



---------



* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화



* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------




* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------



* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현



* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------




* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------



* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------




* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------




* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------



* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경



* refactor: 필터링 쿼리 수정



* feat: "참여가능만" 필터링 기능 구현



* feat: "참여가능만" 필터링 기능 연결



* fix: 쿼리 내 불필요한 파라미터 제거



* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외



* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------



* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정



* refactor: 소수점 둘째 자리에서 반올림하도록 변경



* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------



* feat: 총 모집 인원 수 최댓값 설정 (#361)



* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------




* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------



* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------




* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거




* test: 로그인 로직 변경




* test: MemberFixture 불필요한 함수 제거 및 통일




* refactor: 불필요한 정보 제거




* feat: 카카오 로그인 에러 핸들러 추가




* feat: 민감 정보 로깅에서 제외




---------





* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------



* chore: prod 불필요한 트리거 주석 처리 (#447)

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: fromitive <[email protected]>
Co-authored-by: 채현 <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: alsong <[email protected]>
Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: chaehyun <[email protected]>
Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: fromitive <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>
ChooSeoyeon added a commit that referenced this pull request Aug 22, 2024
* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가



* feat: Member Entity 추가



* feat: Offering Entity 추가



* feat: OfferingMember Entity 추가



* feat: Comment Entity 추가



---------



* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가



* chore: springdoc 설정 추가



* feat: SwaggerConfig 파일 추가



* feat: 공모 상세 조회 API 문서화



---------



* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경



* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해


---------



* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정



* feat: 참여하기 API 구현



---------



* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)



* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현



* refactor: 공모 일정 조회 api 명세 변경



---------



* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------



* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------



* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------



* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현



* refactor: create를 save로 변경



* refactor: dto entity 매핑로직을 dto로 이동



* refactor: controller request 매개변수 명 컨벤션 적용



---------



* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화



* chore: github-action 스크립트 수정



* chore: CI/CD test 설정 추가



* chore: static/swagger-ui 폴더 추가



* chore: 설정 원상 복구



* chore: ci/cd 범위 수정



---------



* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)



* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현



* refactor: OG 태그 크롤링 API 엔드포인트 수정



---------



* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경



* refactor: 요청 필수 상태 설명 추가



---------



* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화



* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------




* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------



* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현



* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------




* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------



* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------




* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------




* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------



* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경



* refactor: 필터링 쿼리 수정



* feat: "참여가능만" 필터링 기능 구현



* feat: "참여가능만" 필터링 기능 연결



* fix: 쿼리 내 불필요한 파라미터 제거



* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외



* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------



* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정



* refactor: 소수점 둘째 자리에서 반올림하도록 변경



* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------



* feat: 총 모집 인원 수 최댓값 설정 (#361)



* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------




* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------



* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------




* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거




* test: 로그인 로직 변경




* test: MemberFixture 불필요한 함수 제거 및 통일




* refactor: 불필요한 정보 제거




* feat: 카카오 로그인 에러 핸들러 추가




* feat: 민감 정보 로깅에서 제외




---------





* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------



* chore: prod 불필요한 트리거 주석 처리 (#447)

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: fromitive <[email protected]>
Co-authored-by: 채현 <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: alsong <[email protected]>
Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: chaehyun <[email protected]>
Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: fromitive <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>
ChooSeoyeon added a commit that referenced this pull request Sep 11, 2024
* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* chore: 안드로이드 CI 파일 작성 (#63)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 필터링 오류 수정 (#243)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* v1.1.0 (#448)

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (…
ChooSeoyeon added a commit that referenced this pull request Sep 11, 2024
* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* feat: 댓글 목록 조회 API 구현 (#66)

* feat: 댓글방 목록 조회 API 구현 (#70)

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* chore: 더미 데이터 바로가기 url 수정 (#93)

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* chore: 더미 데이터 시간 변경 (#100)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* test: 테스트 데이터 수정 (#330)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

* v1.1.0 (#448)

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러…
ChooSeoyeon added a commit that referenced this pull request Sep 30, 2024
* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* chore: 안드로이드 CI 파일 작성 (#63)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 필터링 오류 수정 (#243)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* feat: 안드로이드 CD 구축 (#415)

* feat: 안드로이드 CD 구축

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* chore: 버전 변경

* chore: 버전 변경

* feat: 비공개테스트 트랙으로 변경

* feat: 비공개테스트 트랙으로 변경

* chore: 버전 변경

* feat: release로 시작하는 branch에서만 CD 작업

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: 채현 <[email protected]>

* feat: 키보드 이벤트 감지 기능 수정 (#463)

* feat: 이미지 로딩 기능 복원 (#465)

* fix: 공모 제목 및 가격 줄바꿈, 말줄임 되도록 수정 (#466)

* refactor: 홈 화면 UX개선 (#473)

* refactor: 필터 텍스트 크기 수정

* refactor: 검색 결과가 없을 시 텍스트를 통해 명시적으로 알려주도록 수정

* refactor: 검색창에 지우기 버튼 만들기

- 클릭 시 검색 텍스트 지워짐 + 전체 공모 보여지는 초기화면보여주도록

* build: SwipeRefreshLayout의존성 추가

* feat: 하단으로 스와이프 시 새로고침 되는 기능 구현

* refactor: 검색창 문구 변경

* refactor: 채팅 UX 개선 (#479)

* feat: 나의 채팅 글자 크기 조정

* feat: 채팅 전송 사이즈 변경

* feat: 토큰 리프레시가 제대로 이루어지지 않는 오류 수정 (#480)

* fix: Access Token Refresh가 실패하면 이후 로직 처리

* style: ktFormat 적용

* refactor: 필요 없어진 코드 제거

* chore: 필요 없는 주석 제거

* feat: 공모글 작성 시 이전 날짜 선택 불가하도록 수정, Calendar 방식으로 DatePicker를 변경 (#481)

* feat: Date Picker를 달력 형태로 변경

* feat: 현재보다 이전 날짜는 선택할 수 없도록 제한하는 기능 구현

* feat: 멀티 모듈화를 위한 패키지 분리 (#491)

* feat: local 과 remote mapper 분리

* fix: 잘못 import된 코드 수정

* feat: local 및 remote 패키지 분리

* fix: 잘못된 import코드 수정

* feat: common 패키지 생성 및 변경

* feat: auth 패키지 분리

* style: ktlint 적용

* feat: remote 와 local 패키지 data로 이동

* style: ktlint 적용

* feat: error handler 관련 로직 common으로 이동

* refactor: 잘못된 의존성 관계 변경

* feat: DataStore을 common 패키지로 변경

* feat: build.gradle 중복 로직 수정 및 version catalog를 통한 관리

* fix: build 오류 수정

---------

Co-authored-by: Namyunsuk <[email protected]>

* refactor: 의존성 주입 라이브러리(Hilt) 적용 (#500)

* feat: Hilt 의존성 추가

* feat: Auth, CommentRooms Hilt 적용

* feat: Data Store Hilt 적용

* style: ktFormat 적용

* feat: OfferingWrite Hilt 적용

* feat: CommentDetail Hilt 적용

* feat: Participant Hilt 적용

* feat: Assisted Inject 구현

* feat: OfferingDetail Hilt 적용

* feat: ktFormat 적용

* chore: gradle에서 hilt 버전 수정

* refactor: 불필요한 코드 제거

* chore: 중복된 의존성 제거 및 정리

* feat: (빠트린것) MyPageViewModel에 Hilt 적용

* feat: (빠트린것) OfferingDao에도 Hilt 적용

* refactor: 뷰모델 팩토리 제공 함수들 제거

* chore: 안드로이드 버전 v1.1.2로 변경 (#512)

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: 채현 <[email protected]>
Co-authored-by: alsong <[email protected]>
Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>
ChooSeoyeon added a commit that referenced this pull request Oct 11, 2024
* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* chore: 안드로이드 CI 파일 작성 (#63)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 필터링 오류 수정 (#243)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* v1.1.0 (#448)

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (…
ChooSeoyeon pushed a commit that referenced this pull request Oct 11, 2024
* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용
ChooSeoyeon added a commit that referenced this pull request Oct 11, 2024
* feat: 안드로이드 프로젝트 구조 기초 세팅 (#2)

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* chore: 안드로이드 CI 파일 작성 (#63)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 필터링 오류 수정 (#243)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* feat: 안드로이드 CD 구축 (#415)

* feat: 안드로이드 CD 구축

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* chore: 버전 변경

* chore: 버전 변경

* feat: 비공개테스트 트랙으로 변경

* feat: 비공개테스트 트랙으로 변경

* chore: 버전 변경

* feat: release로 시작하는 branch에서만 CD 작업

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: 채현 <[email protected]>

* feat: 키보드 이벤트 감지 기능 수정 (#463)

* feat: 이미지 로딩 기능 복원 (#465)

* fix: 공모 제목 및 가격 줄바꿈, 말줄임 되도록 수정 (#466)

* refactor: 홈 화면 UX개선 (#473)

* refactor: 필터 텍스트 크기 수정

* refactor: 검색 결과가 없을 시 텍스트를 통해 명시적으로 알려주도록 수정

* refactor: 검색창에 지우기 버튼 만들기

- 클릭 시 검색 텍스트 지워짐 + 전체 공모 보여지는 초기화면보여주도록

* build: SwipeRefreshLayout의존성 추가

* feat: 하단으로 스와이프 시 새로고침 되는 기능 구현

* refactor: 검색창 문구 변경

* refactor: 채팅 UX 개선 (#479)

* feat: 나의 채팅 글자 크기 조정

* feat: 채팅 전송 사이즈 변경

* feat: 토큰 리프레시가 제대로 이루어지지 않는 오류 수정 (#480)

* fix: Access Token Refresh가 실패하면 이후 로직 처리

* style: ktFormat 적용

* refactor: 필요 없어진 코드 제거

* chore: 필요 없는 주석 제거

* feat: 공모글 작성 시 이전 날짜 선택 불가하도록 수정, Calendar 방식으로 DatePicker를 변경 (#481)

* feat: Date Picker를 달력 형태로 변경

* feat: 현재보다 이전 날짜는 선택할 수 없도록 제한하는 기능 구현

* feat: 멀티 모듈화를 위한 패키지 분리 (#491)

* feat: local 과 remote mapper 분리

* fix: 잘못 import된 코드 수정

* feat: local 및 remote 패키지 분리

* fix: 잘못된 import코드 수정

* feat: common 패키지 생성 및 변경

* feat: auth 패키지 분리

* style: ktlint 적용

* feat: remote 와 local 패키지 data로 이동

* style: ktlint 적용

* feat: error handler 관련 로직 common으로 이동

* refactor: 잘못된 의존성 관계 변경

* feat: DataStore을 common 패키지로 변경

* feat: build.gradle 중복 로직 수정 및 version catalog를 통한 관리

* fix: build 오류 수정

---------

Co-authored-by: Namyunsuk <[email protected]>

* refactor: 의존성 주입 라이브러리(Hilt) 적용 (#500)

* feat: Hilt 의존성 추가

* feat: Auth, CommentRooms Hilt 적용

* feat: Data Store Hilt 적용

* style: ktFormat 적용

* feat: OfferingWrite Hilt 적용

* feat: CommentDetail Hilt 적용

* feat: Participant Hilt 적용

* feat: Assisted Inject 구현

* feat: OfferingDetail Hilt 적용

* feat: ktFormat 적용

* chore: gradle에서 hilt 버전 수정

* refactor: 불필요한 코드 제거

* chore: 중복된 의존성 제거 및 정리

* feat: (빠트린것) MyPageViewModel에 Hilt 적용

* feat: (빠트린것) OfferingDao에도 Hilt 적용

* refactor: 뷰모델 팩토리 제공 함수들 제거

---------

Co-authored-by: 채현 <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: alsong <[email protected]>
Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>
ChooSeoyeon pushed a commit that referenced this pull request Oct 11, 2024
* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용
ChooSeoyeon added a commit that referenced this pull request Oct 11, 2024
* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

* merge: v1.1.0 to develop-BE

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가



* feat: Member Entity 추가



* feat: Offering Entity 추가



* feat: OfferingMember Entity 추가



* feat: Comment Entity 추가



---------



* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가



* chore: springdoc 설정 추가



* feat: SwaggerConfig 파일 추가



* feat: 공모 상세 조회 API 문서화



---------



* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경



* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해


---------



* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정



* feat: 참여하기 API 구현



---------



* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)



* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현



* refactor: 공모 일정 조회 api 명세 변경



---------



* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------



* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------



* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------



* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현



* refactor: create를 save로 변경



* refactor: dto entity 매핑로직을 dto로 이동



* refactor: controller request 매개변수 명 컨벤션 적용



---------



* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화



* chore: github-action 스크립트 수정



* chore: CI/CD test 설정 추가



* chore: static/swagger-ui 폴더 추가



* chore: 설정 원상 복구



* chore: ci/cd 범위 수정



---------



* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)



* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현



* refactor: OG 태그 크롤링 API 엔드포인트 수정



---------



* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경



* refactor: 요청 필수 상태 설명 추가



---------



* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화



* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------




* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------



* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현



* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------




* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------



* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------




* refactor: 마감임박순 필터링 …
fromitive added a commit that referenced this pull request Oct 18, 2024
* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

* merge: v1.1.0 to develop-BE

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가



* feat: Member Entity 추가



* feat: Offering Entity 추가



* feat: OfferingMember Entity 추가



* feat: Comment Entity 추가



---------



* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가



* chore: springdoc 설정 추가



* feat: SwaggerConfig 파일 추가



* feat: 공모 상세 조회 API 문서화



---------



* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경



* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해


---------



* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정



* feat: 참여하기 API 구현



---------



* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)



* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현



* refactor: 공모 일정 조회 api 명세 변경



---------



* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------



* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------



* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------



* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현



* refactor: create를 save로 변경



* refactor: dto entity 매핑로직을 dto로 이동



* refactor: controller request 매개변수 명 컨벤션 적용



---------



* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화



* chore: github-action 스크립트 수정



* chore: CI/CD test 설정 추가



* chore: static/swagger-ui 폴더 추가



* chore: 설정 원상 복구



* chore: ci/cd 범위 수정



---------



* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)



* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현



* refactor: OG 태그 크롤링 API 엔드포인트 수정



---------



* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경



* refactor: 요청 필수 상태 설명 추가



---------



* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화



* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------




* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------



* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현



* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------




* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------



* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------




* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 …
ChooSeoyeon added a commit that referenced this pull request Oct 23, 2024
* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

* merge: v1.1.0 to develop-BE

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가



* feat: Member Entity 추가



* feat: Offering Entity 추가



* feat: OfferingMember Entity 추가



* feat: Comment Entity 추가



---------



* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가



* chore: springdoc 설정 추가



* feat: SwaggerConfig 파일 추가



* feat: 공모 상세 조회 API 문서화



---------



* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경



* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해


---------



* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정



* feat: 참여하기 API 구현



---------



* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)



* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현



* refactor: 공모 일정 조회 api 명세 변경



---------



* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------



* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------



* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------



* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현



* refactor: create를 save로 변경



* refactor: dto entity 매핑로직을 dto로 이동



* refactor: controller request 매개변수 명 컨벤션 적용



---------



* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화



* chore: github-action 스크립트 수정



* chore: CI/CD test 설정 추가



* chore: static/swagger-ui 폴더 추가



* chore: 설정 원상 복구



* chore: ci/cd 범위 수정



---------



* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)



* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현



* refactor: OG 태그 크롤링 API 엔드포인트 수정



---------



* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경



* refactor: 요청 필수 상태 설명 추가



---------



* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화



* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------




* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------



* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현



* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------




* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------



* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------




* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------




* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------



* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (…
fromitive added a commit that referenced this pull request Oct 24, 2024
* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

* merge: v1.1.0 to develop-BE

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가



* feat: Member Entity 추가



* feat: Offering Entity 추가



* feat: OfferingMember Entity 추가



* feat: Comment Entity 추가



---------



* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가



* chore: springdoc 설정 추가



* feat: SwaggerConfig 파일 추가



* feat: 공모 상세 조회 API 문서화



---------



* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경



* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해


---------



* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정



* feat: 참여하기 API 구현



---------



* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)



* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현



* refactor: 공모 일정 조회 api 명세 변경



---------



* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------



* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------



* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------



* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현



* refactor: create를 save로 변경



* refactor: dto entity 매핑로직을 dto로 이동



* refactor: controller request 매개변수 명 컨벤션 적용



---------



* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화



* chore: github-action 스크립트 수정



* chore: CI/CD test 설정 추가



* chore: static/swagger-ui 폴더 추가



* chore: 설정 원상 복구



* chore: ci/cd 범위 수정



---------



* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)



* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현



* refactor: OG 태그 크롤링 API 엔드포인트 수정



---------



* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경



* refactor: 요청 필수 상태 설명 추가



---------



* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화



* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------




* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------



* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현



* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------




* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------



* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------




* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------




* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------



* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refac…
fromitive added a commit that referenced this pull request Nov 28, 2024
* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* feat: 댓글 목록 조회 API 구현 (#66)

* feat: 댓글방 목록 조회 API 구현 (#70)

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* chore: 더미 데이터 바로가기 url 수정 (#93)

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* chore: 더미 데이터 시간 변경 (#100)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* test: 테스트 데이터 수정 (#330)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

* v1.1.0 (#448)

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 에러…
fromitive added a commit that referenced this pull request Nov 28, 2024
* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* chore: 안드로이드 CI 파일 작성 (#63)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 필터링 오류 수정 (#243)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* feat: 댓글방 참여자 확인 API 연결 (#401)

* feat: 참가자 정보를 가져오는 api service 구현

* refactor: 필요없는 코드 삭제

* feat: 참여 관리 datasource 구현

* feat: 참여자 domain 모델 구현

* feat: 참여를 관리하는 repository 구현

* feat: 참여자 목록을 보여주는 recycler view 연결 및 구현

* refactor: 더보기 버튼 수정

* feat: 필요없는 리소스 파일 삭제 및 상태 기본 이미지 변경

* refactor: 약속 장소 및 시간 ui model 을 사용하여 관리

* refactor: 댓글방의 정보를 불러오는 로직 ui model을 사용하여 관리

* refactor: ui model 변환 로직 변경

* feat: 공동구매 참여 인원 확인 기능 구현

* feat: 신고하기 폼 연결 구현

* test: 코드 변경에 따른 테스트 코드 수정

* style: ktlint 적용

* refactor: xml id 추가

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* feat: CallApiHandler 구현 (#403)

* feat: CallApiHandler 구현

* refactor: CommentRoomsDataSource 수정

* feat: CommentRemoteDataSourceImpl 에러핸들링을 통해 수정

* feat: 에러 핸들링에 따른 DataSource 리팩토링
- OfferingDetailDataSource
- OfferingRemoteDataSource

* feat: ParticipantRemoteDataSourceImpl 에러핸들링을 통해 수정

* style: ktlint 적용

* refactor: AuthRemoteDataSource 수정

* feat: Result의 map 과 getOrThrow 함수 생성

* feat: 에러 핸들링에 따른 Repository 리팩토링
- OfferingDetailRepository
- OfferingRepository

* refactor: Result 변경에 따른 레포지토리 수정 (AuthRepository, CommentRoomsRepository)

* feat: 에러 핸들링에 따른 CommentDetailRepository 리팩토링

* feat: 에러 핸들링에 따른 ParticipantRepository 리팩토링

* feat: 에러 핸들링에 따른 viewmodel 리팩토링
- OfferingViewModel
- OfferingDetailViewModel

* refactor: 에러 핸들링에 따른 LoginViewModel 리팩토링

* refactor: 에러 핸들링에 따른 CommentRoomsViewModel 리팩토링

* refactor: 토큰 리프레쉬 후 다시 함수 호출하도록 추가

* feat: 에러 핸들링에 따른 CommentDetailViewModel 리팩토링

* refactor: 에러 핸들링에 따른 OfferingWriteViewModel 리팩토링

* refactor: 공모 목록 토큰 리프래시 적용

* fix: 잘못된 코드 수정

* refactor: 필요없는 주석 제거

* refactor: 공모 목록 리팩토링

* fix: 리빌드시 쿠키가 제대로 저장되지 않는 현상 수정

* refactor: 필요없는 코드 삭제 및 상수화 추가

* test: 에러핸들링에 따른 FakeAuthRepository, OfferingWriteViewModelTest 수정

* refactor: ktFormat 적용

* test: 코드 변경에 따른 Fake Repository 변경

* test: CommentDetailViewModelTest 코드 수정

* style: ktlint 적용

* refactor: 가독성 개선(에러 로그 함수명 추가, Success가 Error보다 위에 나오도록 수정)

* refactor: 불필요한 로그 제거

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 람다 넘겨주는 방식 수정

* style: lint 적용

* test: 테스트코드 수정

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: Namyunsuk <[email protected]>

* feat: proguard를 사용한 난독화 적용 (#413)

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* v1.1.0 (#448)

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* �feat: API 스펙 변경에 따른 대응 (#364)

* feat: 댓글 목록 조회 api 스펙 변경에 따른 대응

* feat: 댓글방 정보 조회 api 스펙 변경에 따른 대응

* feat: 공모 일정 조회 api 스펙 변경에 따른 대응

* feat: 댓글 상태 변경 api 스펙 변경에 따른 대응

* test: api 스펙 변경에 따른 test 코드 변경

* style: ktlint 적용

* feat: remote dto package 분리

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* feat: Access Token, Refresh Token을 data store에 저장하는 기능 구현 (#372)

* feat: 앱 재시작 시 토큰을 데이터스토어에서 꺼내 사용하는 기능 구현

* feat: 로그인이 이미 되어있다면 로그인 화면을 건너뛰는 기능 구현

* feat: 로그아웃 기능 구현

* fix: 마이페이지 화면으로 넘어가면 바텀네비게이션이 사라지는 버그 수정

* fix: 데이터스토어에서 토큰이 꺼내지지 않는 버그 수정

data store에서 토큰을 꺼내는 코루틴 비동기 작업이 끝나기 전에 함수를 종료해 버려서 생기는 버그였습니다.

* refactor: ktFormat 적용

* refactor: startActivity 함수를 LoginActivity가 동반객체로 갖고 있도록 변경

* refactor: 함수명과 event명 변경

추가로 GA위치가 조금 잘못된 점이 있어서 수정했습니다.

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 목록에서 동을 보여주는 기능 구현 (…
fromitive added a commit that referenced this pull request Dec 19, 2024
* fix: 필터링 오류 수정 (#243)

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* refactor: 이미지 업로드 메서드 시그니처 번경

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* refactor: 이미지 업로드 메서드 시그니처 번경

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: proguard를 사용한 난독화 적용 (#413)

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 안드로이드 CD 구축 (#415)

* feat: 안드로이드 CD 구축

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* chore: 버전 변경

* chore: 버전 변경

* feat: 비공개테스트 트랙으로 변경

* feat: 비공개테스트 트랙으로 변경

* chore: 버전 변경

* feat: release로 시작하는 branch에서만 CD 작업

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: 채현 <[email protected]>

* feat: 키보드 이벤트 감지 기능 수정 (#463)

* feat: 이미지 로딩 기능 복원 (#465)

* fix: 공모 제목 및 가격 줄바꿈, 말줄임 되도록 수정 (#466)

* refactor: 홈 화면 UX개선 (#473)

* refactor: 필터 텍스트 크기 수정

* refactor: 검색 결과가 없을 시 텍스트를 통해 명시적으로 알려주도록 수정

* refactor: 검색창에 지우기 버튼 만들기

- 클릭 시 검색 텍스트 지워짐 + 전체 공모 보여지는 초기화면보여주도록

* build: SwipeRefreshLayout의존성 추가

* feat: 하단으로 스와이프 시 새로고침 되는 기능 구현

* refactor: 검색창 문구 변경

* refactor: 채팅 UX 개선 (#479)

* feat: 나의 채팅 글자 크기 조정

* feat: 채팅 전송 사이즈 변경

* feat: 토큰 리프레시가 제대로 이루어지지 않는 오류 수정 (#480)

* fix: Access Token Refresh가 실패하면 이후 로직 처리

* style: ktFormat 적용

* refactor: 필요 없어진 코드 제거

* chore: 필요 없는 주석 제거

* feat: 공모글 작성 시 이전 날짜 선택 불가하도록 수정, Calendar 방식으로 DatePicker를 변경 (#481)

* feat: Date Picker를 달력 형태로 변경

* feat: 현재보다 이전 날짜는 선택할 수 없도록 제한하는 기능 구현

* hotfix: og 크롤링 정상 작동 시 http https 프로토콜 정보 제거 (#459)

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* feat: 댓글 목록 조회 API 구현 (#66)

* feat: 댓글방 목록 조회 API 구현 (#70)

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* chore: 더미 데이터 바로가기 url 수정 (#93)

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* chore: 더미 데이터 시간 변경 (#100)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* test: 테스트 데이터 수정 (#330)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

* v1.1.0 (#448)

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store…
fromitive added a commit that referenced this pull request Dec 19, 2024
* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* refactor: 이미지 업로드 메서드 시그니처 번경

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* refactor: 이미지 업로드 메서드 시그니처 번경

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

* fix: 필터 오류 수정 (#362)

* fix: 필터 오류 수정

- '참여가능만'필터 분기처리 제거

* chore: 주석 제거

* refactor: 이미지 업로드 메서드 시그니처 번경

* fix: 공모 작성 후 홈화면 돌아올 때 새로 작성한 글이 보이지 않는 오류 수정 (#369)

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 공모 상세 화면 추가 기능 반영 (#375)

* feat: 신고하기 기능 구현

* feat: 물품 링크가 없으면 보여지지 않도록 구현

* refactor: 마감 시간에서 거래 날짜로 리팩토링

* feat: 이미 참여한 공모게시글에서 채팅방으로 이동하는 기능 구현

* fix: 댓글방 목록의 마지막 댓글방이 보이지 않는 문제 수정 (#376)

* fix: 리사이클러뷰 레이아웃의 크기가 화면 밖에 벗어나지 않도록 수정

* fix: 리사이클러뷰 레이아웃의 맨 밑에 구분선 하나 추가

아래로 땡겼을 때 구분선이 사라져버리는게 보기 안좋아서 추가했습니다

* refactor: 코트 포맷 적용 (컨트롤 알트 L)

* refactor: 홈화면 api필드 추가에 따른 대응 (#381)

* refactor: dto필드 추가

* fix: 상태 변경 오류 해결

* fix: 필터 선택 또는 검색상태일 때 공모 작성 후 나오면 목록 안보이는 오류 수정

* refactor: 세부 주소 api에서 받아오도록 변경

* style: lint적용

* feat: 공모 목록에서 동을 보여주는 기능 구현 (#386)

* refactor: 상태변경 리팩토링 (#389)

* refactor: 공모 상세 조회 api변경 대응

* refactor: 공모 상태 변경 리팩토링

* refactor: 리팩토링에 따른 테스트 수정

* chore: 불필요한 로그 제거

* fix: 댓글 입력 후 뒤로가기 시 최근 댓글이 반영되도록 수정 (#397)

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 댓글방 공동구매 나가기 API 연결 (#402)

* feat: 공동구매 나가기 기능 api service 구현

* feat: 공동구매 나가기 기능 data source 구현

* feat: 공동구매 나가기 기능 repository 구현

* feat: 공동구매 나가기 기능 연결

* style:ktlint 적용

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: proguard를 사용한 난독화 적용 (#413)

* �fix: 공구 상세 페이지 오류 해결 (#417)

* fix: 바로가기 클릭되지 않는 오류 수정

* refactor: 주소 표시할 때 최대 2줄까지 그리고 넘어갈 시 말줄임 나오도록 수정

* refactor: 공모 목록, 공모 상세 에러 핸들링 (#418)

* refactor: 공모 목록에서 401에러를 제외하고는 에러코드 올 시 빈화면 보여주도록 에러핸들링 수정

* refactor: 필터및 업데이트된 공모 목록 가져오는 로직 에러핸들링 수정

- 400: 토스트 메시지 띄어줌
- 401: refresh
- 그외에는 로그로 에러 코드를 보여줌

* refactor: strings네이밍 통일

* refactor: 공모 상세 에러 핸들링 수정

* refactor: strings정리

- offering_detail부분 정리

* feat: 로그인 api 변경 반영 (#426)

* feat: 카카오 로그인 후 총대마켓 서버로 email을 보내던 방식에서 카카오 access token을 보내는 방식으로 변경

* feat: login과 signup을 하나로 api로 통합된 것 반영

* refactor: ktFormat 적용

* refactor: 테스트코드 수정

* refactor: 에러 핸들링 리팩토링 (#436)

* feat: 리프레시 토큰 만료 시 데이터스토어를 비우고 로그인 화면으로 이동하는 기능 구현 (#438)

* feat: 댓글방 에러 헨들링 (#439)

* refactor: refresh시 401이 오는 경우에 대한 에러핸들링 추가 (#441)

* chore: 버전 업데이트 (#443)

* refactor: 이미지 업로드 메서드 시그니처 번경

* feat: 안드로이드 CD 구축 (#415)

* feat: 안드로이드 CD 구축

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* feat: 테스트

* chore: 버전 변경

* chore: 버전 변경

* feat: 비공개테스트 트랙으로 변경

* feat: 비공개테스트 트랙으로 변경

* chore: 버전 변경

* feat: release로 시작하는 branch에서만 CD 작업

---------

Co-authored-by: chaehyun <[email protected]>
Co-authored-by: 채현 <[email protected]>

* feat: 키보드 이벤트 감지 기능 수정 (#463)

* feat: 이미지 로딩 기능 복원 (#465)

* fix: 공모 제목 및 가격 줄바꿈, 말줄임 되도록 수정 (#466)

* refactor: 홈 화면 UX개선 (#473)

* refactor: 필터 텍스트 크기 수정

* refactor: 검색 결과가 없을 시 텍스트를 통해 명시적으로 알려주도록 수정

* refactor: 검색창에 지우기 버튼 만들기

- 클릭 시 검색 텍스트 지워짐 + 전체 공모 보여지는 초기화면보여주도록

* build: SwipeRefreshLayout의존성 추가

* feat: 하단으로 스와이프 시 새로고침 되는 기능 구현

* refactor: 검색창 문구 변경

* refactor: 채팅 UX 개선 (#479)

* feat: 나의 채팅 글자 크기 조정

* feat: 채팅 전송 사이즈 변경

* feat: 토큰 리프레시가 제대로 이루어지지 않는 오류 수정 (#480)

* fix: Access Token Refresh가 실패하면 이후 로직 처리

* style: ktFormat 적용

* refactor: 필요 없어진 코드 제거

* chore: 필요 없는 주석 제거

* feat: 공모글 작성 시 이전 날짜 선택 불가하도록 수정, Calendar 방식으로 DatePicker를 변경 (#481)

* feat: Date Picker를 달력 형태로 변경

* feat: 현재보다 이전 날짜는 선택할 수 없도록 제한하는 기능 구현

* hotfix: og 크롤링 정상 작동 시 http https 프로토콜 정보 제거 (#459)

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* feat: 댓글 목록 조회 API 구현 (#66)

* feat: 댓글방 목록 조회 API 구현 (#70)

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* chore: 더미 데이터 바로가기 url 수정 (#93)

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* chore: 더미 데이터 시간 변경 (#100)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* test: 테스트 데이터 수정 (#330)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* refactor: 공모글 목록 조회 필터링 수정 및 추가 (#356)

* refactor: 마감임박순 필터링 이름 마감임박만으로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 필터링 쿼리 수정

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 구현

Co-authored-by: fromitive <[email protected]>

* feat: "참여가능만" 필터링 기능 연결

Co-authored-by: fromitive <[email protected]>

* fix: 쿼리 내 불필요한 파라미터 제거

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율이 null일 경우 높은할인율 필터링 대상에서 제외

Co-authored-by: fromitive <[email protected]>

* feat: 참여가능만 필터링 전략 클래스 추가

* feat: 공모 목록 조회 API 응답값 변경

* fix: 높은 할인율 단위 변경 및 last-id 필터링 로직 수정

* style: 주석 제거

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 할인율 계산 로직 수정 (#359)

* refactor: 할인율 계산 로직 수정

Co-authored-by: fromitive <[email protected]>

* refactor: 소수점 둘째 자리에서 반올림하도록 변경

Co-authored-by: fromitive <[email protected]>

* test: 할인율 계산 로직

* fix: 할인율 단위 백분율로 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: 총 모집 인원 수 최댓값 설정 (#361)

Co-authored-by: fromitive <[email protected]>

* feat: 자동 확정 기능을 위해 스케줄러 적용 (#363)

* chore: todo 추가 및 메서드명 변경

* feat: Scheduled 어노테이션 추가 및 Scheduler 분리

* test: ServiceTest 환경 구축

* feat: offeringStatus 변경 로직 추가

* refactor: 수동 확정 로직 추가 및 코드 스타일 수정

* refactor: 자동 확정 로직을 조회에서 Scheduled로 이동

* fix: 마감임박 설정 기준 내일로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: SCY <[email protected]>

* feat: isManualConfirmed 제거 및 도메인 로직 확인 (#377)

* refactor: isManualConfirmed 칼럼 삭제 및 관련 로직 분리

* refactor: 더미 데이터 수정

---------

Co-authored-by: fromitive <[email protected]>

* feat: API 별 권한 확인 로직 추가 (#371)

* feat: 권한 확인 로직 추가

* feat: 인증 필터 적용

* refactor: 더미 데이터 칼럼 위치 변경 (#382)

* fix: API 문서에 접근할 수 없는 현상 해결 (#384)

* fix: API 문서에 접근할 수 없는 현상 해결

* style: 신뢰할 수 있는 URL 개행 수정

* feat: 공모 단건 조회 API 구현 (#388)

* feat: 공모 상세 조회 API 엔드포인트 변경

* feat: 공모 단건 조회 API

* style: 공모 관련 API 순서 변경

* test: 불필요한 공모글 생성 코드 제거

* test: 공모 단건 조회 서비스 테스트

* chore: JAR 파일에 OAS 파일 누락되는 이슈 해결 및 중복 task 제거 (#391)

* chore: 중복되는 task 제거

* chore: cicd 범위 조정

* fix: 참여자 목록 조회 API에서 totalCount 반환하지 않는 이슈 해결 (#400)

* fix: /auth/refresh endpoint accessToken 검증 예외 추가 (#407)

* refactor: 더미 데이터 정합성 확보 (#406)

* refactor: 더미 데이터 정합성 확보

* refactor: 추가된 칼럼 반영

* chore: 환경에 따른 yml 파일 분리  (#411)

* chore: 환경 별로 yml 파일 분리

* chore: 불필요한 yml 설정 제거

* feat: 카카오 로그인 중 사용자 정보 확인 로직을 안드로이드에서 백엔드로 이관 (#404)

* feat: 카카오 로그인 API 구현

* feat: providerId를 loginId로 수정

* feat: 소셜 로그인 시 랜덤 생성된 비밀번호 사용

* refactor: 불필요한 api 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: 로그인 로직 변경

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>

* test: MemberFixture 불필요한 함수 제거 및 통일

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* refactor: 불필요한 정보 제거

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 카카오 로그인 에러 핸들러 추가

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

* feat: 민감 정보 로깅에서 제외

Co-authored-by: fromitive <[email protected]>
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>
Co-authored-by: SCY <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: cookie 관련 예외 처리 (#409)

* refactor: 더미 데이터 http 추가 (#422)

* fix: 더미데이터 정합성 맞추기 (#425)

* feat: 로깅 시 UUID가 아닌 회원 번호가 기록되도록 변경 (#428)

* feat: logging 시 memberId가 나오도록 기능 추가

* feat: logging 시 memberId 및 identifier가 함께 나오도록 변경

* refactor: lombok getter 적용

* feat: Spring Timezone KST로 설정 (#430)

* chore: Dockerfile 타임존 변경 (#432)

* fix: Offering 목록 조회 시 NPE 해결 (#434)

* refactor: 외래키 필드 notnull 조건 추가 (#445)

* chore: prod CI/CD 구축 (#423)

* chore: 환경 별로 yml 파일 분리

* chore: 운영 서버 CI/CD 스크립트 작성

* chore: 운영 환경 내 swagger 문서 제거

* chore: 운영 환경 포트포워딩 명령어 제거

* chore: prod ci/cd 스크립트 트리거 추가

* chore: prod ci/cd 스크립트 트리거 변경

* chore: prod ci/cd 스크립트 트리거 path 구체화

* chore: prod ci/cd 스크립트 docker 실행 명령어 오타 수정

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev 및 prod ci/cd 스크립트 data.sql 실행 비활성화

* chore: prod ci/cd 스크립트 path 롤백

* chore: dev script test

---------

Co-authored-by: Choo <[email protected]>

* chore: prod 불필요한 트리거 주석 처리 (#447)

* v1.1.0 (#448)

* feat: 게시글 상세 화면 구현 (#8)

* feat: 게시글 상세 화면 레이아웃 작성

* feat: Data layer코드 작성

* refactor: dto패키지 분리, dto에 serialName추가

* refactor: 도메인 모델 수정

- 가변에서 불변으로 변경
- 사용하지 않는 메서드 제거

* refactor: 공통으로 사용되거나 사용될 수 있는 확장함수를 별도의 파일로 분리

* style: lint 적용

* refactor: 메서드명 컨벤션 적용

* refactor: request Dto에 SerialName적용

* refactor: 메서드명 수정

* feat: 도메인 추가 (#15)

* feat: BaseTimeEntity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Member Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Offering Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: OfferingMember Entity 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: Comment Entity 추가

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: BottomNavigation 구현 (#16)

* chore: jetpack navigation 라이브러리 추가

* feat: 필요한 바텀 네비게이션 리소스 추가

* feat: bottom navigation fragment 추가

* feat: bottom navigation graph 구현

* refactor: 컨벤션에 맞게 id 수정

* feat: 공동구매 상세 조회 기능 구현 (#18)

* chore: h2 환경설정 추가

* docs: http client 추가

* refactor: entity 접미어 적용

* chore: dummy data 추가

* docs: http client 값 변경

* refactor: repository 와 domain 패키지 분리

* feat: 공동구매 상세 조회 API 구현

* refactor: entity 접미어 적용

* style: 클래스 컨벤션 적용

* chore: h2 console 설정 제거

* refactor: OfferingCondition enum값 결정로직을 enum 안으로 이동

* feat: 홈화면, 마이페이지 화면 레이아웃 작성 (#19)

* refactor: FragmentContainer width 속성 수정

* feat: 홈 화면 레이아웃 작성

* feat: 마이페이지 화면 레이아웃 작성

* fix: 플로팅 버튼이 홈에서만 보이도록 수정

* refactor: 리소스 네이밍 컨벤션에 맞게 수정

* feat: API 문서화 적용 (#23)

* chore: springdoc-openapi 의존성 추가

Co-authored-by: Dora Choo <[email protected]>

* chore: springdoc 설정 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: SwaggerConfig 파일 추가

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API 문서화

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* fix: 공모 상세 조희 API의 price 필드 자료형 변경 및 memberId 필드 추가 (#28)

* fix: 상세조회 API 금액 필드 자료형 변경

Co-authored-by: Dora Choo <[email protected]>

* fix: memberId 추가

* 내가 쓴 글인지 아닌지 확인 위해
Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* chore: 백엔드 CI 및 도커 파일 작성 (#27)

* chore: actions 적용 브랜치 설정 (#30)

* chore: actions 적용 브랜치 설정

* chore: path 및 ref 태그 제거

* chore: working-directory 태그 추가

* chore: Dockerfile jar 경로 수정

* feat: 댓글방 목록 구현 (#26)

* feat: 댓글방 목록 UI 구현

* fix: 구분선을 ImageView에서 View로 변경

* feat: 댓글방 목록 도메인 모델 구현

* feat: 댓글방 어답터 구현

* feat: "채팅" string 추가

* refactor: 불필요한 코드 제거

* fix: xmls 중복 속성 제거

* refactor: 댓글방 클래스들을 comment 패키지로 분리

* refactor: 컬러와 폰트 사이즈를 values 파일로 분리

* feat: 공모 목록 조회 기능 구현 (#35)

* feat: 공모 목록 조회 API 구현

* docs: 공모 목록 조회 API http client에 추가

* fix: 공모 상세 조회 API의 status 필드를 condition으로 명칭 변경

* feat: 공모 목록 조회 API의 isClosed 필드 이름을 isOpen으로 변경

* feat: 댓글방 디테일 화면 구현 (#32)

* feat: font 설정

* feat: vector 이미지 추가

* feat: 채팅 아이템 뷰 구현

* refactor: 컨벤션에 맞게 네이밍 수정

* feat: 댓글 입력 edit text 구현

* chore: 백엔드 CD 스크립트 작성 (#34)

* chore: 백엔드 CD 스크립트 작성

* chore: 도커 백그라운드로 실행

* chore: 도커 설정 및 트리거 설정 변경

* chore: 도커 이미지 제거 로직 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 제거 방식 수정

* chore: 도커 이미지 강제 제거하도록 수정

* chore: gradle 캐싱 로직 추가 (#39)

* chore: gradle 캐싱 로직 추가

* chore: 이벤트 트리거 조건 수정

* feat: 공모 참여하기 기능 구현 (#40)

* fix: BaseTimeEntity 적용 오류 수정

Co-authored-by: Dora Choo <[email protected]>

* feat: 참여하기 API 구현

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* feat: 공모 상세 조회 API에 참여자 목록 필드 추가 (#42)

* feat: 공모 상세 조회 API의 request에 memberId 필드 추가 (#45)

* feat: 공모 참여 API의 불필요한 응답값 전부 제거 (#48)

* feat: 공모 참여 API의 불필요한 반환값 제거

* chore: 자주 쓰는 h2 console enabled 설정 주석 처리

* feat: 이미 참여한 공모에 참여 못하게 예외 처리 (#51)

* feat: 공모 상세 페이지 API 연결 (#46)

* build: 불필요한 의존성 제거, properties관련 코드 작성

* refactor: base_url코드상에서 제거

* feat: api수정에 따른 필드 변경 및 네이밍 반영

* refactor: 네이밍 변경

* refactor: OfferingDetail의 변경, mapper변경

* refactor: service분리

* refactor: DataSource, Repository분리

* refactor: API변경에 따른 리팩토링

* feat: 공모 상세 조회 기능 구현

* refactor: 참여하기 api변경에 따른 data, domain 코드 수정

* feat: 공모 상세 페이지 참여하기 기능 구현

* feat: 공모 상세 화면에서 이미지를 불러올 수 없을 시 기본이미지를 보여주는 기능 구현

* feat: 게시물 상세 화면 폰트 적용

* style: lint적용

* refactor: 액티비티 destroy시 binding해제하도록 코드 추가

* refactor: glide옵션 변경

- 에러 발생 시 보여줄 이미지
- url이 null일 시 보여줄 이미지

* refactor: viewModel에 custom getter추가

* fix: 내용이 짧을 시 뒷 배경이 회색으로 보이는 버그 수정

* fix: 참여하기 버튼을 눌렀을 시 텍스트가 바뀌지 않는 버그 수정

* feat: 테스트 데이터 다양화 (#52)

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 엔티티에 currentCount 필드 추가 (#55)

* feat: 댓글 작성 API 구현 (#57)

* feat: 댓글방 내 공모 일정 조회 기능 구현 (#58)

* feat: 댓글방 내 공모 일정 조회 기능 구현

Co-authored-by: Dora Choo <[email protected]>

* refactor: 공모 일정 조회 api 명세 변경

Co-authored-by: Dora Choo <[email protected]>

---------

Co-authored-by: Dora Choo <[email protected]>

* refactor: common 패키지명을 global로 변경 (#61)

* chore: 안드로이드 CI 파일 작성 (#63)

* feat: 댓글 목록 조회 API 구현 (#66)

* chore: build CI 작업을 위한 manifest 파일 수정 (#65)

* chore: 알람 권한 추가

* chore: local properties 속성 추가

* chore: local properties null 체크 로직 추가

* chore: buildConfigField null 체크

* style: lint 적용

* chore: secret 값 설정

* fix: secret 값 오류 수정

* fix: 문법 오류 수정

* chore: 경로 수정

* chore: 문법 수정

* style: lint 적용

* feat: 댓글방 목록 조회 API 구현 (#70)

* feat 댓글방 접히는 공지 뷰 구현 (#72)

* chore: manifest에 CommentDetailActivity 추가

* feat: BindingAdatper을 사용하여 접힐 때 애니메이션 적용 및 픽셀 변환

* feat: viewmodel 구현 및 click 마다 접히고 펴지는 로직 구현

* style: ktlint 적용

* refactor: binding adpater을 사용하여 가시성 변경

* refactor: 댓글방 및 댓글 목록 조회 서비스 계층 (#78)

* fix: 댓글방 목록 조회 시 가장 최근 댓글 조회 (#80)

* feat: 홈화면 API 연결 (#74)

* refactor: API변경에 따른 data, domain 코드 변경

* feat: 공모 목록 기능 구현

* refactor: 함수 분리

* style: lint적용

* style: font 적용

* fix: 시간순 정렬 쿼리 추가 (#83)

* chore: 더미 데이터 추가 (#87)

* feat: 댓글방 목록 API 연결 (#82)

* feat: bottom navigation fragment 추가

* feat: vector 이미지 추가

* feat: 댓글방이 없으면 "채팅 목록이 없어요" 라는 텍스트뷰와 이미지뷰를 띄우는 기능 구현

* feat: 댓글방 띄우는 기능 구현

* test: 댓글방 UI 테스트 작성

* refactor: 테스트 클래스명 수정

* refactor: 줄바꿈 수정

* feat: 댓글방 API 서비스 구현

* refactor: API 명세에 따라 도메인 모델 수정

* feat: API 연결

* refactor: API명세에 따라 데이터바인딩 변수명 수정

* feat: 댓글방 목록 API 연결

* refactor: ktlint Format 적용

* refactor: 메모리 누수 방지를 위해 fragment가 destroy 될 때 _binding을 null로 설정

* refactor: 어답터를 방어적복사 하지 않아도 되어서 수정

* refactor: 채팅방이 없다는 이미지뷰를 띄워주는 방식 수정(바인딩 어댑터 수정)

* refactor: 함수분리

* refactor: ktFormat 적용

---------

Co-authored-by: chaehyun <[email protected]>

* feat: 댓글방 접히는 공지 API 연결 (#85)

* feat: 미팅 일정 API 연결을 위한 data layer 구현

* feat: 미팅 일정 API 연결을 위한 domain layer 구현

* feat: 미팅 일정 API 연결을 위한 presentation layer 구현

* style: ktlint 적용

* feat: 공동 구매 제목 databinding 적용

* refactor: 변수명 수정

* fix: 펼치기 접기 버튼 로직 반대로 수정

* style: ktlint 적용

* chore: 더미 데이터 바로가기 url 수정 (#93)

* feat: 공모 상세 페이지 기능 추가 (#94)

* chore: 마이페이지 닉네임 임시로 지정

* feat: 바로가기 기능 구현

* feat: 참여버튼 클릭 시 댓글방으로 가도록 기능 구현

* feat: 신고하기 이미지 추가

* style: lint적용

* refactor: 불러오는 공모 페이지 사이즈 변경

* refactor: 댓글 도메인 코드 리팩터링 (#96)

* refactor: 로그인 멤버 변수명 변경

* refactor: JPQL 쿼리 컨벤션 및 멤버로 공모 조회 메서드명 변경

* refactor: 최근 댓글 응답 클래스명 변경

* refactor: 컨트롤러 및 서비스 API 순서 변경

* refactor: 로그인 사용자 유효성 검증

* feat: 댓글방 댓글 작성 api 연결 (#95)

* chore: windowSoftInputMode 추가

* feat: post comment api service 구현

* feat: post comment DataSource 구현

* feat: post comment Repository 구현

* feat: post comment Presentation 구현

* chore: 더미 데이터 시간 변경 (#100)

* feat: 댓글방 입장 기능, 본인이 총대인 방은 다르게 보이는 기능 구현 (#99)

* feat: 댓글방의 마지막 댓글 시간을 띄우는 기능 구현

* feat: 자신이 총대인 댓글방을 표시하는 기능 구현

* feat: 댓글방 목록을 클릭해 댓글방 상세로 이동하는 기능 구현

* test: UI테스트 수정

* refactor: 클릭시 id 뿐만 아니라 title도 받아오는 방식으로 수정

* refactor: 오전/오후와 시간을 텍스트뷰에 띄우는 바인딩 어댑터를 DateTimeFormatter의 기능을 사용하는 것으로 수정

* refactor: memberId를 local.properties의 token을 가져다 쓰는 것으로 변경(임시 조치)

* refactor: 댓글방 목록의 시간을 띄우는 바인딩 어댑터의 속성명을 수정함

* refactor: 데이터바인딩 variable 변수명을 구체적으로 수정, 일관성을 위해 앞에 `on` 붙임

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정

* refactor: 어댑터가 뷰모델을 갖고 있지 않도록 수정(빠트린것 수정함)

* feat: 전반적인 예외 처리 (#103)

* feat: 예외 처리 핸들러 추가

* feat: Offering 예외 처리 코드 추가

* feat: Comment 예외 처리 코드 추가

* feat: Member 예외 처리 코드 추가

* feat: OfferingMember 예외 처리 코드 추가

* feat: Offering 예외 처리 상세 코드 추가

* feat: 에러 코드 적용

* feat: 도메인 검증 로직

* feat: DTO 검증 로직

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: swagger와 restdocs 연동 (#104)

* chore: swagger ui 정적 파일 설치 및 static routing 세팅

* chore: restdocs-api-spec을 이용한 OAS 생성

* chore: swagger ui 정적 파일을 swagger-ui 디렉토리로 이동

* chore: swagger ui 정적 파일 및 static routing 세팅 제거

* chore: 생성된 OAS 파일을 Swagger 디렉터리로 복사하는 스크립트 작성

* chore: openapi3 yaml 파일 gitignore 처리

* chore: static routing 세팅 다시 추가

openapi3.yaml을 사용하기 위함

* test: RestAssured RestDocs 테스트 코드 작성

* test: 공모 목록 조회 API 문서화

* test: 공모 일정 조회 API 및 공모 참여 API 문서화

* test: 댓글 관련 API 문서화

* docs: 논의된 TODO 제거

* refactor: swagger 어노테이션 제거

* chore: 개발 API 서버 목록 설정

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 에러메시지 필드명 변경 (#108)

* fix: restdocs 관련 테스트 실패 이슈 해결 (#106)

* chore: cicd 테스트

* chore: 테스트 위해 actions 범위 조정

* chore: 배포 스크립트 띄어쓰기 오타 수정

* chore: 빌드 캐싱 제거

* chore: logging

* chore: --warning-mode all 옵션 줘서 gradle 호환 무시하도록 설정

* fix: status 달라서 실패하는 테스트 수정

* chore: actions 범위 수정

* chore: action 범위 수정

* chore: test용 static 파일 추가

* chore: static 하위 폴더를 jar 파일에 포함하도록 설정

* chore: swagger-ui 하위 폴더 제거

* chore: task 순서 조정

* chore: build 스크립트 수정

* chore: 불필요한 설정 변경 제거

* chore: clean build 대신 clean bootJar 사용

* chore: clean, build 각각 하도록 변경

* chore: test 까지 두 번 돌리도록 수정

* chore: openapi3까지 두 번 실행하도록 수정

* chore: copyOasToSwagger 까지 두번 실행하도록 수정

* chore: actions 활성화 범위 수정

* fix: 댓글방 목록 조회 시 참여자 수 조건 추가 (#111)

* fix: 댓글방 조회 테스트 수정 (#113)

* feat: 홈 화면 무한 스크롤 기능 구현 (#109)

* build: pagination라이브러리 추가

* feat: 홈 화면 무한 스크롤 기능 구현

* fix: 마지막 댓글 response를 nullable하게 수정 (#115)

* fix: 마지막 댓글 response를 nullable하게 수정

* refactor: ktFormat 적용

* feat: 댓글방 댓글 조회 api 연결 (#116)

* feat: dto 및 mapper 구현

* feat: 댓글방 목록 service 구현

* feat: 댓글방 목록 data source 구현

* feat: 댓글방 목록 repository 및 model 구현

* feat: 댓글방 목록 view type을 활용한 recyclerview 구현 및 데이터 바인딩

* feat: polling 기능 구현

* feat: 댓글 스크롤 구현 (새로운 댓글이 생길시 스크롤 아래로)

* feat: 총대와 다른 참가자 이미지 리소스 파일

* feat: 댓글방 디테일 공동 구매 상태별 관리 (#117)

* feat: 공동구매 상태 관리 리소스 파일

* feat: 공동구매 상태를 관리하는 enum class 구현

* feat: 데이터바인딩을 사용하여 공동 구매 상태 뷰 업데이트 구현

* style: ktlint 적용

* feat: 공동구매 상태 관리 리소스 파일 추가

* fix: 이미지 링크 임시 수정 (#119)

* fix: 이미지 링크 수정 (#120)

* refactor: 네이밍 수정 (#123)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경 (#125)

* refactor: 뷰모델 팩토리 방식 변경 (#130)

* refactor: 뷰모델 팩토리를 뷰모델의 동반객체로 이동

* style: lint적용

* refactor: Service분리 (#132)

* refactor: service분리

* refactor: 패키지명 변경

* style: lint적용

* feat: 공모글 작성 UI 구현 (#134)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 뷰 구현

* fix: 뷰 수정사항 반영

* fix: @+id로 참조하는 부분을 수정

* fix: drawable의 네이밍에 where을 추가

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현  (#136)

* feat: 참여자 목록 drawer에 필요한 리소스 파일 추가

* refactor: 채팅 text gravity 수정

* feat: 댓글방 참여자 목록 Drawer Layout UI 구현

* style: ktlint 적용

* refactor: drawer early return 하는 방식으로 변경

* refactor: ivMore -> ivMoreOptions으로 네이밍 변경

* feat: 공구 참여자 item view 및 댓글방 view 사용자 친화적으로 수정

* chore: CI 빌드 스크립트 중 중복되는 task 제거해 성능 개선 (#128)

* chore: jar�태스크 비활성화하고 bootJar 태스크로만 JAR 파일 생성

* chore: cicd 범위 조정

* feat: 공모 작성 API 구현 (#139)

* feat: 공모 작성 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: create를 save로 변경

Co-authored-by: fromitive <[email protected]>

* refactor: dto entity 매핑로직을 dto로 이동

Co-authored-by: fromitive <[email protected]>

* refactor: controller request 매개변수 명 컨벤션 적용

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 공모에 저장하는 주소 값 구체화 (#141)

* refactor: 공모에 저장하는 주소 값 구체화

Co-authored-by: fromitive <[email protected]>

* chore: github-action 스크립트 수정

Co-authored-by: fromitive <[email protected]>

* chore: CI/CD test 설정 추가

Co-authored-by: fromitive <[email protected]>

* chore: static/swagger-ui 폴더 추가

Co-authored-by: fromitive <[email protected]>

* chore: 설정 원상 복구

Co-authored-by: fromitive <[email protected]>

* chore: ci/cd 범위 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: 홈화면(공모목록) UI 추가 구현 및 상태 변경 대응 (#142)

* feat: 공모의 상태 변경이 반영되도록 기능 구현

* feat: 공모 목록 ui변경

* feat: 필터 ui추가

* feat: API변경에 따른 DTO수정

* style: lint적용

* feat: resource추가

* refactor: ui위치 수정

* chore: 불필요한 괄호 제거

* refactor: item 수직 정렬

* feat: 댓글방 메시지 조회 시 commentId 필드 추가 (#150)

Co-authored-by: fromitive <[email protected]>

* feat: OG 태그 크롤링 API 구현 (#148)

* feat: OG 태그 크롤링 API 구현

Co-authored-by: fromitive <[email protected]>

* refactor: OG 태그 크롤링 API 엔드포인트 수정

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* refactor: 제품 코드와 API 문서 동기화 (#153)

* refactor: API 문서 개선 (#157)

* refactor: 댓글 작성 시 성공 상태 코드 변경

Co-authored-by: fromitive <[email protected]>

* refactor: 요청 필수 상태 설명 추가

Co-authored-by: fromitive <[email protected]>

---------

Co-authored-by: fromitive <[email protected]>

* feat: s3 이미지 업로드 API 구현 (#147)

* feat: s3 이미지 업로드 API 구현

* chore: cicd 액션 범위 수정

* fix: 이미지 업로드 경로의 특수문자 제거

* chore: yml multipart 설정 추가

* chore: S3 업로드 결과 테스트

* fix: inputstream 변환로직 위치 이동

* fix: 업로드할 s3 path 올바르게 수정

* fix: 사진 url 속에 버킷이름을 cloudfront 도메인으로 수정

* chore: actions 범위 재조정

* feat: API endpoint 변경

* chore: docker image 지우는 작업을 마지막으로 이동

* chore: 다른 브랜치로 이전 커밋 이동하기 위해 제거

* chore: 충돌 해결 및 코드 스타일 변경

* test: S3 이미지 업로드 성공 케이스 추가

* test: multipart form data 문서화

* test: 공모 상태 enum 문서화

Co-authored-by: fromitive <[email protected]>

* feat: 파일 업로드 크기 제한 100MB에서 20MB로 변경

---------

Co-authored-by: Choo <[email protected]>
Co-authored-by: fromitive <[email protected]>

* feat: 주소검색 기능구현 (#161)

* refactor: 네이밍 컨벤션 적용

* build: webview 라이브러리 추가

* feat: 스크립트 실행위한 html파일 추가

* refactor: 인터페이스명 변경에 따른 변경

* feat: 주소검색 다이얼로그 레이아웃 작성

* feat: 주소검색 기능 구현

* style: lint적용

* refactor: 불필요한 코드 제거

* build: Firebase의존성 추가 (#165)

* feat: 공모글 작성 API 연결 (#162)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 공모글 작성 API 연결 구현

* feat: 공모글 작성 뷰모델 구현

* fix: edit text 데이터바인딩 추가

* chore: 테스트를 위해 MutableLiveData default값 넣어둠

* chore: deadline defualt값 형식에 맞게 수정

* feat: 글작성 화면을 액티비티에서 프래그먼트로 수정

* chore: 테스트목적이었던 주석과 mutable livedata 디폴트값 제거

* refactor: 임시 함수명 수정

* fix: 글작성 프래그먼트가 올라오기 전에 바텀 네비게이션이 사라지는 문제 수정

* feat: 필수 항목이 모두 입력되어야 버튼이 활성화 되는 기능 구현

* feat: 가격, 총원 입력이 잘못되었을 시 토스트를 띄우는 기능 구현

* fix: 버튼 비활성화 시 텍스트 변경

* feat: 앱 아이콘 변경

* feat: 앱 이름 변경(chongdae -> 총대마켓)

* feat: 예상 엔빵 가격을 보여주는 기능 구현

* refactor: 상수화

* refactor: 예상 엔빵 가격에 ,가 들어가는 기능 구현, 콜론 뒤 white space 추가

* feat: 공구 할인율을 계산해 주는 기능 구현

* feat: +, - 버튼으로 총원을 조절하는 기능 구현

* fix: 할인율과 엔빵가격 계산 시 0으로 나눠지는 상황을 제거

* fix: 맞춤법 수정 할인률 -> 할인율

* fix: 총원 버튼 크기가 너무 작아서 확대

* fix: 항목간 간격이 좁아서 확대

* refactor: Offering Write의 API service, DataSource, Repository를 Offerings와 합침

* refactor: 디버깅용 코드 삭제

* refactor: 버튼 활성화/비활성화를 selector와 삼항연산자로 구현

* refactor: 바인딩어댑터 대신 뷰모델이 visibility 상태를 갖고 있는 방식으로 변경

* refactor: 바인딩어댑터 대신 xml에서 처리하는 방식으로 변경

* refactor: 총원 디폴트 라이브데이터값 상수화

* refactor: +, - 텍스트뷰 버튼으로 수정

* refactor: textStyle bold대신 fontFamily suit_bold를 쓰는 것으로 수정

* refactor: 변수명 뒤에 Int를 붙이는 것 대신 Value를 붙이는 것으로 수정

* refactor: 글작성 제출 버튼의 아이디를 추가

* refactor: ktFormat

* refactor: 토스트를 띄우는 함수 분리

* refactor: 도메인 객체 분리

* refactor: UI모델 적용

* refactor: ktFormat 적용

* feat: 댓글방 디테일 Room을 사용하여 data 저장 (#166)

* feat: local database 구현

* feat: entity 구현

* feat: dao 구현

* feat: LocalDataSourceImpl 구현

* feat: entity mapper 구현

* refactor: CommentResponse 에 id 값 추가

* refactor: datasource 이름 변경 및 패키지 변경

* refactor: article -> offering으로 네이밍 변경

* refactor: repository 패키지 변경에 따른 수정

* refactor: datasource 패키지 변경 및 local 과 remote 분리

* refactor: repository Application 클래스를 통한 주입으로 변경

* style: ktlint 적용

* refactor: api service 리네이밍

* refactor: git conflict 해결

* refactor: 함수 이름 컨벤션에 맞도록 변경 (getMeetings -> fetchMeetings)

* chore: CI 스크립트 추가 (#173)

* chore: ci 스크립트 추가

* chore: ci 스크립트 수정

* fix: og 태그 추출 시 크롤링 이슈 해결 (#174)

* feat: 날짜, 시간 선택 기능 구현, 주소검색 기능 연결 (#171)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 모집마감 시간 클릭 시 date time picker를 띄우는 기능 구현

* feat: 날짜, 시간 선택 기능 구현

* feat: 주소 검색 기능 연결

* refactor: 함수명 수정, 함수분리

* refactor: ktFormat 적용

* refactor: string으로 분리, 상수화

* fix: string 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정

* chore: CI workflow 파일 수정3

* chore: CI workflow 파일 수정4

* feat: 공모가 정상적으로 게시되었을 시 "공모가 게시되었어요!" 라는 토스트를 띄우고 공모글 작성 프래그먼트를 종료하는 기능 구현

* feat: 토스트가 화면 중앙에 뜨는 문제 수정

* refactor: 사용되지 않는 파일 삭제

* refactor: xml 뷰 id 수정

* refactor: 버튼이 TextView인 문제 수정

* refactor: 사용되지 않는 data binding variable 제거

* refactor: 함수명 수정

* refactor: 다이얼로그, dateTimePickerBinding 전역으로 선언

* refactor: dateTimePicker 클릭 이벤트를 추상화 해 xml에서 처리하도록 변경

* refactor: ktFormat

* feat: 상품 URL 이미지 추출 API 연결 (#180)

* refactor: 사용하지 않는 파일 제거

* refactor: 가시성 변경

* feat: api service 구현

* feat: datasource 구현

* refactor: repository 네이밍 수정 (offeringsRepository -> offeringRepository)

* feat: 사진 업로드 관련 리소스 파일 추가

* feat: repository 및 model 구현

* feat: 이미지 링크를 통한 크롤링 이미지 불러오는 api 연결 및 이미지 삭제 로직 구현

* style: ktlint 적용

* refactor: 이미지 prefix 추가 및 에러 메시지 수정

* refactor: build 오류 수정

* fix: git conflict 해결

* feat: 공모 목록 조회 API에 필터링과 검색 기능 추가 (#169)

* feat: 공모 필터 목록 조회 API 구현

* test: 공모 필터 목록 조회 API 테스트

* style: 개행 형식 통일

* feat: 공모 필터 목록 조회 API Specification 도입 준비

* fix: url에 큰따움표 제거

* feat: Specification 도입

* refactor: queryString 구체화

* refactor: 함수명 변경

* feat: 최신순 필터링 적용

* feat: 마감임박순 필터링 적용

* feat: 높은할인률순 필터링 적용

* refactor: 전략 패턴 적용해 여러 갈래의 분기문과 중복되는 코드 처리

* test: 변경된 API 스펙에 맞게 문서화 작업

* refactor: 관련있는 메서드들끼리 모이게 순서 재배치

* refactor: 맞춤법 수정

* style: 개행 제거

---------

Co-authored-by: masonkimseoul <[email protected]>

* feat: 상태 변경 API 구현 (#175)

* feat: 댓글방 상태 변경 및 조회 API 구현

Co-authored-by: masonkimseoul <[email protected]>

* feat: 공모글 상태 조회 API 구현

* feat: 댓글방 상태 변경 중 수동 확정 기능 구현

* refactor: 상태 변경 관련 메서드명 수정

* refactor: 추상 클래스 메서드 컨벤션 통일

* refactor: errorCode 사용 시 클래스 명시

* refactor: 댓글방 상태 관련 API 엔드포인트 수정 및 패키지 변경

* refactor: 댓글방 상태 변경 API HTTP 메서드 수정

* feat: 공모 모집 자동 확정 시 댓글방 상태 변경

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: Choo <[email protected]>

* feat: 로그인 기능 구현 (#177)

* feat: password 일방향 암호화 기능 구현

* feat: cookie 생산-소비 기능 구현

* chore: jwt 관련 의존성 추가

* feat: 토큰 생성 기능 구현

* feat: 로그인 API 구현

* test: 로그인 API 테스트

* feat: 회원가입 API 구현

* test: 회원가입 API 테스트

* feat: 닉네임 생성 기능 구현

* test: 닉네임 생성 기능 테스트

* fix: postconstruct 여러 개라 발생한 에러 해결

* feat: 회원가입 응답값에 랜덤생성한 닉네임 추가

* feat: MemberArgumentResolver 구현

* feat: MemberArgumentResolver 일부 적용

* test: 바뀐 스펙에 맞게 변경

* test: TestConfig 설정해 빈충돌 오류 해결

* test: 공모 작성 API로 MemberArgumentResolver 사용

* feat: 토큰 재발급 API 구현

* test: 토큰 재발급 API 테스트

* test: 토큰 재발급 API 에러 테스트

* feat: MemberArgumentResolver commant에 적용

* feat: MemberArgumentResolver offering에 적용

* feat: MemberArgumentResolver participant에 적용

* refactor: ci값이 일치하지 않을경우 오류메시지 문구 변경

* refactor: 클래스명 일관적으로 변경

* refactor: 직관적인 명명으로 enum 네이밍 변경

* refactor: Custom Exception 적용

* refactor: 컨트롤러 메서드에 접근제어자 명시

* fix: 중복된 enum 값 제거

* test: 바뀐 API 스펙에 맞게 변경

---------

Co-authored-by: fromitive <[email protected]>

* fix: nicknameWordInitializer 설정 오류 해결 (#182)

* fix: keyword null일 때 처리 및 docs에서 required 제거 (#184)

* fix: keyword null일 때 처리

* test: optional() 붙여서 required 제거

* chore: 브랜치에 상관없이 pr 머지 시 자동으로 관련 이슈 닫는 스크립트 구현 (#187)

* fix: og 이미지 태그 크롤링 문제 해결 (#190)

* refactor: 댓글방 상태 도메인 설계 변경 (#189)

* feat: 공모 목록 API 응답값에 낱개 가격 추가 (#193)

* chore: readtimeout 5초로 수정 (#195)

* feat: 댓글방 상태 조회 시 상태별 이미지 함께 반환 (#196)

* feat: 공모 목록 조회 API연결 (#201)

* refactor: Condition 수정에 따른 변경

* refactor: api변경에 따른 리팩토링

* refactor: api변경에 따른 목록 무한 스크롤 기능 리팩토링

* feat: 검색 기능 구현

* feat: 필터링 기능 구현

- 참여 가능은 서버 에러로 추후 추가 예정

* feat: 아이템을 불러온 후 recyclerview의 최상단으로 이동하는 기능 구현

- 검색, 필터링 수행 후 최상단으로 이동

* feat: 필터링 목록 불러오는 api연결

* feat: 마감임박 상태 추가

* refactor: default parameter제거

* style: lint적용

* feat: 토큰 반환 시 cookie가 아닌 body 사용하도록 변경  (#206)

* feat: 발급한 토큰을 header가 아닌 body로 반환하도록 수정

* refactor: 사용안하는 클래스와 메서드 제거

* test: 바뀐 API 스펙에 맞게 명세 수정

* feat: 이미지 더미 데이터 수정 및 부정확한 가격 데이터 수정 (#207)

* refactor: 공모 글 작성 시 총대 참여자 추가 (#208)

* feat: 바텀 네비게이션 고정 기능 구현 (#211)

* feat: 데이터에서 5자 이상 제거 (#212)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경 (#202)

* feat: n빵 가격이 낱개가격보다 큰경우 예외가 발생하도록 변경

* refactor: 도메인 명칭 변경 (낱개가격 -> 원가격)

* refactor: 도메인 명칭 변경 (공모 -> 댓글방)

* refactor: originPrice로 http client 변경

* feat: 키보드 이외 영역 터치 시 키보드 내려가도록 구현 (#214)

* feat: 키보드외 화면 클릭 시 키보드 내려가도록 구현

* refactor: api변경에 다른 dto수정

* feat: 이미지 업로드 및 권한 설정 (#216)

* chore: 이미지 권한 추가

* feat: permission manager을 생성하여 권한 체크 및 request

* feat: 이미지 추가 버튼을 클릭할 시 권한 설정 연결

* feat: 이미지 피커를 사용하여 uri 전달 구현

* feat: 이미지 파일 업로드 api service 구현

* feat: 이미지 파일 업로드 data source 구현

* feat: 이미지 파일 업로드 repository 구현

* feat: 이미지 파일 martipart로 변환해주는 기능 구현

* feat: 이미지 업로드 관련 뷰 수정

* feat: 이미지 파일 업로드 및 api 연결 구현

* style: ktlint format

* fix: git conflict 해결

* refactor: 이미지 scaleType 변경

* refactor: string value 컨벤션 적용

* feat: 토큰 반환 시 body가 아닌 cookie로 반환하도록 원상복구 (#223)

* feat: 토큰 재발급 API에서 requestHeader로 refreshToken 받도록 수정 (#227)

* feat: 토큰 재발급 API에서 body가 아닌 cookie로 토큰 반환

* feat: 회원가입 API도 body가 아닌 cookie로 토큰 반환

* refactor: service 용 dto 명 컨벤션에 맞춰 수정

* feat: 댓글방 일정 수정 API 구현 (#226)

* feat: 댓글방 일정 수정 API 구현

* test: 총대가 아닌 참여자가 공모 일정 정보를 수정할 경우 예외 발생

* feat: 댓글방 상태 조회 시 버튼 텍스트 추가 (#229)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현 (#222)

* feat: 검색 시 해당 키워드의 색상을 변경하는 기능 구현

* refactor: 구현 방식 변경

* style: lint적용

* Feature/217 offering status (#230)

* feat: 댓글방 상태 조회 api service 구현

* feat: 댓글방 상태 조회 model 및 dto 구현

* feat: 댓글방 상태 조회 datasource 구현

* feat: 댓글방 상태 조회 repository 구현

* feat: 댓글방 상태 조회 api 연결 구현

* style: ktlint 적용

* feat: 댓글방 상태 변경 (#231)

* feat: 댓글방 상태 변경 api service 구현

* feat: 댓글방 상태 변경 data source 구현

* Revert "feat: 댓글방 상태 변경 data source 구현"

This reverts commit 052691a8de945c60a60586ee66a05a6a3b264217.

* feat: 댓글방 상태 변경 data source 구현

* feat: 댓글방 상태 변경 repository 구현

* feat: 댓글방 상태 변경 api 연결 구현

* style: ktlint 적용

* feature: 카카오 로그인 구현 (#235)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* feat: 공모 참여자 목록 조회 API 구현 (#225)

* feat: 공모 참여자 목록 조회 API 구현

* test: 실패 테스트 오류 수정

* style: 띄어쓰기 적용

* refactor: MemberEntity를 받도록 변경

* refactor: isParticipant를 구현하여 가독성 개선

* refactor: 총대를 찾을 수 없는 상황의 예외 추가

* refactor: 참여 검증로직을 서비스로 이동

* refactor: 사용하지 않는 메서드 제거

* refactor: 검증 로직 가장 상단에 위치

* refactor: 총대 추출 로직 수정

---------

Co-authored-by: masonkimseoul <[email protected]>
Co-authored-by: SCY <[email protected]>

* refactor: 마감임박순 필터링 쿼리 조건 수정 (#239)

* refactor: 마감임박순 필터링 조건 수정

* refactor: 더미 데이터 시간 수정

* fix: 필터링 오류 수정 (#243)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경 (#247)

* feat: 공동구매 상태 변경 다이얼로그 구현 (#245)

* feat: 공동구매 상태 변경 다이얼로그 view 구현

* feat: 공동구매 상태 변경 다이얼로그 Listener 구현

* feat: 공동구매 상태 변경 다이얼로그 연결 및 상태 변경 로직 수정

* test: 테스트 코드 작성을 위한 기본 세팅 (#255)

* feat: CoroutinesTestExtension 구현

* feat: Livedata getOrAwaitValue 구현

* feat: InstantTaskExecutorExtension 구현

* feat: TestFixture 생성

* style: ktlint 적용

* feat: 공모글 목록 화면 UI 개선, 공모글 작성에서 낱개 금액이 엔빵 가격보다 저렴할 시 글 작성 막는 기능 구현 (#246)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* feat: 카카오 로그인 기능 초기 설정

* feat: 카카오 로그인 기능 구현

* feat: 카카오 로그인 UI 구현

* feat: 카카오 로그인 구현

* feat: 카카오 로그인 - 회원가입 기능 구현

* feat: 카카오 로그인 버튼 이미지 다운로드

* refactor: 함수명 수정

* refactor: 필요 없는 파일 제거

* refactor: 패키지 이동

* feat: 데이터 스토어에 memberId, nickName 저장하는 기능 구현

* feat: 로그인 post 기능 구현

* feat: 로그인 시도 후 실패할 경우 회원가입 하는 기능 구현

* fix: 바뀐 auth api 적용

* feat: 서기 pr 충돌 해결

* fix: api 필드명 수정

* refactor: ktFormat 적용

* fix: 테스트용 임의 문자열 제거

* feat: CookieJar 구현

* feat: API 수정에 맞춰 서비스 함수 수정

* refactor: 사용되지 않는 코드 제거

* refactor: http 상태 코드 enum 클래스로 묶음

* fix: 구분선을 각각의 아이템의 하단에 넣고 프래그먼트 뷰의 "채팅" 텍스트 밑에 하나 추가

* fix: 텍스트뷰에 font 적용, 마지막 댓글 시간 텍스트를 조금 왼쪽으로 이동

* fix: 낱개 가격 이름을 eachPrice -> originPrice 수정

* fix: 낱개 가격이 엔빵 가격보다 싸면 토스트를 띄우고 글작성을 막는 기능 구현

* fix: 네이티브앱키 로컬프로퍼티로 이동

* refactor: 함수명 변경

* fix: 카카오 계정으로 로그인 후 액티비티 전환하지 않는 문제 수정

* refactor: 사용되지 않는 클래스 삭제

* refactor: 패키지 수정

* refactor: alsong 로그 수정

* refactor: 변수명 수정

* refactor: Manifest의 네이티브앱 키 숨김

* refactor: 로컬프로퍼티의 데이터 형식 수정

* Update android.yml

* refactor: alsong 로그 삭제

* ci 빌드 실패가 manifest때문인지 테스트

* refactor: 매니페스트에 앱 키 넣을 수 있게 하는 gradle 설정 수정

* 매니페스트 수정하고 재테스트

* 매니페스트 수정하고 재테스트

* chore: 그래들 수정

* chore: 그래들 수정2

* chore: 그래들 수정3

* chore: 그래들 수정4

* chore: 카카오 계정으로 로그인하는 기능 제외

* feat: 홈화면 테스트 작성 (#257)

* chore: mockk의존성 추가

* test: OfferingViewModel 테스트 작성

* style: lint적용

* refactor: stub를 TestFixture로 이동

* test: 댓글방 테스트 코드 작성  (#258)

* refactor: 댓글 보내는 함수명 변경

* refactor: 공구 약속 장소 및 시간 캐시 기능

* test: 테스트를 위한 fake repository 구현

* test: 댓글방 viewmodel test 작성

* feat: 댓글방 ActivityTest 작성

* feat: 댓글방 ActivityTest 작성

* style: ktlint 적용

* refactor: test fixture에서 사용하지 않는 것 삭제

* style: ktlint 적용

* feat: GA 모니터링 환경 구축 및 로깅 전략 적용 (#242)

* chore: Firebase Crashlytics 의존성 추가

* feat: Firebase 초기화

* feat: FirebaseManager 구현

* feat: 총대가 공구 진행 상황을 다음 단계로 변경했을 때 event 추가

* feat: 로깅 기능 구현

- 검색
- 필터링
- 공모글 클릭
- 공모 참여

* style: lint적용

* feat: 글 작성 완료 시 event 추가

* feat: 로그인 시 event 추가

---------

Co-authored-by: Namyunsuk <[email protected]>
Co-authored-by: songpink <[email protected]>

* test: 공모글 작성 이미지 테스트 코드 작성 (#260)

* refactor: 상수 가시성 변경

* feat: test fixture 구현

* feat: fake repository 이미지 업로드 기능 추가

* test: OfferingWriteViewModelTest 이미지 업로드 test 코드 작성

* feat: 로그인 후 홈화면으로 이동해도 로그인 화면이 종료되지 않는 문제 수정 (#261)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 로그인 후 LoginActivity가 종료되도록 수정

* feat: 공모 상세 화면 테스트 작성 (#264)

* feat: OfferingDetailViewModel 테스트 작성

* refactor: 테스트 수정

* style: lint적용

* style: lint적용

* feat: 로깅 코드 삽입 (#266)

* fix: 원 가격이 없는 경우 n빵 가격을 비교하지 않도록 변경

* feature: 로깅 샘플 구현

* refactor: 불필요한 코드 제거

* feat: logging 적용

---------

Co-authored-by: fromitive <[email protected]>

* fix: 마감 임박 필터링 쿼리 수정 (#267)

* chore: logback 설정 진행 (#270)

* chore: logback 설정

* fix: multipart 요청 필터링

* chore: logback 설정 변경

* chore: pull request ci/cd 닫기

* fix: 이미지 업로드 API의 responseBody가 두 번 뜨는 오류 해결 (#273)

* fix: 이미지 업로드 API 두 번 도는 문제 해결

* test: 이미지 업로드 API의 누락된 response field 추가

* refactor: 홈화면 수정 (#271)

* refactor: 할인율 마진 추가

* refactor: 공구상태에 대한 문구 수정

* refactor: 클릭 시 최상단으로 이동하는 버튼 구현

* feat: 공모글 작성 화면 테스트코드 작성 (#274)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: 공모글 작성 테스트 구현

* feat: 댓글방 목록 화면 테스트코드 작성 (#276)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* test: "댓글방 목록을 확인할 수 있어야 한다" 테스트 작성

* feat: pageSize validation 추가 (#279)

* feat: pageSize validation 추가

* feat: magic number 추출

* fix: 공모 상세 화면 오류 수정 (#280)

* fix: 총대 여부 확인 로직 수정

* fix: 마감 임박 시 보여주는 버튼 수정

* fix: 공모 작성 후 홈화면으로 돌아왔을 떄 목록이 새로고침 되지 않는 오류 수정

* test: 테스트 코드 수정

* style: lint적용

* feat: 댓글방 목록 화면 자동 업데이트 되지 않는 문제 수정, 회원가입 이후 자동으로 로그인되지 않는 문제 수정 (#282)

* refactor: 뷰모델 팩토리를 뷰모델의 companion object에서 구현하는 방식으로 변경

* fix: 라이플사이클 오너 설정

* fix: 회원가입 후 자동으로 로그인 되도록 수정

* chore: change version name (#291)

* feat: 카카오 계정 로그인 기능 구현 시 CI가 실패하는 문제 해결 (#296)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* feat: 로그인 화면 리팩토링 (#298)

* fix: ci가 실패하는 문제 수정(오타수정..)

* fix: 카카오 계정 로그인 기능 추가

* refactor: SimpleCookieJar의 패키지 변경(presentation 레이어에서 data레이어의 source 패키지로 이동)

* refactor: data store를 관리하는 클래스를 생성하고 이 클래스를 사용하도록 변경

* refactor: 사용하지 않는 의존성과 주석 제거

* refactor: http status code 추가

* refactor: 함수분리

* refactor: ktFormat 적용

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentRooms)

* feat: 액세스 토큰 만료 시 토큰 재발급 기능 구현(CommentDetail), 사용되지 않게 된 memberId 제거

* refactor: ktFormat 적용

* test: 테스트코드 수정

* refactor: Preferences -> DataStore 이름 변경

* refactor: 채팅방 UI UX 개선  (#303)

* feat: 키보드가 아닌 다른 영역을 클릭하면 키보드 내리는 기능 구현

* feat: 뒤로가는 버튼 기능 추가

* feat: 댓글 입력 maxLines 설정 및 maxLength 설정

* style: ktlint 적용

* 필요 없는 코드 제거

* feat: 댓글방 목록에서 자신이 총대인 댓글방의 UI 개선 (#304)

* refactor: 댓글방의 자신이 총대인 댓글방 ui 개선

* fix: Binding 클래스 네이밍 수정

* feat: 가로모드, 다크모드 설정 (#305)

* refactor: api변경에 따른 리팩토링 (#310)

* feat: 로그인 화면 해상도 대응 (#313)

* feat: 이미지 업로드 중일 때 로딩 상태 설정 (#317)

* feat: 공모 글 작성 ui state 구현

* feat: 로딩 progressbar 생성

* feat: UI 상태에 따른 토스트 메시지 처리

* refactor: 잘못된 입력에 대한 에러 처리 변경

* refactor: 홈화면 리팩토링 (#324)

* refactor: textSize dp로 변경

* refactor: 검색 버튼 크기 변경

- 검색 버튼 패딩 추가
- 검색창 끝에 패딩 추가

* refactor: 엔터키를 통해 검색하도록 수정

* refactor: 필터 단일 선택되도록 수정

* style: lint적용

* feat: 댓글방 새로운 기능 GA 연결 (#328)

* feat: 댓글방 참여자 확인 Event 구현

* feat: 댓글방 상태 변경 다이얼로그 취소 Event

* feat: 참여자가 공구에서 참여 포기 Event 구현

* style: ktlint 적용

* test: 테스트 데이터 수정 (#330)

* feat: Fragment GA 모니터링 수집 (#332)

* feat: fragment logScreenView 추적 함수 구현

* feat: 각 fragment에서 화면 감지 GA 설정

* feat: 마이페이지 기본 세팅 및 뷰 변경 (#335)

* feat: 공모 참여 취소 기능 구현 (#318)

* test: 공모 참여 취소 테스트코드 작성

* feat: 공모 참여 취소 기능 구현

* refactor: 불필요한 쿼리 메서드 제거

* style: 불필요한 개행 제거

* refactor: 모집중인 상태가 아닌 경우 공모 참여를 취소할 수 없도록 변경

* refactor: 공모 참여 취소 응답 상태 코드 변경

* refactor: 에러 메시지 명확한 문구로 변경

* refactor: query parameter를 적용해 어떤 공모의 참여를 취소할 것인지 의도를 명확하게 전달하도록 변경

* refactor: 총대 검증 메서드 네이밍 명확하게 변경

* feat: 댓글방 생성 시점 변경 (#319)

* feat: 댓글방 생성 시점 변경

* refactor: 불필요한 도메인 OfferingWithRole 제거

* refactor: 불필요한 도메인 CommentWithRole 제거

* refactor: 댓글의 작성자 확인 메서드 추가

* refactor: 댓글방 목록 조회 dto 생성자 추가

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가 (#322)

* feat: 로그인 API 응답에 memberId와 nickname 필드 추가

* refactor: 로그인용 dto 분리 및 공통 dto에 prefix로 auth 추가

* feat: valid 어노테이션 추가

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가 (#323)

* refactor: 메서드명 구체적으로 변경

* refactor: 변수명 구체적으로 변경

* feat: 공모 상세 조회 API 응답에 총대여부 알려주는 boolean 필드 추가

* docs: todo 추가

* refactor: 함수명 통일

* feat: 공모자 여부 필드명 변경

* feat: 댓글방 상태 조회 API 확장 (#325)

* feat: 댓글방 상태 조회 API 확장

* refactor: 댓글방 관련 로직 댓글 도메인으로 이동

* feat: LoggingFilter에서 던지는 유효하지 않은 요청에 대한 예외 처리

* refactor: 댓글 관련 엔드포인트 수정

* feat: 댓글방 정보 조회 시 조회 권한을 가진 사용자인지 검증

* refactor: 댓글방 상태 확인 로직 도메인으로 이동

* feat: 상태 변경을 시도하는 사용자가 총대인지 검증

* refactor: 댓글 목록 조회 엔드포인트 수정

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가 (#327)

* feat: ParticipantResponse에 참여 인원 현황, 예상 정산 가격 추가

* refactor: Response depth 줄이기 및 DTO 생성자 작성

* fix: imminent 필터 버그 해결 (#337)

* fix: 커스텀 필터로 인해 h2-console 접속 깨지는 이슈 해결 (#339)

* feat: 마이페이지 기능 구현  (#341)

* feat: 마이페이지 닉네임 기능 구현

* feat: 로그아웃 로직 구현

* feat: url 연결 로직 구현

* feat: 필요없는 기능 삭제

* style: ktlint 적용

* feat: 공모 테이블에 할인율과 상태 필드 추가 (#342)

* refactor: Condition과 Status 이름 변경

* refactor: 사용하지 않는 DTO 제거

* feat: OfferingEntity에 칼럼 추가

* feat: 공모 거래 날짜 필드 이름 변경 (#348)

* fix: 상세화면에서 홈화면으로 갔을 때 상태 변경 안되는 오류 수정 (#343)

* refactor: 공모상세페이지 Activity -> Fragment로 리팩토링

* fix: 페이지네이션 및 상태변경 미적용 오류 해결

* refactor: 리팩토링에 따른 테스트 수정

* refactor: 주석 제거 및 상수화

* refactor: livedata 자료형 변경

* refactor: progressbar위치 수정

* refactor: lifecycleScope사용 리팩토링

* refactor: adapter에서 전체 아이템이 아닌 특정 아이템만 notify하도록 리팩토링

* refactor: API변경에 따른 대응 (#352)

* refactor: api대응

* refactor: api변경에 따른 테스트 수정

* feat: 공모글 작성 화면 ux 개선 (#344)

* fix: 각 항목의 설명을 place holder로 이동

* fix: 필수와 선택 항목의 프래그먼트 분리

* feat: 버튼이 항상 보이도록 수정

* fix: 가격과 총원은 숫자만 입력받도록 변경

* fix: 패딩 수정

* fix: ui 수정

* fix: 도메인 변경에 따른 deadline -> tradeDate 수정

* feat: 필수 항목을 모두 입력하면 선택 항목 화면으로 이동하는 기능 구현

* refactor: ktFormat 적용

* refactor: shared viewModel 사용, 미필수 항목을 미필수 입력 화면으로 이동

* refactor: 프래그먼트 이름 변경

* feat: 입력 숫자의 글자수와 라인수 제한 기능 구현

* fix: 총원이 -1이하로 떨어지는 버그 수정, 공동구매 텍스트 띄어쓰기 제거

* fix: 할인율, 엔빵 금액이 유효하지 않을 때는 "-"로 뜨도록 변경

* fix: 공모를 게시하면 필수, 선택 화면 모두 종료되도록 수정

* fix: 날짜 시간 픽커를 날짜만 선택하는 픽커로 변경

* refactor: ktFormat 적용

* refactor: 바인딩어댑터의 파라미터를 nullable하게 수정

* test: 테스트코드 수정

* feat: 낱개 가격의 place holder로 현재 엔빵 금액을 보여주는 기능 구현

* feat: 내용의 최대 글자수와 현재 글자수를 보여주는 기능 구현

* refactor: ktFormat 적용

* refactor: 공모글 작성시 memberId를 보내지 않도록 변경

* fix: 총원 최대 4자리에서 3자리까지만 입력받을 수 있도록 변경

* fix: deadline -> meetingDate 네이밍 수정

* fix: 공모글 작성 후 작성 화면의 입력값이 초기화되지 않는 버그 수정

* refactor: 네이밍 수정(eachPrice -> originPrice)

* refactor: 네이밍 수정(individualPrice -> originPrice)

* fix: 내용의 현재 글자수 색이 메인컬러가 되지 않는 문제 수정

* refactor: 프래그먼트 종료될 때 바인딩 해제하도록 수정

* refactor: id가 없는 뷰의 id 추가

* refactor: 함수 분리

* fix: 내용 옆의 * 제거

* fix: GA 이벤트 이름 변경(공모글 작성 - 필수 화면에서의 이벤트임을 명시함)

* refactor: og 태그 추출 기능 수정 (#349)

* refactor: crawler 패키지 이동

* feat: naver api 클라이언트 추가

refactor: 사용하지 않은 기존 og image 크롤러 명칭 변경

* feat: html 크롤링 방식과 naver api 방식을 조합하는 Extractor 구현

* fix: OfferingService ProductImageExtractor 추상화

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현 (#358)

* feat: 로그인 시에도 memberId와 nickName을 받아서 data store에 저장하는 기능 구현

* test: 테스트코드 수정

*…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants