-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weโll occasionally send you account related emails.
Already on GitHub? Sign in to your account
refactor: BaseActivity, BaseFragment #220
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์๊ณ ํ์ จ์ต๋๋ค~
import com.google.android.material.snackbar.Snackbar | ||
import com.woowacourse.ody.OdyApplication | ||
|
||
abstract class BindingActivity<T : ViewDataBinding>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BaseActivity ๋์ BindingActivity๋ผ๋ ์ด๋ฆ์ ์ฑํํ์ ์ด์ ๊ฐ ์๋์ฉ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Binding์ ์ฌ์ฉํ์ง ์๋ ์กํฐ๋นํฐ๋ค์ด ์์ด์ ๊ณ ๋ฏผํ๋ค๊ฐ BindingActivity๋ก ์์ฑํ์ต๋๋ค.
@LayoutRes private val layoutRes: Int, | ||
) : AppCompatActivity() { | ||
protected lateinit var binding: T | ||
private var snackBar: Snackbar? = null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
activity์ showSnackBar๋ฅผ ๋ฃ๋ ๊ฑด ์ด๋จ๊น์ฉ
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ถ๊ฐํ๊ฒ ์ต๋๋ค!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ฆฌ๋ทฐ ๋ฌ์๋์์ต๋๋น.
BindingActivity
์๋ showSnackBar
, showToast
๊ฐ ์๊ณ BindingFragment
์๋ showToast
๊ฐ ์๋๋ฐ, ํ์ํ ๊ฒฝ์ฐ์ ์ถ๊ฐํ๋ ค๊ณ ์ผ๋ถ๋ฌ ์ ์ธํ์ ๊ฑด๊ฐ์??
๊ทธ๋ฆฌ๊ณ Base ๋ทฐ๋ค ์์ฑํ์๊ณ ์๊ธฐ๊ฐ ๋์จ ์ด์ ๊ฐ, application์ DI๊ฐ ์ถ๊ฐ๋๋ฉด์ ๋ชจ๋ ๋ทฐ์ application์ ํ๋กํผํฐ๋ก ์ ์ธํ๋ ๋ณด์ผ๋ฌ ํ๋ ์ดํธ๊ฐ ์๊ธด๋ค๋ ์ด์ ์๋ ๊ฒ ๊ฐ์๋ฐ์. (๋ง์ฃ ..??) BindingActivity
, BindingFragment
์ application๋ ๊ฐ์ด ๋ฃ์ด์ฃผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
abstract class BindingActivity<T : ViewDataBinding>( | ||
@LayoutRes private val layoutRes: Int, | ||
) : AppCompatActivity() { | ||
protected lateinit var binding: T |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
protected lateinit var binding: T | |
protected val binding: T by lazy { DataBindingUtil.setContentView(this, layoutRes) } |
์ด ๋ถ๋ถ by lazy๋ก ์ด๊ธฐํํด์ฃผ๋ฉด ์ ๋๋์?? ๊ถ๊ธ..
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ด ๋ฐฉ๋ฒ์ด ๋ ๊น๋ํ๋ค์ ๋ณ๊ฒฝํ๊ฒ ์ต๋๋ค.
import com.google.android.material.snackbar.Snackbar | ||
import com.woowacourse.ody.OdyApplication | ||
|
||
abstract class BindingActivity<T : ViewDataBinding>( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ํน์ BaseActivity, BaseFragment ๋ผ๋ ๋ค์ด๋ฐ์ ์ด๋ ์ ๊ฐ์? BindingActivity์ ๋ญ๊ฐ ์ต์์น ์์๋ฐ.. ์ ๋ง ๊ทธ๋ฐ ๊ฑธ ์๋ ์์.
๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ/๋ทฐ ๋ฐ์ธ๋ฉ์ ์ฐ๋ Activity์ ๊ทธ๋ ์ง ์์ Activity์ ๊ตฌ๋ถํ๊ธฐ ์ํ ๋ค์ด๋ฐ์ธ๊ฐ์?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ต ๊ตฌ๋ถํ๊ธฐ ์ํ ๋ค์ด๋ฐ์ธ๋ฐ ์ด๋ค๊ฐ์?
message: String, | ||
action: Snackbar.() -> Unit = {}, | ||
) { | ||
snackBar?.dismiss() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
show ์ ์ dismissํด์ฃผ๋ ๊ฑฐ ๊ผผ๊ผผํ๋ค์ ๐
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๊ฐ์ฌํฉ๋๋ค!
} | ||
|
||
fun showSnackBar( | ||
message: String, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@StringRes messageId: Int
๋ ์ด๋ ์ ๊ฐ์?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ณ๊ฒฝํ๊ฒ ์ต๋๋ค!
์ค์๊ฐ ๋ง์๋ค์, BindingActvity์ showSnackBar ๋ฉ์๋๋ฅผ ๋ฃ์ด์ฃผ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ BindingFragment์ application์ ๋ฃ์์ต๋๋ค. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๋ฆฌ๋ทฐ ๋ฐ์๋ ๊ฒ ํ์ธํ์ต๋๋ค. ๊ธฐ์กด Activity, Fragment์ ์ ์ฉํ ํ์ ๋ค์ ๋ฆฌ๋ทฐ ์์ฒญ ๋ถํ๋๋ ค์~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ ๋ฆฌ๋ทฐ๋ ๋ชจ๋ ๋ฐ์ํ์
จ๋ค์!
์๊ณ ํ์
จ์ต๋๋ค!
|
||
override fun onDestroyView() { | ||
super.onDestroyView() | ||
_binding = null |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๊ผผ๊ผผํ null์ฒ๋ฆฌ ์ข์ต๋๋ค!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ฐํํ
BindingActivity์์ by lazy๋ก ํ๋ ์๋ฌ ๋์์ ๋ค์ ๋ฐ๊ฟจ์ต๋๋ค. |
@@ -77,15 +70,12 @@ class MeetingCreationActivity : AppCompatActivity(), BackListener { | |||
|
|||
override fun onCreate(savedInstanceState: Bundle?) { | |||
super.onCreate(savedInstanceState) | |||
setContentView(binding.root) | |||
|
|||
initializeDataBinding() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initializeDataBinding()
์ด ๋ฐ๋ณต์ด ๋๋ ๊ฒ ๊ฐ์๋ฐ, BindingActivity, Fragment์ ์ถ์ํจ์๋ก ํฌํจ์ํค๋ ๊ฒ๋ ๊ด์ฐฎ์ ๊ฒ ๊ฐ์์~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
์ถ๊ฐํ๊ฒ ์ต๋๋ค!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
๊ณ ์ํ์ จ์ต๋๋ค~!
commit 56d9a91 Author: eun-byeol <[email protected]> Date: Sat Aug 3 23:34:42 2024 +0900 docs: ์ฝ์ ๋จ๊ฑด ์กฐํ API ๋ฌธ์ํ (#245) commit aee5dd4 Author: H <[email protected]> Date: Sat Aug 3 21:56:24 2024 +0900 docs: ์ฝ์ ์ฐธ์ฌ API ๋ฌธ์ํ (#246) * docs: 404์๋ฌ ๋ฌธ์ํ๋ฅผ ์ํ ์ปค์คํ ์ด๋ ธํ ์ด์ ์ถ๊ฐ * docs: Swagger ํ์ ์ฐธ์ฌ API ๋ฌธ์ํ * refactor: AliasFor ์ด๋ ธํ ์ด์ ์ผ๋ก ApiResponse ์์ฑ๊ฐ ๋งคํ * refactor: api url ๋ฒ์ ๋ช ์ถ๊ฐ * feat: ๊ธฐ์กด์ /mates ์์ฒญ ๋ฉ์๋ ์ถ๊ฐ commit 917ce9a Author: kimhm0728 <[email protected]> Date: Fri Aug 2 18:51:38 2024 +0900 docs: ์๋น์ค ์๊ฐ๊ธ ์์ฑ (#242) commit 943999e Author: haeum808 <[email protected]> Date: Fri Aug 2 01:10:00 2024 -0700 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: ๋ฆฌ๋๋ฏธ ์ถ๊ฐ 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]โฆ
* 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โฆ
* 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๋ง โฆ
* 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โฆ
* 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โฆ
* 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: ๋ก๊ทธ ๋ชฉ๋กโฆ
* 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-โฆ
* 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: ๋กโฆ
* 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โฆ
* 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: ์ค๋ณต๋๋ ์์กดโฆ
* 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 ๋ฒ์ โฆ
* 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 โฆ
๐ฉ ์ฐ๊ด ์ด์
close #197
๐ ์์ ๋ด์ฉ
๐๏ธ ์คํฌ๋ฆฐ์ท (์ ํ)
๐ฃ๏ธ ๋ฆฌ๋ทฐ ์๊ตฌ์ฌํญ (์ ํ)