diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 223b9a56..a4000a8a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -42,6 +42,10 @@
+
diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SampleActivity.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SampleActivity.kt
deleted file mode 100644
index 4a9e5a29..00000000
--- a/app/src/main/java/com/sopetit/softie/ui/setting/SampleActivity.kt
+++ /dev/null
@@ -1,3 +0,0 @@
-package com.sopetit.softie.ui.setting
-
-class SampleActivity
diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingActivity.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingActivity.kt
new file mode 100644
index 00000000..01cfee47
--- /dev/null
+++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingActivity.kt
@@ -0,0 +1,72 @@
+package com.sopetit.softie.ui.setting
+
+import android.os.Bundle
+import androidx.activity.viewModels
+import androidx.fragment.app.Fragment
+import com.sopetit.softie.R
+import com.sopetit.softie.databinding.ActivitySettingBinding
+import com.sopetit.softie.util.binding.BindingActivity
+
+class SettingActivity : BindingActivity(R.layout.activity_setting) {
+
+ private val viewModel by viewModels()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ binding.viewModel = viewModel
+
+ initMakeInitFragment()
+ initChangeFragment()
+ }
+
+ private fun initMakeInitFragment() {
+ val currentFragment = supportFragmentManager.findFragmentById(R.id.fcv_setting)
+ if (currentFragment == null) {
+ supportFragmentManager.beginTransaction()
+ .add(R.id.fcv_setting, SettingInitFragment())
+ .commit()
+ }
+ }
+
+ private fun initChangeFragment() {
+ viewModel.settingFragment.observe(this) { clickSetting ->
+ when (clickSetting) {
+ USER_SECURITY -> changeFragment(SettingUserSecurityFragment())
+ USER_EXIT -> changeFragment(SettingUserExitFragment())
+ // TODO 다른 세부 설정 화면 추가
+ }
+ }
+ }
+
+ private fun changeFragment(fragment: Fragment) {
+ supportFragmentManager.beginTransaction()
+ .replace(R.id.fcv_setting, fragment)
+ .addToBackStack(FRAGMENT_STACK_TAG).commitAllowingStateLoss()
+
+ setClickBackBtnInDetailView(fragment)
+ }
+
+ private fun setClickBackBtnInDetailView(fragment: Fragment) {
+ binding.btnSettingBack.setOnClickListener {
+ backInitView(fragment)
+ }
+ }
+
+ fun backInitView(fragment: Fragment) {
+ with(supportFragmentManager) {
+ beginTransaction().remove(fragment).commit()
+ popBackStack()
+ }
+ viewModel.setSettingFragment(SETTING_INIT)
+ }
+
+ companion object {
+ const val SETTING_INIT = "설정"
+ const val USER_SECURITY = "개인정보 처리방침"
+ const val DOCUMENT = "서비스 이용 약관"
+ const val GUIDE = "서비스 이용 가이드"
+ const val FEEDBACK = "피드백"
+ const val USER_EXIT = "회원 탈퇴"
+ const val FRAGMENT_STACK_TAG = "BACK_STACK_TAG"
+ }
+}
diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingInitFragment.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingInitFragment.kt
new file mode 100644
index 00000000..b9417790
--- /dev/null
+++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingInitFragment.kt
@@ -0,0 +1,79 @@
+package com.sopetit.softie.ui.setting
+
+import android.os.Bundle
+import android.view.View
+import androidx.lifecycle.ViewModelProvider
+import com.sopetit.softie.R
+import com.sopetit.softie.databinding.FragmentSettingInitBinding
+import com.sopetit.softie.ui.setting.SettingActivity.Companion.USER_EXIT
+import com.sopetit.softie.ui.setting.SettingActivity.Companion.USER_SECURITY
+import com.sopetit.softie.util.binding.BindingBottomSheet
+import com.sopetit.softie.util.binding.BindingFragment
+
+class SettingInitFragment :
+ BindingFragment(R.layout.fragment_setting_init) {
+
+ private lateinit var viewModel: SettingViewModel
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ viewModel = ViewModelProvider(requireActivity()).get(SettingViewModel::class.java)
+ binding.viewModel = viewModel
+
+ initChangeFragment()
+ }
+
+ private fun initChangeFragment() {
+ clickUserSecurity()
+ clickLogOut()
+ clickUserExit()
+ }
+
+ private fun clickUserSecurity() {
+ binding.clSettingInitUserSecurity.setOnClickListener {
+ viewModel.setSettingFragment(USER_SECURITY)
+ }
+ }
+
+ private fun clickDocument() {
+ // TODO 서비스 이용 약관
+ }
+
+ private fun clickGuide() {
+ // TODO 서비스 이용 가이드
+ }
+
+ private fun clickFeedback() {
+ // TODO 피드백
+ }
+
+ private fun clickLogOut() {
+ binding.btnSettingInitLogout.setOnClickListener {
+ BindingBottomSheet.Builder().build(
+ isDrawable = true,
+ imageDrawable = R.drawable.ic_bear_face_crying,
+ imageUri = "",
+ title = "제목",
+ content = "내용",
+ isContentVisible = true,
+ contentColor = R.color.gray300,
+ backBtnContent = "돌아가기",
+ doBtnContent = "그냥 해",
+ doBtnColor = R.drawable.shape_red_fill_12_rect,
+ backBtnAction = {},
+ doBtnAction = {}
+ ).show(parentFragmentManager, BOTTOM_SHEET_TAG)
+ }
+ }
+
+ private fun clickUserExit() {
+ binding.btnSettingInitUserExit.setOnClickListener {
+ viewModel.setSettingFragment(USER_EXIT)
+ }
+ }
+
+ companion object {
+ const val BOTTOM_SHEET_TAG = "BOTTOM SHEET TAG"
+ }
+}
diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserExitFragment.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserExitFragment.kt
new file mode 100644
index 00000000..4ade853f
--- /dev/null
+++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserExitFragment.kt
@@ -0,0 +1,60 @@
+package com.sopetit.softie.ui.setting
+
+import android.os.Bundle
+import android.text.SpannableStringBuilder
+import android.text.Spanned
+import android.text.style.ForegroundColorSpan
+import android.view.View
+import androidx.core.content.ContextCompat
+import com.sopetit.softie.R
+import com.sopetit.softie.databinding.FragmentSettingUserExitBinding
+import com.sopetit.softie.util.binding.BindingFragment
+
+class SettingUserExitFragment :
+ BindingFragment(R.layout.fragment_setting_user_exit) {
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ initSetSpeechText()
+ initSetClickBackBtn()
+ }
+
+ private fun initSetSpeechText() {
+ binding.tvUserExitSpeech.text =
+ SpannableStringBuilder(getString(R.string.user_exit_title)).apply {
+ setSpan(
+ ForegroundColorSpan(
+ ContextCompat.getColor(
+ requireActivity(),
+ R.color.red
+ )
+ ),
+ SETTING_SPAN_START,
+ SETTING_SPAN_END,
+ Spanned.SPAN_EXCLUSIVE_EXCLUSIVE
+ )
+ }
+ }
+
+ private fun initSetBear() {
+ // TODO bear type 받아서 bear 이미지 띄우기
+ }
+
+ private fun initSetClickBackBtn() {
+ binding.btnUserExitBack.setOnClickListener {
+ (activity as SettingActivity).backInitView(this)
+ }
+ }
+
+ private fun initSetClickExitBtn() {
+ binding.btnUserExitExit.setOnClickListener {
+ // TODO 회원탈퇴 로직 추가
+ }
+ }
+
+ companion object {
+ const val SETTING_SPAN_START = 8
+ const val SETTING_SPAN_END = 10
+ }
+}
diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserSecurityFragment.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserSecurityFragment.kt
new file mode 100644
index 00000000..74e85fa3
--- /dev/null
+++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingUserSecurityFragment.kt
@@ -0,0 +1,15 @@
+package com.sopetit.softie.ui.setting
+
+import android.os.Bundle
+import android.view.View
+import com.sopetit.softie.R
+import com.sopetit.softie.databinding.FragmentSettingUserSecurityBinding
+import com.sopetit.softie.util.binding.BindingFragment
+
+class SettingUserSecurityFragment :
+ BindingFragment(R.layout.fragment_setting_user_security) {
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+ }
+}
diff --git a/app/src/main/java/com/sopetit/softie/ui/setting/SettingViewModel.kt b/app/src/main/java/com/sopetit/softie/ui/setting/SettingViewModel.kt
new file mode 100644
index 00000000..e7b8d03c
--- /dev/null
+++ b/app/src/main/java/com/sopetit/softie/ui/setting/SettingViewModel.kt
@@ -0,0 +1,17 @@
+package com.sopetit.softie.ui.setting
+
+import androidx.lifecycle.LiveData
+import androidx.lifecycle.MutableLiveData
+import androidx.lifecycle.ViewModel
+import com.sopetit.softie.ui.setting.SettingActivity.Companion.SETTING_INIT
+
+class SettingViewModel : ViewModel() {
+
+ private val _settingFragment: MutableLiveData = MutableLiveData(SETTING_INIT)
+ val settingFragment: LiveData
+ get() = _settingFragment
+
+ fun setSettingFragment(clickFragment: String) {
+ _settingFragment.value = clickFragment
+ }
+}
diff --git a/app/src/main/java/com/sopetit/softie/util/OriginalBottomSheet.kt b/app/src/main/java/com/sopetit/softie/util/OriginalBottomSheet.kt
new file mode 100644
index 00000000..747f99cc
--- /dev/null
+++ b/app/src/main/java/com/sopetit/softie/util/OriginalBottomSheet.kt
@@ -0,0 +1,72 @@
+package com.sopetit.softie.util
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import com.sopetit.softie.databinding.FragmentBottomsheetBinding
+import com.sopetit.softie.util.binding.BindingAdapter.setImage
+import com.sopetit.softie.util.binding.BindingBottomSheet
+
+class OriginalBottomSheet : BindingBottomSheet() {
+
+ private val binding: FragmentBottomsheetBinding
+ get() = requireNotNull(_binding as FragmentBottomsheetBinding)
+
+ override fun onCreateView(
+ inflater: LayoutInflater,
+ container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ _binding = FragmentBottomsheetBinding.inflate(inflater, container, false)
+ return binding.root
+ }
+
+ override fun setImage() {
+ if (isDrawable == true) {
+ imageDrawable?.let { binding.ivBottomSheet.setImageResource(it) }
+ } else {
+ binding.ivBottomSheet.setImage(imageUri)
+ }
+ }
+
+ override fun setTitle() {
+ binding.tvBottomSheetTitle.text = title
+ }
+
+ override fun setContent() {
+ binding.tvBottomSheetContent.text = content
+ }
+
+ override fun setContentVisible() {
+ if (isContentVisible == true) {
+ binding.tvBottomSheetContent.visibility = View.VISIBLE
+ } else {
+ binding.tvBottomSheetContent.visibility = View.INVISIBLE
+ }
+ }
+
+ override fun setContentColor() {
+ contentColor?.let { binding.tvBottomSheetContent.setTextColor(it) }
+ }
+
+ override fun setBackBtnContent() {
+ binding.btnBottomSheetBack.text = backBtnContent
+ }
+
+ override fun setDoBtnContent() {
+ binding.btnBottomSheetDo.text = doBtnContent
+ }
+
+ override fun setDoBtnColor() {
+ doBtnColor?.let { binding.btnBottomSheetDo.setBackgroundResource(it) }
+ }
+
+ override fun setBackBtnClick(action: () -> Unit) {
+ binding.btnBottomSheetBack.setOnClickListener { action() }
+ }
+
+ override fun setDoBtnClick(action: () -> Unit) {
+ binding.btnBottomSheetDo.setOnClickListener { action() }
+ }
+}
diff --git a/app/src/main/java/com/sopetit/softie/util/binding/BindingBottomSheet.kt b/app/src/main/java/com/sopetit/softie/util/binding/BindingBottomSheet.kt
new file mode 100644
index 00000000..5b7d5e77
--- /dev/null
+++ b/app/src/main/java/com/sopetit/softie/util/binding/BindingBottomSheet.kt
@@ -0,0 +1,89 @@
+package com.sopetit.softie.util.binding
+
+import android.os.Bundle
+import android.view.View
+import androidx.viewbinding.ViewBinding
+import com.google.android.material.bottomsheet.BottomSheetDialogFragment
+import com.sopetit.softie.util.OriginalBottomSheet
+
+abstract class BindingBottomSheet : BottomSheetDialogFragment() {
+
+ protected var _binding: ViewBinding? = null
+ protected var isDrawable: Boolean? = null
+ protected var imageDrawable: Int? = null
+ protected var imageUri: String? = null
+ protected var title: String? = null
+ protected var content: String? = null
+ protected var isContentVisible: Boolean? = null
+ protected var contentColor: Int? = null
+ protected var backBtnContent: String? = null
+ protected var doBtnContent: String? = null
+ protected var doBtnColor: Int? = null
+ protected lateinit var backBtnAction: () -> Unit
+ protected lateinit var doBtnAction: () -> Unit
+
+ override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+ super.onViewCreated(view, savedInstanceState)
+
+ setImage()
+ setTitle()
+ setContent()
+ setContentVisible()
+ setContentColor()
+ setBackBtnContent()
+ setDoBtnContent()
+ setDoBtnColor()
+ setBackBtnClick { backBtnAction(); dismiss() }
+ setDoBtnClick { doBtnAction(); dismiss() }
+ }
+
+ abstract fun setImage()
+ abstract fun setTitle()
+ abstract fun setContent()
+ abstract fun setContentVisible()
+ abstract fun setContentColor()
+ abstract fun setBackBtnContent()
+ abstract fun setDoBtnContent()
+ abstract fun setDoBtnColor()
+
+ abstract fun setBackBtnClick(action: () -> Unit)
+ abstract fun setDoBtnClick(action: () -> Unit)
+
+ class Builder() {
+ fun build(
+ isDrawable: Boolean,
+ imageDrawable: Int,
+ imageUri: String,
+ title: String,
+ content: String,
+ isContentVisible: Boolean,
+ contentColor: Int,
+ backBtnContent: String,
+ doBtnContent: String,
+ doBtnColor: Int,
+ backBtnAction: () -> Unit,
+ doBtnAction: () -> Unit
+ ): BindingBottomSheet {
+ val bottomSheet = OriginalBottomSheet()
+ return bottomSheet.apply {
+ this.isDrawable = isDrawable
+ this.imageDrawable = imageDrawable
+ this.imageUri = imageUri
+ this.title = title
+ this.content = content
+ this.isContentVisible = isContentVisible
+ this.contentColor = contentColor
+ this.backBtnContent = backBtnContent
+ this.doBtnContent = doBtnContent
+ this.doBtnColor = doBtnColor
+ this.backBtnAction = backBtnAction
+ this.doBtnAction = doBtnAction
+ }
+ }
+ }
+
+ override fun onDestroyView() {
+ _binding = null
+ super.onDestroyView()
+ }
+}
diff --git a/app/src/main/res/drawable/ic_bear_brown_crying.png b/app/src/main/res/drawable/ic_bear_brown_crying.png
new file mode 100644
index 00000000..9a2490f8
Binary files /dev/null and b/app/src/main/res/drawable/ic_bear_brown_crying.png differ
diff --git a/app/src/main/res/drawable/ic_doll_face_1.xml b/app/src/main/res/drawable/ic_bear_face_1.xml
similarity index 100%
rename from app/src/main/res/drawable/ic_doll_face_1.xml
rename to app/src/main/res/drawable/ic_bear_face_1.xml
diff --git a/app/src/main/res/drawable/ic_bear_face_crying.xml b/app/src/main/res/drawable/ic_bear_face_crying.xml
new file mode 100644
index 00000000..645593af
--- /dev/null
+++ b/app/src/main/res/drawable/ic_bear_face_crying.xml
@@ -0,0 +1,59 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_bear_gray_crying.png b/app/src/main/res/drawable/ic_bear_gray_crying.png
new file mode 100644
index 00000000..758e6fb4
Binary files /dev/null and b/app/src/main/res/drawable/ic_bear_gray_crying.png differ
diff --git a/app/src/main/res/drawable/ic_bear_panda_crying.png b/app/src/main/res/drawable/ic_bear_panda_crying.png
new file mode 100644
index 00000000..261770ab
Binary files /dev/null and b/app/src/main/res/drawable/ic_bear_panda_crying.png differ
diff --git a/app/src/main/res/drawable/ic_bear_red_crying.png b/app/src/main/res/drawable/ic_bear_red_crying.png
new file mode 100644
index 00000000..5dc39d2a
Binary files /dev/null and b/app/src/main/res/drawable/ic_bear_red_crying.png differ
diff --git a/app/src/main/res/drawable/ic_document.xml b/app/src/main/res/drawable/ic_document.xml
new file mode 100644
index 00000000..e5e6aef5
--- /dev/null
+++ b/app/src/main/res/drawable/ic_document.xml
@@ -0,0 +1,14 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_feedback.xml b/app/src/main/res/drawable/ic_feedback.xml
new file mode 100644
index 00000000..4fd87b4d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_feedback.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_guide.xml b/app/src/main/res/drawable/ic_guide.xml
new file mode 100644
index 00000000..6f26109d
--- /dev/null
+++ b/app/src/main/res/drawable/ic_guide.xml
@@ -0,0 +1,10 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_right_btn.xml b/app/src/main/res/drawable/ic_right_btn.xml
new file mode 100644
index 00000000..3771d630
--- /dev/null
+++ b/app/src/main/res/drawable/ic_right_btn.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_speech_bottom.xml b/app/src/main/res/drawable/ic_speech_bottom.xml
new file mode 100644
index 00000000..bfca24ac
--- /dev/null
+++ b/app/src/main/res/drawable/ic_speech_bottom.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/ic_user_security.xml b/app/src/main/res/drawable/ic_user_security.xml
new file mode 100644
index 00000000..4eb2f5a7
--- /dev/null
+++ b/app/src/main/res/drawable/ic_user_security.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/shape_gray000_fill_top20_rect.xml b/app/src/main/res/drawable/shape_gray000_fill_top20_rect.xml
new file mode 100644
index 00000000..1ce37f2f
--- /dev/null
+++ b/app/src/main/res/drawable/shape_gray000_fill_top20_rect.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/drawable/shape_red_fill_12_rect.xml b/app/src/main/res/drawable/shape_red_fill_12_rect.xml
new file mode 100644
index 00000000..d1ad4862
--- /dev/null
+++ b/app/src/main/res/drawable/shape_red_fill_12_rect.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml
new file mode 100644
index 00000000..6c680657
--- /dev/null
+++ b/app/src/main/res/layout/activity_setting.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_bottomsheet.xml b/app/src/main/res/layout/fragment_bottomsheet.xml
new file mode 100644
index 00000000..6cde7172
--- /dev/null
+++ b/app/src/main/res/layout/fragment_bottomsheet.xml
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_onboarding_choice_routine.xml b/app/src/main/res/layout/fragment_onboarding_choice_routine.xml
index 70c2b235..d83d1a66 100644
--- a/app/src/main/res/layout/fragment_onboarding_choice_routine.xml
+++ b/app/src/main/res/layout/fragment_onboarding_choice_routine.xml
@@ -24,7 +24,7 @@
android:id="@+id/iv_onboarding_choice_routine_title_bear"
android:layout_width="53dp"
android:layout_height="50dp"
- android:src="@drawable/ic_doll_face_1"
+ android:src="@drawable/ic_bear_face_1"
android:layout_marginTop="34dp"
android:layout_marginStart="22dp"
app:layout_constraintTop_toTopOf="parent"
diff --git a/app/src/main/res/layout/fragment_onboarding_choice_theme.xml b/app/src/main/res/layout/fragment_onboarding_choice_theme.xml
index 4eb6185b..24de9c5c 100644
--- a/app/src/main/res/layout/fragment_onboarding_choice_theme.xml
+++ b/app/src/main/res/layout/fragment_onboarding_choice_theme.xml
@@ -65,7 +65,7 @@
android:id="@+id/iv_onboarding_choice_theme_title_bear"
android:layout_width="53dp"
android:layout_height="50dp"
- android:src="@drawable/ic_doll_face_1"
+ android:src="@drawable/ic_bear_face_1"
android:layout_marginTop="34dp"
android:layout_marginStart="22dp"
app:layout_constraintTop_toTopOf="parent"
diff --git a/app/src/main/res/layout/fragment_setting_init.xml b/app/src/main/res/layout/fragment_setting_init.xml
new file mode 100644
index 00000000..e6096ea3
--- /dev/null
+++ b/app/src/main/res/layout/fragment_setting_init.xml
@@ -0,0 +1,286 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_setting_user_exit.xml b/app/src/main/res/layout/fragment_setting_user_exit.xml
new file mode 100644
index 00000000..4a9877ed
--- /dev/null
+++ b/app/src/main/res/layout/fragment_setting_user_exit.xml
@@ -0,0 +1,109 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_setting_user_security.xml b/app/src/main/res/layout/fragment_setting_user_security.xml
new file mode 100644
index 00000000..5f4a6ede
--- /dev/null
+++ b/app/src/main/res/layout/fragment_setting_user_security.xml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 1e67519a..c0bba807 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -21,6 +21,33 @@
행복 루틴은 매일 조금씩 너에 대해\n알아갈 수 있는 특별한 이벤트형 루틴이야!
진행 중인 행복루틴이 없어요.\n루틴을 추가할까요?
+
+ 어떤 친구와 함께 할까요?
+ 한 번 선택한 인형은 바꿀 수 없어요
+ 이 친구와 함께 할래
+
+
+ 설정
+ 개인정보 처리방침
+ 서비스 이용 약관
+ 서비스 이용 가이드
+ 피드백
+ 현재 버전 1.0.0
+ 로그아웃
+ 회원 탈퇴
+ 소프티를 정말 탈퇴하시나요?
+ 탈퇴하면 계정이 삭제되고 모든 데이터가 사라집니다.
+ 정말 가는 거야..?\n나는 영영 사라져
+ 더 써볼래
+ 탈퇴할래
+ 소프티 개인정보처리방침
+
+
+ 정말 로그아웃할까요?
+ "잠시만 안녕..다음에 또 봐!"
+ 취소
+ 로그아웃 할래
+
어떤 친구와 함께 할까요?
한 번 선택한 인형은 바꿀 수 없어요
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index f364ebb1..97fab17a 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -10,4 +10,14 @@
+
+
+
+