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

refactor: 약속 단건 조회 API 구현 #256

Merged
merged 14 commits into from
Aug 6, 2024
Merged

refactor: 약속 단건 조회 API 구현 #256

merged 14 commits into from
Aug 6, 2024

Conversation

eun-byeol
Copy link
Contributor

🚩 연관 이슈

close #224


📝 작업 내용

#245 리뷰 반영했습니다.

  • @ArraySchema
  • @errorcode404
  • LocalDate, LocalTime JsonFormat 적용

🏞️ 스크린샷 (선택)


🗣️ 리뷰 요구사항 (선택)

@eun-byeol eun-byeol self-assigned this Aug 5, 2024
@eun-byeol eun-byeol linked an issue Aug 5, 2024 that may be closed by this pull request
Copy link

github-actions bot commented Aug 5, 2024

Test Results

65 tests   65 ✅  3s ⏱️
18 suites   0 💤
18 files     0 ❌

Results for commit 0dbd363.

♻️ This comment has been updated with latest results.

Copy link
Contributor

@hyeon0208 hyeon0208 left a comment

Choose a reason for hiding this comment

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

꼼꼼하게 테스트까지 작성해주셨네요 👍🏻
approve 드리고 갑니다 😄

@@ -72,4 +75,36 @@ void saveMateWithDuplicateNickname() {
assertThatThrownBy(() -> mateService.save(mateSaveRequest, meeting, member2))
.isInstanceOf(OdyBadRequestException.class);
}

@DisplayName("회원이 참여하고 있는 특정 약속의 참여자 리스트를 조회한다.")
Copy link
Contributor

Choose a reason for hiding this comment

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

예외 상황까지 꼼꼼한 테스트 👍🏻

)
}
)
@ErrorCode401
@ErrorCode404(description = "존재하지 않는 약속이거나 해당 약속 참여자가 아닌 경우")
Copy link
Contributor

Choose a reason for hiding this comment

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

👍🏻

LocalDate date,

@Schema(description = "약속 시간", type = "string", example = "14:00")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm", timezone = "Asia/Seoul")
Copy link
Contributor

Choose a reason for hiding this comment

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

[질문]
pattern으로 시간 분만 응답으로 나가게 되었는데
타입을 String으로 변환한 이유가 있나요 ??

@@ -46,4 +46,11 @@ public MeetingSaveResponse findAllByMeetingId(Meeting meeting) {
List<Mate> mates = mateRepository.findAllByMeetingId(meeting.getId());
return MeetingSaveResponse.of(meeting, mates);
}

public List<Mate> findAllByMemberAndMeetingId(Member member, Long meetingId) {
Copy link
Contributor

Choose a reason for hiding this comment

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

[제안] 컨트롤러 단에서 @PathVariable Long meetingId 코드가 쓰여 Long이 사용된 것 같은데 null이 들어올 수 없을 것 같아요. long을 사용하는 것은 어떤가요?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

반영했습니다~👍

if (!mateRepository.existsByMeetingIdAndMemberId(meetingId, member.getId())) {
throw new OdyBadRequestException("존재하지 않는 모임이거나 약속 참여자가 아닙니다.");
}
return mateRepository.findAllByMeetingId(meetingId);
Copy link
Contributor

Choose a reason for hiding this comment

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

[질문] 해당 메서드가 dto인 MeetingWithMatesResponse를 반환하게 하지 않고 List<Mate>를 반환하게 한 이유가 있나요?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

두 가지 이유가 있었어요.

  1. 약속 1건 조회의 책임이 Mate보다는 Meeting에 있다고 생각했어요.
    물론, Mate는 Meeting을 알고 있어서 Mate에서 Response를 반환할 수도 있겠지만,
    MeetingServiceMateService를 호출만 하게 되는 구조가 어색한 것 같아요.

  2. MateService에서 바로 반환하면, MateRepository의 재사용성이 매우 낮다고 생각했어요.
    MateService에서 Response를 반환하게 되면, 사실상 MeetingService는 불필요해요.
    MateService에서 모든 로직을 처리하고, MateRepository 한방쿼리로 해결할 수 있을 거예요. 당장은 Mate 인원수가 최대 8명이고, 성능이 중요한 케이스는 아니라고 생각해요. Repository 재사용성 측면을 더 고려했습니다!

Copy link
Contributor

@coli-geonwoo coli-geonwoo left a comment

Choose a reason for hiding this comment

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

조조! 구현하느라 고생 많으셨어요! 몇가지 리뷰 사안 적었어요!

테스트 코드 상에서 반영이 꼭 필요한 부분 생겨 우선 RC로 남겨놓습니다.

@@ -16,9 +18,11 @@ public record MeetingWithMatesResponse(
String name,

@Schema(description = "약속 날짜", type = "string", example = "2024-07-15")
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "Asia/Seoul")
Copy link
Contributor

Choose a reason for hiding this comment

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

[제안-선택]

커스텀 직렬화 도구를 통해 LocalDate와 LocalTime 형식을 지정할 수 있어요. json으로 반환할 때 우리가 반환로직을 지정해줄 수 있습니다. 매번 LocalDate나 LocalTime마다 jsonformat을 붙이기 보다 하나의 클래스 선언으로 모든 LocalTime과 LocalDate의 형식을 지정해줄 수 있습니다.

ex) yyyy-MM-dd로 형식 맞추는 클래스
다만 조금 시간이 걸리는 리팩터링 사안이라 반영은 조조 의사에 맡길게요!!

@JsonComponent
public class CustomLocalDateSerializer extends JsonSerializer<LocalDate> {
    private static final DateTimeFormatter TIME_FORMATTER = new DateTimeFormatterBuilder()
            .appendPattern("yyyy-MM-dd")
            .toFormatter()
            .withZone(ZoneId.of("Asia/Seoul"));

    @Override
    public void serialize(
            LocalDate localDate,
            JsonGenerator jsonGenerator,
            SerializerProvider serializerProvider
    ) {
        try {
            jsonGenerator.writeString(TIME_FORMATTER.format(localDate));
        } catch (IOException exception) {
            throw new RuntimeException("날짜 변환 과정에서 문제가 발생했습니다.");
        }
    }
}
@JsonComponent
public class CustomLocalTimeSerializer extends JsonSerializer<LocalTime> {
    private static final DateTimeFormatter TIME_FORMATTER = new DateTimeFormatterBuilder()
            .appendPattern("HH:mm")
            .toFormatter()
            .withZone(ZoneId.of("Asia/Seoul"));

    @Override
    public void serialize(
            LocalTime time,
            JsonGenerator jsonGenerator,
            SerializerProvider serializerProvider
    ) {
        try {
            jsonGenerator.writeString(TIME_FORMATTER.format(time));
        } catch (IOException exception) {
            throw new RuntimeException("시간 변환 과정에서 문제가 발생했습니다.");
        }
    }
}

Copy link
Contributor Author

Choose a reason for hiding this comment

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

커스텀 직렬화 도구 사용하는 것은 새롭게 이슈 파서 적용하는 게 좋을 것 같아요.
이미 @jsonformat 적용되어 있는 코드가 많아서, 한 번에 수정하면 좋을 것 같습니다~

@@ -33,7 +37,7 @@ public record MeetingWithMatesResponse(
@Schema(description = "참여자 인원 수", example = "1")
int mateCount,

@Schema(description = "참여자 닉네임 목록", example = "[{\"nickname\": \"오디\"}]")
@ArraySchema(schema = @Schema(implementation = MateResponse.class))
Copy link
Contributor

Choose a reason for hiding this comment

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

👍


Long meetingId = meetingRepository.save(Fixture.ODY_MEETING1).getId();

Long mate1Id = mateRepository.save(Fixture.MATE1).getId();
Copy link
Contributor

Choose a reason for hiding this comment

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

[제안- 필수]

오늘 카키와 발견한 문제인데 Fixture.Mate들은 쓰면 안될 것 같아요. 연관관계가 설정된 엔티티인데 static 객체라서 전체 테스트를 돌릴 때 id가 계속 변하게 되더라고요.

테스트 스트림이 병렬이라 어쩔 땐 mate id가 일치해서 통과하는데 다른 코드가 먼저 돌아가 autoincrement되어 테스트가 깨져요.

Mate는 새로운 객체를 만들어서 사용해야 안전할 것 같습니다. 관련 내용은 내일 더 이야기나눠보아요.

Suggested change
Long mate1Id = mateRepository.save(Fixture.MATE1).getId();
Mate mate = new Mate(.......) //mate는 fixtue 쓰지 말것!!
Long mate1Id = mateRepository.save(mate).getId();

Copy link
Contributor Author

Choose a reason for hiding this comment

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

반영 완료했습니다~👍


assertAll(
() -> assertThat(meetingWithMatesResponses.id()).isEqualTo(meetingId),
() -> assertThat(mateNicknames).containsOnly(
Copy link
Contributor

@coli-geonwoo coli-geonwoo Aug 5, 2024

Choose a reason for hiding this comment

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

[제안]

순서까지 검증해주는 containsExactly를 쓰면 더 정확할 것 같아요

Copy link
Contributor Author

Choose a reason for hiding this comment

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

데이터를 정렬해서 주는 것이 아니라서,
오히려 순서를 보장해서 테스트하는 것이 맞지 않다고 생각했어요!

@eun-byeol
Copy link
Contributor Author

변경 사항

  1. meetingId primitive type으로 변경
  2. JsonFormat 불필요한 옵션 제거
  3. Fixture.MATE 제거

리뷰 반영한 코드는 여기에서 확인 가능합니다.

@coli-geonwoo
Copy link
Contributor

직접 커밋 변경 범위도 설정해주고 친절한 조조.... 👍

리뷰 사안 최대한 많이 수용해줘서 감사합니다!! approve 합니다!

@mzeong mzeong merged commit 3391184 into develop Aug 6, 2024
3 checks passed
@mzeong mzeong deleted the feature/224 branch August 6, 2024 11:30
hyeon0208 added a commit that referenced this pull request Aug 22, 2024
* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 업그레이드

1.6.10-1.0.4 -> 1.9.0-1.0.13

* chore: MeetingInfoActivity exported true로 변경

* feat: 모임 참여 완료 화면 구현 (#70)

* chore: 박수 이미지들 추가

* feat: 모임 개설 완료 화면 구현

* chore: DestinationFragment -> MeetingDestinationFragment 변경

* feat: 모임 참여 완료 화면 (#72)

* chore: 달력 이미지들 추가

* feat: 모임 참여 완료 화면 구현

* chore: 화면 회전 가로로 고정 및 exported false로 변경

* chore: tools:text에 해당하는 값 하드 코딩으로 변경

* feat: 메인 화면 구현 (#73)

* design: 인트로 화면 xml 작성

* design: activity_intro.xml 작성

* feat: Event 작성

* feat: IntroNavigateAction 작성

* feat: Intro 버튼 리스너 인터페이스 작성

* feat: 각 버튼 클릭에 따른 Navigation Event 발생 구현

* feat: IntroActivity에 ViewModel 추가

* feat: observe 초기화 코드 추가

* refactor: IntroActivity와 MeetingInfoActivity 연결

* refactor: binding 함수 분리, initialize로 함수명 통일

* chore: shape_purple_radius_20.xml -> rectangle_purple_radius_20.xml 이름 변경

* design: 탑 바 추가

---------

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

* feat: 모임 참여 시 프래그먼트들 연결하는 뷰페이저 (#74)

* chore: MeetingInfoListener -> InfoListener로 인터페이스 명 변경

* feat: 모임 참여 뷰페이저 구현

* chore: initializeDataBinding에 ViewPager 초기화 메서드 추가

* chore: VisitorInfo -> JoinInfo로 메서드명 변경

* chore: InfoListener -> BackListener로 인터페이스 명 변경

* feat: 알림 권한 요청 (#75)

* feat: 알림 권한 요청

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* chore: android ci 필드 추가 (#78)

* chore: android ci 스크립트 api key 추가

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 테스트

* feat: 위도, 경도 가져오는 api 연동 (#76)

* feat: 위경도 가져오는 repository 구현

* feat: 카카오 location response dto 추가

* feat: 카카오 location api 연동

* feat: 위도 경도를 프래그먼트에 전달하는 기능 구현

* refactor: 위도 경도 받아오는 기능을 비동기로 처리

* fix: 위도 경도 비동기로 받아와서 프래그먼트에 전달

* fix: 위경도 받아온 후 다이얼로그 닫도록 수정

* refactor: interceptor로 헤더 추가

* style: ktLint 적용

* chore: moshi 어댑터 import 수정

* refactor: 함수 분리

* refactor: 위경도에 대한 mapper 생성

* chore: 패키지 구조 변경

* refactor: 위경도 데이터에 대한 ui model 추가

* style: ktLint 적용

* chore: 사용하지 않는 파일 삭제

* feat: 약속 날짜 입력 화면 (#79)

* feat: 날짜 선택 화면 구현

* chore: 불필요한 스낵바 제거

* feat: 날짜 선택 시간에 따른 예외 처리

* style: ktlint

* feat: 모임 정보 입력 검증 로직 추가 (#68)

* feat: 모임 정보 입력 검증 로직 추가

* fix: 검증할 DTO에 검증 어노테이션 추가

* style: 코드 컨벤션 적용

* feat: nickname 검증을 담당하는 도메인 추가

* refactor: 엔티티에서 이미 선언된 NotNull을 임베디드 객체에서 제거

* feat: 닉네임 입력 화면 구현 (#86)

* design: 닉네임 입력 화면 ui 구현

* feat: 닉네임 최대 길이 뷰모델에서 가져오도록 구현

* feat: 닉네임이 변경되면 닉네임 글자수가 보이는 기능 구현

* feat: 엑스 버튼 누르면 입력된 닉네임 없어지는 기능 구현

* feat: 닉네임 입력 여부에 따라 다음 버튼 비활성화 되는 기능 구현

* style: ktLint 적용

* feat: 초대 코드 복사 bottom dialog (#84)

* design: bottom sheet 틀 디자인

* design: bottom sheet 디자인

* feat: 초대 코드 복사하기 구현

* chore: initialize로 네이밍 통일 및 스낵바에 Int값 전달로 변경

* chore: 초대 코드 관련 UX 라이팅 변경

초대 코드가 복사 됐습니다. -> 초대 코드가 복사 복사되었습니다.

* feat: 약속 시간 입력 화면 구현 (#97)

* design: 약속 시간 입력 화면 ui 구현

* feat: 시간과 분을 NumberPicker에 데이터로 넣어주는 기능 구현

* feat: NumberPicker 무한 스크롤 구현

* refactor: NumberPicker 숫자 지정하는 기능을 프래그먼트로 이동

* feat: 현재 시간으로 NumberPicker 초기값 셋팅하는 기능 구현

* feat: 다음 버튼 누르면 시간 유효성 검증 구현

* refactor: 다음 버튼 리스너를 인터페이스로 분리

* style: ktLint 적용

* refactor: numberPicker value를 데이터 바인딩으로 수정

* feat: 초대 코드 입력 화면 구현 (#99)

* design: 초대 코드 입력 화면 뷰 구현

* feat: 초대 코드 유효성 검증 repository 구현

* chore: manifest에 액티비티 추가

* design: edit text 속성 추가

* feat: 초대 코드 입력 여부에 따라 엑스 버튼의 가시성을 변경하는 기능 구현

* feat: 엑스 버튼 클릭 시 입력한 초대 코드 지우는 기능 구현

* design: strings 와 selector 추가

* feat: 확인 버튼 클릭 시 유효성 검증하는 기능 구현

* style: ktLint 적용

* chore: 불필요한 코드 삭제

* feat: toolbar back 버튼 리스너 구현

* chore: infoListener -> backListener 네이밍 수정

* chore: dialog 크기 수정 (#98)

* feat: 서브모듈 환경 구축 (#101)

* chore: ci submodule 적용

* chore: 서브모듈 디렉토리 추가

* chore: private.yml 파일 수정 테스트

* chore: private.yml 파일 수정

* test: test argument 수정

* chore: ci 스크립트 수정

* chore: ci 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발지 입력 화면 구현 (#100)

* style: 출발지 입력 화면 ui 구현

* feat: 도착지 입력 시 수도권 유효성 검증 구현

* refactor: 주소 검색 클릭 리스너 인터페이스로 분리

* chore: 패키지 분리

* feat: 출발지 입력 시 수도권 유효성 검증 구현

* feat:  수도권 여부에 따라 다음 버튼 활성화 기능 구현

* style: ktLint 적용

* feat: 모임 이름 입력 화면 구현 (#102)

* design: 모임 이름 입력 ui 구현

* feat: 글자수 데이터 바인딩 기능 구현

* refactor: 모임 시간 범위 표현 방식 수정

* fix: strings 추가

* fix: 바인딩 빌드 오류 해결

* feat: 출발 시간 알림 구현 (#60)

* feat: 출발 시간 알림 예약 기능 추가

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

* refactor: 토큰으로 회원 조회 ArgumentResolver로 공통화

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

* fix: TaskScheduler 빈 등록

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

* test: 출발 시간 알림 예약 기능 테스트 추가

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

* fix: JpaAuditing 활성화

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

* fix: 요청 DTO 매핑을 위한 RequestBody 어노테이션 추가

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

* fix: save 메서드에 Transactional 어노테이션 추가

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

* style: 코드 컨벤션 적용

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

* fix: firebase 키 캐쉬 내역 제거

* fix: 테스트 시에 테스트용 yml이 수정되도록 규칙에 맞게 이름 수정

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

* refactor: 모임 내 모든 사용자가 알림 받도록 topic 기능 사용

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

* refactor: 알림에 닉네임 포함하도록 수정

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

* refactor: 예외 메세지 오타 수정

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

* refactor: 디바이스 토큰 헤더 형식 검증 로직 분리

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

* refactor: 컨트롤러 시그니처 변경 및 스웨거 문서 수정

- 디바이스 토큰 헤더 커스텀 어노테이션 생성

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

* fix: FCM 토픽 구독 로직 분리

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

* refactor: Member 필드에 DeviceToken 타입 사용

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

* refactor: FCM 설정 옵션 코드 분리 및 테스트를 위한 enable 로직 제거

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

* refactor: FCM message 생성 로직 가독성 개선

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

* refactor: 변수 선언으로 `taskScheduler.schedule()` 호출 시 가독성 개선

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

* refactor: 가독성 개선을 위해 AndroidNotification 변수 선언

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

* refactor: Fixture에 private 생성자 추가

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

* refactor: IntegrationTest -> BaseControllerTest 이름 변경

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

* refactor: test application.yml 파일 제거

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

* refactor: 롬복을 이용하지 않고 Fixture private 생성자 추가

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

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: H <[email protected]>

* feat: 초대 코드 Preference dataStore 세팅 (#104)

* chore: preference datastore 의존성 추가

* feat: 초대 코드 복사 preference datastore 기초 세팅

* feat: 모임 참여/개설 시 뷰모델 데이터 관리 #93 (#105)

* feat: 입력값 유효성에 따라 다음 버튼 활성화되도록 구현

* feat: 다음 버튼이 비활성화되면 스와이프도 불가능하도록 구현

* refactor: startActivity 방식을 getIntent로 변경

* feat: 다음 화면으로 이동하면 다음버튼이 비활성화 되도록 구현

* fix: 출발지 입력에 대한 유효성 검증 처리를 Event로 변경

* refactor: 모임 개설 시 데이터 viewModel에서 관리하도록 수정

* feat: 모임 개설 시 화면 플로우 구현

* style: ktLint 적용

* fix: Swagger에서 API 호출 시 Bad Request 응답 오류 (#107)

* refactor: `common/annotation` 패키지 이름 오타 수정

* refactor: Authorization 헤더 사용을 위한 설정 추가 및 코드 변경

- 커스텀 어노테이션 DeviceTokenHeader 제거
- 디바이스 토큰 접두사 수정

* fix: 멤버 추가 시 멤버 검증 로직 포함되지 않도록 수정

* fix: nickname 객체로 변경에 따른 코드 수정

* fix: 디바이스 토큰 접두사 추가에 따른 테스트 코드 수정

* fix: LocalDate, LocalTime Swagger 상 타입 표현 string으로 수정

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

* fix: 닉네임을 객체로 변환함에 따른 getter 코드 수정

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

---------

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

* feat: 모임 초대 코드 생성 기능 추가 (#61)

* feat: 모임 초대 코드 생성 기능 추가

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

* style: 한줄에 한개의 점만 찍는다 컨벤션 적용

* refactor: 디코딩 검증 로직 추가

---------

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

* feat: 서버 헤더 형식 변경 (#112)

* feat: 로그 화면 구현 (#108)

* feat: Notification 도메인 타입 정의

* feat: api 서버로부터 받는 NotificationLog 타입 정의

* feat: retrofit의 NotificationService 구현

* feat: NotificationLogRepository의 명세와 기본 Repository 구현

* refactor: NotificationLog -> NotificationEntity

* design: item_notification_log.xml 작성

* feat: 타입 추가 정의

* chore: merge

* refactor: DefaultNotificationLogRepository 싱글턴으로 변경

* feat: NotificationLogViewModel 구현

* feat: NotificationLogActivity 구현

* design: rectangle_cream_downside_radius_30.xml 작성

* design: item_notification_log.xml 작성

* chore: merge

* chore: merge

* feat: 로그 리사이클러 뷰 구현

* chore: merge

* refactor: 알림 로그를 불러올 때 meetingId를 이용해 불러오도록 변경

* feat: 뷰와 데이터 바인딩

* chore: 오타 수정

* feat: 초대 코드 화면에서 로그 화면으로 이동 기능 구현

* refactor: 리뷰 반영

* refactor: ViewHolder 분리

* feat: 닉네임, 출발지 입력 (#80)

* refactor: Nickname 도메인 개선

- OdyException 커스텀 예외 생성
- 이름 변경 (NickName -> Nickname)

* refactor: 위경도 검증 로직 추가

- Location 필드에 `@NotNull` 추가

* feat: 전역 예외 처리기 추가

* refactor: 불필요한 final 키워드 제거

* refactor: 공백만 존재하는 닉네임 불가하도록 수정

* feat: 소요 시간 계산 기능 구현 (#96)

* chore: private 파일 gitignore 추가

* feat: 소요 시간 계산 기능 구현

* refactor: 소요 시간 계산 API client 변경

* feat: Duration Deserializer 구현

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: RouteClient calculateDuration 메서드 수

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발 시간 계산 로직 구현

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 소요 시간 계산 API 에러 핸들링

* fix: 커밋되지 않은 response 클래스 추가

* chore: 불필요한 build.gradle 구문 삭제

* refactor: 변수 선언문 try 내부로 이동

* refactor: 중첩된 로직 별도 변수로 추출

* refactor: 축약된 exception 변수명 수정

* refactor: 소요시간 VO 이름 수정, Odsay api response 객체 이름 수정

* refactor: URI 생성 시 StringBuilder 적용

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: 스낵바 위치 변경 및 showSnackBar 형식 통일 (#116)

* feat: 로그 목록 조회 (#87)

* chore: dto 디렉토리 변경

request > response

* feat: NotificationRepository 구현

* feat: dto 변환로직 구현

* feat: notificationService 구현

* style: 컨벤션 준수

* docs: test용 yml파일 추가

* refactor: notification 생성자 추가

* test: 로그 목록 반환 테스트 작성

* refactor: domain to dto 계층 이동

* refactor: method 이름 수정

* test: 로그 목록 조회 통합 테스트 추가

* style: new-line 추가

* chore: 로그 목록 반환 메서드 이동

NotificationController > MeetingController

* chore: 메서드 명 일치화

findAllMeetingLogsById > findAllMeetingLogs

* chore: domain to dto 메서드명 변경

toResponse > from

* refactor: auditing config 분리

* chore: dto 명 변경

NotificationSaveResponse > NotiLogFindResponse
NotiLogFindResponse > NotiLogFindResponses

* chore: 테스트 디렉토리 이동

* style: 불필요한 import문 제거

* chore: 디렉토리 변경

* Revert "chore: 디렉토리 변경"

This reverts commit c1b9f595357b999fe4aac325d460246ab3e8cb91.

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: CI/CD 스크립트 분리 (#126)

* chore: ci/cd script 분리

* chore: cd 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 개설 기능 추가 (#121)

* style: 한 줄에 하나의 점만 찍는다. 컨벤션 적용

* refactor: 변경된 클래스명으로 getter 네이밍 수정

* chore: 초대코드생성기 util 패키지로 이동

* feat: 모임 개설 API 기능 추가

* feat: 회원 추가 API 기능 추가

* refactor: 변경된 firebase 엑세스 키 파일 위치로 경로 수정

* feat: DB 테이블 삭제 클래스 추가

* test: 컨트롤러 테스트 추가

* refactor: 서브 모듈 패키지 변경 사항 추가

* refactor: 초대코드 디코딩하여 모임방 조회 적용

* refactor: entityManger 의존성 주입 추가

* fix: 회원 생성, 모임 참여 API 오류 수정 (#127)

* fix: deviceToken unique, notnull 속성 적용

* fix: deviceToken 공백 검증 로직 적용

* style: import 재정렬

* feat: deviceToken 문자열 앞뒤 공백 제거 로직 추가

* refactor: findDeviceToken 쿼리 성능 개선

* feat: 회원 생성시 토큰 중복 검사 추가

* feat: mate 테이블의 memberId, meetingId unique 설정

* feat: 모임 참여시 중복 검증 로직 추가

* refactor: 모임 개설시 mate에도 회원 정보 저장

* refactor: DeviceToken NotNull 제약 조건 추가

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 모임 내 닉네임 중복 검증 (#119)

* feat: 초대코드 검증 API 추가 (#123)

* feat: 초대코드 검증 API 추가

* feat: 404를 반환하는 커스텀 예외 추가

* test: 404 오류를 검증하는 테스트로 변경

* feat: 모임 개설 서버 연결 (#131)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* feat: 특정 회원이 참여한 모임 목록 조회 API 구현 (#129)

* feat: 멤버가 참여한 모임 리스트 반환 쿼리 구현

* feat: 멤버가 참여한 모임 리스트 반환 기능 구현

* feat: token fixture 추가

* style: static import 제거

* test: 멤버 참여 모임 목록 조회 통합 테스트 추가

* test: NotificationRepositoryTest directory 이동

* test: 간섭 발생 테스트 disabled 처리

* fix: test 오류 개선

* fix: import 오류 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* feat: 다음 버튼 비활성화 시 뷰페이저 스와이프 막는 기능 구현 (#122)

* refactor: LivaData set value 방식 변경

* feat: 모임 개설 시 뷰페이저 스와이프 막는 기능 구현

* feat: 뷰페이저 화면 이동 시 유효성 검증 기능 구현

* style: ktLint 적용

* fix: 모임 시간 유효하지 않아도 다음 페이지로 이동하는 버그 수정

* chore: nextPage -> moveOnNextPage 함수명 변경

* feat: 모임 개설 시 개설 완료 화면으로 이동하는 기능 구현

* feat: Notification 구현 (#128)

* feat: Notification 메시지 바로 출력

* chore: 의존성 추가

* fix: 경로 변경에 의한 import 변경

* feat: 알림 타입에 따른 알림 메시지 변경

* feat: fcm을 위한 string 작성

* feat: 알림 로그 화면에 bottom dialog 적용 (#130)

* chore: domain 패키지 정리

* chore: 리스너 이름 변경

* feat: meeting domain model에 초대코드 추가

* feat: NotificationLogActivity에 bottom sheet 기능 병합

* refactor: FakeRepo에서 DefaultRepo로 변경

* design: elevation 수정

* fix: app 네임스페이스 추가

* fix: manifest 수정

* refactor: FCM 전송 데이터 안드로이드 요청사항 반영 (#136)

* fix: 실패하는 테스트 수 (#137)

* fix: 초대 코드 입력 성공 시 참여 화면으로 이동하도록 수정 (#133)

* feat: 모임 개설 api 연결 (#139)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* chore: okhttp logging 의존성 추가

* chore: Http Logging 추가

* chore: 오타 수정

* feat: MeetingService postMeeting 추가

* chore: Timber 메시지 수정

* chore: 키에 맞는 인텐트로 변경

* feat: 모임 개설 api 연결

* feat: 커스텀 예외 생성 및 적용 (#140)

* feat: 커스텀 예외 생성 및 적용

* fix: fcmPushSender MockBean 추가

* fix: 테스트 실패 원인 파악 및 성공을 위해 `@Disabled` 처리

- NotificationService 내에서 RouteClient 접근해서 문제 발생

* feat: 모임 참여 서버 연결 (#143)

* feat: 서버 참여 api 연결

* style: ktlint 수정

* chore: 메서드 분리 및 메서드 한줄로 변경

* feat: 참여중인 모임 목록 조회 (#142)

* feat: 참여한 모임이 있을 경우 첫 번째 모임에 참여, 아닐 경우 인트로 화면으로 이동하는 기능 구형

* feat: 참여한 모임 중 첫 번째 모임의 로그를 띄워주는 기능 구현

* refactor: 리뷰 반영

* fix: 자잘한 ux 버그 다수 수정 (#145)

* fix: import 오류 수정

* fix: NumberPicker 디폴트 값이 현재 시간으로 설정되지 않는 버그 수정

* fix: 주소 EditText 한줄만 입력할 수 있도록 수정

* fix: 유효한 날짜 선택 시에도 유효하지 않다는 스낵바 뜨는 버그 수정

* fix: 닉네임 입력 화면으로 이동 시 화면 깜빡임 현상 수정

* fix: back press 시 이전 fragment로 이동하도록 수정

* style: ktLint 적용

* design: 바텀 시트 stroke 제거 및 elevation 추가

* feat: EC2 서버의 H2 콘솔 접근 설정 및 누락된 모임장 알림 로직 추가 (#146)

* chore: EC2 서버의 H2 콘솔 접근을 위한 설정 추가

* fix: 모임 참여 API에서 누락된 알림 로직 추가

* fix: ODsay 사용하는 테스트 코드 Disabled 처리

* fix: ODsay 사용하는 MeetingControllerTest 코드 Disabled 처리

---------

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

* fix: FCM 토픽 Malformed topic name 에러 해결 (#149)

* fix: FCM 토픽 Malformed topic name 에러 해결 (#151)

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: 의도하지 않은 값이 토픽에 들어간 코드 수정 (#153)

* fix: 로그 화면 버그 해결 (#157)

* fix: 로그 화면 데이터 mapping 버그 수정

* design: 로그 화면 그림자 drawable 수정

* fix: LocalDateTime mapping 방식 수정

* design: 로그 화면 툴바의 뒤로가기 버튼 제거

* fix: fcm 토큰 없는 경우 meetings를 불러오지 않도록 수정

* style: ktLint 적용

* chore: Meetings -> MeetingsResponse 클래스명 변경

* fix: LocalDateTime mapping 오류 해결

* fix: 클립보드 복사 시 스낵바 제거

* fix: LocalDateTime mapping 오류 해결

* fix: 로그 화면으로 이동 시 깜빡이는 현상 해결

* refactor: 리뷰 반영

* fix: CalendarView -> DatePicker로 변경하여 날짜 선택 불가 버그 수정 (#155)

* �feat: 로그 목록 조회 시 과거순 정렬 (#144)

* refactor: 아규먼트 리졸버 어노테이션 적용

* refactor: 데이터베이스에 데이터 추가 순으로 알림 로그 정렬

* test: 모임 반환 테스트 오류 해결

* refactor: 현재 이전의 로그 목록을 조회하도록 수정

* refactor: NotiLog 바인딩 수정

createdAt > sendAt

* refactor: 불필요한 레코드 삭제

* refactor: LocalTime 밀리 세컨즈 제거

* test: 로그 필터링 적용 테스트 작성

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 알림 전송 예약 시점이 아닌 전송 시점에 상태 변경되도록 수정 (#162)

- FcmSendRequest 매개변수 변경
- updateDone -> updateStatusToDone 메서드명 변경
- 시연을 위해 알림 전송 시간 임의 지정
- FcmSendRequest 매개변수 변경에 따른 테스트 코드 수정

* feat: 초대코드 존재유무 검증로직 구현 (#164)

* feat: 초대코드 존재유무 검증로직 구현

* refactor: id 기반 모임 조회로 로직 변경

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 (#165)

* chore: RequestDto 패키지 위치 이동

* style: 컨트롤러 컨벤션 개행 적용

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 기능 추가

* refactor: 알림 전송 코드 개선

* refactor: 본인의 입장 푸쉬 알림은 안뜨도록 fcm 토픽 구독 순서 변경

* fix: 스플래쉬 딜레이 수정 (#163)

* fix: 스플래쉬 delay 수정

* fix: LocalDateTime parse 형식 수정

* style: ktLint 적용

* refactor: 패키지 구조 변경 (#174)

* refactor: data model -> data entity로 패키지명 변경

* refactor: entity -> remote 패키지 아래로 이동

* refactor: 각 entity 안에 request, response 패키지 만들기 및 remote 패키지 아래에 Ody api를 연결하는 패키지, FCM 패키지 만들기

* refactor: domain - repository 아래 이슈 별로 패키지 분리

* refactor: presentation common 만들기

* refactor: startingpoint -> departure 패키지 명 변경

* refactor: NotificationLogListAdapter -> NotificationLogsAdapter 클래스명 변경

* refactor: notificationlog -> meetingRoom 패키지명 변경

* refactor: startingpoint -> departure xml 명 변경

* refactor: domain으로 AddressValidator 이동

* refactor: presentation - listener 패키지 만들기

* refactor: presentation ui 모델은 presentation model 패키지 안에 넣기

* refactor: data - fake -> 테스트 패키지 쪽으로 위치 변경

* refactor: meeting 패키지 만들고 meeting과 관련된 파일들 이동

* refactor: join 패키지 만들고 join과 관련된 파일들 이동

* refactor: DepartureFragment -> JoinDepartureFragment로 프로그래먼트 명 변경

* style: ktlint

* refactor: meeting, join -> meetingcreation, meetingjoin으로 패키지명 변경

* refactor: meetingcreation, meetingjoin, meetingroom -> creation, join, room 으로 패키지명 변경

* refactor: data - remote - thirdparty, core로 패키지 분리

* style: ktlint

* style: ktlint

* refactor: manifest tools 속성 제거 (#184)

* refactor: manifest tools 속성 제거

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* test: RouteClient Mock 테스트 (#177)

* test: 길찾기 api 성공 restClient MockTest

* test: 도착지와 출발지가 700m 이내인 테스트 추가

* fix: 500 에러 시에만 OdyServerErrorException 발생하도록 수정

* test: 잘못된 api-key 요청 시 예외 발생 테스트 추가

* test: 클라이언트 예외 발생 테스트 추가

* test: static 키워드 삭제

* refactor: RouteClient 인터페이스화

* test: service layer FakeRouteClient 적용

* test: controller layer FakeRouteClient 적용, @Disabled 제거

* test: RouteClient 관련 테스트 파일 디렉토리 이동

* refactor: URI 생성 로직 가독성 개선

* test: 불필요한 테스트 제거

* feat: NPE 체크 로직 추가

* test: 불필요한 RouteClient 설정 제거

* refactor: Event -> SingleLiveData로 개선 (#185)

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* chore: open 키워드 제거

* refactor: 모임 날짜를 LocalDate로 관리 (#186)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장 (#193)

* refactor: 2차 스프린트 구현 사항 리팩터링 (#189)

* chore: 함수 이름 통일

initializeObservingData -> initializeObserve

* refactor: SingleLiveData의 타입을 Boolean에서 Unit으로 변경

* refactor: 약속 날짜 유효성 검증을 ViewModel로 분리

* chore: 함수, 프로퍼티 순서 변경

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: Splash 화면 이동 판단 로직을 뷰모델로 이동

* style: ktLint 적용

* refactor: 약속 시간이 초기화되었는지 판단하는 로직을 변수로 분리

* chore: 함수명 변경 empty -> clear

* chore: updateMeetingDate -> checkMeetingDateValidity 함수명 변경

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: aprilgom <[email protected]>

* refactor: RouteClient 응답 분기를 객체로 캡슐화 (#188)

* refactor: RouteClient 응답 분기를 객체로 캡슐화

* chore: 패키지 디렉토리 변경

domain > dto

* refactor : 응답 매핑 로직을 mapper로 이전

* refactor : 불필요한 static 객체 삭제

* refactor : 500에러 처리 로직 추가

* refactor : NPE 예외 처리

* refactor : 롬복으로 private 생성자 구현

* test: OdsayResponseMapperTest 작성

* style: message 개행 변경

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

* refactor: OdsayRouteClient에 mapper 로직 반영

* fix: FutureOrPresentDateTimeValidatorTest 오류 개선

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: H <[email protected]>

* design: 폰트, 컬러 xml 지정 (#219)

* design: font 스타일 추가

* design: colors 네이밍 변경

* design: 컬러 추가

* refactor: 2차 스프린트 리팩터링 (#196)

* refactor: FCMService와 NotificationHelper 분리

* refactor: 알림 권한이 이미 있을 시 early return, viewmodel 이름 수정

* refactor: NotificationLog Result 반환하도록 수정

* refactor: 이벤트 리스너 네이밍 수정

* refactor: MeetingRoomViewModel 초기화 init 블럭 내 실행, Timber 로그 내 toString 제거

* style: ktLintFormat

* fix: NotificationLog repo 수정에 따른 FakeRepository 수정

* style: ktLintFormat

* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]
mzeong added a commit that referenced this pull request Sep 26, 2024
* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 업그레이드

1.6.10-1.0.4 -> 1.9.0-1.0.13

* chore: MeetingInfoActivity exported true로 변경

* feat: 모임 참여 완료 화면 구현 (#70)

* chore: 박수 이미지들 추가

* feat: 모임 개설 완료 화면 구현

* chore: DestinationFragment -> MeetingDestinationFragment 변경

* feat: 모임 참여 완료 화면 (#72)

* chore: 달력 이미지들 추가

* feat: 모임 참여 완료 화면 구현

* chore: 화면 회전 가로로 고정 및 exported false로 변경

* chore: tools:text에 해당하는 값 하드 코딩으로 변경

* feat: 메인 화면 구현 (#73)

* design: 인트로 화면 xml 작성

* design: activity_intro.xml 작성

* feat: Event 작성

* feat: IntroNavigateAction 작성

* feat: Intro 버튼 리스너 인터페이스 작성

* feat: 각 버튼 클릭에 따른 Navigation Event 발생 구현

* feat: IntroActivity에 ViewModel 추가

* feat: observe 초기화 코드 추가

* refactor: IntroActivity와 MeetingInfoActivity 연결

* refactor: binding 함수 분리, initialize로 함수명 통일

* chore: shape_purple_radius_20.xml -> rectangle_purple_radius_20.xml 이름 변경

* design: 탑 바 추가

---------

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

* feat: 모임 참여 시 프래그먼트들 연결하는 뷰페이저 (#74)

* chore: MeetingInfoListener -> InfoListener로 인터페이스 명 변경

* feat: 모임 참여 뷰페이저 구현

* chore: initializeDataBinding에 ViewPager 초기화 메서드 추가

* chore: VisitorInfo -> JoinInfo로 메서드명 변경

* chore: InfoListener -> BackListener로 인터페이스 명 변경

* feat: 알림 권한 요청 (#75)

* feat: 알림 권한 요청

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* chore: android ci 필드 추가 (#78)

* chore: android ci 스크립트 api key 추가

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 테스트

* feat: 위도, 경도 가져오는 api 연동 (#76)

* feat: 위경도 가져오는 repository 구현

* feat: 카카오 location response dto 추가

* feat: 카카오 location api 연동

* feat: 위도 경도를 프래그먼트에 전달하는 기능 구현

* refactor: 위도 경도 받아오는 기능을 비동기로 처리

* fix: 위도 경도 비동기로 받아와서 프래그먼트에 전달

* fix: 위경도 받아온 후 다이얼로그 닫도록 수정

* refactor: interceptor로 헤더 추가

* style: ktLint 적용

* chore: moshi 어댑터 import 수정

* refactor: 함수 분리

* refactor: 위경도에 대한 mapper 생성

* chore: 패키지 구조 변경

* refactor: 위경도 데이터에 대한 ui model 추가

* style: ktLint 적용

* chore: 사용하지 않는 파일 삭제

* feat: 약속 날짜 입력 화면 (#79)

* feat: 날짜 선택 화면 구현

* chore: 불필요한 스낵바 제거

* feat: 날짜 선택 시간에 따른 예외 처리

* style: ktlint

* feat: 모임 정보 입력 검증 로직 추가 (#68)

* feat: 모임 정보 입력 검증 로직 추가

* fix: 검증할 DTO에 검증 어노테이션 추가

* style: 코드 컨벤션 적용

* feat: nickname 검증을 담당하는 도메인 추가

* refactor: 엔티티에서 이미 선언된 NotNull을 임베디드 객체에서 제거

* feat: 닉네임 입력 화면 구현 (#86)

* design: 닉네임 입력 화면 ui 구현

* feat: 닉네임 최대 길이 뷰모델에서 가져오도록 구현

* feat: 닉네임이 변경되면 닉네임 글자수가 보이는 기능 구현

* feat: 엑스 버튼 누르면 입력된 닉네임 없어지는 기능 구현

* feat: 닉네임 입력 여부에 따라 다음 버튼 비활성화 되는 기능 구현

* style: ktLint 적용

* feat: 초대 코드 복사 bottom dialog (#84)

* design: bottom sheet 틀 디자인

* design: bottom sheet 디자인

* feat: 초대 코드 복사하기 구현

* chore: initialize로 네이밍 통일 및 스낵바에 Int값 전달로 변경

* chore: 초대 코드 관련 UX 라이팅 변경

초대 코드가 복사 됐습니다. -> 초대 코드가 복사 복사되었습니다.

* feat: 약속 시간 입력 화면 구현 (#97)

* design: 약속 시간 입력 화면 ui 구현

* feat: 시간과 분을 NumberPicker에 데이터로 넣어주는 기능 구현

* feat: NumberPicker 무한 스크롤 구현

* refactor: NumberPicker 숫자 지정하는 기능을 프래그먼트로 이동

* feat: 현재 시간으로 NumberPicker 초기값 셋팅하는 기능 구현

* feat: 다음 버튼 누르면 시간 유효성 검증 구현

* refactor: 다음 버튼 리스너를 인터페이스로 분리

* style: ktLint 적용

* refactor: numberPicker value를 데이터 바인딩으로 수정

* feat: 초대 코드 입력 화면 구현 (#99)

* design: 초대 코드 입력 화면 뷰 구현

* feat: 초대 코드 유효성 검증 repository 구현

* chore: manifest에 액티비티 추가

* design: edit text 속성 추가

* feat: 초대 코드 입력 여부에 따라 엑스 버튼의 가시성을 변경하는 기능 구현

* feat: 엑스 버튼 클릭 시 입력한 초대 코드 지우는 기능 구현

* design: strings 와 selector 추가

* feat: 확인 버튼 클릭 시 유효성 검증하는 기능 구현

* style: ktLint 적용

* chore: 불필요한 코드 삭제

* feat: toolbar back 버튼 리스너 구현

* chore: infoListener -> backListener 네이밍 수정

* chore: dialog 크기 수정 (#98)

* feat: 서브모듈 환경 구축 (#101)

* chore: ci submodule 적용

* chore: 서브모듈 디렉토리 추가

* chore: private.yml 파일 수정 테스트

* chore: private.yml 파일 수정

* test: test argument 수정

* chore: ci 스크립트 수정

* chore: ci 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발지 입력 화면 구현 (#100)

* style: 출발지 입력 화면 ui 구현

* feat: 도착지 입력 시 수도권 유효성 검증 구현

* refactor: 주소 검색 클릭 리스너 인터페이스로 분리

* chore: 패키지 분리

* feat: 출발지 입력 시 수도권 유효성 검증 구현

* feat:  수도권 여부에 따라 다음 버튼 활성화 기능 구현

* style: ktLint 적용

* feat: 모임 이름 입력 화면 구현 (#102)

* design: 모임 이름 입력 ui 구현

* feat: 글자수 데이터 바인딩 기능 구현

* refactor: 모임 시간 범위 표현 방식 수정

* fix: strings 추가

* fix: 바인딩 빌드 오류 해결

* feat: 출발 시간 알림 구현 (#60)

* feat: 출발 시간 알림 예약 기능 추가

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

* refactor: 토큰으로 회원 조회 ArgumentResolver로 공통화

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

* fix: TaskScheduler 빈 등록

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

* test: 출발 시간 알림 예약 기능 테스트 추가

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

* fix: JpaAuditing 활성화

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

* fix: 요청 DTO 매핑을 위한 RequestBody 어노테이션 추가

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

* fix: save 메서드에 Transactional 어노테이션 추가

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

* style: 코드 컨벤션 적용

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

* fix: firebase 키 캐쉬 내역 제거

* fix: 테스트 시에 테스트용 yml이 수정되도록 규칙에 맞게 이름 수정

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

* refactor: 모임 내 모든 사용자가 알림 받도록 topic 기능 사용

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

* refactor: 알림에 닉네임 포함하도록 수정

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

* refactor: 예외 메세지 오타 수정

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

* refactor: 디바이스 토큰 헤더 형식 검증 로직 분리

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

* refactor: 컨트롤러 시그니처 변경 및 스웨거 문서 수정

- 디바이스 토큰 헤더 커스텀 어노테이션 생성

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

* fix: FCM 토픽 구독 로직 분리

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

* refactor: Member 필드에 DeviceToken 타입 사용

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

* refactor: FCM 설정 옵션 코드 분리 및 테스트를 위한 enable 로직 제거

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

* refactor: FCM message 생성 로직 가독성 개선

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

* refactor: 변수 선언으로 `taskScheduler.schedule()` 호출 시 가독성 개선

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

* refactor: 가독성 개선을 위해 AndroidNotification 변수 선언

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

* refactor: Fixture에 private 생성자 추가

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

* refactor: IntegrationTest -> BaseControllerTest 이름 변경

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

* refactor: test application.yml 파일 제거

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

* refactor: 롬복을 이용하지 않고 Fixture private 생성자 추가

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

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: H <[email protected]>

* feat: 초대 코드 Preference dataStore 세팅 (#104)

* chore: preference datastore 의존성 추가

* feat: 초대 코드 복사 preference datastore 기초 세팅

* feat: 모임 참여/개설 시 뷰모델 데이터 관리 #93 (#105)

* feat: 입력값 유효성에 따라 다음 버튼 활성화되도록 구현

* feat: 다음 버튼이 비활성화되면 스와이프도 불가능하도록 구현

* refactor: startActivity 방식을 getIntent로 변경

* feat: 다음 화면으로 이동하면 다음버튼이 비활성화 되도록 구현

* fix: 출발지 입력에 대한 유효성 검증 처리를 Event로 변경

* refactor: 모임 개설 시 데이터 viewModel에서 관리하도록 수정

* feat: 모임 개설 시 화면 플로우 구현

* style: ktLint 적용

* fix: Swagger에서 API 호출 시 Bad Request 응답 오류 (#107)

* refactor: `common/annotation` 패키지 이름 오타 수정

* refactor: Authorization 헤더 사용을 위한 설정 추가 및 코드 변경

- 커스텀 어노테이션 DeviceTokenHeader 제거
- 디바이스 토큰 접두사 수정

* fix: 멤버 추가 시 멤버 검증 로직 포함되지 않도록 수정

* fix: nickname 객체로 변경에 따른 코드 수정

* fix: 디바이스 토큰 접두사 추가에 따른 테스트 코드 수정

* fix: LocalDate, LocalTime Swagger 상 타입 표현 string으로 수정

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

* fix: 닉네임을 객체로 변환함에 따른 getter 코드 수정

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

---------

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

* feat: 모임 초대 코드 생성 기능 추가 (#61)

* feat: 모임 초대 코드 생성 기능 추가

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

* style: 한줄에 한개의 점만 찍는다 컨벤션 적용

* refactor: 디코딩 검증 로직 추가

---------

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

* feat: 서버 헤더 형식 변경 (#112)

* feat: 로그 화면 구현 (#108)

* feat: Notification 도메인 타입 정의

* feat: api 서버로부터 받는 NotificationLog 타입 정의

* feat: retrofit의 NotificationService 구현

* feat: NotificationLogRepository의 명세와 기본 Repository 구현

* refactor: NotificationLog -> NotificationEntity

* design: item_notification_log.xml 작성

* feat: 타입 추가 정의

* chore: merge

* refactor: DefaultNotificationLogRepository 싱글턴으로 변경

* feat: NotificationLogViewModel 구현

* feat: NotificationLogActivity 구현

* design: rectangle_cream_downside_radius_30.xml 작성

* design: item_notification_log.xml 작성

* chore: merge

* chore: merge

* feat: 로그 리사이클러 뷰 구현

* chore: merge

* refactor: 알림 로그를 불러올 때 meetingId를 이용해 불러오도록 변경

* feat: 뷰와 데이터 바인딩

* chore: 오타 수정

* feat: 초대 코드 화면에서 로그 화면으로 이동 기능 구현

* refactor: 리뷰 반영

* refactor: ViewHolder 분리

* feat: 닉네임, 출발지 입력 (#80)

* refactor: Nickname 도메인 개선

- OdyException 커스텀 예외 생성
- 이름 변경 (NickName -> Nickname)

* refactor: 위경도 검증 로직 추가

- Location 필드에 `@NotNull` 추가

* feat: 전역 예외 처리기 추가

* refactor: 불필요한 final 키워드 제거

* refactor: 공백만 존재하는 닉네임 불가하도록 수정

* feat: 소요 시간 계산 기능 구현 (#96)

* chore: private 파일 gitignore 추가

* feat: 소요 시간 계산 기능 구현

* refactor: 소요 시간 계산 API client 변경

* feat: Duration Deserializer 구현

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: RouteClient calculateDuration 메서드 수

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발 시간 계산 로직 구현

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 소요 시간 계산 API 에러 핸들링

* fix: 커밋되지 않은 response 클래스 추가

* chore: 불필요한 build.gradle 구문 삭제

* refactor: 변수 선언문 try 내부로 이동

* refactor: 중첩된 로직 별도 변수로 추출

* refactor: 축약된 exception 변수명 수정

* refactor: 소요시간 VO 이름 수정, Odsay api response 객체 이름 수정

* refactor: URI 생성 시 StringBuilder 적용

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: 스낵바 위치 변경 및 showSnackBar 형식 통일 (#116)

* feat: 로그 목록 조회 (#87)

* chore: dto 디렉토리 변경

request > response

* feat: NotificationRepository 구현

* feat: dto 변환로직 구현

* feat: notificationService 구현

* style: 컨벤션 준수

* docs: test용 yml파일 추가

* refactor: notification 생성자 추가

* test: 로그 목록 반환 테스트 작성

* refactor: domain to dto 계층 이동

* refactor: method 이름 수정

* test: 로그 목록 조회 통합 테스트 추가

* style: new-line 추가

* chore: 로그 목록 반환 메서드 이동

NotificationController > MeetingController

* chore: 메서드 명 일치화

findAllMeetingLogsById > findAllMeetingLogs

* chore: domain to dto 메서드명 변경

toResponse > from

* refactor: auditing config 분리

* chore: dto 명 변경

NotificationSaveResponse > NotiLogFindResponse
NotiLogFindResponse > NotiLogFindResponses

* chore: 테스트 디렉토리 이동

* style: 불필요한 import문 제거

* chore: 디렉토리 변경

* Revert "chore: 디렉토리 변경"

This reverts commit c1b9f595357b999fe4aac325d460246ab3e8cb91.

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: CI/CD 스크립트 분리 (#126)

* chore: ci/cd script 분리

* chore: cd 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 개설 기능 추가 (#121)

* style: 한 줄에 하나의 점만 찍는다. 컨벤션 적용

* refactor: 변경된 클래스명으로 getter 네이밍 수정

* chore: 초대코드생성기 util 패키지로 이동

* feat: 모임 개설 API 기능 추가

* feat: 회원 추가 API 기능 추가

* refactor: 변경된 firebase 엑세스 키 파일 위치로 경로 수정

* feat: DB 테이블 삭제 클래스 추가

* test: 컨트롤러 테스트 추가

* refactor: 서브 모듈 패키지 변경 사항 추가

* refactor: 초대코드 디코딩하여 모임방 조회 적용

* refactor: entityManger 의존성 주입 추가

* fix: 회원 생성, 모임 참여 API 오류 수정 (#127)

* fix: deviceToken unique, notnull 속성 적용

* fix: deviceToken 공백 검증 로직 적용

* style: import 재정렬

* feat: deviceToken 문자열 앞뒤 공백 제거 로직 추가

* refactor: findDeviceToken 쿼리 성능 개선

* feat: 회원 생성시 토큰 중복 검사 추가

* feat: mate 테이블의 memberId, meetingId unique 설정

* feat: 모임 참여시 중복 검증 로직 추가

* refactor: 모임 개설시 mate에도 회원 정보 저장

* refactor: DeviceToken NotNull 제약 조건 추가

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 모임 내 닉네임 중복 검증 (#119)

* feat: 초대코드 검증 API 추가 (#123)

* feat: 초대코드 검증 API 추가

* feat: 404를 반환하는 커스텀 예외 추가

* test: 404 오류를 검증하는 테스트로 변경

* feat: 모임 개설 서버 연결 (#131)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* feat: 특정 회원이 참여한 모임 목록 조회 API 구현 (#129)

* feat: 멤버가 참여한 모임 리스트 반환 쿼리 구현

* feat: 멤버가 참여한 모임 리스트 반환 기능 구현

* feat: token fixture 추가

* style: static import 제거

* test: 멤버 참여 모임 목록 조회 통합 테스트 추가

* test: NotificationRepositoryTest directory 이동

* test: 간섭 발생 테스트 disabled 처리

* fix: test 오류 개선

* fix: import 오류 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* feat: 다음 버튼 비활성화 시 뷰페이저 스와이프 막는 기능 구현 (#122)

* refactor: LivaData set value 방식 변경

* feat: 모임 개설 시 뷰페이저 스와이프 막는 기능 구현

* feat: 뷰페이저 화면 이동 시 유효성 검증 기능 구현

* style: ktLint 적용

* fix: 모임 시간 유효하지 않아도 다음 페이지로 이동하는 버그 수정

* chore: nextPage -> moveOnNextPage 함수명 변경

* feat: 모임 개설 시 개설 완료 화면으로 이동하는 기능 구현

* feat: Notification 구현 (#128)

* feat: Notification 메시지 바로 출력

* chore: 의존성 추가

* fix: 경로 변경에 의한 import 변경

* feat: 알림 타입에 따른 알림 메시지 변경

* feat: fcm을 위한 string 작성

* feat: 알림 로그 화면에 bottom dialog 적용 (#130)

* chore: domain 패키지 정리

* chore: 리스너 이름 변경

* feat: meeting domain model에 초대코드 추가

* feat: NotificationLogActivity에 bottom sheet 기능 병합

* refactor: FakeRepo에서 DefaultRepo로 변경

* design: elevation 수정

* fix: app 네임스페이스 추가

* fix: manifest 수정

* refactor: FCM 전송 데이터 안드로이드 요청사항 반영 (#136)

* fix: 실패하는 테스트 수 (#137)

* fix: 초대 코드 입력 성공 시 참여 화면으로 이동하도록 수정 (#133)

* feat: 모임 개설 api 연결 (#139)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* chore: okhttp logging 의존성 추가

* chore: Http Logging 추가

* chore: 오타 수정

* feat: MeetingService postMeeting 추가

* chore: Timber 메시지 수정

* chore: 키에 맞는 인텐트로 변경

* feat: 모임 개설 api 연결

* feat: 커스텀 예외 생성 및 적용 (#140)

* feat: 커스텀 예외 생성 및 적용

* fix: fcmPushSender MockBean 추가

* fix: 테스트 실패 원인 파악 및 성공을 위해 `@Disabled` 처리

- NotificationService 내에서 RouteClient 접근해서 문제 발생

* feat: 모임 참여 서버 연결 (#143)

* feat: 서버 참여 api 연결

* style: ktlint 수정

* chore: 메서드 분리 및 메서드 한줄로 변경

* feat: 참여중인 모임 목록 조회 (#142)

* feat: 참여한 모임이 있을 경우 첫 번째 모임에 참여, 아닐 경우 인트로 화면으로 이동하는 기능 구형

* feat: 참여한 모임 중 첫 번째 모임의 로그를 띄워주는 기능 구현

* refactor: 리뷰 반영

* fix: 자잘한 ux 버그 다수 수정 (#145)

* fix: import 오류 수정

* fix: NumberPicker 디폴트 값이 현재 시간으로 설정되지 않는 버그 수정

* fix: 주소 EditText 한줄만 입력할 수 있도록 수정

* fix: 유효한 날짜 선택 시에도 유효하지 않다는 스낵바 뜨는 버그 수정

* fix: 닉네임 입력 화면으로 이동 시 화면 깜빡임 현상 수정

* fix: back press 시 이전 fragment로 이동하도록 수정

* style: ktLint 적용

* design: 바텀 시트 stroke 제거 및 elevation 추가

* feat: EC2 서버의 H2 콘솔 접근 설정 및 누락된 모임장 알림 로직 추가 (#146)

* chore: EC2 서버의 H2 콘솔 접근을 위한 설정 추가

* fix: 모임 참여 API에서 누락된 알림 로직 추가

* fix: ODsay 사용하는 테스트 코드 Disabled 처리

* fix: ODsay 사용하는 MeetingControllerTest 코드 Disabled 처리

---------

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

* fix: FCM 토픽 Malformed topic name 에러 해결 (#149)

* fix: FCM 토픽 Malformed topic name 에러 해결 (#151)

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: 의도하지 않은 값이 토픽에 들어간 코드 수정 (#153)

* fix: 로그 화면 버그 해결 (#157)

* fix: 로그 화면 데이터 mapping 버그 수정

* design: 로그 화면 그림자 drawable 수정

* fix: LocalDateTime mapping 방식 수정

* design: 로그 화면 툴바의 뒤로가기 버튼 제거

* fix: fcm 토큰 없는 경우 meetings를 불러오지 않도록 수정

* style: ktLint 적용

* chore: Meetings -> MeetingsResponse 클래스명 변경

* fix: LocalDateTime mapping 오류 해결

* fix: 클립보드 복사 시 스낵바 제거

* fix: LocalDateTime mapping 오류 해결

* fix: 로그 화면으로 이동 시 깜빡이는 현상 해결

* refactor: 리뷰 반영

* fix: CalendarView -> DatePicker로 변경하여 날짜 선택 불가 버그 수정 (#155)

* �feat: 로그 목록 조회 시 과거순 정렬 (#144)

* refactor: 아규먼트 리졸버 어노테이션 적용

* refactor: 데이터베이스에 데이터 추가 순으로 알림 로그 정렬

* test: 모임 반환 테스트 오류 해결

* refactor: 현재 이전의 로그 목록을 조회하도록 수정

* refactor: NotiLog 바인딩 수정

createdAt > sendAt

* refactor: 불필요한 레코드 삭제

* refactor: LocalTime 밀리 세컨즈 제거

* test: 로그 필터링 적용 테스트 작성

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 알림 전송 예약 시점이 아닌 전송 시점에 상태 변경되도록 수정 (#162)

- FcmSendRequest 매개변수 변경
- updateDone -> updateStatusToDone 메서드명 변경
- 시연을 위해 알림 전송 시간 임의 지정
- FcmSendRequest 매개변수 변경에 따른 테스트 코드 수정

* feat: 초대코드 존재유무 검증로직 구현 (#164)

* feat: 초대코드 존재유무 검증로직 구현

* refactor: id 기반 모임 조회로 로직 변경

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 (#165)

* chore: RequestDto 패키지 위치 이동

* style: 컨트롤러 컨벤션 개행 적용

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 기능 추가

* refactor: 알림 전송 코드 개선

* refactor: 본인의 입장 푸쉬 알림은 안뜨도록 fcm 토픽 구독 순서 변경

* fix: 스플래쉬 딜레이 수정 (#163)

* fix: 스플래쉬 delay 수정

* fix: LocalDateTime parse 형식 수정

* style: ktLint 적용

* refactor: 패키지 구조 변경 (#174)

* refactor: data model -> data entity로 패키지명 변경

* refactor: entity -> remote 패키지 아래로 이동

* refactor: 각 entity 안에 request, response 패키지 만들기 및 remote 패키지 아래에 Ody api를 연결하는 패키지, FCM 패키지 만들기

* refactor: domain - repository 아래 이슈 별로 패키지 분리

* refactor: presentation common 만들기

* refactor: startingpoint -> departure 패키지 명 변경

* refactor: NotificationLogListAdapter -> NotificationLogsAdapter 클래스명 변경

* refactor: notificationlog -> meetingRoom 패키지명 변경

* refactor: startingpoint -> departure xml 명 변경

* refactor: domain으로 AddressValidator 이동

* refactor: presentation - listener 패키지 만들기

* refactor: presentation ui 모델은 presentation model 패키지 안에 넣기

* refactor: data - fake -> 테스트 패키지 쪽으로 위치 변경

* refactor: meeting 패키지 만들고 meeting과 관련된 파일들 이동

* refactor: join 패키지 만들고 join과 관련된 파일들 이동

* refactor: DepartureFragment -> JoinDepartureFragment로 프로그래먼트 명 변경

* style: ktlint

* refactor: meeting, join -> meetingcreation, meetingjoin으로 패키지명 변경

* refactor: meetingcreation, meetingjoin, meetingroom -> creation, join, room 으로 패키지명 변경

* refactor: data - remote - thirdparty, core로 패키지 분리

* style: ktlint

* style: ktlint

* refactor: manifest tools 속성 제거 (#184)

* refactor: manifest tools 속성 제거

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* test: RouteClient Mock 테스트 (#177)

* test: 길찾기 api 성공 restClient MockTest

* test: 도착지와 출발지가 700m 이내인 테스트 추가

* fix: 500 에러 시에만 OdyServerErrorException 발생하도록 수정

* test: 잘못된 api-key 요청 시 예외 발생 테스트 추가

* test: 클라이언트 예외 발생 테스트 추가

* test: static 키워드 삭제

* refactor: RouteClient 인터페이스화

* test: service layer FakeRouteClient 적용

* test: controller layer FakeRouteClient 적용, @Disabled 제거

* test: RouteClient 관련 테스트 파일 디렉토리 이동

* refactor: URI 생성 로직 가독성 개선

* test: 불필요한 테스트 제거

* feat: NPE 체크 로직 추가

* test: 불필요한 RouteClient 설정 제거

* refactor: Event -> SingleLiveData로 개선 (#185)

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* chore: open 키워드 제거

* refactor: 모임 날짜를 LocalDate로 관리 (#186)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장 (#193)

* refactor: 2차 스프린트 구현 사항 리팩터링 (#189)

* chore: 함수 이름 통일

initializeObservingData -> initializeObserve

* refactor: SingleLiveData의 타입을 Boolean에서 Unit으로 변경

* refactor: 약속 날짜 유효성 검증을 ViewModel로 분리

* chore: 함수, 프로퍼티 순서 변경

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: Splash 화면 이동 판단 로직을 뷰모델로 이동

* style: ktLint 적용

* refactor: 약속 시간이 초기화되었는지 판단하는 로직을 변수로 분리

* chore: 함수명 변경 empty -> clear

* chore: updateMeetingDate -> checkMeetingDateValidity 함수명 변경

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: aprilgom <[email protected]>

* refactor: RouteClient 응답 분기를 객체로 캡슐화 (#188)

* refactor: RouteClient 응답 분기를 객체로 캡슐화

* chore: 패키지 디렉토리 변경

domain > dto

* refactor : 응답 매핑 로직을 mapper로 이전

* refactor : 불필요한 static 객체 삭제

* refactor : 500에러 처리 로직 추가

* refactor : NPE 예외 처리

* refactor : 롬복으로 private 생성자 구현

* test: OdsayResponseMapperTest 작성

* style: message 개행 변경

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

* refactor: OdsayRouteClient에 mapper 로직 반영

* fix: FutureOrPresentDateTimeValidatorTest 오류 개선

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: H <[email protected]>

* design: 폰트, 컬러 xml 지정 (#219)

* design: font 스타일 추가

* design: colors 네이밍 변경

* design: 컬러 추가

* refactor: 2차 스프린트 리팩터링 (#196)

* refactor: FCMService와 NotificationHelper 분리

* refactor: 알림 권한이 이미 있을 시 early return, viewmodel 이름 수정

* refactor: NotificationLog Result 반환하도록 수정

* refactor: 이벤트 리스너 네이밍 수정

* refactor: MeetingRoomViewModel 초기화 init 블럭 내 실행, Timber 로그 내 toString 제거

* style: ktLintFormat

* fix: NotificationLog repo 수정에 따른 FakeRepository 수정

* style: ktLintFormat

* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToke…
hyeon0208 added a commit that referenced this pull request Sep 26, 2024
* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 업그레이드

1.6.10-1.0.4 -> 1.9.0-1.0.13

* chore: MeetingInfoActivity exported true로 변경

* feat: 모임 참여 완료 화면 구현 (#70)

* chore: 박수 이미지들 추가

* feat: 모임 개설 완료 화면 구현

* chore: DestinationFragment -> MeetingDestinationFragment 변경

* feat: 모임 참여 완료 화면 (#72)

* chore: 달력 이미지들 추가

* feat: 모임 참여 완료 화면 구현

* chore: 화면 회전 가로로 고정 및 exported false로 변경

* chore: tools:text에 해당하는 값 하드 코딩으로 변경

* feat: 메인 화면 구현 (#73)

* design: 인트로 화면 xml 작성

* design: activity_intro.xml 작성

* feat: Event 작성

* feat: IntroNavigateAction 작성

* feat: Intro 버튼 리스너 인터페이스 작성

* feat: 각 버튼 클릭에 따른 Navigation Event 발생 구현

* feat: IntroActivity에 ViewModel 추가

* feat: observe 초기화 코드 추가

* refactor: IntroActivity와 MeetingInfoActivity 연결

* refactor: binding 함수 분리, initialize로 함수명 통일

* chore: shape_purple_radius_20.xml -> rectangle_purple_radius_20.xml 이름 변경

* design: 탑 바 추가

---------

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

* feat: 모임 참여 시 프래그먼트들 연결하는 뷰페이저 (#74)

* chore: MeetingInfoListener -> InfoListener로 인터페이스 명 변경

* feat: 모임 참여 뷰페이저 구현

* chore: initializeDataBinding에 ViewPager 초기화 메서드 추가

* chore: VisitorInfo -> JoinInfo로 메서드명 변경

* chore: InfoListener -> BackListener로 인터페이스 명 변경

* feat: 알림 권한 요청 (#75)

* feat: 알림 권한 요청

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* chore: android ci 필드 추가 (#78)

* chore: android ci 스크립트 api key 추가

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 테스트

* feat: 위도, 경도 가져오는 api 연동 (#76)

* feat: 위경도 가져오는 repository 구현

* feat: 카카오 location response dto 추가

* feat: 카카오 location api 연동

* feat: 위도 경도를 프래그먼트에 전달하는 기능 구현

* refactor: 위도 경도 받아오는 기능을 비동기로 처리

* fix: 위도 경도 비동기로 받아와서 프래그먼트에 전달

* fix: 위경도 받아온 후 다이얼로그 닫도록 수정

* refactor: interceptor로 헤더 추가

* style: ktLint 적용

* chore: moshi 어댑터 import 수정

* refactor: 함수 분리

* refactor: 위경도에 대한 mapper 생성

* chore: 패키지 구조 변경

* refactor: 위경도 데이터에 대한 ui model 추가

* style: ktLint 적용

* chore: 사용하지 않는 파일 삭제

* feat: 약속 날짜 입력 화면 (#79)

* feat: 날짜 선택 화면 구현

* chore: 불필요한 스낵바 제거

* feat: 날짜 선택 시간에 따른 예외 처리

* style: ktlint

* feat: 모임 정보 입력 검증 로직 추가 (#68)

* feat: 모임 정보 입력 검증 로직 추가

* fix: 검증할 DTO에 검증 어노테이션 추가

* style: 코드 컨벤션 적용

* feat: nickname 검증을 담당하는 도메인 추가

* refactor: 엔티티에서 이미 선언된 NotNull을 임베디드 객체에서 제거

* feat: 닉네임 입력 화면 구현 (#86)

* design: 닉네임 입력 화면 ui 구현

* feat: 닉네임 최대 길이 뷰모델에서 가져오도록 구현

* feat: 닉네임이 변경되면 닉네임 글자수가 보이는 기능 구현

* feat: 엑스 버튼 누르면 입력된 닉네임 없어지는 기능 구현

* feat: 닉네임 입력 여부에 따라 다음 버튼 비활성화 되는 기능 구현

* style: ktLint 적용

* feat: 초대 코드 복사 bottom dialog (#84)

* design: bottom sheet 틀 디자인

* design: bottom sheet 디자인

* feat: 초대 코드 복사하기 구현

* chore: initialize로 네이밍 통일 및 스낵바에 Int값 전달로 변경

* chore: 초대 코드 관련 UX 라이팅 변경

초대 코드가 복사 됐습니다. -> 초대 코드가 복사 복사되었습니다.

* feat: 약속 시간 입력 화면 구현 (#97)

* design: 약속 시간 입력 화면 ui 구현

* feat: 시간과 분을 NumberPicker에 데이터로 넣어주는 기능 구현

* feat: NumberPicker 무한 스크롤 구현

* refactor: NumberPicker 숫자 지정하는 기능을 프래그먼트로 이동

* feat: 현재 시간으로 NumberPicker 초기값 셋팅하는 기능 구현

* feat: 다음 버튼 누르면 시간 유효성 검증 구현

* refactor: 다음 버튼 리스너를 인터페이스로 분리

* style: ktLint 적용

* refactor: numberPicker value를 데이터 바인딩으로 수정

* feat: 초대 코드 입력 화면 구현 (#99)

* design: 초대 코드 입력 화면 뷰 구현

* feat: 초대 코드 유효성 검증 repository 구현

* chore: manifest에 액티비티 추가

* design: edit text 속성 추가

* feat: 초대 코드 입력 여부에 따라 엑스 버튼의 가시성을 변경하는 기능 구현

* feat: 엑스 버튼 클릭 시 입력한 초대 코드 지우는 기능 구현

* design: strings 와 selector 추가

* feat: 확인 버튼 클릭 시 유효성 검증하는 기능 구현

* style: ktLint 적용

* chore: 불필요한 코드 삭제

* feat: toolbar back 버튼 리스너 구현

* chore: infoListener -> backListener 네이밍 수정

* chore: dialog 크기 수정 (#98)

* feat: 서브모듈 환경 구축 (#101)

* chore: ci submodule 적용

* chore: 서브모듈 디렉토리 추가

* chore: private.yml 파일 수정 테스트

* chore: private.yml 파일 수정

* test: test argument 수정

* chore: ci 스크립트 수정

* chore: ci 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발지 입력 화면 구현 (#100)

* style: 출발지 입력 화면 ui 구현

* feat: 도착지 입력 시 수도권 유효성 검증 구현

* refactor: 주소 검색 클릭 리스너 인터페이스로 분리

* chore: 패키지 분리

* feat: 출발지 입력 시 수도권 유효성 검증 구현

* feat:  수도권 여부에 따라 다음 버튼 활성화 기능 구현

* style: ktLint 적용

* feat: 모임 이름 입력 화면 구현 (#102)

* design: 모임 이름 입력 ui 구현

* feat: 글자수 데이터 바인딩 기능 구현

* refactor: 모임 시간 범위 표현 방식 수정

* fix: strings 추가

* fix: 바인딩 빌드 오류 해결

* feat: 출발 시간 알림 구현 (#60)

* feat: 출발 시간 알림 예약 기능 추가

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

* refactor: 토큰으로 회원 조회 ArgumentResolver로 공통화

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

* fix: TaskScheduler 빈 등록

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

* test: 출발 시간 알림 예약 기능 테스트 추가

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

* fix: JpaAuditing 활성화

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

* fix: 요청 DTO 매핑을 위한 RequestBody 어노테이션 추가

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

* fix: save 메서드에 Transactional 어노테이션 추가

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

* style: 코드 컨벤션 적용

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

* fix: firebase 키 캐쉬 내역 제거

* fix: 테스트 시에 테스트용 yml이 수정되도록 규칙에 맞게 이름 수정

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

* refactor: 모임 내 모든 사용자가 알림 받도록 topic 기능 사용

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

* refactor: 알림에 닉네임 포함하도록 수정

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

* refactor: 예외 메세지 오타 수정

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

* refactor: 디바이스 토큰 헤더 형식 검증 로직 분리

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

* refactor: 컨트롤러 시그니처 변경 및 스웨거 문서 수정

- 디바이스 토큰 헤더 커스텀 어노테이션 생성

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

* fix: FCM 토픽 구독 로직 분리

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

* refactor: Member 필드에 DeviceToken 타입 사용

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

* refactor: FCM 설정 옵션 코드 분리 및 테스트를 위한 enable 로직 제거

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

* refactor: FCM message 생성 로직 가독성 개선

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

* refactor: 변수 선언으로 `taskScheduler.schedule()` 호출 시 가독성 개선

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

* refactor: 가독성 개선을 위해 AndroidNotification 변수 선언

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

* refactor: Fixture에 private 생성자 추가

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

* refactor: IntegrationTest -> BaseControllerTest 이름 변경

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

* refactor: test application.yml 파일 제거

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

* refactor: 롬복을 이용하지 않고 Fixture private 생성자 추가

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

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: H <[email protected]>

* feat: 초대 코드 Preference dataStore 세팅 (#104)

* chore: preference datastore 의존성 추가

* feat: 초대 코드 복사 preference datastore 기초 세팅

* feat: 모임 참여/개설 시 뷰모델 데이터 관리 #93 (#105)

* feat: 입력값 유효성에 따라 다음 버튼 활성화되도록 구현

* feat: 다음 버튼이 비활성화되면 스와이프도 불가능하도록 구현

* refactor: startActivity 방식을 getIntent로 변경

* feat: 다음 화면으로 이동하면 다음버튼이 비활성화 되도록 구현

* fix: 출발지 입력에 대한 유효성 검증 처리를 Event로 변경

* refactor: 모임 개설 시 데이터 viewModel에서 관리하도록 수정

* feat: 모임 개설 시 화면 플로우 구현

* style: ktLint 적용

* fix: Swagger에서 API 호출 시 Bad Request 응답 오류 (#107)

* refactor: `common/annotation` 패키지 이름 오타 수정

* refactor: Authorization 헤더 사용을 위한 설정 추가 및 코드 변경

- 커스텀 어노테이션 DeviceTokenHeader 제거
- 디바이스 토큰 접두사 수정

* fix: 멤버 추가 시 멤버 검증 로직 포함되지 않도록 수정

* fix: nickname 객체로 변경에 따른 코드 수정

* fix: 디바이스 토큰 접두사 추가에 따른 테스트 코드 수정

* fix: LocalDate, LocalTime Swagger 상 타입 표현 string으로 수정

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

* fix: 닉네임을 객체로 변환함에 따른 getter 코드 수정

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

---------

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

* feat: 모임 초대 코드 생성 기능 추가 (#61)

* feat: 모임 초대 코드 생성 기능 추가

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

* style: 한줄에 한개의 점만 찍는다 컨벤션 적용

* refactor: 디코딩 검증 로직 추가

---------

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

* feat: 서버 헤더 형식 변경 (#112)

* feat: 로그 화면 구현 (#108)

* feat: Notification 도메인 타입 정의

* feat: api 서버로부터 받는 NotificationLog 타입 정의

* feat: retrofit의 NotificationService 구현

* feat: NotificationLogRepository의 명세와 기본 Repository 구현

* refactor: NotificationLog -> NotificationEntity

* design: item_notification_log.xml 작성

* feat: 타입 추가 정의

* chore: merge

* refactor: DefaultNotificationLogRepository 싱글턴으로 변경

* feat: NotificationLogViewModel 구현

* feat: NotificationLogActivity 구현

* design: rectangle_cream_downside_radius_30.xml 작성

* design: item_notification_log.xml 작성

* chore: merge

* chore: merge

* feat: 로그 리사이클러 뷰 구현

* chore: merge

* refactor: 알림 로그를 불러올 때 meetingId를 이용해 불러오도록 변경

* feat: 뷰와 데이터 바인딩

* chore: 오타 수정

* feat: 초대 코드 화면에서 로그 화면으로 이동 기능 구현

* refactor: 리뷰 반영

* refactor: ViewHolder 분리

* feat: 닉네임, 출발지 입력 (#80)

* refactor: Nickname 도메인 개선

- OdyException 커스텀 예외 생성
- 이름 변경 (NickName -> Nickname)

* refactor: 위경도 검증 로직 추가

- Location 필드에 `@NotNull` 추가

* feat: 전역 예외 처리기 추가

* refactor: 불필요한 final 키워드 제거

* refactor: 공백만 존재하는 닉네임 불가하도록 수정

* feat: 소요 시간 계산 기능 구현 (#96)

* chore: private 파일 gitignore 추가

* feat: 소요 시간 계산 기능 구현

* refactor: 소요 시간 계산 API client 변경

* feat: Duration Deserializer 구현

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: RouteClient calculateDuration 메서드 수

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발 시간 계산 로직 구현

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 소요 시간 계산 API 에러 핸들링

* fix: 커밋되지 않은 response 클래스 추가

* chore: 불필요한 build.gradle 구문 삭제

* refactor: 변수 선언문 try 내부로 이동

* refactor: 중첩된 로직 별도 변수로 추출

* refactor: 축약된 exception 변수명 수정

* refactor: 소요시간 VO 이름 수정, Odsay api response 객체 이름 수정

* refactor: URI 생성 시 StringBuilder 적용

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: 스낵바 위치 변경 및 showSnackBar 형식 통일 (#116)

* feat: 로그 목록 조회 (#87)

* chore: dto 디렉토리 변경

request > response

* feat: NotificationRepository 구현

* feat: dto 변환로직 구현

* feat: notificationService 구현

* style: 컨벤션 준수

* docs: test용 yml파일 추가

* refactor: notification 생성자 추가

* test: 로그 목록 반환 테스트 작성

* refactor: domain to dto 계층 이동

* refactor: method 이름 수정

* test: 로그 목록 조회 통합 테스트 추가

* style: new-line 추가

* chore: 로그 목록 반환 메서드 이동

NotificationController > MeetingController

* chore: 메서드 명 일치화

findAllMeetingLogsById > findAllMeetingLogs

* chore: domain to dto 메서드명 변경

toResponse > from

* refactor: auditing config 분리

* chore: dto 명 변경

NotificationSaveResponse > NotiLogFindResponse
NotiLogFindResponse > NotiLogFindResponses

* chore: 테스트 디렉토리 이동

* style: 불필요한 import문 제거

* chore: 디렉토리 변경

* Revert "chore: 디렉토리 변경"

This reverts commit c1b9f595357b999fe4aac325d460246ab3e8cb91.

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: CI/CD 스크립트 분리 (#126)

* chore: ci/cd script 분리

* chore: cd 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 개설 기능 추가 (#121)

* style: 한 줄에 하나의 점만 찍는다. 컨벤션 적용

* refactor: 변경된 클래스명으로 getter 네이밍 수정

* chore: 초대코드생성기 util 패키지로 이동

* feat: 모임 개설 API 기능 추가

* feat: 회원 추가 API 기능 추가

* refactor: 변경된 firebase 엑세스 키 파일 위치로 경로 수정

* feat: DB 테이블 삭제 클래스 추가

* test: 컨트롤러 테스트 추가

* refactor: 서브 모듈 패키지 변경 사항 추가

* refactor: 초대코드 디코딩하여 모임방 조회 적용

* refactor: entityManger 의존성 주입 추가

* fix: 회원 생성, 모임 참여 API 오류 수정 (#127)

* fix: deviceToken unique, notnull 속성 적용

* fix: deviceToken 공백 검증 로직 적용

* style: import 재정렬

* feat: deviceToken 문자열 앞뒤 공백 제거 로직 추가

* refactor: findDeviceToken 쿼리 성능 개선

* feat: 회원 생성시 토큰 중복 검사 추가

* feat: mate 테이블의 memberId, meetingId unique 설정

* feat: 모임 참여시 중복 검증 로직 추가

* refactor: 모임 개설시 mate에도 회원 정보 저장

* refactor: DeviceToken NotNull 제약 조건 추가

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 모임 내 닉네임 중복 검증 (#119)

* feat: 초대코드 검증 API 추가 (#123)

* feat: 초대코드 검증 API 추가

* feat: 404를 반환하는 커스텀 예외 추가

* test: 404 오류를 검증하는 테스트로 변경

* feat: 모임 개설 서버 연결 (#131)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* feat: 특정 회원이 참여한 모임 목록 조회 API 구현 (#129)

* feat: 멤버가 참여한 모임 리스트 반환 쿼리 구현

* feat: 멤버가 참여한 모임 리스트 반환 기능 구현

* feat: token fixture 추가

* style: static import 제거

* test: 멤버 참여 모임 목록 조회 통합 테스트 추가

* test: NotificationRepositoryTest directory 이동

* test: 간섭 발생 테스트 disabled 처리

* fix: test 오류 개선

* fix: import 오류 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* feat: 다음 버튼 비활성화 시 뷰페이저 스와이프 막는 기능 구현 (#122)

* refactor: LivaData set value 방식 변경

* feat: 모임 개설 시 뷰페이저 스와이프 막는 기능 구현

* feat: 뷰페이저 화면 이동 시 유효성 검증 기능 구현

* style: ktLint 적용

* fix: 모임 시간 유효하지 않아도 다음 페이지로 이동하는 버그 수정

* chore: nextPage -> moveOnNextPage 함수명 변경

* feat: 모임 개설 시 개설 완료 화면으로 이동하는 기능 구현

* feat: Notification 구현 (#128)

* feat: Notification 메시지 바로 출력

* chore: 의존성 추가

* fix: 경로 변경에 의한 import 변경

* feat: 알림 타입에 따른 알림 메시지 변경

* feat: fcm을 위한 string 작성

* feat: 알림 로그 화면에 bottom dialog 적용 (#130)

* chore: domain 패키지 정리

* chore: 리스너 이름 변경

* feat: meeting domain model에 초대코드 추가

* feat: NotificationLogActivity에 bottom sheet 기능 병합

* refactor: FakeRepo에서 DefaultRepo로 변경

* design: elevation 수정

* fix: app 네임스페이스 추가

* fix: manifest 수정

* refactor: FCM 전송 데이터 안드로이드 요청사항 반영 (#136)

* fix: 실패하는 테스트 수 (#137)

* fix: 초대 코드 입력 성공 시 참여 화면으로 이동하도록 수정 (#133)

* feat: 모임 개설 api 연결 (#139)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* chore: okhttp logging 의존성 추가

* chore: Http Logging 추가

* chore: 오타 수정

* feat: MeetingService postMeeting 추가

* chore: Timber 메시지 수정

* chore: 키에 맞는 인텐트로 변경

* feat: 모임 개설 api 연결

* feat: 커스텀 예외 생성 및 적용 (#140)

* feat: 커스텀 예외 생성 및 적용

* fix: fcmPushSender MockBean 추가

* fix: 테스트 실패 원인 파악 및 성공을 위해 `@Disabled` 처리

- NotificationService 내에서 RouteClient 접근해서 문제 발생

* feat: 모임 참여 서버 연결 (#143)

* feat: 서버 참여 api 연결

* style: ktlint 수정

* chore: 메서드 분리 및 메서드 한줄로 변경

* feat: 참여중인 모임 목록 조회 (#142)

* feat: 참여한 모임이 있을 경우 첫 번째 모임에 참여, 아닐 경우 인트로 화면으로 이동하는 기능 구형

* feat: 참여한 모임 중 첫 번째 모임의 로그를 띄워주는 기능 구현

* refactor: 리뷰 반영

* fix: 자잘한 ux 버그 다수 수정 (#145)

* fix: import 오류 수정

* fix: NumberPicker 디폴트 값이 현재 시간으로 설정되지 않는 버그 수정

* fix: 주소 EditText 한줄만 입력할 수 있도록 수정

* fix: 유효한 날짜 선택 시에도 유효하지 않다는 스낵바 뜨는 버그 수정

* fix: 닉네임 입력 화면으로 이동 시 화면 깜빡임 현상 수정

* fix: back press 시 이전 fragment로 이동하도록 수정

* style: ktLint 적용

* design: 바텀 시트 stroke 제거 및 elevation 추가

* feat: EC2 서버의 H2 콘솔 접근 설정 및 누락된 모임장 알림 로직 추가 (#146)

* chore: EC2 서버의 H2 콘솔 접근을 위한 설정 추가

* fix: 모임 참여 API에서 누락된 알림 로직 추가

* fix: ODsay 사용하는 테스트 코드 Disabled 처리

* fix: ODsay 사용하는 MeetingControllerTest 코드 Disabled 처리

---------

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

* fix: FCM 토픽 Malformed topic name 에러 해결 (#149)

* fix: FCM 토픽 Malformed topic name 에러 해결 (#151)

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: 의도하지 않은 값이 토픽에 들어간 코드 수정 (#153)

* fix: 로그 화면 버그 해결 (#157)

* fix: 로그 화면 데이터 mapping 버그 수정

* design: 로그 화면 그림자 drawable 수정

* fix: LocalDateTime mapping 방식 수정

* design: 로그 화면 툴바의 뒤로가기 버튼 제거

* fix: fcm 토큰 없는 경우 meetings를 불러오지 않도록 수정

* style: ktLint 적용

* chore: Meetings -> MeetingsResponse 클래스명 변경

* fix: LocalDateTime mapping 오류 해결

* fix: 클립보드 복사 시 스낵바 제거

* fix: LocalDateTime mapping 오류 해결

* fix: 로그 화면으로 이동 시 깜빡이는 현상 해결

* refactor: 리뷰 반영

* fix: CalendarView -> DatePicker로 변경하여 날짜 선택 불가 버그 수정 (#155)

* �feat: 로그 목록 조회 시 과거순 정렬 (#144)

* refactor: 아규먼트 리졸버 어노테이션 적용

* refactor: 데이터베이스에 데이터 추가 순으로 알림 로그 정렬

* test: 모임 반환 테스트 오류 해결

* refactor: 현재 이전의 로그 목록을 조회하도록 수정

* refactor: NotiLog 바인딩 수정

createdAt > sendAt

* refactor: 불필요한 레코드 삭제

* refactor: LocalTime 밀리 세컨즈 제거

* test: 로그 필터링 적용 테스트 작성

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 알림 전송 예약 시점이 아닌 전송 시점에 상태 변경되도록 수정 (#162)

- FcmSendRequest 매개변수 변경
- updateDone -> updateStatusToDone 메서드명 변경
- 시연을 위해 알림 전송 시간 임의 지정
- FcmSendRequest 매개변수 변경에 따른 테스트 코드 수정

* feat: 초대코드 존재유무 검증로직 구현 (#164)

* feat: 초대코드 존재유무 검증로직 구현

* refactor: id 기반 모임 조회로 로직 변경

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 (#165)

* chore: RequestDto 패키지 위치 이동

* style: 컨트롤러 컨벤션 개행 적용

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 기능 추가

* refactor: 알림 전송 코드 개선

* refactor: 본인의 입장 푸쉬 알림은 안뜨도록 fcm 토픽 구독 순서 변경

* fix: 스플래쉬 딜레이 수정 (#163)

* fix: 스플래쉬 delay 수정

* fix: LocalDateTime parse 형식 수정

* style: ktLint 적용

* refactor: 패키지 구조 변경 (#174)

* refactor: data model -> data entity로 패키지명 변경

* refactor: entity -> remote 패키지 아래로 이동

* refactor: 각 entity 안에 request, response 패키지 만들기 및 remote 패키지 아래에 Ody api를 연결하는 패키지, FCM 패키지 만들기

* refactor: domain - repository 아래 이슈 별로 패키지 분리

* refactor: presentation common 만들기

* refactor: startingpoint -> departure 패키지 명 변경

* refactor: NotificationLogListAdapter -> NotificationLogsAdapter 클래스명 변경

* refactor: notificationlog -> meetingRoom 패키지명 변경

* refactor: startingpoint -> departure xml 명 변경

* refactor: domain으로 AddressValidator 이동

* refactor: presentation - listener 패키지 만들기

* refactor: presentation ui 모델은 presentation model 패키지 안에 넣기

* refactor: data - fake -> 테스트 패키지 쪽으로 위치 변경

* refactor: meeting 패키지 만들고 meeting과 관련된 파일들 이동

* refactor: join 패키지 만들고 join과 관련된 파일들 이동

* refactor: DepartureFragment -> JoinDepartureFragment로 프로그래먼트 명 변경

* style: ktlint

* refactor: meeting, join -> meetingcreation, meetingjoin으로 패키지명 변경

* refactor: meetingcreation, meetingjoin, meetingroom -> creation, join, room 으로 패키지명 변경

* refactor: data - remote - thirdparty, core로 패키지 분리

* style: ktlint

* style: ktlint

* refactor: manifest tools 속성 제거 (#184)

* refactor: manifest tools 속성 제거

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* test: RouteClient Mock 테스트 (#177)

* test: 길찾기 api 성공 restClient MockTest

* test: 도착지와 출발지가 700m 이내인 테스트 추가

* fix: 500 에러 시에만 OdyServerErrorException 발생하도록 수정

* test: 잘못된 api-key 요청 시 예외 발생 테스트 추가

* test: 클라이언트 예외 발생 테스트 추가

* test: static 키워드 삭제

* refactor: RouteClient 인터페이스화

* test: service layer FakeRouteClient 적용

* test: controller layer FakeRouteClient 적용, @Disabled 제거

* test: RouteClient 관련 테스트 파일 디렉토리 이동

* refactor: URI 생성 로직 가독성 개선

* test: 불필요한 테스트 제거

* feat: NPE 체크 로직 추가

* test: 불필요한 RouteClient 설정 제거

* refactor: Event -> SingleLiveData로 개선 (#185)

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* chore: open 키워드 제거

* refactor: 모임 날짜를 LocalDate로 관리 (#186)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장 (#193)

* refactor: 2차 스프린트 구현 사항 리팩터링 (#189)

* chore: 함수 이름 통일

initializeObservingData -> initializeObserve

* refactor: SingleLiveData의 타입을 Boolean에서 Unit으로 변경

* refactor: 약속 날짜 유효성 검증을 ViewModel로 분리

* chore: 함수, 프로퍼티 순서 변경

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: Splash 화면 이동 판단 로직을 뷰모델로 이동

* style: ktLint 적용

* refactor: 약속 시간이 초기화되었는지 판단하는 로직을 변수로 분리

* chore: 함수명 변경 empty -> clear

* chore: updateMeetingDate -> checkMeetingDateValidity 함수명 변경

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: aprilgom <[email protected]>

* refactor: RouteClient 응답 분기를 객체로 캡슐화 (#188)

* refactor: RouteClient 응답 분기를 객체로 캡슐화

* chore: 패키지 디렉토리 변경

domain > dto

* refactor : 응답 매핑 로직을 mapper로 이전

* refactor : 불필요한 static 객체 삭제

* refactor : 500에러 처리 로직 추가

* refactor : NPE 예외 처리

* refactor : 롬복으로 private 생성자 구현

* test: OdsayResponseMapperTest 작성

* style: message 개행 변경

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

* refactor: OdsayRouteClient에 mapper 로직 반영

* fix: FutureOrPresentDateTimeValidatorTest 오류 개선

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: H <[email protected]>

* design: 폰트, 컬러 xml 지정 (#219)

* design: font 스타일 추가

* design: colors 네이밍 변경

* design: 컬러 추가

* refactor: 2차 스프린트 리팩터링 (#196)

* refactor: FCMService와 NotificationHelper 분리

* refactor: 알림 권한이 이미 있을 시 early return, viewmodel 이름 수정

* refactor: NotificationLog Result 반환하도록 수정

* refactor: 이벤트 리스너 네이밍 수정

* refactor: MeetingRoomViewModel 초기화 init 블럭 내 실행, Timber 로그 내 toString 제거

* style: ktLintFormat

* fix: NotificationLog repo 수정에 따른 FakeRepository 수정

* style: ktLintFormat

* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 …
mzeong added a commit that referenced this pull request Oct 2, 2024
* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 업그레이드

1.6.10-1.0.4 -> 1.9.0-1.0.13

* chore: MeetingInfoActivity exported true로 변경

* feat: 모임 참여 완료 화면 구현 (#70)

* chore: 박수 이미지들 추가

* feat: 모임 개설 완료 화면 구현

* chore: DestinationFragment -> MeetingDestinationFragment 변경

* feat: 모임 참여 완료 화면 (#72)

* chore: 달력 이미지들 추가

* feat: 모임 참여 완료 화면 구현

* chore: 화면 회전 가로로 고정 및 exported false로 변경

* chore: tools:text에 해당하는 값 하드 코딩으로 변경

* feat: 메인 화면 구현 (#73)

* design: 인트로 화면 xml 작성

* design: activity_intro.xml 작성

* feat: Event 작성

* feat: IntroNavigateAction 작성

* feat: Intro 버튼 리스너 인터페이스 작성

* feat: 각 버튼 클릭에 따른 Navigation Event 발생 구현

* feat: IntroActivity에 ViewModel 추가

* feat: observe 초기화 코드 추가

* refactor: IntroActivity와 MeetingInfoActivity 연결

* refactor: binding 함수 분리, initialize로 함수명 통일

* chore: shape_purple_radius_20.xml -> rectangle_purple_radius_20.xml 이름 변경

* design: 탑 바 추가

---------

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

* feat: 모임 참여 시 프래그먼트들 연결하는 뷰페이저 (#74)

* chore: MeetingInfoListener -> InfoListener로 인터페이스 명 변경

* feat: 모임 참여 뷰페이저 구현

* chore: initializeDataBinding에 ViewPager 초기화 메서드 추가

* chore: VisitorInfo -> JoinInfo로 메서드명 변경

* chore: InfoListener -> BackListener로 인터페이스 명 변경

* feat: 알림 권한 요청 (#75)

* feat: 알림 권한 요청

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* chore: android ci 필드 추가 (#78)

* chore: android ci 스크립트 api key 추가

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 테스트

* feat: 위도, 경도 가져오는 api 연동 (#76)

* feat: 위경도 가져오는 repository 구현

* feat: 카카오 location response dto 추가

* feat: 카카오 location api 연동

* feat: 위도 경도를 프래그먼트에 전달하는 기능 구현

* refactor: 위도 경도 받아오는 기능을 비동기로 처리

* fix: 위도 경도 비동기로 받아와서 프래그먼트에 전달

* fix: 위경도 받아온 후 다이얼로그 닫도록 수정

* refactor: interceptor로 헤더 추가

* style: ktLint 적용

* chore: moshi 어댑터 import 수정

* refactor: 함수 분리

* refactor: 위경도에 대한 mapper 생성

* chore: 패키지 구조 변경

* refactor: 위경도 데이터에 대한 ui model 추가

* style: ktLint 적용

* chore: 사용하지 않는 파일 삭제

* feat: 약속 날짜 입력 화면 (#79)

* feat: 날짜 선택 화면 구현

* chore: 불필요한 스낵바 제거

* feat: 날짜 선택 시간에 따른 예외 처리

* style: ktlint

* feat: 모임 정보 입력 검증 로직 추가 (#68)

* feat: 모임 정보 입력 검증 로직 추가

* fix: 검증할 DTO에 검증 어노테이션 추가

* style: 코드 컨벤션 적용

* feat: nickname 검증을 담당하는 도메인 추가

* refactor: 엔티티에서 이미 선언된 NotNull을 임베디드 객체에서 제거

* feat: 닉네임 입력 화면 구현 (#86)

* design: 닉네임 입력 화면 ui 구현

* feat: 닉네임 최대 길이 뷰모델에서 가져오도록 구현

* feat: 닉네임이 변경되면 닉네임 글자수가 보이는 기능 구현

* feat: 엑스 버튼 누르면 입력된 닉네임 없어지는 기능 구현

* feat: 닉네임 입력 여부에 따라 다음 버튼 비활성화 되는 기능 구현

* style: ktLint 적용

* feat: 초대 코드 복사 bottom dialog (#84)

* design: bottom sheet 틀 디자인

* design: bottom sheet 디자인

* feat: 초대 코드 복사하기 구현

* chore: initialize로 네이밍 통일 및 스낵바에 Int값 전달로 변경

* chore: 초대 코드 관련 UX 라이팅 변경

초대 코드가 복사 됐습니다. -> 초대 코드가 복사 복사되었습니다.

* feat: 약속 시간 입력 화면 구현 (#97)

* design: 약속 시간 입력 화면 ui 구현

* feat: 시간과 분을 NumberPicker에 데이터로 넣어주는 기능 구현

* feat: NumberPicker 무한 스크롤 구현

* refactor: NumberPicker 숫자 지정하는 기능을 프래그먼트로 이동

* feat: 현재 시간으로 NumberPicker 초기값 셋팅하는 기능 구현

* feat: 다음 버튼 누르면 시간 유효성 검증 구현

* refactor: 다음 버튼 리스너를 인터페이스로 분리

* style: ktLint 적용

* refactor: numberPicker value를 데이터 바인딩으로 수정

* feat: 초대 코드 입력 화면 구현 (#99)

* design: 초대 코드 입력 화면 뷰 구현

* feat: 초대 코드 유효성 검증 repository 구현

* chore: manifest에 액티비티 추가

* design: edit text 속성 추가

* feat: 초대 코드 입력 여부에 따라 엑스 버튼의 가시성을 변경하는 기능 구현

* feat: 엑스 버튼 클릭 시 입력한 초대 코드 지우는 기능 구현

* design: strings 와 selector 추가

* feat: 확인 버튼 클릭 시 유효성 검증하는 기능 구현

* style: ktLint 적용

* chore: 불필요한 코드 삭제

* feat: toolbar back 버튼 리스너 구현

* chore: infoListener -> backListener 네이밍 수정

* chore: dialog 크기 수정 (#98)

* feat: 서브모듈 환경 구축 (#101)

* chore: ci submodule 적용

* chore: 서브모듈 디렉토리 추가

* chore: private.yml 파일 수정 테스트

* chore: private.yml 파일 수정

* test: test argument 수정

* chore: ci 스크립트 수정

* chore: ci 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발지 입력 화면 구현 (#100)

* style: 출발지 입력 화면 ui 구현

* feat: 도착지 입력 시 수도권 유효성 검증 구현

* refactor: 주소 검색 클릭 리스너 인터페이스로 분리

* chore: 패키지 분리

* feat: 출발지 입력 시 수도권 유효성 검증 구현

* feat:  수도권 여부에 따라 다음 버튼 활성화 기능 구현

* style: ktLint 적용

* feat: 모임 이름 입력 화면 구현 (#102)

* design: 모임 이름 입력 ui 구현

* feat: 글자수 데이터 바인딩 기능 구현

* refactor: 모임 시간 범위 표현 방식 수정

* fix: strings 추가

* fix: 바인딩 빌드 오류 해결

* feat: 출발 시간 알림 구현 (#60)

* feat: 출발 시간 알림 예약 기능 추가

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

* refactor: 토큰으로 회원 조회 ArgumentResolver로 공통화

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

* fix: TaskScheduler 빈 등록

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

* test: 출발 시간 알림 예약 기능 테스트 추가

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

* fix: JpaAuditing 활성화

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

* fix: 요청 DTO 매핑을 위한 RequestBody 어노테이션 추가

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

* fix: save 메서드에 Transactional 어노테이션 추가

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

* style: 코드 컨벤션 적용

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

* fix: firebase 키 캐쉬 내역 제거

* fix: 테스트 시에 테스트용 yml이 수정되도록 규칙에 맞게 이름 수정

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

* refactor: 모임 내 모든 사용자가 알림 받도록 topic 기능 사용

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

* refactor: 알림에 닉네임 포함하도록 수정

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

* refactor: 예외 메세지 오타 수정

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

* refactor: 디바이스 토큰 헤더 형식 검증 로직 분리

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

* refactor: 컨트롤러 시그니처 변경 및 스웨거 문서 수정

- 디바이스 토큰 헤더 커스텀 어노테이션 생성

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

* fix: FCM 토픽 구독 로직 분리

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

* refactor: Member 필드에 DeviceToken 타입 사용

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

* refactor: FCM 설정 옵션 코드 분리 및 테스트를 위한 enable 로직 제거

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

* refactor: FCM message 생성 로직 가독성 개선

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

* refactor: 변수 선언으로 `taskScheduler.schedule()` 호출 시 가독성 개선

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

* refactor: 가독성 개선을 위해 AndroidNotification 변수 선언

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

* refactor: Fixture에 private 생성자 추가

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

* refactor: IntegrationTest -> BaseControllerTest 이름 변경

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

* refactor: test application.yml 파일 제거

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

* refactor: 롬복을 이용하지 않고 Fixture private 생성자 추가

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

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: H <[email protected]>

* feat: 초대 코드 Preference dataStore 세팅 (#104)

* chore: preference datastore 의존성 추가

* feat: 초대 코드 복사 preference datastore 기초 세팅

* feat: 모임 참여/개설 시 뷰모델 데이터 관리 #93 (#105)

* feat: 입력값 유효성에 따라 다음 버튼 활성화되도록 구현

* feat: 다음 버튼이 비활성화되면 스와이프도 불가능하도록 구현

* refactor: startActivity 방식을 getIntent로 변경

* feat: 다음 화면으로 이동하면 다음버튼이 비활성화 되도록 구현

* fix: 출발지 입력에 대한 유효성 검증 처리를 Event로 변경

* refactor: 모임 개설 시 데이터 viewModel에서 관리하도록 수정

* feat: 모임 개설 시 화면 플로우 구현

* style: ktLint 적용

* fix: Swagger에서 API 호출 시 Bad Request 응답 오류 (#107)

* refactor: `common/annotation` 패키지 이름 오타 수정

* refactor: Authorization 헤더 사용을 위한 설정 추가 및 코드 변경

- 커스텀 어노테이션 DeviceTokenHeader 제거
- 디바이스 토큰 접두사 수정

* fix: 멤버 추가 시 멤버 검증 로직 포함되지 않도록 수정

* fix: nickname 객체로 변경에 따른 코드 수정

* fix: 디바이스 토큰 접두사 추가에 따른 테스트 코드 수정

* fix: LocalDate, LocalTime Swagger 상 타입 표현 string으로 수정

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

* fix: 닉네임을 객체로 변환함에 따른 getter 코드 수정

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

---------

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

* feat: 모임 초대 코드 생성 기능 추가 (#61)

* feat: 모임 초대 코드 생성 기능 추가

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

* style: 한줄에 한개의 점만 찍는다 컨벤션 적용

* refactor: 디코딩 검증 로직 추가

---------

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

* feat: 서버 헤더 형식 변경 (#112)

* feat: 로그 화면 구현 (#108)

* feat: Notification 도메인 타입 정의

* feat: api 서버로부터 받는 NotificationLog 타입 정의

* feat: retrofit의 NotificationService 구현

* feat: NotificationLogRepository의 명세와 기본 Repository 구현

* refactor: NotificationLog -> NotificationEntity

* design: item_notification_log.xml 작성

* feat: 타입 추가 정의

* chore: merge

* refactor: DefaultNotificationLogRepository 싱글턴으로 변경

* feat: NotificationLogViewModel 구현

* feat: NotificationLogActivity 구현

* design: rectangle_cream_downside_radius_30.xml 작성

* design: item_notification_log.xml 작성

* chore: merge

* chore: merge

* feat: 로그 리사이클러 뷰 구현

* chore: merge

* refactor: 알림 로그를 불러올 때 meetingId를 이용해 불러오도록 변경

* feat: 뷰와 데이터 바인딩

* chore: 오타 수정

* feat: 초대 코드 화면에서 로그 화면으로 이동 기능 구현

* refactor: 리뷰 반영

* refactor: ViewHolder 분리

* feat: 닉네임, 출발지 입력 (#80)

* refactor: Nickname 도메인 개선

- OdyException 커스텀 예외 생성
- 이름 변경 (NickName -> Nickname)

* refactor: 위경도 검증 로직 추가

- Location 필드에 `@NotNull` 추가

* feat: 전역 예외 처리기 추가

* refactor: 불필요한 final 키워드 제거

* refactor: 공백만 존재하는 닉네임 불가하도록 수정

* feat: 소요 시간 계산 기능 구현 (#96)

* chore: private 파일 gitignore 추가

* feat: 소요 시간 계산 기능 구현

* refactor: 소요 시간 계산 API client 변경

* feat: Duration Deserializer 구현

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: RouteClient calculateDuration 메서드 수

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발 시간 계산 로직 구현

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 소요 시간 계산 API 에러 핸들링

* fix: 커밋되지 않은 response 클래스 추가

* chore: 불필요한 build.gradle 구문 삭제

* refactor: 변수 선언문 try 내부로 이동

* refactor: 중첩된 로직 별도 변수로 추출

* refactor: 축약된 exception 변수명 수정

* refactor: 소요시간 VO 이름 수정, Odsay api response 객체 이름 수정

* refactor: URI 생성 시 StringBuilder 적용

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: 스낵바 위치 변경 및 showSnackBar 형식 통일 (#116)

* feat: 로그 목록 조회 (#87)

* chore: dto 디렉토리 변경

request > response

* feat: NotificationRepository 구현

* feat: dto 변환로직 구현

* feat: notificationService 구현

* style: 컨벤션 준수

* docs: test용 yml파일 추가

* refactor: notification 생성자 추가

* test: 로그 목록 반환 테스트 작성

* refactor: domain to dto 계층 이동

* refactor: method 이름 수정

* test: 로그 목록 조회 통합 테스트 추가

* style: new-line 추가

* chore: 로그 목록 반환 메서드 이동

NotificationController > MeetingController

* chore: 메서드 명 일치화

findAllMeetingLogsById > findAllMeetingLogs

* chore: domain to dto 메서드명 변경

toResponse > from

* refactor: auditing config 분리

* chore: dto 명 변경

NotificationSaveResponse > NotiLogFindResponse
NotiLogFindResponse > NotiLogFindResponses

* chore: 테스트 디렉토리 이동

* style: 불필요한 import문 제거

* chore: 디렉토리 변경

* Revert "chore: 디렉토리 변경"

This reverts commit c1b9f595357b999fe4aac325d460246ab3e8cb91.

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: CI/CD 스크립트 분리 (#126)

* chore: ci/cd script 분리

* chore: cd 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 개설 기능 추가 (#121)

* style: 한 줄에 하나의 점만 찍는다. 컨벤션 적용

* refactor: 변경된 클래스명으로 getter 네이밍 수정

* chore: 초대코드생성기 util 패키지로 이동

* feat: 모임 개설 API 기능 추가

* feat: 회원 추가 API 기능 추가

* refactor: 변경된 firebase 엑세스 키 파일 위치로 경로 수정

* feat: DB 테이블 삭제 클래스 추가

* test: 컨트롤러 테스트 추가

* refactor: 서브 모듈 패키지 변경 사항 추가

* refactor: 초대코드 디코딩하여 모임방 조회 적용

* refactor: entityManger 의존성 주입 추가

* fix: 회원 생성, 모임 참여 API 오류 수정 (#127)

* fix: deviceToken unique, notnull 속성 적용

* fix: deviceToken 공백 검증 로직 적용

* style: import 재정렬

* feat: deviceToken 문자열 앞뒤 공백 제거 로직 추가

* refactor: findDeviceToken 쿼리 성능 개선

* feat: 회원 생성시 토큰 중복 검사 추가

* feat: mate 테이블의 memberId, meetingId unique 설정

* feat: 모임 참여시 중복 검증 로직 추가

* refactor: 모임 개설시 mate에도 회원 정보 저장

* refactor: DeviceToken NotNull 제약 조건 추가

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 모임 내 닉네임 중복 검증 (#119)

* feat: 초대코드 검증 API 추가 (#123)

* feat: 초대코드 검증 API 추가

* feat: 404를 반환하는 커스텀 예외 추가

* test: 404 오류를 검증하는 테스트로 변경

* feat: 모임 개설 서버 연결 (#131)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* feat: 특정 회원이 참여한 모임 목록 조회 API 구현 (#129)

* feat: 멤버가 참여한 모임 리스트 반환 쿼리 구현

* feat: 멤버가 참여한 모임 리스트 반환 기능 구현

* feat: token fixture 추가

* style: static import 제거

* test: 멤버 참여 모임 목록 조회 통합 테스트 추가

* test: NotificationRepositoryTest directory 이동

* test: 간섭 발생 테스트 disabled 처리

* fix: test 오류 개선

* fix: import 오류 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* feat: 다음 버튼 비활성화 시 뷰페이저 스와이프 막는 기능 구현 (#122)

* refactor: LivaData set value 방식 변경

* feat: 모임 개설 시 뷰페이저 스와이프 막는 기능 구현

* feat: 뷰페이저 화면 이동 시 유효성 검증 기능 구현

* style: ktLint 적용

* fix: 모임 시간 유효하지 않아도 다음 페이지로 이동하는 버그 수정

* chore: nextPage -> moveOnNextPage 함수명 변경

* feat: 모임 개설 시 개설 완료 화면으로 이동하는 기능 구현

* feat: Notification 구현 (#128)

* feat: Notification 메시지 바로 출력

* chore: 의존성 추가

* fix: 경로 변경에 의한 import 변경

* feat: 알림 타입에 따른 알림 메시지 변경

* feat: fcm을 위한 string 작성

* feat: 알림 로그 화면에 bottom dialog 적용 (#130)

* chore: domain 패키지 정리

* chore: 리스너 이름 변경

* feat: meeting domain model에 초대코드 추가

* feat: NotificationLogActivity에 bottom sheet 기능 병합

* refactor: FakeRepo에서 DefaultRepo로 변경

* design: elevation 수정

* fix: app 네임스페이스 추가

* fix: manifest 수정

* refactor: FCM 전송 데이터 안드로이드 요청사항 반영 (#136)

* fix: 실패하는 테스트 수 (#137)

* fix: 초대 코드 입력 성공 시 참여 화면으로 이동하도록 수정 (#133)

* feat: 모임 개설 api 연결 (#139)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* chore: okhttp logging 의존성 추가

* chore: Http Logging 추가

* chore: 오타 수정

* feat: MeetingService postMeeting 추가

* chore: Timber 메시지 수정

* chore: 키에 맞는 인텐트로 변경

* feat: 모임 개설 api 연결

* feat: 커스텀 예외 생성 및 적용 (#140)

* feat: 커스텀 예외 생성 및 적용

* fix: fcmPushSender MockBean 추가

* fix: 테스트 실패 원인 파악 및 성공을 위해 `@Disabled` 처리

- NotificationService 내에서 RouteClient 접근해서 문제 발생

* feat: 모임 참여 서버 연결 (#143)

* feat: 서버 참여 api 연결

* style: ktlint 수정

* chore: 메서드 분리 및 메서드 한줄로 변경

* feat: 참여중인 모임 목록 조회 (#142)

* feat: 참여한 모임이 있을 경우 첫 번째 모임에 참여, 아닐 경우 인트로 화면으로 이동하는 기능 구형

* feat: 참여한 모임 중 첫 번째 모임의 로그를 띄워주는 기능 구현

* refactor: 리뷰 반영

* fix: 자잘한 ux 버그 다수 수정 (#145)

* fix: import 오류 수정

* fix: NumberPicker 디폴트 값이 현재 시간으로 설정되지 않는 버그 수정

* fix: 주소 EditText 한줄만 입력할 수 있도록 수정

* fix: 유효한 날짜 선택 시에도 유효하지 않다는 스낵바 뜨는 버그 수정

* fix: 닉네임 입력 화면으로 이동 시 화면 깜빡임 현상 수정

* fix: back press 시 이전 fragment로 이동하도록 수정

* style: ktLint 적용

* design: 바텀 시트 stroke 제거 및 elevation 추가

* feat: EC2 서버의 H2 콘솔 접근 설정 및 누락된 모임장 알림 로직 추가 (#146)

* chore: EC2 서버의 H2 콘솔 접근을 위한 설정 추가

* fix: 모임 참여 API에서 누락된 알림 로직 추가

* fix: ODsay 사용하는 테스트 코드 Disabled 처리

* fix: ODsay 사용하는 MeetingControllerTest 코드 Disabled 처리

---------

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

* fix: FCM 토픽 Malformed topic name 에러 해결 (#149)

* fix: FCM 토픽 Malformed topic name 에러 해결 (#151)

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: 의도하지 않은 값이 토픽에 들어간 코드 수정 (#153)

* fix: 로그 화면 버그 해결 (#157)

* fix: 로그 화면 데이터 mapping 버그 수정

* design: 로그 화면 그림자 drawable 수정

* fix: LocalDateTime mapping 방식 수정

* design: 로그 화면 툴바의 뒤로가기 버튼 제거

* fix: fcm 토큰 없는 경우 meetings를 불러오지 않도록 수정

* style: ktLint 적용

* chore: Meetings -> MeetingsResponse 클래스명 변경

* fix: LocalDateTime mapping 오류 해결

* fix: 클립보드 복사 시 스낵바 제거

* fix: LocalDateTime mapping 오류 해결

* fix: 로그 화면으로 이동 시 깜빡이는 현상 해결

* refactor: 리뷰 반영

* fix: CalendarView -> DatePicker로 변경하여 날짜 선택 불가 버그 수정 (#155)

* �feat: 로그 목록 조회 시 과거순 정렬 (#144)

* refactor: 아규먼트 리졸버 어노테이션 적용

* refactor: 데이터베이스에 데이터 추가 순으로 알림 로그 정렬

* test: 모임 반환 테스트 오류 해결

* refactor: 현재 이전의 로그 목록을 조회하도록 수정

* refactor: NotiLog 바인딩 수정

createdAt > sendAt

* refactor: 불필요한 레코드 삭제

* refactor: LocalTime 밀리 세컨즈 제거

* test: 로그 필터링 적용 테스트 작성

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 알림 전송 예약 시점이 아닌 전송 시점에 상태 변경되도록 수정 (#162)

- FcmSendRequest 매개변수 변경
- updateDone -> updateStatusToDone 메서드명 변경
- 시연을 위해 알림 전송 시간 임의 지정
- FcmSendRequest 매개변수 변경에 따른 테스트 코드 수정

* feat: 초대코드 존재유무 검증로직 구현 (#164)

* feat: 초대코드 존재유무 검증로직 구현

* refactor: id 기반 모임 조회로 로직 변경

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 (#165)

* chore: RequestDto 패키지 위치 이동

* style: 컨트롤러 컨벤션 개행 적용

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 기능 추가

* refactor: 알림 전송 코드 개선

* refactor: 본인의 입장 푸쉬 알림은 안뜨도록 fcm 토픽 구독 순서 변경

* fix: 스플래쉬 딜레이 수정 (#163)

* fix: 스플래쉬 delay 수정

* fix: LocalDateTime parse 형식 수정

* style: ktLint 적용

* refactor: 패키지 구조 변경 (#174)

* refactor: data model -> data entity로 패키지명 변경

* refactor: entity -> remote 패키지 아래로 이동

* refactor: 각 entity 안에 request, response 패키지 만들기 및 remote 패키지 아래에 Ody api를 연결하는 패키지, FCM 패키지 만들기

* refactor: domain - repository 아래 이슈 별로 패키지 분리

* refactor: presentation common 만들기

* refactor: startingpoint -> departure 패키지 명 변경

* refactor: NotificationLogListAdapter -> NotificationLogsAdapter 클래스명 변경

* refactor: notificationlog -> meetingRoom 패키지명 변경

* refactor: startingpoint -> departure xml 명 변경

* refactor: domain으로 AddressValidator 이동

* refactor: presentation - listener 패키지 만들기

* refactor: presentation ui 모델은 presentation model 패키지 안에 넣기

* refactor: data - fake -> 테스트 패키지 쪽으로 위치 변경

* refactor: meeting 패키지 만들고 meeting과 관련된 파일들 이동

* refactor: join 패키지 만들고 join과 관련된 파일들 이동

* refactor: DepartureFragment -> JoinDepartureFragment로 프로그래먼트 명 변경

* style: ktlint

* refactor: meeting, join -> meetingcreation, meetingjoin으로 패키지명 변경

* refactor: meetingcreation, meetingjoin, meetingroom -> creation, join, room 으로 패키지명 변경

* refactor: data - remote - thirdparty, core로 패키지 분리

* style: ktlint

* style: ktlint

* refactor: manifest tools 속성 제거 (#184)

* refactor: manifest tools 속성 제거

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* test: RouteClient Mock 테스트 (#177)

* test: 길찾기 api 성공 restClient MockTest

* test: 도착지와 출발지가 700m 이내인 테스트 추가

* fix: 500 에러 시에만 OdyServerErrorException 발생하도록 수정

* test: 잘못된 api-key 요청 시 예외 발생 테스트 추가

* test: 클라이언트 예외 발생 테스트 추가

* test: static 키워드 삭제

* refactor: RouteClient 인터페이스화

* test: service layer FakeRouteClient 적용

* test: controller layer FakeRouteClient 적용, @Disabled 제거

* test: RouteClient 관련 테스트 파일 디렉토리 이동

* refactor: URI 생성 로직 가독성 개선

* test: 불필요한 테스트 제거

* feat: NPE 체크 로직 추가

* test: 불필요한 RouteClient 설정 제거

* refactor: Event -> SingleLiveData로 개선 (#185)

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* chore: open 키워드 제거

* refactor: 모임 날짜를 LocalDate로 관리 (#186)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장 (#193)

* refactor: 2차 스프린트 구현 사항 리팩터링 (#189)

* chore: 함수 이름 통일

initializeObservingData -> initializeObserve

* refactor: SingleLiveData의 타입을 Boolean에서 Unit으로 변경

* refactor: 약속 날짜 유효성 검증을 ViewModel로 분리

* chore: 함수, 프로퍼티 순서 변경

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: Splash 화면 이동 판단 로직을 뷰모델로 이동

* style: ktLint 적용

* refactor: 약속 시간이 초기화되었는지 판단하는 로직을 변수로 분리

* chore: 함수명 변경 empty -> clear

* chore: updateMeetingDate -> checkMeetingDateValidity 함수명 변경

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: aprilgom <[email protected]>

* refactor: RouteClient 응답 분기를 객체로 캡슐화 (#188)

* refactor: RouteClient 응답 분기를 객체로 캡슐화

* chore: 패키지 디렉토리 변경

domain > dto

* refactor : 응답 매핑 로직을 mapper로 이전

* refactor : 불필요한 static 객체 삭제

* refactor : 500에러 처리 로직 추가

* refactor : NPE 예외 처리

* refactor : 롬복으로 private 생성자 구현

* test: OdsayResponseMapperTest 작성

* style: message 개행 변경

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

* refactor: OdsayRouteClient에 mapper 로직 반영

* fix: FutureOrPresentDateTimeValidatorTest 오류 개선

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: H <[email protected]>

* design: 폰트, 컬러 xml 지정 (#219)

* design: font 스타일 추가

* design: colors 네이밍 변경

* design: 컬러 추가

* refactor: 2차 스프린트 리팩터링 (#196)

* refactor: FCMService와 NotificationHelper 분리

* refactor: 알림 권한이 이미 있을 시 early return, viewmodel 이름 수정

* refactor: NotificationLog Result 반환하도록 수정

* refactor: 이벤트 리스너 네이밍 수정

* refactor: MeetingRoomViewModel 초기화 init 블럭 내 실행, Timber 로그 내 toString 제거

* style: ktLintFormat

* fix: NotificationLog repo 수정에 따른 FakeRepository 수정

* style: ktLintFormat

* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]…

* release: 백엔드 버전 2 배포 (#588)

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL l…
hyeon0208 added a commit that referenced this pull request Oct 2, 2024
* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 업그레이드

1.6.10-1.0.4 -> 1.9.0-1.0.13

* chore: MeetingInfoActivity exported true로 변경

* feat: 모임 참여 완료 화면 구현 (#70)

* chore: 박수 이미지들 추가

* feat: 모임 개설 완료 화면 구현

* chore: DestinationFragment -> MeetingDestinationFragment 변경

* feat: 모임 참여 완료 화면 (#72)

* chore: 달력 이미지들 추가

* feat: 모임 참여 완료 화면 구현

* chore: 화면 회전 가로로 고정 및 exported false로 변경

* chore: tools:text에 해당하는 값 하드 코딩으로 변경

* feat: 메인 화면 구현 (#73)

* design: 인트로 화면 xml 작성

* design: activity_intro.xml 작성

* feat: Event 작성

* feat: IntroNavigateAction 작성

* feat: Intro 버튼 리스너 인터페이스 작성

* feat: 각 버튼 클릭에 따른 Navigation Event 발생 구현

* feat: IntroActivity에 ViewModel 추가

* feat: observe 초기화 코드 추가

* refactor: IntroActivity와 MeetingInfoActivity 연결

* refactor: binding 함수 분리, initialize로 함수명 통일

* chore: shape_purple_radius_20.xml -> rectangle_purple_radius_20.xml 이름 변경

* design: 탑 바 추가

---------

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

* feat: 모임 참여 시 프래그먼트들 연결하는 뷰페이저 (#74)

* chore: MeetingInfoListener -> InfoListener로 인터페이스 명 변경

* feat: 모임 참여 뷰페이저 구현

* chore: initializeDataBinding에 ViewPager 초기화 메서드 추가

* chore: VisitorInfo -> JoinInfo로 메서드명 변경

* chore: InfoListener -> BackListener로 인터페이스 명 변경

* feat: 알림 권한 요청 (#75)

* feat: 알림 권한 요청

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* chore: android ci 필드 추가 (#78)

* chore: android ci 스크립트 api key 추가

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 테스트

* feat: 위도, 경도 가져오는 api 연동 (#76)

* feat: 위경도 가져오는 repository 구현

* feat: 카카오 location response dto 추가

* feat: 카카오 location api 연동

* feat: 위도 경도를 프래그먼트에 전달하는 기능 구현

* refactor: 위도 경도 받아오는 기능을 비동기로 처리

* fix: 위도 경도 비동기로 받아와서 프래그먼트에 전달

* fix: 위경도 받아온 후 다이얼로그 닫도록 수정

* refactor: interceptor로 헤더 추가

* style: ktLint 적용

* chore: moshi 어댑터 import 수정

* refactor: 함수 분리

* refactor: 위경도에 대한 mapper 생성

* chore: 패키지 구조 변경

* refactor: 위경도 데이터에 대한 ui model 추가

* style: ktLint 적용

* chore: 사용하지 않는 파일 삭제

* feat: 약속 날짜 입력 화면 (#79)

* feat: 날짜 선택 화면 구현

* chore: 불필요한 스낵바 제거

* feat: 날짜 선택 시간에 따른 예외 처리

* style: ktlint

* feat: 모임 정보 입력 검증 로직 추가 (#68)

* feat: 모임 정보 입력 검증 로직 추가

* fix: 검증할 DTO에 검증 어노테이션 추가

* style: 코드 컨벤션 적용

* feat: nickname 검증을 담당하는 도메인 추가

* refactor: 엔티티에서 이미 선언된 NotNull을 임베디드 객체에서 제거

* feat: 닉네임 입력 화면 구현 (#86)

* design: 닉네임 입력 화면 ui 구현

* feat: 닉네임 최대 길이 뷰모델에서 가져오도록 구현

* feat: 닉네임이 변경되면 닉네임 글자수가 보이는 기능 구현

* feat: 엑스 버튼 누르면 입력된 닉네임 없어지는 기능 구현

* feat: 닉네임 입력 여부에 따라 다음 버튼 비활성화 되는 기능 구현

* style: ktLint 적용

* feat: 초대 코드 복사 bottom dialog (#84)

* design: bottom sheet 틀 디자인

* design: bottom sheet 디자인

* feat: 초대 코드 복사하기 구현

* chore: initialize로 네이밍 통일 및 스낵바에 Int값 전달로 변경

* chore: 초대 코드 관련 UX 라이팅 변경

초대 코드가 복사 됐습니다. -> 초대 코드가 복사 복사되었습니다.

* feat: 약속 시간 입력 화면 구현 (#97)

* design: 약속 시간 입력 화면 ui 구현

* feat: 시간과 분을 NumberPicker에 데이터로 넣어주는 기능 구현

* feat: NumberPicker 무한 스크롤 구현

* refactor: NumberPicker 숫자 지정하는 기능을 프래그먼트로 이동

* feat: 현재 시간으로 NumberPicker 초기값 셋팅하는 기능 구현

* feat: 다음 버튼 누르면 시간 유효성 검증 구현

* refactor: 다음 버튼 리스너를 인터페이스로 분리

* style: ktLint 적용

* refactor: numberPicker value를 데이터 바인딩으로 수정

* feat: 초대 코드 입력 화면 구현 (#99)

* design: 초대 코드 입력 화면 뷰 구현

* feat: 초대 코드 유효성 검증 repository 구현

* chore: manifest에 액티비티 추가

* design: edit text 속성 추가

* feat: 초대 코드 입력 여부에 따라 엑스 버튼의 가시성을 변경하는 기능 구현

* feat: 엑스 버튼 클릭 시 입력한 초대 코드 지우는 기능 구현

* design: strings 와 selector 추가

* feat: 확인 버튼 클릭 시 유효성 검증하는 기능 구현

* style: ktLint 적용

* chore: 불필요한 코드 삭제

* feat: toolbar back 버튼 리스너 구현

* chore: infoListener -> backListener 네이밍 수정

* chore: dialog 크기 수정 (#98)

* feat: 서브모듈 환경 구축 (#101)

* chore: ci submodule 적용

* chore: 서브모듈 디렉토리 추가

* chore: private.yml 파일 수정 테스트

* chore: private.yml 파일 수정

* test: test argument 수정

* chore: ci 스크립트 수정

* chore: ci 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발지 입력 화면 구현 (#100)

* style: 출발지 입력 화면 ui 구현

* feat: 도착지 입력 시 수도권 유효성 검증 구현

* refactor: 주소 검색 클릭 리스너 인터페이스로 분리

* chore: 패키지 분리

* feat: 출발지 입력 시 수도권 유효성 검증 구현

* feat:  수도권 여부에 따라 다음 버튼 활성화 기능 구현

* style: ktLint 적용

* feat: 모임 이름 입력 화면 구현 (#102)

* design: 모임 이름 입력 ui 구현

* feat: 글자수 데이터 바인딩 기능 구현

* refactor: 모임 시간 범위 표현 방식 수정

* fix: strings 추가

* fix: 바인딩 빌드 오류 해결

* feat: 출발 시간 알림 구현 (#60)

* feat: 출발 시간 알림 예약 기능 추가

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

* refactor: 토큰으로 회원 조회 ArgumentResolver로 공통화

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

* fix: TaskScheduler 빈 등록

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

* test: 출발 시간 알림 예약 기능 테스트 추가

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

* fix: JpaAuditing 활성화

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

* fix: 요청 DTO 매핑을 위한 RequestBody 어노테이션 추가

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

* fix: save 메서드에 Transactional 어노테이션 추가

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

* style: 코드 컨벤션 적용

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

* fix: firebase 키 캐쉬 내역 제거

* fix: 테스트 시에 테스트용 yml이 수정되도록 규칙에 맞게 이름 수정

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

* refactor: 모임 내 모든 사용자가 알림 받도록 topic 기능 사용

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

* refactor: 알림에 닉네임 포함하도록 수정

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

* refactor: 예외 메세지 오타 수정

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

* refactor: 디바이스 토큰 헤더 형식 검증 로직 분리

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

* refactor: 컨트롤러 시그니처 변경 및 스웨거 문서 수정

- 디바이스 토큰 헤더 커스텀 어노테이션 생성

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

* fix: FCM 토픽 구독 로직 분리

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

* refactor: Member 필드에 DeviceToken 타입 사용

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

* refactor: FCM 설정 옵션 코드 분리 및 테스트를 위한 enable 로직 제거

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

* refactor: FCM message 생성 로직 가독성 개선

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

* refactor: 변수 선언으로 `taskScheduler.schedule()` 호출 시 가독성 개선

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

* refactor: 가독성 개선을 위해 AndroidNotification 변수 선언

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

* refactor: Fixture에 private 생성자 추가

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

* refactor: IntegrationTest -> BaseControllerTest 이름 변경

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

* refactor: test application.yml 파일 제거

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

* refactor: 롬복을 이용하지 않고 Fixture private 생성자 추가

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

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: H <[email protected]>

* feat: 초대 코드 Preference dataStore 세팅 (#104)

* chore: preference datastore 의존성 추가

* feat: 초대 코드 복사 preference datastore 기초 세팅

* feat: 모임 참여/개설 시 뷰모델 데이터 관리 #93 (#105)

* feat: 입력값 유효성에 따라 다음 버튼 활성화되도록 구현

* feat: 다음 버튼이 비활성화되면 스와이프도 불가능하도록 구현

* refactor: startActivity 방식을 getIntent로 변경

* feat: 다음 화면으로 이동하면 다음버튼이 비활성화 되도록 구현

* fix: 출발지 입력에 대한 유효성 검증 처리를 Event로 변경

* refactor: 모임 개설 시 데이터 viewModel에서 관리하도록 수정

* feat: 모임 개설 시 화면 플로우 구현

* style: ktLint 적용

* fix: Swagger에서 API 호출 시 Bad Request 응답 오류 (#107)

* refactor: `common/annotation` 패키지 이름 오타 수정

* refactor: Authorization 헤더 사용을 위한 설정 추가 및 코드 변경

- 커스텀 어노테이션 DeviceTokenHeader 제거
- 디바이스 토큰 접두사 수정

* fix: 멤버 추가 시 멤버 검증 로직 포함되지 않도록 수정

* fix: nickname 객체로 변경에 따른 코드 수정

* fix: 디바이스 토큰 접두사 추가에 따른 테스트 코드 수정

* fix: LocalDate, LocalTime Swagger 상 타입 표현 string으로 수정

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

* fix: 닉네임을 객체로 변환함에 따른 getter 코드 수정

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

---------

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

* feat: 모임 초대 코드 생성 기능 추가 (#61)

* feat: 모임 초대 코드 생성 기능 추가

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

* style: 한줄에 한개의 점만 찍는다 컨벤션 적용

* refactor: 디코딩 검증 로직 추가

---------

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

* feat: 서버 헤더 형식 변경 (#112)

* feat: 로그 화면 구현 (#108)

* feat: Notification 도메인 타입 정의

* feat: api 서버로부터 받는 NotificationLog 타입 정의

* feat: retrofit의 NotificationService 구현

* feat: NotificationLogRepository의 명세와 기본 Repository 구현

* refactor: NotificationLog -> NotificationEntity

* design: item_notification_log.xml 작성

* feat: 타입 추가 정의

* chore: merge

* refactor: DefaultNotificationLogRepository 싱글턴으로 변경

* feat: NotificationLogViewModel 구현

* feat: NotificationLogActivity 구현

* design: rectangle_cream_downside_radius_30.xml 작성

* design: item_notification_log.xml 작성

* chore: merge

* chore: merge

* feat: 로그 리사이클러 뷰 구현

* chore: merge

* refactor: 알림 로그를 불러올 때 meetingId를 이용해 불러오도록 변경

* feat: 뷰와 데이터 바인딩

* chore: 오타 수정

* feat: 초대 코드 화면에서 로그 화면으로 이동 기능 구현

* refactor: 리뷰 반영

* refactor: ViewHolder 분리

* feat: 닉네임, 출발지 입력 (#80)

* refactor: Nickname 도메인 개선

- OdyException 커스텀 예외 생성
- 이름 변경 (NickName -> Nickname)

* refactor: 위경도 검증 로직 추가

- Location 필드에 `@NotNull` 추가

* feat: 전역 예외 처리기 추가

* refactor: 불필요한 final 키워드 제거

* refactor: 공백만 존재하는 닉네임 불가하도록 수정

* feat: 소요 시간 계산 기능 구현 (#96)

* chore: private 파일 gitignore 추가

* feat: 소요 시간 계산 기능 구현

* refactor: 소요 시간 계산 API client 변경

* feat: Duration Deserializer 구현

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: RouteClient calculateDuration 메서드 수

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발 시간 계산 로직 구현

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 소요 시간 계산 API 에러 핸들링

* fix: 커밋되지 않은 response 클래스 추가

* chore: 불필요한 build.gradle 구문 삭제

* refactor: 변수 선언문 try 내부로 이동

* refactor: 중첩된 로직 별도 변수로 추출

* refactor: 축약된 exception 변수명 수정

* refactor: 소요시간 VO 이름 수정, Odsay api response 객체 이름 수정

* refactor: URI 생성 시 StringBuilder 적용

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: 스낵바 위치 변경 및 showSnackBar 형식 통일 (#116)

* feat: 로그 목록 조회 (#87)

* chore: dto 디렉토리 변경

request > response

* feat: NotificationRepository 구현

* feat: dto 변환로직 구현

* feat: notificationService 구현

* style: 컨벤션 준수

* docs: test용 yml파일 추가

* refactor: notification 생성자 추가

* test: 로그 목록 반환 테스트 작성

* refactor: domain to dto 계층 이동

* refactor: method 이름 수정

* test: 로그 목록 조회 통합 테스트 추가

* style: new-line 추가

* chore: 로그 목록 반환 메서드 이동

NotificationController > MeetingController

* chore: 메서드 명 일치화

findAllMeetingLogsById > findAllMeetingLogs

* chore: domain to dto 메서드명 변경

toResponse > from

* refactor: auditing config 분리

* chore: dto 명 변경

NotificationSaveResponse > NotiLogFindResponse
NotiLogFindResponse > NotiLogFindResponses

* chore: 테스트 디렉토리 이동

* style: 불필요한 import문 제거

* chore: 디렉토리 변경

* Revert "chore: 디렉토리 변경"

This reverts commit c1b9f595357b999fe4aac325d460246ab3e8cb91.

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: CI/CD 스크립트 분리 (#126)

* chore: ci/cd script 분리

* chore: cd 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 개설 기능 추가 (#121)

* style: 한 줄에 하나의 점만 찍는다. 컨벤션 적용

* refactor: 변경된 클래스명으로 getter 네이밍 수정

* chore: 초대코드생성기 util 패키지로 이동

* feat: 모임 개설 API 기능 추가

* feat: 회원 추가 API 기능 추가

* refactor: 변경된 firebase 엑세스 키 파일 위치로 경로 수정

* feat: DB 테이블 삭제 클래스 추가

* test: 컨트롤러 테스트 추가

* refactor: 서브 모듈 패키지 변경 사항 추가

* refactor: 초대코드 디코딩하여 모임방 조회 적용

* refactor: entityManger 의존성 주입 추가

* fix: 회원 생성, 모임 참여 API 오류 수정 (#127)

* fix: deviceToken unique, notnull 속성 적용

* fix: deviceToken 공백 검증 로직 적용

* style: import 재정렬

* feat: deviceToken 문자열 앞뒤 공백 제거 로직 추가

* refactor: findDeviceToken 쿼리 성능 개선

* feat: 회원 생성시 토큰 중복 검사 추가

* feat: mate 테이블의 memberId, meetingId unique 설정

* feat: 모임 참여시 중복 검증 로직 추가

* refactor: 모임 개설시 mate에도 회원 정보 저장

* refactor: DeviceToken NotNull 제약 조건 추가

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 모임 내 닉네임 중복 검증 (#119)

* feat: 초대코드 검증 API 추가 (#123)

* feat: 초대코드 검증 API 추가

* feat: 404를 반환하는 커스텀 예외 추가

* test: 404 오류를 검증하는 테스트로 변경

* feat: 모임 개설 서버 연결 (#131)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* feat: 특정 회원이 참여한 모임 목록 조회 API 구현 (#129)

* feat: 멤버가 참여한 모임 리스트 반환 쿼리 구현

* feat: 멤버가 참여한 모임 리스트 반환 기능 구현

* feat: token fixture 추가

* style: static import 제거

* test: 멤버 참여 모임 목록 조회 통합 테스트 추가

* test: NotificationRepositoryTest directory 이동

* test: 간섭 발생 테스트 disabled 처리

* fix: test 오류 개선

* fix: import 오류 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* feat: 다음 버튼 비활성화 시 뷰페이저 스와이프 막는 기능 구현 (#122)

* refactor: LivaData set value 방식 변경

* feat: 모임 개설 시 뷰페이저 스와이프 막는 기능 구현

* feat: 뷰페이저 화면 이동 시 유효성 검증 기능 구현

* style: ktLint 적용

* fix: 모임 시간 유효하지 않아도 다음 페이지로 이동하는 버그 수정

* chore: nextPage -> moveOnNextPage 함수명 변경

* feat: 모임 개설 시 개설 완료 화면으로 이동하는 기능 구현

* feat: Notification 구현 (#128)

* feat: Notification 메시지 바로 출력

* chore: 의존성 추가

* fix: 경로 변경에 의한 import 변경

* feat: 알림 타입에 따른 알림 메시지 변경

* feat: fcm을 위한 string 작성

* feat: 알림 로그 화면에 bottom dialog 적용 (#130)

* chore: domain 패키지 정리

* chore: 리스너 이름 변경

* feat: meeting domain model에 초대코드 추가

* feat: NotificationLogActivity에 bottom sheet 기능 병합

* refactor: FakeRepo에서 DefaultRepo로 변경

* design: elevation 수정

* fix: app 네임스페이스 추가

* fix: manifest 수정

* refactor: FCM 전송 데이터 안드로이드 요청사항 반영 (#136)

* fix: 실패하는 테스트 수 (#137)

* fix: 초대 코드 입력 성공 시 참여 화면으로 이동하도록 수정 (#133)

* feat: 모임 개설 api 연결 (#139)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* chore: okhttp logging 의존성 추가

* chore: Http Logging 추가

* chore: 오타 수정

* feat: MeetingService postMeeting 추가

* chore: Timber 메시지 수정

* chore: 키에 맞는 인텐트로 변경

* feat: 모임 개설 api 연결

* feat: 커스텀 예외 생성 및 적용 (#140)

* feat: 커스텀 예외 생성 및 적용

* fix: fcmPushSender MockBean 추가

* fix: 테스트 실패 원인 파악 및 성공을 위해 `@Disabled` 처리

- NotificationService 내에서 RouteClient 접근해서 문제 발생

* feat: 모임 참여 서버 연결 (#143)

* feat: 서버 참여 api 연결

* style: ktlint 수정

* chore: 메서드 분리 및 메서드 한줄로 변경

* feat: 참여중인 모임 목록 조회 (#142)

* feat: 참여한 모임이 있을 경우 첫 번째 모임에 참여, 아닐 경우 인트로 화면으로 이동하는 기능 구형

* feat: 참여한 모임 중 첫 번째 모임의 로그를 띄워주는 기능 구현

* refactor: 리뷰 반영

* fix: 자잘한 ux 버그 다수 수정 (#145)

* fix: import 오류 수정

* fix: NumberPicker 디폴트 값이 현재 시간으로 설정되지 않는 버그 수정

* fix: 주소 EditText 한줄만 입력할 수 있도록 수정

* fix: 유효한 날짜 선택 시에도 유효하지 않다는 스낵바 뜨는 버그 수정

* fix: 닉네임 입력 화면으로 이동 시 화면 깜빡임 현상 수정

* fix: back press 시 이전 fragment로 이동하도록 수정

* style: ktLint 적용

* design: 바텀 시트 stroke 제거 및 elevation 추가

* feat: EC2 서버의 H2 콘솔 접근 설정 및 누락된 모임장 알림 로직 추가 (#146)

* chore: EC2 서버의 H2 콘솔 접근을 위한 설정 추가

* fix: 모임 참여 API에서 누락된 알림 로직 추가

* fix: ODsay 사용하는 테스트 코드 Disabled 처리

* fix: ODsay 사용하는 MeetingControllerTest 코드 Disabled 처리

---------

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

* fix: FCM 토픽 Malformed topic name 에러 해결 (#149)

* fix: FCM 토픽 Malformed topic name 에러 해결 (#151)

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: 의도하지 않은 값이 토픽에 들어간 코드 수정 (#153)

* fix: 로그 화면 버그 해결 (#157)

* fix: 로그 화면 데이터 mapping 버그 수정

* design: 로그 화면 그림자 drawable 수정

* fix: LocalDateTime mapping 방식 수정

* design: 로그 화면 툴바의 뒤로가기 버튼 제거

* fix: fcm 토큰 없는 경우 meetings를 불러오지 않도록 수정

* style: ktLint 적용

* chore: Meetings -> MeetingsResponse 클래스명 변경

* fix: LocalDateTime mapping 오류 해결

* fix: 클립보드 복사 시 스낵바 제거

* fix: LocalDateTime mapping 오류 해결

* fix: 로그 화면으로 이동 시 깜빡이는 현상 해결

* refactor: 리뷰 반영

* fix: CalendarView -> DatePicker로 변경하여 날짜 선택 불가 버그 수정 (#155)

* �feat: 로그 목록 조회 시 과거순 정렬 (#144)

* refactor: 아규먼트 리졸버 어노테이션 적용

* refactor: 데이터베이스에 데이터 추가 순으로 알림 로그 정렬

* test: 모임 반환 테스트 오류 해결

* refactor: 현재 이전의 로그 목록을 조회하도록 수정

* refactor: NotiLog 바인딩 수정

createdAt > sendAt

* refactor: 불필요한 레코드 삭제

* refactor: LocalTime 밀리 세컨즈 제거

* test: 로그 필터링 적용 테스트 작성

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 알림 전송 예약 시점이 아닌 전송 시점에 상태 변경되도록 수정 (#162)

- FcmSendRequest 매개변수 변경
- updateDone -> updateStatusToDone 메서드명 변경
- 시연을 위해 알림 전송 시간 임의 지정
- FcmSendRequest 매개변수 변경에 따른 테스트 코드 수정

* feat: 초대코드 존재유무 검증로직 구현 (#164)

* feat: 초대코드 존재유무 검증로직 구현

* refactor: id 기반 모임 조회로 로직 변경

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 (#165)

* chore: RequestDto 패키지 위치 이동

* style: 컨트롤러 컨벤션 개행 적용

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 기능 추가

* refactor: 알림 전송 코드 개선

* refactor: 본인의 입장 푸쉬 알림은 안뜨도록 fcm 토픽 구독 순서 변경

* fix: 스플래쉬 딜레이 수정 (#163)

* fix: 스플래쉬 delay 수정

* fix: LocalDateTime parse 형식 수정

* style: ktLint 적용

* refactor: 패키지 구조 변경 (#174)

* refactor: data model -> data entity로 패키지명 변경

* refactor: entity -> remote 패키지 아래로 이동

* refactor: 각 entity 안에 request, response 패키지 만들기 및 remote 패키지 아래에 Ody api를 연결하는 패키지, FCM 패키지 만들기

* refactor: domain - repository 아래 이슈 별로 패키지 분리

* refactor: presentation common 만들기

* refactor: startingpoint -> departure 패키지 명 변경

* refactor: NotificationLogListAdapter -> NotificationLogsAdapter 클래스명 변경

* refactor: notificationlog -> meetingRoom 패키지명 변경

* refactor: startingpoint -> departure xml 명 변경

* refactor: domain으로 AddressValidator 이동

* refactor: presentation - listener 패키지 만들기

* refactor: presentation ui 모델은 presentation model 패키지 안에 넣기

* refactor: data - fake -> 테스트 패키지 쪽으로 위치 변경

* refactor: meeting 패키지 만들고 meeting과 관련된 파일들 이동

* refactor: join 패키지 만들고 join과 관련된 파일들 이동

* refactor: DepartureFragment -> JoinDepartureFragment로 프로그래먼트 명 변경

* style: ktlint

* refactor: meeting, join -> meetingcreation, meetingjoin으로 패키지명 변경

* refactor: meetingcreation, meetingjoin, meetingroom -> creation, join, room 으로 패키지명 변경

* refactor: data - remote - thirdparty, core로 패키지 분리

* style: ktlint

* style: ktlint

* refactor: manifest tools 속성 제거 (#184)

* refactor: manifest tools 속성 제거

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* test: RouteClient Mock 테스트 (#177)

* test: 길찾기 api 성공 restClient MockTest

* test: 도착지와 출발지가 700m 이내인 테스트 추가

* fix: 500 에러 시에만 OdyServerErrorException 발생하도록 수정

* test: 잘못된 api-key 요청 시 예외 발생 테스트 추가

* test: 클라이언트 예외 발생 테스트 추가

* test: static 키워드 삭제

* refactor: RouteClient 인터페이스화

* test: service layer FakeRouteClient 적용

* test: controller layer FakeRouteClient 적용, @Disabled 제거

* test: RouteClient 관련 테스트 파일 디렉토리 이동

* refactor: URI 생성 로직 가독성 개선

* test: 불필요한 테스트 제거

* feat: NPE 체크 로직 추가

* test: 불필요한 RouteClient 설정 제거

* refactor: Event -> SingleLiveData로 개선 (#185)

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* chore: open 키워드 제거

* refactor: 모임 날짜를 LocalDate로 관리 (#186)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장 (#193)

* refactor: 2차 스프린트 구현 사항 리팩터링 (#189)

* chore: 함수 이름 통일

initializeObservingData -> initializeObserve

* refactor: SingleLiveData의 타입을 Boolean에서 Unit으로 변경

* refactor: 약속 날짜 유효성 검증을 ViewModel로 분리

* chore: 함수, 프로퍼티 순서 변경

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: Splash 화면 이동 판단 로직을 뷰모델로 이동

* style: ktLint 적용

* refactor: 약속 시간이 초기화되었는지 판단하는 로직을 변수로 분리

* chore: 함수명 변경 empty -> clear

* chore: updateMeetingDate -> checkMeetingDateValidity 함수명 변경

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: aprilgom <[email protected]>

* refactor: RouteClient 응답 분기를 객체로 캡슐화 (#188)

* refactor: RouteClient 응답 분기를 객체로 캡슐화

* chore: 패키지 디렉토리 변경

domain > dto

* refactor : 응답 매핑 로직을 mapper로 이전

* refactor : 불필요한 static 객체 삭제

* refactor : 500에러 처리 로직 추가

* refactor : NPE 예외 처리

* refactor : 롬복으로 private 생성자 구현

* test: OdsayResponseMapperTest 작성

* style: message 개행 변경

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

* refactor: OdsayRouteClient에 mapper 로직 반영

* fix: FutureOrPresentDateTimeValidatorTest 오류 개선

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: H <[email protected]>

* design: 폰트, 컬러 xml 지정 (#219)

* design: font 스타일 추가

* design: colors 네이밍 변경

* design: 컬러 추가

* refactor: 2차 스프린트 리팩터링 (#196)

* refactor: FCMService와 NotificationHelper 분리

* refactor: 알림 권한이 이미 있을 시 early return, viewmodel 이름 수정

* refactor: NotificationLog Result 반환하도록 수정

* refactor: 이벤트 리스너 네이밍 수정

* refactor: MeetingRoomViewModel 초기화 init 블럭 내 실행, Timber 로그 내 toString 제거

* style: ktLintFormat

* fix: NotificationLog repo 수정에 따른 FakeRepository 수정

* style: ktLintFormat

* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <joe…
kimhm0728 added a commit that referenced this pull request Oct 15, 2024
* feat: 출발 시간 알림 구현 (#60)

* feat: 출발 시간 알림 예약 기능 추가

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

* refactor: 토큰으로 회원 조회 ArgumentResolver로 공통화

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

* fix: TaskScheduler 빈 등록

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

* test: 출발 시간 알림 예약 기능 테스트 추가

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

* fix: JpaAuditing 활성화

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

* fix: 요청 DTO 매핑을 위한 RequestBody 어노테이션 추가

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

* fix: save 메서드에 Transactional 어노테이션 추가

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

* style: 코드 컨벤션 적용

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

* fix: firebase 키 캐쉬 내역 제거

* fix: 테스트 시에 테스트용 yml이 수정되도록 규칙에 맞게 이름 수정

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

* refactor: 모임 내 모든 사용자가 알림 받도록 topic 기능 사용

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

* refactor: 알림에 닉네임 포함하도록 수정

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

* refactor: 예외 메세지 오타 수정

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

* refactor: 디바이스 토큰 헤더 형식 검증 로직 분리

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

* refactor: 컨트롤러 시그니처 변경 및 스웨거 문서 수정

- 디바이스 토큰 헤더 커스텀 어노테이션 생성

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

* fix: FCM 토픽 구독 로직 분리

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

* refactor: Member 필드에 DeviceToken 타입 사용

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

* refactor: FCM 설정 옵션 코드 분리 및 테스트를 위한 enable 로직 제거

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

* refactor: FCM message 생성 로직 가독성 개선

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

* refactor: 변수 선언으로 `taskScheduler.schedule()` 호출 시 가독성 개선

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

* refactor: 가독성 개선을 위해 AndroidNotification 변수 선언

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

* refactor: Fixture에 private 생성자 추가

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

* refactor: IntegrationTest -> BaseControllerTest 이름 변경

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

* refactor: test application.yml 파일 제거

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

* refactor: 롬복을 이용하지 않고 Fixture private 생성자 추가

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

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: H <[email protected]>

* feat: 초대 코드 Preference dataStore 세팅 (#104)

* chore: preference datastore 의존성 추가

* feat: 초대 코드 복사 preference datastore 기초 세팅

* feat: 모임 참여/개설 시 뷰모델 데이터 관리 #93 (#105)

* feat: 입력값 유효성에 따라 다음 버튼 활성화되도록 구현

* feat: 다음 버튼이 비활성화되면 스와이프도 불가능하도록 구현

* refactor: startActivity 방식을 getIntent로 변경

* feat: 다음 화면으로 이동하면 다음버튼이 비활성화 되도록 구현

* fix: 출발지 입력에 대한 유효성 검증 처리를 Event로 변경

* refactor: 모임 개설 시 데이터 viewModel에서 관리하도록 수정

* feat: 모임 개설 시 화면 플로우 구현

* style: ktLint 적용

* fix: Swagger에서 API 호출 시 Bad Request 응답 오류 (#107)

* refactor: `common/annotation` 패키지 이름 오타 수정

* refactor: Authorization 헤더 사용을 위한 설정 추가 및 코드 변경

- 커스텀 어노테이션 DeviceTokenHeader 제거
- 디바이스 토큰 접두사 수정

* fix: 멤버 추가 시 멤버 검증 로직 포함되지 않도록 수정

* fix: nickname 객체로 변경에 따른 코드 수정

* fix: 디바이스 토큰 접두사 추가에 따른 테스트 코드 수정

* fix: LocalDate, LocalTime Swagger 상 타입 표현 string으로 수정

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

* fix: 닉네임을 객체로 변환함에 따른 getter 코드 수정

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

---------

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

* feat: 모임 초대 코드 생성 기능 추가 (#61)

* feat: 모임 초대 코드 생성 기능 추가

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

* style: 한줄에 한개의 점만 찍는다 컨벤션 적용

* refactor: 디코딩 검증 로직 추가

---------

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

* feat: 서버 헤더 형식 변경 (#112)

* feat: 로그 화면 구현 (#108)

* feat: Notification 도메인 타입 정의

* feat: api 서버로부터 받는 NotificationLog 타입 정의

* feat: retrofit의 NotificationService 구현

* feat: NotificationLogRepository의 명세와 기본 Repository 구현

* refactor: NotificationLog -> NotificationEntity

* design: item_notification_log.xml 작성

* feat: 타입 추가 정의

* chore: merge

* refactor: DefaultNotificationLogRepository 싱글턴으로 변경

* feat: NotificationLogViewModel 구현

* feat: NotificationLogActivity 구현

* design: rectangle_cream_downside_radius_30.xml 작성

* design: item_notification_log.xml 작성

* chore: merge

* chore: merge

* feat: 로그 리사이클러 뷰 구현

* chore: merge

* refactor: 알림 로그를 불러올 때 meetingId를 이용해 불러오도록 변경

* feat: 뷰와 데이터 바인딩

* chore: 오타 수정

* feat: 초대 코드 화면에서 로그 화면으로 이동 기능 구현

* refactor: 리뷰 반영

* refactor: ViewHolder 분리

* feat: 닉네임, 출발지 입력 (#80)

* refactor: Nickname 도메인 개선

- OdyException 커스텀 예외 생성
- 이름 변경 (NickName -> Nickname)

* refactor: 위경도 검증 로직 추가

- Location 필드에 `@NotNull` 추가

* feat: 전역 예외 처리기 추가

* refactor: 불필요한 final 키워드 제거

* refactor: 공백만 존재하는 닉네임 불가하도록 수정

* feat: 소요 시간 계산 기능 구현 (#96)

* chore: private 파일 gitignore 추가

* feat: 소요 시간 계산 기능 구현

* refactor: 소요 시간 계산 API client 변경

* feat: Duration Deserializer 구현

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: RouteClient calculateDuration 메서드 수

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 출발 시간 계산 로직 구현

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 소요 시간 계산 API 에러 핸들링

* fix: 커밋되지 않은 response 클래스 추가

* chore: 불필요한 build.gradle 구문 삭제

* refactor: 변수 선언문 try 내부로 이동

* refactor: 중첩된 로직 별도 변수로 추출

* refactor: 축약된 exception 변수명 수정

* refactor: 소요시간 VO 이름 수정, Odsay api response 객체 이름 수정

* refactor: URI 생성 시 StringBuilder 적용

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: 스낵바 위치 변경 및 showSnackBar 형식 통일 (#116)

* feat: 로그 목록 조회 (#87)

* chore: dto 디렉토리 변경

request > response

* feat: NotificationRepository 구현

* feat: dto 변환로직 구현

* feat: notificationService 구현

* style: 컨벤션 준수

* docs: test용 yml파일 추가

* refactor: notification 생성자 추가

* test: 로그 목록 반환 테스트 작성

* refactor: domain to dto 계층 이동

* refactor: method 이름 수정

* test: 로그 목록 조회 통합 테스트 추가

* style: new-line 추가

* chore: 로그 목록 반환 메서드 이동

NotificationController > MeetingController

* chore: 메서드 명 일치화

findAllMeetingLogsById > findAllMeetingLogs

* chore: domain to dto 메서드명 변경

toResponse > from

* refactor: auditing config 분리

* chore: dto 명 변경

NotificationSaveResponse > NotiLogFindResponse
NotiLogFindResponse > NotiLogFindResponses

* chore: 테스트 디렉토리 이동

* style: 불필요한 import문 제거

* chore: 디렉토리 변경

* Revert "chore: 디렉토리 변경"

This reverts commit c1b9f595357b999fe4aac325d460246ab3e8cb91.

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* feat: CI/CD 스크립트 분리 (#126)

* chore: ci/cd script 분리

* chore: cd 스크립트 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 개설 기능 추가 (#121)

* style: 한 줄에 하나의 점만 찍는다. 컨벤션 적용

* refactor: 변경된 클래스명으로 getter 네이밍 수정

* chore: 초대코드생성기 util 패키지로 이동

* feat: 모임 개설 API 기능 추가

* feat: 회원 추가 API 기능 추가

* refactor: 변경된 firebase 엑세스 키 파일 위치로 경로 수정

* feat: DB 테이블 삭제 클래스 추가

* test: 컨트롤러 테스트 추가

* refactor: 서브 모듈 패키지 변경 사항 추가

* refactor: 초대코드 디코딩하여 모임방 조회 적용

* refactor: entityManger 의존성 주입 추가

* fix: 회원 생성, 모임 참여 API 오류 수정 (#127)

* fix: deviceToken unique, notnull 속성 적용

* fix: deviceToken 공백 검증 로직 적용

* style: import 재정렬

* feat: deviceToken 문자열 앞뒤 공백 제거 로직 추가

* refactor: findDeviceToken 쿼리 성능 개선

* feat: 회원 생성시 토큰 중복 검사 추가

* feat: mate 테이블의 memberId, meetingId unique 설정

* feat: 모임 참여시 중복 검증 로직 추가

* refactor: 모임 개설시 mate에도 회원 정보 저장

* refactor: DeviceToken NotNull 제약 조건 추가

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 모임 내 닉네임 중복 검증 (#119)

* feat: 초대코드 검증 API 추가 (#123)

* feat: 초대코드 검증 API 추가

* feat: 404를 반환하는 커스텀 예외 추가

* test: 404 오류를 검증하는 테스트로 변경

* feat: 모임 개설 서버 연결 (#131)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* feat: 특정 회원이 참여한 모임 목록 조회 API 구현 (#129)

* feat: 멤버가 참여한 모임 리스트 반환 쿼리 구현

* feat: 멤버가 참여한 모임 리스트 반환 기능 구현

* feat: token fixture 추가

* style: static import 제거

* test: 멤버 참여 모임 목록 조회 통합 테스트 추가

* test: NotificationRepositoryTest directory 이동

* test: 간섭 발생 테스트 disabled 처리

* fix: test 오류 개선

* fix: import 오류 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* feat: 다음 버튼 비활성화 시 뷰페이저 스와이프 막는 기능 구현 (#122)

* refactor: LivaData set value 방식 변경

* feat: 모임 개설 시 뷰페이저 스와이프 막는 기능 구현

* feat: 뷰페이저 화면 이동 시 유효성 검증 기능 구현

* style: ktLint 적용

* fix: 모임 시간 유효하지 않아도 다음 페이지로 이동하는 버그 수정

* chore: nextPage -> moveOnNextPage 함수명 변경

* feat: 모임 개설 시 개설 완료 화면으로 이동하는 기능 구현

* feat: Notification 구현 (#128)

* feat: Notification 메시지 바로 출력

* chore: 의존성 추가

* fix: 경로 변경에 의한 import 변경

* feat: 알림 타입에 따른 알림 메시지 변경

* feat: fcm을 위한 string 작성

* feat: 알림 로그 화면에 bottom dialog 적용 (#130)

* chore: domain 패키지 정리

* chore: 리스너 이름 변경

* feat: meeting domain model에 초대코드 추가

* feat: NotificationLogActivity에 bottom sheet 기능 병합

* refactor: FakeRepo에서 DefaultRepo로 변경

* design: elevation 수정

* fix: app 네임스페이스 추가

* fix: manifest 수정

* refactor: FCM 전송 데이터 안드로이드 요청사항 반영 (#136)

* fix: 실패하는 테스트 수 (#137)

* fix: 초대 코드 입력 성공 시 참여 화면으로 이동하도록 수정 (#133)

* feat: 모임 개설 api 연결 (#139)

* feat: 모임 개설 service, request, response 구현

* feat: MeetingRepository에 postMeeting 메서드 추가

* feat: meeting response 전달 및 초대 코드 저장 구현

* chore: okhttp logging 의존성 추가

* chore: Http Logging 추가

* chore: 오타 수정

* feat: MeetingService postMeeting 추가

* chore: Timber 메시지 수정

* chore: 키에 맞는 인텐트로 변경

* feat: 모임 개설 api 연결

* feat: 커스텀 예외 생성 및 적용 (#140)

* feat: 커스텀 예외 생성 및 적용

* fix: fcmPushSender MockBean 추가

* fix: 테스트 실패 원인 파악 및 성공을 위해 `@Disabled` 처리

- NotificationService 내에서 RouteClient 접근해서 문제 발생

* feat: 모임 참여 서버 연결 (#143)

* feat: 서버 참여 api 연결

* style: ktlint 수정

* chore: 메서드 분리 및 메서드 한줄로 변경

* feat: 참여중인 모임 목록 조회 (#142)

* feat: 참여한 모임이 있을 경우 첫 번째 모임에 참여, 아닐 경우 인트로 화면으로 이동하는 기능 구형

* feat: 참여한 모임 중 첫 번째 모임의 로그를 띄워주는 기능 구현

* refactor: 리뷰 반영

* fix: 자잘한 ux 버그 다수 수정 (#145)

* fix: import 오류 수정

* fix: NumberPicker 디폴트 값이 현재 시간으로 설정되지 않는 버그 수정

* fix: 주소 EditText 한줄만 입력할 수 있도록 수정

* fix: 유효한 날짜 선택 시에도 유효하지 않다는 스낵바 뜨는 버그 수정

* fix: 닉네임 입력 화면으로 이동 시 화면 깜빡임 현상 수정

* fix: back press 시 이전 fragment로 이동하도록 수정

* style: ktLint 적용

* design: 바텀 시트 stroke 제거 및 elevation 추가

* feat: EC2 서버의 H2 콘솔 접근 설정 및 누락된 모임장 알림 로직 추가 (#146)

* chore: EC2 서버의 H2 콘솔 접근을 위한 설정 추가

* fix: 모임 참여 API에서 누락된 알림 로직 추가

* fix: ODsay 사용하는 테스트 코드 Disabled 처리

* fix: ODsay 사용하는 MeetingControllerTest 코드 Disabled 처리

---------

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

* fix: FCM 토픽 Malformed topic name 에러 해결 (#149)

* fix: FCM 토픽 Malformed topic name 에러 해결 (#151)

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: FCM 토픽 Malformed topic name 에러 해결

* fix: 의도하지 않은 값이 토픽에 들어간 코드 수정 (#153)

* fix: 로그 화면 버그 해결 (#157)

* fix: 로그 화면 데이터 mapping 버그 수정

* design: 로그 화면 그림자 drawable 수정

* fix: LocalDateTime mapping 방식 수정

* design: 로그 화면 툴바의 뒤로가기 버튼 제거

* fix: fcm 토큰 없는 경우 meetings를 불러오지 않도록 수정

* style: ktLint 적용

* chore: Meetings -> MeetingsResponse 클래스명 변경

* fix: LocalDateTime mapping 오류 해결

* fix: 클립보드 복사 시 스낵바 제거

* fix: LocalDateTime mapping 오류 해결

* fix: 로그 화면으로 이동 시 깜빡이는 현상 해결

* refactor: 리뷰 반영

* fix: CalendarView -> DatePicker로 변경하여 날짜 선택 불가 버그 수정 (#155)

* �feat: 로그 목록 조회 시 과거순 정렬 (#144)

* refactor: 아규먼트 리졸버 어노테이션 적용

* refactor: 데이터베이스에 데이터 추가 순으로 알림 로그 정렬

* test: 모임 반환 테스트 오류 해결

* refactor: 현재 이전의 로그 목록을 조회하도록 수정

* refactor: NotiLog 바인딩 수정

createdAt > sendAt

* refactor: 불필요한 레코드 삭제

* refactor: LocalTime 밀리 세컨즈 제거

* test: 로그 필터링 적용 테스트 작성

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 알림 전송 예약 시점이 아닌 전송 시점에 상태 변경되도록 수정 (#162)

- FcmSendRequest 매개변수 변경
- updateDone -> updateStatusToDone 메서드명 변경
- 시연을 위해 알림 전송 시간 임의 지정
- FcmSendRequest 매개변수 변경에 따른 테스트 코드 수정

* feat: 초대코드 존재유무 검증로직 구현 (#164)

* feat: 초대코드 존재유무 검증로직 구현

* refactor: id 기반 모임 조회로 로직 변경

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 (#165)

* chore: RequestDto 패키지 위치 이동

* style: 컨트롤러 컨벤션 개행 적용

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 기능 추가

* refactor: 알림 전송 코드 개선

* refactor: 본인의 입장 푸쉬 알림은 안뜨도록 fcm 토픽 구독 순서 변경

* fix: 스플래쉬 딜레이 수정 (#163)

* fix: 스플래쉬 delay 수정

* fix: LocalDateTime parse 형식 수정

* style: ktLint 적용

* refactor: 패키지 구조 변경 (#174)

* refactor: data model -> data entity로 패키지명 변경

* refactor: entity -> remote 패키지 아래로 이동

* refactor: 각 entity 안에 request, response 패키지 만들기 및 remote 패키지 아래에 Ody api를 연결하는 패키지, FCM 패키지 만들기

* refactor: domain - repository 아래 이슈 별로 패키지 분리

* refactor: presentation common 만들기

* refactor: startingpoint -> departure 패키지 명 변경

* refactor: NotificationLogListAdapter -> NotificationLogsAdapter 클래스명 변경

* refactor: notificationlog -> meetingRoom 패키지명 변경

* refactor: startingpoint -> departure xml 명 변경

* refactor: domain으로 AddressValidator 이동

* refactor: presentation - listener 패키지 만들기

* refactor: presentation ui 모델은 presentation model 패키지 안에 넣기

* refactor: data - fake -> 테스트 패키지 쪽으로 위치 변경

* refactor: meeting 패키지 만들고 meeting과 관련된 파일들 이동

* refactor: join 패키지 만들고 join과 관련된 파일들 이동

* refactor: DepartureFragment -> JoinDepartureFragment로 프로그래먼트 명 변경

* style: ktlint

* refactor: meeting, join -> meetingcreation, meetingjoin으로 패키지명 변경

* refactor: meetingcreation, meetingjoin, meetingroom -> creation, join, room 으로 패키지명 변경

* refactor: data - remote - thirdparty, core로 패키지 분리

* style: ktlint

* style: ktlint

* refactor: manifest tools 속성 제거 (#184)

* refactor: manifest tools 속성 제거

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* test: RouteClient Mock 테스트 (#177)

* test: 길찾기 api 성공 restClient MockTest

* test: 도착지와 출발지가 700m 이내인 테스트 추가

* fix: 500 에러 시에만 OdyServerErrorException 발생하도록 수정

* test: 잘못된 api-key 요청 시 예외 발생 테스트 추가

* test: 클라이언트 예외 발생 테스트 추가

* test: static 키워드 삭제

* refactor: RouteClient 인터페이스화

* test: service layer FakeRouteClient 적용

* test: controller layer FakeRouteClient 적용, @Disabled 제거

* test: RouteClient 관련 테스트 파일 디렉토리 이동

* refactor: URI 생성 로직 가독성 개선

* test: 불필요한 테스트 제거

* feat: NPE 체크 로직 추가

* test: 불필요한 RouteClient 설정 제거

* refactor: Event -> SingleLiveData로 개선 (#185)

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* chore: open 키워드 제거

* refactor: 모임 날짜를 LocalDate로 관리 (#186)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장 (#193)

* refactor: 2차 스프린트 구현 사항 리팩터링 (#189)

* chore: 함수 이름 통일

initializeObservingData -> initializeObserve

* refactor: SingleLiveData의 타입을 Boolean에서 Unit으로 변경

* refactor: 약속 날짜 유효성 검증을 ViewModel로 분리

* chore: 함수, 프로퍼티 순서 변경

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: Splash 화면 이동 판단 로직을 뷰모델로 이동

* style: ktLint 적용

* refactor: 약속 시간이 초기화되었는지 판단하는 로직을 변수로 분리

* chore: 함수명 변경 empty -> clear

* chore: updateMeetingDate -> checkMeetingDateValidity 함수명 변경

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: aprilgom <[email protected]>

* refactor: RouteClient 응답 분기를 객체로 캡슐화 (#188)

* refactor: RouteClient 응답 분기를 객체로 캡슐화

* chore: 패키지 디렉토리 변경

domain > dto

* refactor : 응답 매핑 로직을 mapper로 이전

* refactor : 불필요한 static 객체 삭제

* refactor : 500에러 처리 로직 추가

* refactor : NPE 예외 처리

* refactor : 롬복으로 private 생성자 구현

* test: OdsayResponseMapperTest 작성

* style: message 개행 변경

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

* refactor: OdsayRouteClient에 mapper 로직 반영

* fix: FutureOrPresentDateTimeValidatorTest 오류 개선

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: H <[email protected]>

* design: 폰트, 컬러 xml 지정 (#219)

* design: font 스타일 추가

* design: colors 네이밍 변경

* design: 컬러 추가

* refactor: 2차 스프린트 리팩터링 (#196)

* refactor: FCMService와 NotificationHelper 분리

* refactor: 알림 권한이 이미 있을 시 early return, viewmodel 이름 수정

* refactor: NotificationLog Result 반환하도록 수정

* refactor: 이벤트 리스너 네이밍 수정

* refactor: MeetingRoomViewModel 초기화 init 블럭 내 실행, Timber 로그 내 toString 제거

* style: ktLintFormat

* fix: NotificationLog repo 수정에 따른 FakeRepository 수정

* style: ktLintFormat

* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록…
mzeong added a commit that referenced this pull request Oct 22, 2024
* fix: 알림 전송 예약 시점이 아닌 전송 시점에 상태 변경되도록 수정 (#162)

- FcmSendRequest 매개변수 변경
- updateDone -> updateStatusToDone 메서드명 변경
- 시연을 위해 알림 전송 시간 임의 지정
- FcmSendRequest 매개변수 변경에 따른 테스트 코드 수정

* feat: 초대코드 존재유무 검증로직 구현 (#164)

* feat: 초대코드 존재유무 검증로직 구현

* refactor: id 기반 모임 조회로 로직 변경

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 (#165)

* chore: RequestDto 패키지 위치 이동

* style: 컨트롤러 컨벤션 개행 적용

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 기능 추가

* refactor: 알림 전송 코드 개선

* refactor: 본인의 입장 푸쉬 알림은 안뜨도록 fcm 토픽 구독 순서 변경

* fix: 스플래쉬 딜레이 수정 (#163)

* fix: 스플래쉬 delay 수정

* fix: LocalDateTime parse 형식 수정

* style: ktLint 적용

* refactor: 패키지 구조 변경 (#174)

* refactor: data model -> data entity로 패키지명 변경

* refactor: entity -> remote 패키지 아래로 이동

* refactor: 각 entity 안에 request, response 패키지 만들기 및 remote 패키지 아래에 Ody api를 연결하는 패키지, FCM 패키지 만들기

* refactor: domain - repository 아래 이슈 별로 패키지 분리

* refactor: presentation common 만들기

* refactor: startingpoint -> departure 패키지 명 변경

* refactor: NotificationLogListAdapter -> NotificationLogsAdapter 클래스명 변경

* refactor: notificationlog -> meetingRoom 패키지명 변경

* refactor: startingpoint -> departure xml 명 변경

* refactor: domain으로 AddressValidator 이동

* refactor: presentation - listener 패키지 만들기

* refactor: presentation ui 모델은 presentation model 패키지 안에 넣기

* refactor: data - fake -> 테스트 패키지 쪽으로 위치 변경

* refactor: meeting 패키지 만들고 meeting과 관련된 파일들 이동

* refactor: join 패키지 만들고 join과 관련된 파일들 이동

* refactor: DepartureFragment -> JoinDepartureFragment로 프로그래먼트 명 변경

* style: ktlint

* refactor: meeting, join -> meetingcreation, meetingjoin으로 패키지명 변경

* refactor: meetingcreation, meetingjoin, meetingroom -> creation, join, room 으로 패키지명 변경

* refactor: data - remote - thirdparty, core로 패키지 분리

* style: ktlint

* style: ktlint

* refactor: manifest tools 속성 제거 (#184)

* refactor: manifest tools 속성 제거

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* test: RouteClient Mock 테스트 (#177)

* test: 길찾기 api 성공 restClient MockTest

* test: 도착지와 출발지가 700m 이내인 테스트 추가

* fix: 500 에러 시에만 OdyServerErrorException 발생하도록 수정

* test: 잘못된 api-key 요청 시 예외 발생 테스트 추가

* test: 클라이언트 예외 발생 테스트 추가

* test: static 키워드 삭제

* refactor: RouteClient 인터페이스화

* test: service layer FakeRouteClient 적용

* test: controller layer FakeRouteClient 적용, @Disabled 제거

* test: RouteClient 관련 테스트 파일 디렉토리 이동

* refactor: URI 생성 로직 가독성 개선

* test: 불필요한 테스트 제거

* feat: NPE 체크 로직 추가

* test: 불필요한 RouteClient 설정 제거

* refactor: Event -> SingleLiveData로 개선 (#185)

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* chore: open 키워드 제거

* refactor: 모임 날짜를 LocalDate로 관리 (#186)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장 (#193)

* refactor: 2차 스프린트 구현 사항 리팩터링 (#189)

* chore: 함수 이름 통일

initializeObservingData -> initializeObserve

* refactor: SingleLiveData의 타입을 Boolean에서 Unit으로 변경

* refactor: 약속 날짜 유효성 검증을 ViewModel로 분리

* chore: 함수, 프로퍼티 순서 변경

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: Splash 화면 이동 판단 로직을 뷰모델로 이동

* style: ktLint 적용

* refactor: 약속 시간이 초기화되었는지 판단하는 로직을 변수로 분리

* chore: 함수명 변경 empty -> clear

* chore: updateMeetingDate -> checkMeetingDateValidity 함수명 변경

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: aprilgom <[email protected]>

* refactor: RouteClient 응답 분기를 객체로 캡슐화 (#188)

* refactor: RouteClient 응답 분기를 객체로 캡슐화

* chore: 패키지 디렉토리 변경

domain > dto

* refactor : 응답 매핑 로직을 mapper로 이전

* refactor : 불필요한 static 객체 삭제

* refactor : 500에러 처리 로직 추가

* refactor : NPE 예외 처리

* refactor : 롬복으로 private 생성자 구현

* test: OdsayResponseMapperTest 작성

* style: message 개행 변경

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

* refactor: OdsayRouteClient에 mapper 로직 반영

* fix: FutureOrPresentDateTimeValidatorTest 오류 개선

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: H <[email protected]>

* design: 폰트, 컬러 xml 지정 (#219)

* design: font 스타일 추가

* design: colors 네이밍 변경

* design: 컬러 추가

* refactor: 2차 스프린트 리팩터링 (#196)

* refactor: FCMService와 NotificationHelper 분리

* refactor: 알림 권한이 이미 있을 시 early return, viewmodel 이름 수정

* refactor: NotificationLog Result 반환하도록 수정

* refactor: 이벤트 리스너 네이밍 수정

* refactor: MeetingRoomViewModel 초기화 init 블럭 내 실행, Timber 로그 내 toString 제거

* style: ktLintFormat

* fix: NotificationLog repo 수정에 따른 FakeRepository 수정

* style: ktLintFormat

* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

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

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

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

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

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

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-…
mzeong added a commit that referenced this pull request Oct 22, 2024
* fix: 의도하지 않은 값이 토픽에 들어간 코드 수정 (#153)

* fix: 로그 화면 버그 해결 (#157)

* fix: 로그 화면 데이터 mapping 버그 수정

* design: 로그 화면 그림자 drawable 수정

* fix: LocalDateTime mapping 방식 수정

* design: 로그 화면 툴바의 뒤로가기 버튼 제거

* fix: fcm 토큰 없는 경우 meetings를 불러오지 않도록 수정

* style: ktLint 적용

* chore: Meetings -> MeetingsResponse 클래스명 변경

* fix: LocalDateTime mapping 오류 해결

* fix: 클립보드 복사 시 스낵바 제거

* fix: LocalDateTime mapping 오류 해결

* fix: 로그 화면으로 이동 시 깜빡이는 현상 해결

* refactor: 리뷰 반영

* fix: CalendarView -> DatePicker로 변경하여 날짜 선택 불가 버그 수정 (#155)

* �feat: 로그 목록 조회 시 과거순 정렬 (#144)

* refactor: 아규먼트 리졸버 어노테이션 적용

* refactor: 데이터베이스에 데이터 추가 순으로 알림 로그 정렬

* test: 모임 반환 테스트 오류 해결

* refactor: 현재 이전의 로그 목록을 조회하도록 수정

* refactor: NotiLog 바인딩 수정

createdAt > sendAt

* refactor: 불필요한 레코드 삭제

* refactor: LocalTime 밀리 세컨즈 제거

* test: 로그 필터링 적용 테스트 작성

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 알림 전송 예약 시점이 아닌 전송 시점에 상태 변경되도록 수정 (#162)

- FcmSendRequest 매개변수 변경
- updateDone -> updateStatusToDone 메서드명 변경
- 시연을 위해 알림 전송 시간 임의 지정
- FcmSendRequest 매개변수 변경에 따른 테스트 코드 수정

* feat: 초대코드 존재유무 검증로직 구현 (#164)

* feat: 초대코드 존재유무 검증로직 구현

* refactor: id 기반 모임 조회로 로직 변경

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 (#165)

* chore: RequestDto 패키지 위치 이동

* style: 컨트롤러 컨벤션 개행 적용

* feat: 모임 입장 시 ENTRY 알림 저장, 전송 기능 추가

* refactor: 알림 전송 코드 개선

* refactor: 본인의 입장 푸쉬 알림은 안뜨도록 fcm 토픽 구독 순서 변경

* fix: 스플래쉬 딜레이 수정 (#163)

* fix: 스플래쉬 delay 수정

* fix: LocalDateTime parse 형식 수정

* style: ktLint 적용

* refactor: 패키지 구조 변경 (#174)

* refactor: data model -> data entity로 패키지명 변경

* refactor: entity -> remote 패키지 아래로 이동

* refactor: 각 entity 안에 request, response 패키지 만들기 및 remote 패키지 아래에 Ody api를 연결하는 패키지, FCM 패키지 만들기

* refactor: domain - repository 아래 이슈 별로 패키지 분리

* refactor: presentation common 만들기

* refactor: startingpoint -> departure 패키지 명 변경

* refactor: NotificationLogListAdapter -> NotificationLogsAdapter 클래스명 변경

* refactor: notificationlog -> meetingRoom 패키지명 변경

* refactor: startingpoint -> departure xml 명 변경

* refactor: domain으로 AddressValidator 이동

* refactor: presentation - listener 패키지 만들기

* refactor: presentation ui 모델은 presentation model 패키지 안에 넣기

* refactor: data - fake -> 테스트 패키지 쪽으로 위치 변경

* refactor: meeting 패키지 만들고 meeting과 관련된 파일들 이동

* refactor: join 패키지 만들고 join과 관련된 파일들 이동

* refactor: DepartureFragment -> JoinDepartureFragment로 프로그래먼트 명 변경

* style: ktlint

* refactor: meeting, join -> meetingcreation, meetingjoin으로 패키지명 변경

* refactor: meetingcreation, meetingjoin, meetingroom -> creation, join, room 으로 패키지명 변경

* refactor: data - remote - thirdparty, core로 패키지 분리

* style: ktlint

* style: ktlint

* refactor: manifest tools 속성 제거 (#184)

* refactor: manifest tools 속성 제거

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* test: RouteClient Mock 테스트 (#177)

* test: 길찾기 api 성공 restClient MockTest

* test: 도착지와 출발지가 700m 이내인 테스트 추가

* fix: 500 에러 시에만 OdyServerErrorException 발생하도록 수정

* test: 잘못된 api-key 요청 시 예외 발생 테스트 추가

* test: 클라이언트 예외 발생 테스트 추가

* test: static 키워드 삭제

* refactor: RouteClient 인터페이스화

* test: service layer FakeRouteClient 적용

* test: controller layer FakeRouteClient 적용, @Disabled 제거

* test: RouteClient 관련 테스트 파일 디렉토리 이동

* refactor: URI 생성 로직 가독성 개선

* test: 불필요한 테스트 제거

* feat: NPE 체크 로직 추가

* test: 불필요한 RouteClient 설정 제거

* refactor: Event -> SingleLiveData로 개선 (#185)

* feat: SingleLiveData 추가

* refactor: Event -> SingleLiveData 변경

* style: ktLint 적용

* chore: open 키워드 제거

* refactor: 모임 날짜를 LocalDate로 관리 (#186)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장 (#193)

* refactor: 2차 스프린트 구현 사항 리팩터링 (#189)

* chore: 함수 이름 통일

initializeObservingData -> initializeObserve

* refactor: SingleLiveData의 타입을 Boolean에서 Unit으로 변경

* refactor: 약속 날짜 유효성 검증을 ViewModel로 분리

* chore: 함수, 프로퍼티 순서 변경

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동 (#182)

* refactor: 매핑 메서드 Mapper.kt 에서 각 Model의 메서드로 이동

* refactor: 매핑 메서드들 각 Mapper로 이동

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리  (#166)

* feat: 알림 생성 시점이 전송 시점보다 늦은 경우 예외 처리

* refactor: 생성자 접근제어자 수정, 주석 제거

* test: SpyBean 제거

* refactor: DepartureTime이 시간 비교하도록 수정

* test: assertThat 구문에서 when 절 분리

* test: findAny()로 변경

* test: 저장되었는지 검증하는 로직 수정

* test: 검증부 filter 조건 변경

* refactor: application에서 repository, datastore, retrofit service 인스턴스 관리 (#183)

* refactor: 싱글턴 객체들 Application으로 이동

* refactor: 타입 이름 명시

* refactor: datastore 호출 부분을 repository 계층을 거치도록 변경

* refactor: ViewModelFactory 인스턴스를 각 액티비티에서 생성하도록 변경

* refactor: fcm 토큰 새로운 토큰 발급 시 repository에 저장

* chore: merge 작업

* refactor: Splash 화면 이동 판단 로직을 뷰모델로 이동

* style: ktLint 적용

* refactor: 약속 시간이 초기화되었는지 판단하는 로직을 변수로 분리

* chore: 함수명 변경 empty -> clear

* chore: updateMeetingDate -> checkMeetingDateValidity 함수명 변경

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: aprilgom <[email protected]>

* refactor: RouteClient 응답 분기를 객체로 캡슐화 (#188)

* refactor: RouteClient 응답 분기를 객체로 캡슐화

* chore: 패키지 디렉토리 변경

domain > dto

* refactor : 응답 매핑 로직을 mapper로 이전

* refactor : 불필요한 static 객체 삭제

* refactor : 500에러 처리 로직 추가

* refactor : NPE 예외 처리

* refactor : 롬복으로 private 생성자 구현

* test: OdsayResponseMapperTest 작성

* style: message 개행 변경

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

* refactor: OdsayRouteClient에 mapper 로직 반영

* fix: FutureOrPresentDateTimeValidatorTest 오류 개선

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: H <[email protected]>

* design: 폰트, 컬러 xml 지정 (#219)

* design: font 스타일 추가

* design: colors 네이밍 변경

* design: 컬러 추가

* refactor: 2차 스프린트 리팩터링 (#196)

* refactor: FCMService와 NotificationHelper 분리

* refactor: 알림 권한이 이미 있을 시 early return, viewmodel 이름 수정

* refactor: NotificationLog Result 반환하도록 수정

* refactor: 이벤트 리스너 네이밍 수정

* refactor: MeetingRoomViewModel 초기화 init 블럭 내 실행, Timber 로그 내 toString 제거

* style: ktLintFormat

* fix: NotificationLog repo 수정에 따른 FakeRepository 수정

* style: ktLintFormat

* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

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

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

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

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

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

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로…
eun-byeol added a commit that referenced this pull request Oct 23, 2024
* refactor: 2차 스프린트 구현 사항 리팩터링 (#218)

* refactor: JoinCompleteActivity에서 방 만들고 방 참여하던 로직을 MeetingCreationViewModel로 이동

* refactor: clickListener들 메서드 앞에 on prefix 추가

* refactor: Repository 반환값 MeetingResponse들 -> Meeing로 변경

* refactor: JoinInfoRequest -> MeetingJoinInfo로 변경

* style: ktlint

* refactor: MeetingRequest -> MeetingCreationInfo로 변경

* refactor: MeetingCreationNavigateAction 구현

* refactor: MeetingJoinNavigateAction 구현

* style: ktlint

* style: ktlint

* style: ktlint

* fix: FakeMeetingRepository 오버라이드 반환값 변경

* style: ktlint

* refactor: makeMeeting -> createMeeting, createMeetingResponse -> makeMeetingResponse 네이밍 변경

* refactor: name, date 널 체크 추가

* refactor: 좌표 압축 메서드 추가 및 data 계층으로 이동

* refactor: join nickname 널 처리 추가

* style: ktlint

* fix: 모임 참여 안되던 버그 수정

* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

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

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

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

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

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

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test…
eun-byeol added a commit that referenced this pull request Oct 23, 2024
* refactor: 서비스가 DTO 반환하도록 수정 (#181)

* refactor: 서비스가 DTO 반환하도록 수정

* refactor: 하나의 스트림으로 dto 생성하도록 수정

Co-authored-by: eun-byeol <[email protected]>

* fix: 하나의 stream으로 dto 생성하도록 수정을 위한 import 추가

* refactor: FcmPushSender 내 Notification 알림 조회 로직 제거

- getNickname 반환 타입 수정
- `@Async` 제거에 따른 FcmEventScheduler 파일 삭제
- FcmSendRequest 필드 수정

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

* fix: FcmSendRequest 변경에 따른 테스트 코드 수정

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

* refactor: Nickname 객체 필드명 value로 수

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

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: hyeon0208 <[email protected]>

* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

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

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

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

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

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

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존…
coli-geonwoo added a commit that referenced this pull request Oct 23, 2024
* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

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

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

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

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

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

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 …
kimhm0728 added a commit that referenced this pull request Oct 23, 2024
* refactor: BaseActivity, BaseFragment (#220)

* feat: BindingActivity, BindingFragment 구현

* style: ktlint

* refactor: showSnackbar 메서드 추가 및 binding by lazy 사용, application private 제거

* refactor: showSnackbar 메서드 message 타입 변경 및 application 추가

* refactor: BindingActivity, BindingFragment 적용

* style: ktlint

* refactor: BindingActivity에 initializeBinding 추상 메서드 추가

* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

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

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

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

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

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

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp …
kimhm0728 added a commit that referenced this pull request Oct 23, 2024
* docs: 서비스 소개글 작성 (#242)

* docs: 약속 참여 API 문서화 (#246)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* docs: 약속 단건 조회 API 문서화 (#245)

* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

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

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

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

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

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

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 업그레이드

1.6.10-1.0.4 -> 1.9.0-1.0.13

* chore: MeetingInfoActivity exported true로 변경

* feat: 모임 참여 완료 화면 구현 (#70)

* chore: 박수 이미지들 추가

* feat: 모임 개설 완료 화면 구현

* chore: DestinationFragment -> MeetingDestinationFragment 변경

* feat: 모임 참여 완료 화면 (#72)

* chore: 달력 이미지들 추가

* feat: 모임 참여 완료 화면 구현

* chore: 화면 회전 가로로 고정 및 exported false로 변경

* chore: tools:text에 해당하…
kimhm0728 added a commit that referenced this pull request Oct 26, 2024
* docs: 약속 참여자 상태 목록 조회 API 문서화� (#243)

* refactor: 서브 모듈 설정

* docs: 약속 참여자 eta 상태 목록 조회 API 문서화

* refactor: 도착 조건이 빠른 상태 순으로 상수 정렬

Co-authored-by: coli-geonwoo <[email protected]>

* docs: API 문서 상으로 도착지까지 남은 소요시간이 "분"임을 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 400에러 시 오류에 대한 이유 자세히 명시

Co-authored-by: coli-geonwoo <[email protected]>

* docs: 참여자 위치 상태 조회 요청 dto 위경도 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: DTO명 MateEtaxx로 수정

* docs: 400에러 설명 상세화

* fix: MateResponse 파일 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* docs: 약속 개설 API 문서화 (#249)

* feat: 약속 개설 v1 api dto 구현

* docs: 약속 개설 v1 API 문서화

* style: 추가 개행 삭제

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

* docs: deprecated 옵션 추가

* refactor: dto renaming

MeetingSaveV1Request > MeetingSaveRequestV1
MeetingSaveV1Response > MeetingSaveResponseV1

* docs : 모임 > 약속 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor : 약속 개설 API 구현 (#250)

* feat: controller 약속 개설 v1 메서드 구현

* feat: 약속 개설 v1 메서드 구현

* style: 컨벤션 준수

* refactor : dto 이름 변경 반영

* refactor : 모임 > 약속 용어 통일

* style: 개행 제거

* test: statusCode 숫자로 표기

* test: deprecated 옵션 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* design: 로그 화면 뷰 디자인 (#248)

* chore: 오디 아이콘 추가

* design: 보라색 둥근 사각형 drawable 추가

* design: 로그 화면 오디? 버튼 디자인

* refactor: selector에 색상 제거

* design: 오디? 버튼 padding 10dp로 변경

* refactor: meeting_room_ody -> meeting_room_dashboard_button 네이밍 변경

* chore: 불필요한 파일 제거

* chore: rectangle_radius_0.xml 파일 추가

* design: 복사하기 버튼에 색상 추가

* chore: selector_button_color.xml 추가 및 Button -> AppCompatButton으로 변경

* design: 초대 코드 확인 버튼에 tint 추가

* design: 유저 현황 화면 디자인 (#252)

* design: 유저 위치 현황 화면 item 디자인 구현

* design: xml 파일명 수정

* feat: 로그 툴바에 뒤로가기 버튼 추가

* design: 유저 현황 화면 구현

* chore: string resource 이름 변경

* fix: 뱃지 중앙 정렬되지 않는 현상 수정

* refactor: layoutManager xml로 이동

* chore: meeting room 패키지 구조 변경

* feat: manifest에 현황 화면 추가

* chore: eta -> etadashboard 패키지명 변경

* style: ktLint 적용

* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

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

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

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

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

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

* chore: cd docker 포트포워딩 변경

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

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

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

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

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

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

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

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

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

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

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

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

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

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 업그레이드

1.6.10-1.0.4 -> 1.9.0-1.0.13

* chore: MeetingInfoActivity exported true로 변경

* feat: 모임 참여 완료 화면 구현 (#70)

* chore: 박수 이미지들 추가

* feat: 모임 개설 완료 화면 구현

* chore: DestinationFragment -> MeetingDestinationFragment 변경

* feat: 모임 참여 완료 화면 (#72)

* chore: 달력 이미지들 추가

* feat: 모임 참여 완료 화면 구현

* chore: 화면 회전 가로로 고정 및 exported false로 변경

* chore: tools:text에 해당하는 값 하드 코딩으로 변경

* feat: 메인 화면 구현 (#73)

* design: 인트로 화면 xml 작성

* design: activity_intro.xml 작성

* feat: Event 작성

* feat: IntroNavigateAction 작성

* feat: Intro 버튼 리스너 인터페이스 작성

* feat: 각 버튼 클릭에 따른 Navigation Event 발생 구현

* feat: IntroActivity에 ViewModel 추가

* …
kimhm0728 added a commit that referenced this pull request Oct 30, 2024
* refactor: 모임 개설, 참여 api 분리하기 (#255)

* refactor: 약속 개설 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여 v1 api에 맞게 요청/응답 데이터 수정

* refactor: 약속 참여/개설 뷰모델 분리

* fix: MeetingResponse mapping 버그 수정

* fix: 약속 참여로 이동하지 않는 버그 수정

* fix: 모임 참여 시 유효성 검증 제대로 되지 않는 버그 수정

* style: ktLint 적용

* chore: startingPoint -> departure 프로퍼티명 변경

* chore: 쓰이지 않는 indicator 제거

* design: 홈 화면 리스트 디자인 (#260)

* design: 홈 화면 리스트 디자인

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 유저 현황 화면 api v1 연결 (#261)

* feat: 유저 위치 현황 api dto 구현

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

* feat: 유저 위치 현황 Repository 구현

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

* style: ktLint 적용

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

---------

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

* feat: 약속 참여 V1 API 구현 (#247)

* docs: 404에러 문서화를 위한 커스텀 어노테이션 추가

* docs: Swagger 회원 참여 API 문서화

* refactor: AliasFor 어노테이션으로 ApiResponse 속성값 매핑

* refactor: api url 버전명 추가

* feat: 기존의 /mates 요청 메서드 추가

* feat: 약속 참여 v1 API 구현

* style: 코드 컨벤션 적용

* chore: mate 패키지로 이동

* feat: 참여자 저장 응답 DTO 추가 및 지원하지 않는 메서드 제거

* docs: 리스트 형식 데이터를 @ArraySchema 사용해 표시

* refactor: 지원하지 않는 meeting 메서드 제거

* design: 홈 화면 리스트 없는 경우 디자인 (#262)

* design: 모임이 없을 때 보이는 화면

* chore: 불필요한 코드 삭제

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* design: 홈 화면 플로팅 버튼 디자인 (#263)

* chore: 하얀색 취소, 더하기 아이콘 추가

* design: 홈 화면 플로팅 버튼 디자인

* fix: FakeMeetingRepository postMeeting 반환 값 수정

* style: ktlint

* fix: FakeMeetingRepository patchMatesEta 추가

* feat: 유저 현황 화면 리스트 어댑터 구현 (#265)

* feat: Eta item에 대한 uiModel 구현

* feat: adapter 구현 및 데이터 바인딩 연결

* style: ktLint 적용

* refactor: 함수 분리

* feat: 위치 권한 팝업 띄우는 로직 구현

* refactor: missing tooltip 리스너를 바인딩 어댑터로 분리

* style: ktLint 적용

* refactor: Pair 대신 Point 객체 사용

* refactor: magic number 제거 및 DurationMinuteType 구현

* style: ktLint 적용

* feat: 내 약속 목록 조회 API 문서화 및 구현 (#251)

* feat: 내 약속 목록 조회 API 문서화

- Swagger 문서화 코드 추가 및 이전 버전 API deprecated 설정
- 컨트롤러 단에 임시 반환을 위한 더미 데이터 추가
- 응답을 위한 dto 생성 및 문서를 위한 예시와 설명 추가

* feat: 내 약속 목록 조회 API

* fix: fixture 객체 사용에 따른 unique 제약 조건 위반 코드 제거

* fix: cherry-pick 시 누락된 코드 추가 및 fixture member 객체 미사용 코드로 수

* fix: meetingService, mateService 순환 참조 해결

* fix: fixture meeting 객체 사용에 따른 unique 제약조건 위반

* refactor: `saveAndSendNotifications` 호출하는 MeetingService 메서드명 수정

* refactor: `findByMeetingAndMember` 메서드 제거 및 해당 로직 meetingService 내에서 직접 수행

* fix: 모임 구독 시 실패

* refactor: 약속 인원 수, 메이트로 응답 생성 로직 메서드 분리

* fix: 시간 데이터 초 제거 후 반환하도록 수정 (#270)

* refactor: v1/mates 응답값 수정 (#268)

* refactor: 모임 참여 시 응답 데이터 수정

* refactor: 모임 참여 시 응답 데이터 수정

* feat: LocalTime의 ss 제거

* feat: 플로팅 버튼 화면 이동 구현 (#271)

* feat: 플로팅 버튼 눌러서 이동하는 로직 구현

* fix: 약속 참여 벼튼을 눌럿을 때 초대 코드 입력 화면으로 이동

* refactor: 함수 한줄로 변경

* feat: 홈 화면 리스트 어댑터 구현 (#272)

* feat: ListAdapter 구현

* feat: item fold 구현

* feat: 약속 시간 바인딩 어댑터

* feat: 쓰이지 않는 리스트 제거

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* feat: 폴링 방식 스케줄링 구현 (#274)

* config: WorkManager 의존성 추가

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

* feat: WorkManager 작업 예약할 Worker 구현

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

* feat: 작업 예약 하는 로직을 가진 Repository 추가

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

* feat: 약속 참여 시 31번 작업 예약하는 기능 구현

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

* feat: 유저 현황 화면에서 데이터 LiveData 받아오는 기능 구현

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

* style: ktLint 적용

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

* refactor: WorkRequest 생성하는 로직을 Worker로 이동

* refactor: 함수 분리 및 상수화

* feat: meetingId 전달하는 로직 구현

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

* fix: 코루틴 캔슬되는 오류 수정

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

---------

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

* refactor: 약속 단건 조회 API 구현 (#256)

* refactor: mates 필드 @ArraySchema로 수정

* refactor: ErrorCode404 어노테이션으로 수정

* feat: 날짜, 시간 JsonFormat 적용

* feat: 회원이 참여하고 있는 특정 약속의 참여자 리스트 조회

* test: 약속에 참여하고 있는 회원이 아니면 예외 발생

* feat: 약속과 참여자들 정보 조회

* test: 약속 조회 시, 약속이 존재하지 않으면 예외 발생

* refactor: meetingId primitive type으로 변경

* refactor: JsonFormat 불필요한 옵션 제거

* test: Fixture.MATE 제거

* fix: import 추가

* fix: 머지 과정에서 누락된 코드 추가

---------

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

* feat: 위치 권한 받아오는 기능 구현 (#276)

* config: play service gms 의존성 추가

* chore: 위치 권한 메니페스트에 추가

* feat: 위치 권한 요청 기능 구현

* style: ktlint

* refactor: 코드리뷰 반영

* fix: ImageView에 제약 걸기

* fix: 깃액셔 문제

* feat: 약속 목록 조회 api 연결 (#279)

* feat: meetings/me api 연결

* feat: 시작 화면 변경, FloatingButton 통합

* feat: 시작 화면 변경, FloatingButton 통합

* refactor: 리뷰 반영

* feat: 로그 화면으로 navigate

* fix: ciˆ

* refactor: 리뷰 반영

* feat: 단일 약속 api 연결 (#281)

* feat: 단일 약속 api 연결

* feat: 24시간 내 로그화면 이동 활성화/ 이외 비활성화

* fix: 안내 메시지 수정

* refactor: 리뷰 반영

* feat: gps 위경도 받아오는 기능 구현 (#282)

* feat: 위치 경도 불러오는 기능 구현

* chore: log 제거 및 compress 메서드 추가

* feat: repository에서 compress 하게 변경

* style: ktlint

* chore: 0..8 상수화

* refactor: 퍼미션 체크 함수화

* style: ktlint

* chore: 함수 간소화

* chore: repository 요청 함수 분리

* chore: 한 줄로 변경

* feat: 약속 참여자 상태 목록 조회 API 기능 구현 (#277)

* feat: 직선 거리 계산 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 조건별 참여자 상태 반환 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 참여자가 약속 참여시 최초로 Eta 저장 기능 추가

* refactor: 소요시간 출발시간 로직 분리

* feat: Eta, Mate 관련 DTO 추가

* refactor: 예상소요시간 필드 추가

* feat: 참여자 Eta 목록 반환기능 구현

* fix: Fixture 사용 개선으로 코드 오류 개선

* test: Eta Test 추가

* test: eta 테스트 추가

* refactor: service 로직 경량화

* refactor: 가독성 개선

* style: Fixture 변수 재할당

* feat: eta 목록 조회 컨트롤러 코드 추가

* fix: backend 패키지 하위 변경만 커밋 내역에 포

* refactor: 중복 Eta dto 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: mzeong <[email protected]>

* refactor: 유저 위치 현황 조회 시 자신의 닉네임 response로 받도록 수정 (#284)

* refactor: 서버 응답에 자기자신의 닉네임 추가

Co-authored-by: eun-byeol <[email protected]>

* fix: 직렬화, 역직렬화 오류 수정

* style: ktLint 적용

* style: ktLint 적용

* style: ktLint 적용

* fix: 빌드 오류 수정

* style: ktLint 적용

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: update 미반영 오류 문제 해결 (#287)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경 (#291)

* refactor: HomeActivity -> MeetingsActivity로 이름 변경

* refactor: 기타 home 제거

* style: ktLintFormatˆ

* fix: 유저 현황표 폴링 방식 수정 (#292)

* refactor: 폴링 간격 수정

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

* refactor: 가장 최신의 데이터를 observe하도록 수정

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

---------

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

* refactor: 데모데이 이슈 문제 해결  (#293)

* refactor: 현재 위치로 소요시간 계산하도록 수정

* refactor: 참여자의 현재 위도 경도 null 처리

* refactor: 도착 상태에 따른 소요시간 반환

* refactor: etaService를 MeetingController가 의존하도록 변경

* refactor: 곧도착 조건 로직 메서드로 분리

* feat: 현황 화면 툴바 리스너 등록 (#304)

* feat: 현황 화면 툴바 리스너 구현

* feat: 툴바에 모임 이름 전달하는 코드 추가

* feat: 초대 코드 입력에서 다른 화면으로 이동할 때 초대 코드 입력 화면 finish() (#305)

* fix: 리스트 깜빡임 현상 해결 (#306)

* fix: 리스트 깜빡임 현상 해결

* refactor: 아이템 애니메이션 제거 코드를 xml로 이동

* fix: 개설하기에서 뒤로가기 버튼 누르면 현 화면 없애기 및 오디 캐릭터 추가 (#301)

* fix: 개설하기에서 뒤로가기 버튼 누르면 finish()

* fix: 개설하기, 참여하기 후 돌아오면 메뉴 닫기

* style: ktlint

* chore: 오디 캐릭터들 추가

* design: 약속 없을 때 오디 캐릭터 추가

* design: 약속 만들었을 때 오디 캐릭터 추가

* design: 약속 참여 했을 때 오디 캐릭터 추가

* chore: BindingAdapter 사용으로 변경

* chore: BindingAdapter 사용으로 변경

* test: 2차 스프린트 구현 사항 테스트 (#308)

* config: 테스트 관련 의존성 추가

* test: 초대 코드 입력 화면 ui 테스트 구현

* test: 주소 유효성 검증 테스트 구현

* config: 프래그먼트 테스트를 위한 의존성 추가

* test: 약속 이름 입력 화면 테스트 구현

* test: 약속 이름 입력 테스트 수정 및 패키지 이동

* test: 닉네임 입력 화면 테스트 구현

* refactor: typeText -> replaceText로 변경

* chore: 불필요한 테스트 제거

* style: given/when/then 작성

* fix: unitTest 실행되지 않는 현상 해결

* feat: 로그에서 30분전이면 오디 버튼이 아예 안뜨게 구현 (#309)

* fix: 약속 로그 관련 수정 사항 (#314)

* fix: 로그 list가 깜빡이는 문제, 그림자가 listitem을 덮지 않는 문제 해결

* Update android/app/src/main/res/layout/activity_notification_log.xml

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

---------

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

* feat: 내 약속 목록 조회 시 현재 이후 약속만 조회 (#302)

* feat: 약속 시간을 기준으로 내 약속 목록 필터링

* fix: 24시간 전 약속도 포함되도록 수정

* fix: meeting fixture를 사용하지 않도록 코드 수정

* �test: DisplayName 설명 구체화

Co-authored-by: eun-byeol <[email protected]>

* refactor: 테스트 안정성을 위해 LocalDateTime 변수로 선언 후 사용

* rafactor: 시간 비교 코드 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* fix: 약속 리스트 관련 수정 사항 (#315)

* refactor: 디자인 수정 및 클릭 위에 따른 navigation과 fold 수정, 깜빡임 수정

* refactor: 비활성화된 오디 버튼 클릭 시 표시 메시지 변경

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* �fix: 행방불명상태의 소요시간 응답 오류 해결 (#317)

* refactor: isMissing 소요시간 반환 로직 추가

* refactor: 저장 및 업데이트 시점에 나노초 제거, createAt 변경 방지 옵션 추가

* refactor: prePersist 기능 사용 롤백

* test: isModified 테스트 오류 수정

* fix: 해방불명 오류 해결 (#320)

* fix: 해결되지 않은 행방불명 오류 해결 (#323)

* fix: compress 메서드 수정, gps 온오프 확인 (#321)

* fix: compress 메서드 좌표 길이에 상관없이 안전하게 자르게 변경

* fix: 유저가 gps 껐는지 확인하는 로직 추가

* style: ktlint

* style: ktlint

* fix: 도착한 상태인 사람의 소요시간이 -1로 반환되고 있는 문제 해결 (#325)

* fix: 확장 버튼 패딩 20dp 주기 (#329)

* fix: 로그에서 오디? 버튼이 30분 전부터 계속 보이게 변경 (#327)

* fix: 로그 화면에서 null이 잠깐 나타났다 사라지는 뷰 수정 (#332)

* design: 초대 코드 item과 모임 정보 칸과의 간격을 늘림 (#334)

* feat: 안드로이드 로깅 환경 구축 (#337)

* feat: Analytics 기초 구현

* config: firebase crashlytics 의존성 추가

* feat: 네트워크 로깅 확장 함수 추가

* feat: 네트워크 로깅 구현

* feat: 약속 리스트 -> ETA 현황, 약속 방 -> ETA 현황 이동 버튼에 로그 추가

* feat: bindingFragment 체류시간, 이탈 시점 추적 로그

* style: ktLintFormat

* fix: rollback

---------

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

* feat: EtaDashboardViewModelTest 구현 (#338)

* config: coroutine test 의존성 추가

* feat: FakeMatesEtaRepository 추가

* feat: ViewModel 테스트를 위한 클래스들 추가

* feat: EtaDashBoardViewModelTest 추가

* style: ktlint

* chore: given, when, then 형식 추가

* fix: 로그 화면 닉네임들 길어지면 안보이는 버그 수정 (#341)

* feat: 닉네임 길면 스크롤 되게 변경

* style: xml 코드 reformat code

* refactor: response. requset api 순서에 맞게 맞추기, 패키지 위치 수정 (#340)

* chore: MateEtaInfoResponse 위치 변경

* chore: 패키지 위치 변경 및 api 순서에 맞게 변경

* docs: test coverage report 스크립트 추가 (#254)

* docs: test coverage report 스크립트 추가

* docs : 테스트 커버리지 워크플로우 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor : 나노초 제거를 직렬화 도구로 수행 (#303)

* refactor: 시간 형식을 직렬화 도구로 통일

* style: 컨벤션 준수

* style: 첫번째 행 개행 추가

* test: 직렬화 도구 테스트 추가

* test: 테스트 검증 스트림으로 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 시간 비교 로직에서 초/나노초 단위 trim (#346)

* refactor: 나노초/초 제거를 util 클래스로 수행

* style: 불필요한 import 문 삭제

* test: 24시간 이내 판단로직 테스트 오류 개선

* chore: 메서드명 변경

trim > trimSecondsAndNanos

---------

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: EtaStatus 매핑 로직 개선 및 테스트 코드 추가 (#351)

* refactor: calculate()인자로 Location 타입을 받도록 수정

* refactor: eta 로직 가독성 개선

* refactor: eta 테이블에 isMissing 컬럼 추가

* test: Eta 예외 상황 테스트 추가

* refactor: 조건식 검증 순서 변경

* test: 테스트 코드 축약

---------

Co-authored-by: coli-geonwoo <[email protected]>

* config: 앱 출시를 위한 수정 (#350)

* config: VERSION.1_8 -> VERSION_17

* config: versionCode 1 -> versionCode 4

* config: ad id에 대한 설정 무시하게 설정

* config: parcelize, kapt, crashlytics 버전 카탈로그에 맞게 변경 (#353)

* refactor: 권한 체크, 권한 요청 분리 (#347)

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: PermissionHelper에 위치, 알림 권한 체크하는 로직 추가

* refactor: coarse, fine location 권힌이 허용되면 백그라운드 location 요청하게 변경

* refactor: PermissionHelper에 권한 요청하는 로직 추가

* style: ktlint

* refactor: 함수화

* refactor: 메서드 네이밍 변경

* style: ktlint

* style: ktlint

* refactor: 불필요한 코드 삭제

* refactor: requires API 어노테이션 삭제

* feat: 서버 응답 400, 500번대 예외 처리 (#359)

* feat: ApiResultCallAdapter 구현

* feat: fetchMeetingCatalog2ˆ

* feat: sample error handlingˆ

* chore: renamed packageˆ

* refactor: call adapter의 response type private로 변경

* test: FakeMeetingRepository 메서드 구현

* refactor: 네트워크 에러 시 출력 메시지 수정

* refactor: body null 체크

* chore: 패키지 변경 data -> domain

* refactor: 서버 에러 리턴시 에러 메시지 파라미터 이름 변경 error -> errorMessageˆ

* refactor: Extension의 람다 이름 변경, func -> blockˆ

* refactor: nullable 포함

* refactor: sealed interface로 변경

* refactor: FakeMeetingRepository listOf() -> emptyList()로 변경

* refactor: ApiResultCall execute 미지원 메시지 한글로 변경

* refactor: 로깅 관련 코드 리팩터링 (#361)

* feat: 로깅 인터페이스 및 구현체 구현

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* style: ktLint 적용

* refactor: 기존 firebaseAnalytics를 추상화한 객체로 수정

* chore: 로깅 프레임워크 적용 및 모니터링 대시보드 구성 (#348)

* chore: docker run 시에 volume 설정 추가

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

* chore: 불필요한 env 제거

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

* chore: 로그 파일 생성을 위해 Logback 설정

Co-authored-by: eun-byeol <[email protected]>

* chore: commons-logging 제외

Co-authored-by: eun-byeol <[email protected]>

* feat: exceptionHandler, interceptor 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: backend cd 스크립트 push 브랜치 수정

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

* chore: backend cd 스크립트 docker volume 수정

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

* chore: 로그 파일 gitignore에 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: amount path 절대 경로로 수정

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

* chore: 로그 파일 절대 경로로 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 현재 작업중인 브랜치로 checkout하도록 임시 수정

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

* chore: profile에 따라 파일 경로 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: 푸시 시 배포 적용되는 브랜치 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 request body 로그 출력

- wrapper, filter 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: interceptor에서 response body 로그 출력

- wrapper 생성

Co-authored-by: eun-byeol <[email protected]>

* chore: 로그 개행 제거, 정상 요청에 대한 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingResponseWrapper 사용해 response body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: ContentCachingRequestWrapper 사용해 request body 로그 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: cd workflow trigger 이벤트 수정

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

---------

Co-authored-by: eun-byeol <[email protected]>

* refactor: 현황 화면과 로그 화면을 하나의 activity로 관리 (#365)

* refactor: 액티비티 xml 파일 추가 및 프래그먼트로 변경

* refactor: 로그, 현황 화면의 viewModel 제거, 하나로 합치기

* refactor: 현황 화면의 툴바, 복사 로직을 액티비티로 이동

* refactor: 로그 화면의 툴바, 복사 로직을 액티비티로 이동

* feat: 프래그먼트 화면 전환 로직 구현

* chore: eta -> etaDashboard, room -> notificationLog 함수명 변경

* style: ktLint 적용

* feat: 뒤로 가기 버튼 누르면 백스택 삭제하는 로직 구현

* test: 리팩터링에 따른 테스트 수정

* style: ktLint 적용

* design: 툴바 폰트 크기 줄이기  (#389)

* fix: 정확한 위치 가져오게 getCurrentLocation로 변경 (#390)

* feat: 약속 참여자 ETA 조회 시, 수도권 외 지역 예외처리 (#368)

* feat: 커스텀 어노테이션으로 수도권 위경도 좌표 검증 로직 구현

* feat: 수도권 위경도 좌표 검증 로직 Request Dto에 적용

* test: 수도권 위경도 좌표 검증 테스트 코드 가독성 개선

* refactor: 불필요한 괄호 제거

* refactor: 변수명 수정

* fix: 컨트롤러에서 @SupportRegion 로직 타지 않는 문제 해결

* design: 로그인 화면 디자인 (#388)

* design: 로그인 화면 디자인

* design: 올바른 해상도 이미지로 변경

* design: 쓰이지 않는 이미지 제거

* refactor: 리뷰 반영

* design: 로그인 이미지 뷰에서 scaletype 삭제

* test: InviteCodeViewModel 테스트 (#392)

* test: SingleLiveData를 위한 getOrAwaitValue와 SingleLiveData가 한 번 Handled 되었는지 알기 위한 getIfHandled 구형

* test: checkInviteCode() 테스트 구현

* test: FakeAnalyticsHelper logEvent의 리턴 Unit으로 변경

* test: 리뷰 반영

* fix: 동일한 topic을 구독하여 참여하지 않은 메이트의 알림 받음 (#367)

* refactor: 생성일시도 포함하여 주제 구독

- FcmTopic 객체에서 2)약속 아이디, 생성일시로 2)형식에 부합하는 주제 생성
- FcmSendRequest 필드로 FcmTopic 사용하여 잘못된 주제로 구독되는 것 방지
- 로그 메세지 상세화

* style: 어노테이션 순서 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: 가독성 향상을 위해 `StringBuilder` 대신 `+` 사용

Co-authored-by: eun-byeol <[email protected]>

* refactor: 부 생성자, 주 생성자 순으로 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: `Meeting`이 `FcmTopic`을 모르도록 코드 수정

---------

Co-authored-by: eun-byeol <[email protected]>

* test: 3차 스프린트 구현 사항 테스트 (#396)

* test: MeetingJoinViewModel 테스트 작성

* test: AddressSearchViewModel 테스트 작성

* test: MeetingJoinViewModel given/when/then 순서 수정

* test: MeetingCreationViewModel 테스트 작성

* style: ktLint 적용

* refactor: FakeRepository의 반환값을 테스트 픽스처로 분리

* test: MeetingRoomViewModel의 로그 관련 함수 테스트 작성

* refactor: mapper 함수 타입 변경

* refactor: 프로퍼티 타입 변경 및 테스트 픽스처 분리

* style: ktLint 적용

* refactor: 테스트 픽스처 데이터 수정

* test: 약속 날짜를 오늘 날짜로 선택했을 때의 테스트 추가

* chore: 불필요한 코드 삭제

* test: MeetingsViewModel 테스트 작성 (#398)

* test: MeetingsViewModel 테스트 작성

* refactor: meetingsViewModel 한 줄 메서드들 줄바꿈 후 중괄호 삽입

* refactor: Fixture 적용, MeetingCatalog -> MeetingCatalogUiModel 매핑 메서드명 수정

* chore: 뷰모델 테스트 패키지 변경 (#403)

* design: 현황 화면 뱃지 애니메이션 추가 (#401)

* design: 친구 현재 위치 현황표 닉네임 사이즈 줄이기

* feat: 지각, 지각 위기 바운스 애니매이션 추가

* chore: 맞춤법 수정

* chore: 프로덕션 서버에 서비스 띄우기 (#393)

* chore: dev 전용 CD 파일 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: prod 전용 CD 파일 추가

Co-authored-by: eun-byeol <[email protected]>

* chore: path 임시 주석 처리

Co-authored-by: eun-byeol <[email protected]>

* chore: prod name 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 도커 이미지 실행 이미지 태그명 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 이미지 pull, 제거 순서 변경
Co-authored-by: eun-byeol <[email protected]>

* chore: prod 서버 로깅 설정 추가
Co-authored-by: eun-byeol <[email protected]>

* chore: prod cd event branch 변경

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

* chore: prod ci 스크립트 추가

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

---------

Co-authored-by: H <[email protected]>

* design: 로그 화면 디자인 수정 (#409)

* refactor: 현황 화면과 로그 화면의 툴바를 분리

* refactor: 로그 리스트 어댑터의 멀티 뷰 타입 제거

* style: ktLint 적용

* design: 로그 화면 툴바 디자인 수정

* design: 로그 리스트 아이템 디자인 수정

* design: 로그 햄버거 메뉴 디자인 구현

* feat: 햄버거 약속 친구 리스트 연결 기능 구현

* fix: 디자인 오류 수정

* fix: MeetingRoomActivity 백 버튼 리스너 버그 수정

* style: ktLint 적용

* design: 로그 리스트 아이템에 말줄임표 추가

* refactor: splash 라이브러리 사용으로 변경 (#406)

* config: Splash Screen 의존성 추가

* chore: Splash 액티비티 삭제

* feat: MeetingsActivity에서 Splash 화면 뜨게 수정

* chore: 스플래쉬 로고 크기 수정

* refactor: 애니메이션 제거 및 함수 분리

* feat: 재촉하기 API 구현 (#394)

* chore: 중복된 클래스 제거

* docs: 문서화 코드 작성

* feat: notificationType nudge 추가

* feat: 불변 값 객체로 전환

* feat: fetch join 활용한 mate 메서드 구현

* feat: 콕찌르기 구현

* feat: errorCode400 description 추가

* style: 쿼리 컨벤션 준수

* style: 개행 컨벤션 준수

* chore: 메서드 분리

* chore: api 수정

* chore: test DisplayName 수정

* test: test 가독성 개선

* refactor: meeting 변수 분리 삭제

* chore: 찌르기 > 재촉하기

* chore: api 수정

* docs: api 수정

* test: displayName 구체화

* fix: fcmTopic 값 객체 수정사항 반영

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 네트워크 오류, 서버 오류 ��시 스낵바/토스트 구현 (#411)

* feat: 주소 검색 위경도 변환시 에러 핸들링 구현

* feat: 모임 개설 에러 핸들링 구현

* feat: 초대 코드 입력 에러 핸들링 구현

* feat: 약속 참여 에러 핸들링 구현

* feat: 참여 중인 약속 목록 조회 에러 핸들링 구현

* feat: 약속 로그, 현황 화면 에러 핸들링 구현

* chore: 불필요한 코드 삭제

* test: fake repository 반환타입 수정

* style: ktLint 적용

* refactor: 토스트를 스낵바로 수정

* refactor: 에러 핸들링 관련 코드를 BaseViewModel로 분리

* refactor: _errorEvent, _networkErrorEvent를 private으로 변경

* docs: 약속 참여자 도착 현황 조회 API 문서화 (#405)

* config: 난독화 적용 (#415)

* config: 코드 난독화 적용

* config: 카카오 로그인 난독화 예외 처리 추가

* config: retrofit 난독화 예외 처리 추가

* config: 디버그 빌드 시 난독화 추가

* refactor: ETA 조회 API 응답 수정 (#418)

* refactor: ETA 조회 API 응답 수정 (#417)

* feat: 약속 참여자 도착 현황 조회 API 응답 수정

- 응답에 requesterMateId, mateId 추가
- ETA 업데이트 로직 메서드 분리
- `EtaService` meetingId, memberId로 mate 조회하는 메서드 `MateService`로 이동
- 응답 DTO 교체에 따른 컨트롤러, 서비스 테스트 수정
- meetingId로 모든 mate 조회하는 메서드 이름 수정
- 약속 단건 조회 시 mate가 아닌 경우 400 대신 404 반환하도록 수

* fix: 문서화용 하드코딩 제거

* feat: 위치 현황 카카오톡 공유 기능 구현 (#426)

* config: firebase storage 의존성 추가

* feat: 뷰를 캡쳐하고 byteArray로 변환하는 기능 구현

* feat: firebase storage에 이미지 업로드하는 기능 구현

* feat: 공유하기 클릭 시 이미지 업로드 기능 구현

* refactor: 화면 전체가 아닌 RecyclerView만 캡쳐되도록 수정

* config: 카카오 공유하기 의존성 추가

* config: 카카오 공유하기 기초 셋팅

* chore: 패키지명 변경

* feat: 카카오 공유하기 기능 구현

* feat: 카카오 공유하기 기능과 뷰모델 연결

* refactor: 이미지 사이즈 카카오 api에 전달하도록 수정

* refactor: 카카오 공유 api 호출을 코루틴으로 수정

* style: ktLint 적용

* test: 테스트 파라미터 수정

* chore: ci에 kakao native key 추가

* style: ktLint 적용

* config: 버전 카탈로그 이름 변경

* refactor: ByteArrayOutputStream use 사용으로 변경

* refactor: 코루틴 사용 방법 변경

* chore: 패키지 변경

* style: ktlint 적용

* feat: 로딩 중 ProgressBar 다이얼로그 띄우는 기능 구현 (#430)

* design: 로딩 다이얼로그 구현

* feat: BindingActivity에 로딩 다이얼로그 show/hide 함수 추가

* feat: BaseViewModel에 isLoading 변경하는 함수 추가

* config: 프로가드 규칙 추가

* feat: 서버에서 데이터 받아오는 부분에 로딩 추가

* feat: 콕찌르기 기능 (#420)

* feat: 콕 찌르기 알림 타입 추가

* feat: 콕 찌르기 기능 구현

* feat: FakeMeetingRepository에 fetchNudge 추가

* refactor: nudgeSuccess -> nudgeSuccessMate 네이밍 변경

* refactor: get -> fetch로 변경

* test: 친구 재촉하면 친구 재촉 성공하는지 테스트

* style: ktlint

* style: ktlint

* style: ktlint

* feat: 초대 코드 카카오톡 공유하기 기능 구현 (#431)

* chore: 리스너 패키지 이동

* feat: 초대 코드 공유하기 기능 구현

* style: ktLint 적용

* style: 이미지 url 수정

* style: ktLint 적용

* feat: 초대 코드 공유 기능에 loading 추가

* style: ktLint 적용

* refactor: Firebase Analytics 로깅을 비동기로 남기도록 수정 (#435)

* refactor: 코루틴 스코프 내에서 로깅 함수 호출하도록 수정

* refactor: fragment 코루틴 스코프를 viewLifecycleOwner.lifecycleScope로 변경

* refactor: 재촉하기 API에 재촉한 사람 정보가 포함되도록 수정 (#437)

* docs: 문서화 코드 수정

* feat: 같은 약속 참여자인지 확인하는 책임 추가

* feat: 재촉하는 mate의 닉네임이 포함되도록 로직 개선

* feat: nudgeRequest dto null 검증로직 추가

* style: 컨벤션 준수

* refactor: deviceToken 반환로직 작성

* chore: 메서드 명 변경

* refactor: mate로부터 디바이스 토큰 추출

* chore: 에러 메시지 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* fix: fragment 로깅 찍는 시점 수정 (#441)

* chore: MySQL DB를 실행할 EC2 생성 및 프로덕션 EC2 서버와 연결 (#419)

* feat: eta entity NotNull 속성 추가

Co-authored-by: Hyeon0208 <[email protected]>

* chore: mySql DB 적용, ddl-auto 속성 validate로 변경

- schema sql 파일 추가
Co-authored-by: Hyeon0208 <[email protected]>

* chore: 스키마 오류 수정

* chore: 스키마 타입 오류 수정

* chore: defer-datasource-initialization 설정 제거

* fix: mate save메서드 트랜잭션 적용

* chore: test yml 설정에 defer-datasource-initialization 설정 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* chore: HTTPS 적용 (#436)

* chore: prod cd 포트포워딩 443 변경

Co-authored-by: Hyeon0208 <[email protected]>

* chore: cd docker 포트포워딩 변경

Co-authored-by: Hyeon0208 <[email protected]>

* chore: MsSQL 설정 추가

* fix: Swagger CORS 에러 해결

---------

Co-authored-by: Hyeon0208 <[email protected]>
Co-authored-by: mzeong <[email protected]>

* chore: 로그 관련 중복 코드 제거 및 로그 내 Request Body 개행 제거 (#422)

* chore: console에 로그 레벨에 따른 색상 출력 기능 추가

* chore: log pattern 변수화, 로그 출력 시간 서울 기준으로 변경

* refactor: Interceptor 내 로그 메시지 중복 코드 Wrappers Dto로 분리

* refactor: Wrapping 전용 Filter 클래스명 수정

* refactor: record class에서 일반 class로 변경

* chore: deprecated API 제거 (#438)

* refactor: deprecated된 api 제거

* refactor: deprecated api test 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* fix: manifest에서 MAIN, LAUNCHER 인텐트 필터와 data 인텐트 필터를 분리 (#445)

* refactor: 약속 참여 API 응답 수정 (#439)

* refactor: 약속 참여 API 응답 수정

- 닉네임 중복 체크 로직 제거
- 참여자의 `estimatedMinutes`로 RouteTime 생성

* refactor: `Meeting` 내 `getMeetingTime` 메서드 사용

Co-authored-by: coli-geonwoo <[email protected]>

* �refactor: 테스트 편의를 위해 `MateSaveResponse` 스웨거 예시를 미래 날짜로 수정

Co-authored-by: eun-byeol <[email protected]>

* style: 한 줄 최대 길이 초과로 개행

Co-authored-by: eun-byeol <[email protected]>

* fix: 누락된 LocalDate, LocalTime 임포트 추가

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: eun-byeol <[email protected]>

* chore: dev 서버 DB MySQL 교체 작업 (#446)

* chore: dev 서버 MySQL DB로 교체

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 처리 및 연결 테스트

Co-authored-by: eun-byeol <[email protected]>

* chore: 주석 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 컨테이너 명 변경 및 포트 포워딩 포트번호 변경

Co-authored-by: eun-byeol <[email protected]>

* chore: CI 빌드 워크플로우 제거하고 Test만 실행하도록 변경

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: develop 스키마 validation 오류 해결 BE BUG (#455)

* chore: local 프로필에서 h2 db를 사용하도록 변경

* fix: member에 nickname 컬럼 추가

* feat: 재촉하기 알림에 닉네임이 보이게 변경 (#457)

* feat: 재촉하기 api path -> body로 변경

* test: MeetingRoomViewModel 바뀐 api에 맞게 변경

* feat: "닉네임"이 제촉해요 형식으로 변경

* style: ktlint

* refactor: 위경도 좌표 �검증 로직 제거 및 Coordinate 객체 생성 (#447)

* refactor: Coordinates 객체 생성, 위경도 검증 로직 제거

* style: reformat code

* feat: double로 변환 가능한 좌표임을 검증

* refactor: `MateSaveRequest` 내 `toOriginCoordinates` 메서드 추가

* refactor: `Location`의 `getLatitude`, `getLongitude` 메서드 사용

* fix: 머지 과정에서 toOriginCoordinates 메서드 에러 해결

* feat: 카카오 소셜 로그인 구현 및 엑세스 토큰 발급 (#448)

* refactor: `DeviceToken` 필드명 `value`로 변경

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 필드 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 임의의 `Provider`를 가진 회원이 존재하는지 조회

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `Member` 생성

- 중복된 DeviceToken 검증
- 중복된 ProviderType, ProviderId 검증

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 카카오 회원 생성 API

- 카카오 회원 생성, 액세스 토큰 갱신 API 문서화

Co-authored-by: coli-geonwoo <[email protected]>

* feat: `JwtTokenProvider` 구현

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 누락된 `@RequestBody` 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스, 리프레시 토큰 발급 및 액세스 토큰을 이용한 인증 전환

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 누락된 jwt dependency 추가 및 ConfigurationProperties 설정

- ConfigurationProperties 설정 오류로 실패하는 테스트 추가

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 액세스 토큰 갱신 API

* test: 헤더에 device-token 사용하는 테스트 Disabled 처리

* fix: 만료된 토큰 예외 처리 #428

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 하나의 기기에 여러 카카오 계정 로그인 허용

- 카카오 계정이 다른 기기에 로그인 시 이전 디바이스 토큰 제거

Co-authored-by: coli-geonwoo <[email protected]>

* fix: 리프레시 토큰 만료 시 예외 처리 #432

* fix: 만료된 액세스 토큰도 파싱 #433

* test: 회원 생성 및 `DeviceToken` NotNull 조건 삭제

* test: 액세스 토큰 파싱, 검증, 액세스/리프레시 토큰 만료 확인

* test: 코드 재사용을 위해 TokenFixture 생성

* test: 카카오 로그인 API, 액세스 토큰 갱신 API

* test: 액세스 토큰 파싱, 갱신

* docs: Swagger summary 수정

* refactor: 사용하지 않는 AuthorizationHeader 내 상수 제거

* refactor: AccessToken 내 주석 제거

* test: AuthorizationHeader 생성

* fix: 잘못 머지된 NudgeMessage 빌드 코드 수정

* fix: Member 테이블 sql 수정

* fix: 누락된 Member 생성자 추가 및 제거될 테스트 Disabled 처리

* refactor: 사용하지 않은 Token 객체 제거

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 로그 목록 조회, 약속 단건 조회 API에 imageUrl 필드 추가 (#461)

* feat: 약속 단건 조회에 imageUrl 추가

* feat: 로그 목록 조회에 imageUrl추가

* chore: 사용하지 않은 API 제거

* test: v1/mates 테스트 삭제

---------

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: 약속 참여 api 수정 및 닉네임 입력 화면 삭제 (#452)

* refactor: 약속 참여 api 요청/응답 파라미터 수정

* chore: 닉네임 입력 화면 삭제

* chore: 닉네임 관련 테스트 삭제

* style: ktLint 적용

* fix: response 파라미터명 수정

* feat: 로그 목록 조회, 약속 단건 조회 response에 imageUrl 필드 추가 (#462)

* feat: response 들에 imageUrl 필드 추가

* feat: TestFixtures 프로퍼티에 imageUrl 값 추가

* style: ktlint

* fix: 수정된 jar가 배포되지 않는 문제 해결 (#464)

* chore: 컴포즈 파일 제거

Co-authored-by: eun-byeol <[email protected]>

* chore: 스키마 설정 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 clean up 명령어 수정

Co-authored-by: eun-byeol <[email protected]>

* chore: 서브모듈 커밋

Co-authored-by: eun-byeol <[email protected]>

* chore: CD 파이프라인 변경된 환경변수에 맞춰 제거

Co-authored-by: eun-byeol <[email protected]>

* feat: 형상 관리용 Dev 전용 Docker 컴포즈 파일 추가

Co-authored-by: eun-byeol <[email protected]>

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 카카오 소셜 로그인 구현 (#442)

* chore: 카카오 sdk 의존성 추가

* feat: 카카오톡으로 리다이렉션 추가

* feat: 카카오톡으로 가입 기능 구현

* feat: api 서버에 가입 요청하는 기능 구현

* chore: mockWebServer 의존성 추가

* refactor: 스플래시에서 로그인 화면으로 이동하는 메서드 이름 변경

* chore: thirdparty.login.model 패키지명 entity로 변경

* refactor: deprecated된 MemberService 제거

* feat: 카카오 로그인 후 api 서버에 access token과 refresh token 요청, 토큰 만료시 새 토큰 요청

* refactor: authorization 헤더 수정

* fix: refresh token이 제대로 가지 않는 문제 수정

* refactor: 사용되지 않는 키 삭제

* chore: mockServerTest 의존성 제거

* refactor: Meetings에서 로그인이 되어있지 않은 경우 로그인 화면으로 리다이렉션, 인터셉터에서 url 기반으로 refresh 체크하고 있는 문제 수정

* fix: LifecycleOwner 버그 수정

* fix: 로그인 이후 목록이 뜨지 않는 문제 수정

* refactor: LoginActivity에서 splash를 띄워주는 것으로 변경 + 자동 로그인 구현

* refactor: 리뷰 반영

* style: ktLintFormat

* fix: 메인 화면에서 어플리케이션 아이콘이 보이지 않는 문제 수정

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* refactor: 쓰이지 않는 로그 제거

* refactor: 쓰이지 않는 메서드 제거

* refactor: 리뷰 반영

* chore: 안드로이드 CD 구축 (#463)

* chore: 안드로이드 cd 스크립트 작성

* chore: 리뷰 반영

* refactor: 모임 참여 로직 리팩터링 (#465)

* design: activity_meeting_join 출발지 입력 화면 디자인 수정

* refactor: MeetingJoinActivity에 출발지 입력 코드 추가

* refactor: 출발지 유효성 검증 로직 수정

* test: MeetingJoinViewModel 테스트 수정

* chore: 사용하지 않는 코드 삭제

* style: ktLint 적용

* refactor: 주소 editText setText 방식 수정

* fix: 약속 목록이 제대로 ui에 반영되지 않는 버그 해결 (#467)

* refactor: 약속 목록 옵저버 방식 변경

* feat: 로그인 화면 finish 추가

* fix: meetings Recyclerview 수정

* fix: 재촉하기 로그 문자열 수정

* fix: 약속 목록 isEmpty 버그 수정

* design: 오디 캐릭터 색상 변경

* refactor: 로그인 화면 네비게이션 바 보이게 수정

* style: ktLint 적용

* design: 초대코드 공유 이미지 링크 수정 (#470)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현 (#472)

* feat: 약속 리스트에서 뒤로가기 2번 하면 나갈 수 있는 기능 구현

* config: versionCode 4 -> 7

* refactor: 함수화 및 상수화

* docs: 회원 삭제 API (#477)

* chore: 앱 패키지명 변경 (#483)

* chore: 패키지명 변경

* chore: 패키지명 변경

* style: ktLint 적용

* chore: cd 스크립트 패키지명 변경

* fix: 카카오 웹 로그인 안되는 문제 수정 (#485)

* refactor: 지난 약속에 참여하지 못하도록 예외처리 (#474)

* feat: 지난 약속에 참여하지 못하도록 예외처리

* refactor: meeting에게 기한 만료 여부 묻도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 설정화면 디자인 (#492)

* chore: 필요한 아이콘들 추가

* feat: 홈화면에서 설정화면 가는 로직 구현

* feat: 설정 화면 디자인 및 설정 리스트 구현

* fix: 설정 화면 세로만 가능하게 변경

* refactor: onSetting -> onClickSetting

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* refactor: 네이밍 변경

* style: ktlint

* chore: SettingActivity exported -> false

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

* fix: 약속이 개설되지 않는 버그 수정 (#491)

* �refactor: 스프링 프로필 분리 (#494)

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: private yml dev 유저 옵션 변경

* chore: private yml root 비밀번호 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: dev EC2에서 사용하는 컴포즈 파일 내용으로 수정

* chore: 실제 배포를 위한 develop으로 트리거 변경

* chore: dev 프로필 ddl-auto validate로 변경

* chore: local 환경의 로그 파일 경로 수정

* chore: 서브 모듈 update

* chore: 테스트를 위한 트리거 변경

* chore: defer 옵션 추가

* chore: dev ddl-auto update로 변경

* chore: defer 옵션 제거

* chore: defer 옵션 제거

* chore: sql init 모드 변경

* chore: 프로필 분리

* chore: 사용되지 않은 환경변수 제거

* chore: 중복 설정 제거 및 프로필 별 적합한 옵션으로 수정

* chore: 프로필 별 서브모듈 import 제거

* chore: 머지 충돌로 수정된 CD yml 다시 수정

* chore: dev의 ddl-auto validate로 변경

---------

Co-authored-by: mzeong <[email protected]>

* feat: 애플리케이션 재시작 시 PENDING 상태 알림 스케줄링 및 새벽 4시마다 지난 모임 삭제 기능 추가 (#410)

* feat: 시스템 타임 존 설정 추가

* feat: 알림 테이블에 fcmTopic 컬럼 추가

* feat: 애플리케이션 시작 시 PENDING 상태 알림 스케줄링 적용

* feat: 지난 약속방 논리 삭제 스케줄링 추가

* test: 접근제어자 protected로 변경 및 getter 제거

* feat: 오늘 약속의 기한이 지난 약속 리스트 조회 기능 추가 및 이벤트 발행 기능 추가

* feat: fcm topic 구독 해제 기능 추가

* test: 테스트 설명 추가

* refactor: Device Token getter 디미터 법칙 적용

* test: Base 추상 클래스 접근 제어자 수정

* refactor: 개행 적용

* style: 벌크 쿼리 메서드명 수정

* feat: 약속 참여 시간이 지난 약속방 참여 검증 추가

* refactor: 새벽 4시 스케줄링 코드 이벤트 리스너 제거 및 트랜잭션 제거

* refactor: 머지 충돌 작업 해결

* refactor: 조회 메서드에 약속 기간이 지나지 않은 조건 추가

* feat: 기간이 지나지 않은 약속 단건 조회 메서드 추가

* refactor: findFetchedMateById() 메서드 사용 시 약속 기한이 지난 약속 처리 로직을 service에서 처리

* test: 기한이 지난 약속 조회 테스트 어떤 약속인지 명확하게 변수명 네이밍

* style: 약속방 -> 약속으로 텍스트 변경

* style: 기간이 지나지 않은 약속방 전체 Mate 조회 메서드 네이밍 수정

* test: 2가지 검증 구문을 assertAll로 래핑

* feat: 로그아웃 기능 구현 (#493)

* chore: swagger 문서 작성

* feat: 생성자 로직 변경

* feat: 멤버 refreshToken 삭제 로직 구현

* feat: 로그아웃 기능 구현

* feat: 리프레시 토큰 초기화 로직 일관성 준수

* feat: 리프레시 토큰 validate 추가

* chore: 메서드 순서 변경

* test: 불필요한 테스트 삭제

* feat: member 리프레시 토큰 update 기능 구현

* feat: 로그아웃 기능 구현

* chore: description 수정

* chore: 로그아웃 시 401 description 설명 추가

* refactor: 액세스 토큰만 받도록 로직 수정

* style: test 네이밍 변경

LogOut > Logout

* test: 테스트 에러 해결

* refactor: 불필요한 메서드 삭제

* refactor: 이미 로그아웃 상태더라도 200을 반환하도록 수정

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: Dev 서버 Down 오류 해결  (#501)

* chore: 변경된 스키마로 수정

* chore: 방언 제거 및, sql.init.mode: never로 변경

* chore: dev의 sql.init.mode: always로 변경

* chore: local 프로필 sql.init.mode 설정 추가

* feat: 로그아웃 기능 구현 (#499)

* feat: ApiResult의 상태를 나타내는 is~ 변수 추가

* feat: 카카오 로그아웃 처리 콜백을 코루틴으로 구현

* feat: 오디 서버의 로그아웃 서비스 구현

* feat: 클라이언트에 저장된 access token과 refresh token 삭제 구현

* feat: repository에서 카카오와 오디 서버에서의 로그아웃 후 토큰을 삭제하는 기능 구현

* feat: Application에서의 의존성 주입

* feat: 설정 화면에서 개인정보 처리 방침, 서비스 이용 약관 링크 연결 (#496)

* feat: 개인정보 처리 방침, 서비스 이용 약관 설정에서 링크 연결

* refactor: 노션 uri들 local properties에서 관리

* android ci에 uri들 추가

(cherry picked from commit a33d7e4529cc044a991c8e8931653c9b08dcf30c)

* fix: 약속이 개설되지 않는 버그 수정 (#491)

(cherry picked from commit a4321624ed6282e6e6f143483a7603bdd5a81f8c)

* chore: 주석 삭제

* feat: kakaoLoginRepository와 SettingsActivity 연결

* refactor: SplashActivity와 LoginActivity 분리

* feat: 로그아웃시 로그인 액티비티로 이동

* feat: 로그아웃을 한 후 토스트 메시지를 보여주는 기능 구현

* refactor: 로그아웃을 한 후 토스트 대신 스낵바를 보여주는 기능으로 변경

* refactor: 반드시 로그아웃 처리가 된 뒤에 navigate를 하도록 변경

* refactor: 리뷰 반영

* refactor: 로그아웃, 회원 탈퇴 시 안내 메시지 string 이름 변경

* refactor: 리뷰 반영

---------

Co-authored-by: haeum808 <[email protected]>
Co-authored-by: Hyemin Kim <[email protected]>

* refactor: debug, release 모드에 따른 BASE_URL 분기처리 (#460)

* refactor: BASE_URL 빌드 모드에 따른 분기 처리

* refactor: BASE_URL 분기 처리 수정

* config: ci 스크립트 base_url 수정

* refactor: BASE_URL 분기 처리 수정

* refactor: BASE_URL 위치 변경

* config: cd 스크립트 base_url 수정

* fix: common.yml 미반영으로 url null 값으로 인식 (#519)

* refactor: 기본적으로 보여주던 수도권 안내 멘트 삭제 (#516)

* �refactor: 출발 알림이 아닌 type들의 초기 상태를 DONE으로 변경 (#509)

* refactor: ENTRY, NUDGE 타입을 가진 알림의 status를 DONE으로 초기화

* refactor: 출발 알림 타입을 가진 알림만 상태를 DONE으로 변경하도록 수정

* refactor: NotificationType내에서 출발 알림 여부 확인

* feat: 알림이 현재 알림인지 확인하는 메서드 추가

* �refactor: 초대코대 코드 유일성 높이도록 개선 (#507)

* fix: BaseEntity 필드 NotNull 제약조건 제거

* chore: dev 프로필 sql.init.mode never로 변경

* refactor: 초대코드 필드 타입 및 제약조건 변경

* refactor: 8자리의 유일한 초대코드 생성 기능 추가

* feat: 초대 코드 중복 검사 및 초대코드로 조회 기능 추가

* refactor: 변경된 초대코드 스키마에 맞춰 테스트 코드 수정

* chore: sql auditing을 사용한 필드 not null 제약조건 제거

* refactor: 메서드 순서 변경

* style: 예외 메시지 띄어씌기 제거

* refactor: 미사용 메서드 제거 및 초대코드 검증로직 사용 메서드 변경

* refactor: 에러 로그 제거

* refactor: Auditing 필드 NotNull 제약조건 추가

* feat: FCM에 전송하는 메세지에 meetingId 추가 (#520)

* feat: fcm Message data에 meetingId 추가

* style: 메세지 클래스명 특성에 맞게 수정

* style: FCM 요청 DTO 클래스명 수정

* style: 개행 컨벤션 적용

* refactor: 변경된 클래스명 적용 및 코드 흐름 개선

* refactor: 연관관계 엔티티에서 약속 ID를 꺼내도록 수정

* refactor: 쿼리 변수 네이밍 수정 및 순서 수정

* refactor: meetingId getter 디미티 법칙 적용

* refactor: 메세지 특성에 맞게 네이밍 수정

* refactor: 디미터 법칙 적용한 엔티티 getter 제

* style: 코드 컨벤션 적

* fix: merge 충돌 오류 해결

* refactor: 민감한 설정을 jasypt를 활용해 암호화 적용 (#511)

* feat: Jasypt 의존성 및 설정 추가

* refactor: jasypt 암호화 적용된 값 적용

* chore: 이미지 빌드 시 jasypt 환경변수를 적용하도록 옵션 적용

* refactor: local, dev, prod 프로필에만 jasypt 설정 적용되도록 설정

* comment: 이상한 코드 TODO 주석 추가

* refactor: EC2 서버 코어 수에 맞춰 encryptor poolsize 2로 조정

* refactor: FCM 설정 파일을 암호화해 읽도록 변경

* refactor: 어노테이션 순서 변경

* chore: 서브모듈을 사용하지 않는 ci/cd 스크립트로 수정

* refactor: fcm.admin.sdk 값 common으로 이동 및 config.import 구문 추가로 지정한 yml 속성 읽도록 수정

* fix: InviteCodeGeneratorTest Disabled 처리

* chore: logging 향상을 위한 MDC 도입 (#504)

* chore: MDC 적용

- 로그 출력 패턴 수정
- 로깅을 위한 필터 이름 수정 및 MDC 로직 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 지각 참여자 로그 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 회원 삭제 API (#512)

* feat: 특정 참여자의 PENDING 알림을 모두 DISMISSED 알림으로 수정

- NotificationStatus에 DISMISSED 추가

* feat: DISMISSED 알림 전송 안 함

- fixture 생성 로직 분리

* feat: 참여자 아이디에 해당하는 Eta 존재하면 soft delete

* feat: 회원 아이디에 해당하는 Mate 존재하면 soft delete

* feat: 회원 삭제 시 Mate, Eta 삭제 및 Notification DISMISSED 처리

* feat: 회원 삭제 컨트롤러

* fix: soft delete 구현에 따른 createQuery 사용 불가

* chore: Member, Mate, Eta에 deletedAt 열 추가, Notification status 열에 dismissed 추가

* test: 회원 삭제 API 멱등성

- fix: 헤더 어노테이션 누락

* fix: merge 과정에서 누락된 코드 복구

* feat: 회원 삭제 시 회원 삭제 알림 추가

- NotificationType MEMBER_DELETION 추가
- Notification sql 수정

* refactor: NotificationStatus 내 isDismissed 메서드 제거

* docs: 회원 삭제 API 멱등성 테스트 DisplayName 구체화

* test: 회원 삭제 서비스 테스트 내 누락된 검증 로직 추가

* refactor: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: BaseRepositoryTest 생성

* feat: 삭제 회원 로그를 포함해서 약속 로그 목록 조회

* fix: H2 환경에서 sql 대소문자 차이로 데이터 생성 불가

* refactor: NotificationStatus 변경하는 벌크 쿼리 제거

* refactor: 조회 후 제거 대신 deleteById 사용

* refactor: 중복 device token unique 제약조건 제거

* fix: 머지 후 테스트 실패

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: jasypt 비밀번호 못 읽는 문제 해결 (#527)

* fix: 도커에 전달된 환경변수를 애플케이션이 못 읽는 문제 해결 (#530)

* chore: 임시로 파이프라인 수정

* chore: 환경변수 설정 옵션 ENV로 변경

* chore: develop 브랜치로 CD 트리거 변경

* chore: yml 상 jasypt 옵션 제거

* chore: 트리거 변경

* chore: 트리거 변경

* chore: jasypt 설정 yml상 제거

* chore: 트리거 develop으로 롤백

* fix: 회원 삭제 구현 후 로그 목록 조회 API 오작동 (#534)

* chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력

* chore: 테스트를 위해 dev 서버 배포 이벤트 수정

* chore: 테스트 위한 프로덕션 코드 수정에 따른 테스트 disabled

* chore: 빈 리스트 조회 원인을 파악하기 위해 추가 로그 출력

* �chore: 배포 이벤트 변경

* fix: `@SQLRestriction` 제거 및 필터 전역 적용

- 필터 적용되지 않는 findById에 deletedAt으로 필터링 로직 추가

* Revert "�chore: 배포 이벤트 변경"

This reverts commit 064a3fd89c2f4ddbb8a7002f87d15c5f249ce7b1.

* Revert "chore: 테스트를 위해 dev 서버 배포 이벤트 수정"

This reverts commit 960aa721c1558208b65853001e1df89dfb2adeb2.

* Revert "chore: 빈 리스트 조회 원인을 파악하기 위해 로그 출력"

This reverts commit a2615062

* test: `@SQLRestriction` 제거에 따른 엔티티 삭제 테스트 수정

* refactor: `@SQLRestriction` 제거에 따른 NotiLogFindResponse 내 에러 핸들링 제거

* test: 삭제 Eta 조회에서 불필요한 flush 제거

* style: 불필요한 개행 제거

Co-authored-by: eun-byeol <[email protected]>

* refactor: NotiLogFindResponse 생성자를 정팩메로 교체

---------

Co-authored-by: eun-byeol <[email protected]>

* feat: 회원 탈퇴 기능 구현 (#518)

* feat: 카카오 연결 끊는 함수 구현

* feat: 탈퇴 시 auth token을 삭제하는 기능 구현

* feat: 탈퇴 기능을 ui와 연결

* feat: 서버 탈퇴 api 호출하는 기능 구현

* design: 탈퇴 다이얼로그 ui 구현

* feat: 탈퇴 버튼 클릭 시 다이얼로그 띄우는 기능 구현

* fix: retrofit service 프로가드 예외 적용

* refactor: LoginRepository 내에서 토큰을 삭제하도록 수정

* chore: 사용하지 않는 코드 삭제

* feat: 로그 타입에 회원 탈퇴 추가

* design: 설정 아이템의 클릭 범위 수정

* refactor: 로그 및 로딩 다이얼로그 추가

* refactor: 로그 타입과 푸시 알림 타입을 분리

* refactor: LoginActicity 이동 방식 변경

* style: ktLint 적용

* feat: imageUrl이 비어있는 경우 회색 이미지 표시하도록 수정

* refactor: TAG를 reflection simpleName에서 문자열로 변경

* refactor: 탈퇴 다이얼로그 데이터 바인딩 -> 뷰 바인딩

* design: mate 목록에서 이미지 없는 경우 회색 처리

* feat: 카카오 연결끊기 (#539)

* feat: 회원 삭제 시 소셜 서비스의 유저 정보 파기

* feat: 회원 삭제 시 카카오 연결 끊기 선행

* docs: 회원 삭제 API 코드와 문서 일치

* fix: 회원 삭제 컨트롤러 테스트 시 KakaoAuthUnlinkClient Mock 등록

* docs: 삭제 회원이 회원 삭제 API 요청 시 401 반환

* feat: AuthProvider, DeviceToken unique 제약조건 제거

* feat: 로그 목록 조회 시 삭제 회원의 프로필 이미지 빈 문자열로 응답

* test: 삭제 회원 정보 파기에 대한 테스트 제거

* feat: DI 라이브러리 적용 (#546)

* config: Hilt 의존성 추가

* feat: hilt 의존성 변경

* style: ktlint

* feat: MeetingRoomViewModel AssistedInject로 변경

* style: ktlint

* style: ktlint

* fix: Kakao URL 참조하게 변경

* del: 불필요한 코드 삭제

* style: ktlint

* feat: HiltWorker를 위한 Hilt 세팅

* fix: Workmanger 동작 안되던 오류 해결

* del: 불필요한 클래스 제거

* del: 불필요한 주석 제거

* del: 불필요한 주석 제거

* style: ktlint

* del: 불필요한 mApplication 프로퍼티 삭제

* style: ktlint

* fix: Dev 서버 Swagger 접속 에러 해결  (#549)

* refactor: Lazy 예외 해결

* refactor: swagger-ui 경로 수정

* chore: cd 문서 작성 오류 해결

* chore: swagger-ui path 지정 반영

* chore: swagger-ui path 기본값으로 변경

* chore: dev-cd 트리거 develop으로 롤백

* refactor: Nickname 객체 로직 정리 (#540)

* refactor: Member, Mate 닉네임 필드 타입을 `Nickname`으로 변경

* refactor: 디미터 법칙을 위한 메서드 제거에 따른 코드 수정

* �style: 어노테이션 정렬

Co-authored-by: eun-byeol <[email protected]>

* refactor: toDeviceToken, toNickname 메서드 제거

---------

Co-authored-by: eun-byeol <[email protected]>

* fix: 디미터 법칙을 위한 메서드 제거에 따른 코드 깨짐 (#558)

* fix: Odsay API 요청 정지 복구 (#559)

* feat: OdsayApi key 변경

* style: 애너테이션 재정렬

* refactor: @Disabled 처리된 테스트 통과가능한 테스트로 수정 (#551)

* refactor: 초대코드 하드 코딩 문자열을 InviteCodeGenerator로 생성된 초대코드로 변경

* refactor: Test 환경에서만 적용되는 FixtureGeneratorConfig로 변경

* refactor: 초대코드 테스트 @Disabled 제거

* refactor: findAllByMember() 테스트 @Disabled 제거

* refactor: FixtureGenerator에 회원의 엑세스 토큰 생성 로직 추가

* refactor: BaseServiceTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용

* refactor: BaseRepositoryTest 추상 클래스에 TestAuthConfig 임포트 적용 및 test 프로필로 활성화

* refactor: BaseControllerTest 추상 클래스에 FixtureGeneratorConfig 임포트 적용 및 미사용 메서드 제거

* fix: 디미터 법칙 getter conflict 해결

---------

Co-authored-by: coli-geonwoo <[email protected]>

* design: 재촉하기 버튼 가이드 화면 구현 (#548)

* design: 재촉하기 가이드 첫번째 화면 ui 구현

* design: 재촉하기 가이드 두번째 화면 ui 구현

* feat: eta 처음 접속 시 가이드 화면 뜨는 기능 구현

* design: 지각, 지각 위기에 애니메이션 추가

* feat: 가이드 툴바 제목을 데이터 바인딩으로 전달

* style: ktLint 적용

* refactor: Datastore를 Hilt로 가져오도록 수정

* style: ktLint 적용

* fix: fcm admin sdk 변경 (#566)

* refactor: 회원 탈퇴 시 카카오 api 호출 제거 (#568)

* chore: 카카오 탈퇴 api 호출 제거

* fix: KakaoLoginRepository에 override 추가

* style: ktLint 적용

* fix: 입장 알림 전송 에러 문제 해결 (#569)

* fix: 입장 알림 오류 해결

* refactor: 알림 타입 로깅 추가

* chore: 오디세이 호출 횟수 확인을 위한 로그 추가

---------

Co-authored-by: mzeong <[email protected]>

* fix: odsay 호출 문제 해결 (#573)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 푸시 메세지를 클릭했을 때 앱 내로 접속 (#572)

* feat: 알림 누르면 해당 화면으로 이동하는 기능

* style: ktlint

* del: 불필요한 MEMBER_DELETION 타입 제거

* refactor: 가독성 좋게 변경

* refactor: 소요시간 계산 외부 api 의존성 낮추기 (#555)

* feat: Google 소요시간 계산 API 추가

* chore: google maps api 키 추가

* test: 다형성 적용된 RestClient 테스트로 수정

* refactor: DistanceMatrixResponse 필드 수정

* refactor: GoogleRouteClient 검증 추가 및 URI 인코딩 미적용

* test: GoogleRouteClient 테스트 추가

* test: 테스트용 RouteClient 구현체 네이밍 수정

* refactor: RouteService 런타임 시점에 의존성 변경 가능하도록 수정 및 로깅 추가

* test: 다형성 적용된 빈 의존성 순서 지정

* test: RouteServiceTest @Before Each 제거

* test: 호출이 없는 메서드에 대한 검증을 Mockito.never() 사용

* refactor: RouteConfig의 RouteClient 구현체들에 @Qualifer 제거

* test: TestRouteConfig 마지막 개행 제거

* test: 메서드 순서 변경

* feat: DistanceMatrixResponse에 API 문서 링크 주석 추가

* fix: hilt 적용된 뒤 초대하기, 리프래시 토큰 안되는 버그 (#578)

* fix: 카카오톡 초대 코드 공유 버그

* fix: 리프레쉬 Service가 RefreshRetrofit 참조하게 변경

* style: ktlint

* chore: Flyway로 데이터베이스 마이그레이션 (#577)

* chore: flyway dependency 추가

* chore: yml 설정 및 schema.sql 제거

* chore: 초기 세팅 sql 추가

* chore: AWS 로드밸런서 적용 (#564)

* chore: health check 의존성 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 인프라 구성에 따른 cd 스크립트 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod lb 테스트를 위한 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* refactor: pull-and-deploy 공통 스크립트 네이밍 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: lb 적용을 위한 cd 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: build-and-deploy 공통 스크립트 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: jasypt env 설정 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ddl-auto 옵션 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 포트포워딩 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: pull-and-deploy 직렬처리 변경

Co-authored-by: coli-geonwoo <[email protected]>

* chore: 트리거 브랜치 원복

Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod 서버 ddl 설정 validate로 복구

---------

Co-authored-by: coli-geonwoo <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* chore: prod DB를 RDS 클러스터로 변경 (#574)

* feat: RDS 레플리케이션 설정 추가

* refactor: ReplicationDataSourceConfig DependsOn 제거 프로필 prod 적용

* refactor: ReplicationDataSourceRouter 타입 결정 로직 수정

* chore: OSIV false ㅈ거용

* chore: local 프로필 설정 롤백

* refactor: default datasource 읽기 소스로 변경

* refactor: dataSource 메서드 인자에 @Qualifier 추가

* refactor: ReplicationType enum 클래스에 롬복 추가

---------

Co-authored-by: mzeong <[email protected]>

* refactor: 주소 검색 다이얼로그를 상호명으로 검색할 수 있는 api로 변경 (#580)

* chore: 주소 검색 예전 코드 삭제

* design: 주소 검색 ui 구현

* chore: 기존 카카오 주소 api 삭제

* feat: 주소 검색 화면 데이터 바인딩 구현

* chore: address, location 네이밍 통일

* feat: 카카오 주소 검색 api 연결

* feat: 입력창이 비어있으면 결과 화면도 비어있도록 구현

* fix: 이전 액티비티로 주소 결과 전달하는 기능 수정

* style: ktLint 적용

* style: ktLint 적용

* chore: 함수명 변경

* refactor: 페이지 디폴트 사이즈 위치 변경

* test: Fake Repository 함수 시그니처 수정

* feat: 약속 시간 30분전 ETA 조회 가능 알림 기능 추가 (#563)

* feat: ETA 공지 알림 타입 추가

* refactor: 메세지 클래스 record로 변경

* test: ETA 공지 알림 스케줄링 테스트 추가

* feat: ETA 공지 알림 전송 기능 추가

* refactor: 약속 30분전 시간을 meeting에서 반환하도록 수정

* test: 불필요한 테스트 제거

* test: ETA 공지 알림 예약 로직 메서드 호출 횟수 검증 추가

* refactor: eta 알림 시간 계산 로직 서비스로 이동

* refactor: Notification createDepartureReminder 알림 타입 PENDING으로 변경

* refactor: DirectMessage 정팩메 네이밍 수정

* refactor: GroupMessage 내에서 공지 메시지를 생성하도록 수정

* chore: flyway 스키마 변경 사항 sql 추가

* refactor: KST_OFFSET 상수 TimeUtil로 이동

* chore: 스키마 파일 제거

* chore: flyway V2 notification 체크 제약 조건 제거 구문 제거 (#585)

* feat: 주소 검색할 때 디폴트 현재 위치 제공 (#589)

* feat: 좌표를 통해 주소 가져오는 카카오 resonse 값 추가

* refactor: Address에 디폴트 값 추가

* feat: 디폴트로 현재 위치 가져오는 기능 구현

* style: ktlint

* refactor: FakeAddressRepository 오버라이드 함수 추가

* style: ktlint

* refactor: 메서드명 변경

* refactor: MeetingJoinViewModel에 인자 추가 전달

* refactor: 현재위치 가져오기 로딩 추가

* fix: 위치 가져오는 조건 변경

* design: 대중교통 멘트 추가 (#594)

* refactor: 백그라운드 스케줄링 리팩터링 (#586)

* refactor: WorkManager의 enqueue 개수 제한 default 값인 20에서 50으로 수정

* refactor: meeting마다 실행해야 하는 Job의 UUID를 DataStore에 저장하는 기능 구현

* refactor: result로 한 번만 결과값을 출력하는 대신 일정 주기로 setProgress로 데이터를 출력하도록 변경

* refactor: 의도한 시간보다 많이 work를 하게 되는 문제 수정

* refactor: 리뷰 반영

* refactor: ci 버그 수정

* refactor: 회원 탈퇴 시 예약된 스케줄링 모두 삭제 (#596)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: ci 수정

* fix: gps null일 때 조건 추가 (#600)

* design: RecyclerView overScrollMode 속성 변경 (#603)

* fix: eta 목록 화면 불안정한 문제 수정 (#619)

* refactor: 회원 탈퇴 시 예약된 job 모두 삭제

* refactor: setProgress 대신 db로 작업 결과를 저장 후 LiveData로 불러오는 방식으로 변경

* feat: 회원 탈퇴 시 db에 저장된 eta 정보 삭제

* refactor: ci수정

* style: 줄바꿈 추가

---------

Co-authored-by: kimhyemin <[email protected]>

* chore: 안드로이드 cd 배포 위치 테스트 트랙에서 프로덕션 트랙으로 변경 (#626)

* release: 안드로이드 1.0.0 출시 (#627)

* fix: 난독화 오류 수정

* feat: versionName 1.0.0 변경

* config: 버전 코드 변경

* hotfix: merge hotfix from main into develop (#642)

* chore: 읽기, 쓰기 DB 연결 조건 변경 (flyway 쓰기 작업 오류 해결) (#592)

* release: 백엔드 버전 1 배포 (#468)

* docs: 리드미 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일명 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: PR 템픔릿 파일 위치 규칙에 맞게 변경

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서화 (#3)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선 (#6)

* docs: 모임 개설 API 문서화

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* config: 백엔드 모듈 설정 추가

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* docs: 모임 개설 API 문서 가독성 개선

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: mzeong <[email protected]>
Co-authored-by: eun-byeol <[email protected]>
Co-authored-by: coli-geonwoo <[email protected]>

* feat: 엔티티 구현 (#8)

* feat: Meeting 엔티티 추가

* feat: Member 엔티티 추가

* feat: Mate 엔티티 추가

* feat: Notification 엔티티 추가

* refactor: Location 필드 변경

* docs: 모임 참여 API 문서화 (#11)

* docs: 모임 개설 API DTO 이름 변경

* docs: 모임 참여 API 문서화

* docs: 모임 개설, 모임 참여 API 상태 코드 변경

* feat: 안드로이드 기초세팅 (#15)

* config: 프로젝트 생성

* config: 의존성 추가

* design: 디자인 기초 설정

* chore: 안드로이드 기본 manifest 설정

- 알림 권한
- 인터넷 권한
- 가로 모드 고정 설정

* feat: Timber 초기 설정

* chore: MainActivity -> IntroActivity 클래스명 변경

* chore: 패키지 구조 설정

* feat: Retrofit 초기 설정

* docs: 참여중인 모임 목록 조회 API 문서화 (#17)

* chore: dto 디렉토리 세부화

* docs: 참여한 모임목록 조회 API 문서화

* refactor: 리소스 url 미반환

---------

Co-authored-by: coli-geonwoo <[email protected]>

* docs: FCM 토큰 저장, 초대 코드 유효성 검사 API 문서화 (#16)

* docs: 회원 추가 API 문서 추가

* docs: 초대 코드 유효성 검사 API 문서 추가

* style: 코드 컨벤션 적용

* refactor: 회원 추가 API 매핑 URL 추가

* style: 한 줄에 하나의 점 컨벤션 적용

* docs: 로그 목록 API 추가 (#14)

* chore: backend ci 스크립트 작성 (#42)

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 스플래쉬 화면 구현 (#41)

* design: 오디 로고 이미지 추가

* feat: 스플래쉬 화면 구현

* chore: Android 12에 추가된 Splash disable 위한 설정 추가

* feat: 공통 컴포넌트 구현 (#40)

* design: 뒤로 가기 버튼이 존재하는 툴바 ui 구현

* design: 입력창 스타일 구현

* design: 하단 버튼 스타일 구현 (다음, 확인)

* design: 제목이 있는 툴바 ui 구현

* design: 로그 화면의 툴바 ui 구현

* design: EditText drawable 테두리 수정

* style: 코드 줄바꿈 삭제

* chore: 앱 아이콘 오디 아이콘으로 변경 (#44)

* chore: 앱 status bar 추가 (#45)

* chore: backend ci 스크립트 작성 (#48)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* feat: 주소 검색 화면 구현 (#47)

* design: 약속 장소 입력 ui 구현

* design: 주소 검색 웹뷰 ui 구현

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가

* feat: 주소 검색 다이얼로그 띄우는 기능 구현

* design: 다이얼로그 ui 수정

* style: ktLint 적용

* config: 데이터 바인딩, 뷰 바인딩 의존성 추가 방식 변경

* refactor: 다이얼로그 설정 코드 scope function으로 변경

* feat: Timber에 DebugTree 추가 (#50)

* chore: buildConfig true로 설정

* feat: OdyDebugTree 구현

* Merge branch 'feature/49' into develop

* Merge branch 'feature/49' into develop

* Revert "Merge branch 'feature/49' into develop"

This reverts commit e06c1435188680a53f426b5fb3154b8ed2ef7db0.

* Revert "Merge branch 'feature/49' into develop"

This reverts commit 7859febd2bb38655b56ad3736cf48361da8ae7c3.

---------

Co-authored-by: aprilgom <[email protected]>

* chore: android ci 구축 (#54)

* chore: android ci 스크립트 작성

* chore: android ci 스크립트 오류 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 수정

* feat: FCM 구현 (#52)

* feat: 헤더에 Authorization 필드 추가, BASE_URL local.properties로 이동

* feat: 회원 추가 서비스 구현

* feat: FCM 구현, 앱 설치 후 처음 실행 시 회원 추가 API 전송

* style: lint

* config: 의존성 컨벤션 준수

* config: 서버 URL 변수 이름 BASE_URL로 변경

* refactor: Service 경로 postfix 이름 PATH로 변경

---------

Co-authored-by: kimhm0728 <[email protected]>

* chore: cicd 파이프라인 구축 (#55)

* chore: backend ci 스크립트 작성

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 테스트

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 스크립트 paths 주석처리

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: docker build push job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend-cicd-dev.yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd job 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 주석 제거

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cd yml 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend dockerfile 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend ci 오류 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml, dockerfile 수정

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: backend cicd yml 파일 통합 (#62)

* chore: 사용하지 않는 backend ci yml 파일 삭제

Co-authored-by: coli-geonwoo <[email protected]>

* chore: workflow 스크립트 내 actions 버전 최신화

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

* chore: ci 작업에서 test 실패 시 로그 출력 기능 추가

Co-authored-by: coli-geonwoo <[email protected]>

---------

Co-authored-by: coli-geonwoo <[email protected]>

* chore: android ci 스크립트 수정 (#64)

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 수정

* feat: 주소 검색 다이얼로그 구현 (#67)

* feat: 주소 검색 웹뷰 html 추가

* style: EditText 스타일 변경

* config: 중복되는 의존성 제거

* feat: 다이얼로그에서 웹뷰를 띄우는 기능 구현

* feat: 다이얼로그에서 선택한 주소를 fragment에 전달하는 기능 구현

* fix: ui 스레드에서 주소를 받아오도록 수정

* refactor: 고차 함수를 인터페이스로 변경

* style: 다이얼로그 크기 변경

* feat: 주소 리스너 인터페이스 추가

* style: ktlint 적용

* chore: AddressListener -> AddressReceiveListener 인터페이스명 변경

* chore: DestinationFragment -> MeetingDestinationFragment 클래스명 변경

* feat: 모임 개설 시 프래그먼트들 연결하는 뷰페이저 (#69)

* chore: dotsibdicator 의존성 추가

* feat: 모임 방 개설에 필요한 정보들 입력하는 화면들 추가

* feat: ViewPager2 Adapter 구현

* feat: ViewPager와 탭바 뒤로 가기 연결

* feat: 클래스 명 변경 및 indicator 변경

WormDotsIndicator -> DotsIndicator indicator
StartingPointFragment -> JoinStartingPointFragment

* chore: ktlint apply true로 변경

* chore: deprecated buildconfig 제거

* chore: ksp 버전 업그레이드

1.6.10-1.0.4 -> 1.9.0-1.0.13

* chore: MeetingInfoActivity exported true로 변경

* feat: 모임 참여 완료 화면 구현 (#70)

* chore: 박수 이미지들 추가

* feat: 모임 개설 완료 화면 구현

* chore: DestinationFragment -> MeetingDestinationFragment 변경

* feat: 모임 참여 완료 화면 (#72)

* chore: 달력 이미지들 추가

* feat: 모임 참여 완료 화면 구현

* chore: 화면 회전 가로로 고정 및 exported false로 변경

* chore: tools:text에 해당하는 값 하드 코딩으로 변경

* feat: 메인 화면 구현 (#73)

* design: 인트로 화면 xml 작성

* design: activity_intro.xml 작성

* feat: Event 작성

* feat: IntroNavigateAction 작성

* feat: Intro 버튼 리스너 인터페이스 작성

* feat: 각 버튼 클릭에 따른 Navigation Event 발생 구현

* feat: IntroActivity에 ViewModel 추가

* feat: observe 초기화 코드 추가

* refactor: IntroActivity와 MeetingInfoActivity 연결

* refactor: binding 함수 분리, initialize로 함수명 통일

* chore: shape_purple_radius_20.xml -> rectangle_purple_radius_20.xml 이름 변경

* design: 탑 바 추가

---------

Co-authored-by: haeum808 <[email protected]>

* feat: 모임 참여 시 프래그먼트들 연결하는 뷰페이저 (#74)

* chore: MeetingInfoListener -> InfoListener로 인터페이스 명 변경

* feat: 모임 참여 뷰페이저 구현

* chore: initializeDataBinding에 ViewPager 초기화 메서드 추가

* chore: VisitorInfo -> JoinInfo로 메서드명 변경

* chore: InfoListener -> BackListener로 인터페이스 명 변경

* feat: 알림 권한 요청 (#75)

* feat: 알림 권한 요청

* refactor: 리뷰 반영

* refactor: 리뷰 반영

* chore: android ci 필드 추가 (#78)

* chore: android ci 스크립트 api key 추가

* chore: android ci 스크립트 테스트

* chore: android ci 스크립트 테스트

* feat: 위도, 경도 가져오는 api 연동 (#76)

* feat: 위경도 가져오는 repository 구현

* feat: 카카오 location response dto 추가

* feat: 카카오 location api 연동

* feat: 위도 경도를 프래그먼트에 전달하는 기능 구현

* refactor: 위도 경도 받아오는 기능을 비동기로 처리

* fix: 위도 경도 비동기로 받아와서 프래그먼트에 전달

* fix: 위경도 받아온 후 다이얼로그 닫도록 수정

* refactor: interceptor로 헤더 추가

* style: ktLint 적용

* chore: moshi 어댑터 import 수정

* refactor: 함수 분리

* refactor: 위경도에 대한 mapper 생성

* chore: 패키지 구조 변경

* refactor: 위경도 데이터에 대한 ui model 추가

* style: ktLint 적용

* chore: 사용하지 않는 파일 삭제

* feat: 약속 날짜 입력 화면 (#79)

* feat: 날짜 선택 화면 구현

* chore: 불필요한 스낵바 제거

* feat: 날짜 선택 시간에 따른 예외 처리

* style: ktlint

* feat: 모임 정보 입력 검증 로직 추가 (#68)

* feat: 모임 정보 입력 검증 로직 추가

* fix: 검증할 DTO에 검증 어노테이션 추가

* style: 코드 컨벤션 적용

* feat: nickname 검증을 담당하는 도메인 추가

* refactor: 엔티티에서 이미 선언된 NotNull을 임베디드 객체에서 제거

* feat: 닉네임 입력 화면 구현 (#86)

* design: 닉네임 입력 화면 ui 구현

* feat: 닉네임 최대 길이 뷰모델에서 가져오도록 구현

* feat: 닉네임이 변경되면 닉네임 글자수가 보이는 기능 구현

* feat: 엑스 버튼 누르면 입력된 닉네임 없어지는 기능 구현

* feat: 닉네임 입력 여부에 따라 다음 버튼 비활성화 되는 기능 구현

* style: ktLint 적용

* feat: 초대 코드 복사 bottom dialog (#84)

* design: bottom sheet 틀 디자인

* design: bottom sheet 디자인

* feat: 초대 코드 복사하기 구현

* chore: initialize로 네이밍 통일 및 스낵바에 Int값 전달로 변경

* chore: 초대 코드 관련 UX 라이팅 변경

초대 코드가 복사 됐습니다. -> 초대 코드가 복사 복사되었습니다.

* feat: 약속 시간 입력 화면 구현 (#97)

* design: 약속 시간 입력 화면 ui 구현

* feat: 시간과 분을 NumberPicker에 데이터로 넣어주는 기능 구현

* feat: NumberPicker 무한 스크롤 구현

* refactor: NumberPicker 숫자 지정하는 기능을 프…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

refactor: 약속 단건 조회 API 구현
4 participants