diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index ff23a87..19cc484 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -6,12 +6,12 @@
         <type value="QUICK_BOOT_TARGET" />
         <deviceKey>
           <Key>
-            <type value="VIRTUAL_DEVICE_PATH" />\
-            <value value="C:\Users\eunyoung\.android\avd\Pixel_4_API_28_2.avd" />\
+            <type value="VIRTUAL_DEVICE_PATH" />
+            <value value="C:\Users\user\.android\avd\Pixel_2_API_27.avd" />
           </Key>
         </deviceKey>
       </Target>
     </targetSelectedWithDropDown>
-    <timeTargetWasSelectedWithDropDown value="2022-08-23T16:48:40.961589700Z" />
+    <timeTargetWasSelectedWithDropDown value="2022-08-08T16:17:38.292200500Z" />
   </component>
 </project>
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 79df485..f2f3600 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -44,14 +44,14 @@
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/drawable/tv_chat_question.xml" value="0.1795" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/drawable/tv_chat_you.xml" value="0.1" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/activity_answer.xml" value="0.264" />
-        <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/activity_chatting.xml" value="0.264" />
+        <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/activity_chatting.xml" value="0.2571428571428571" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/activity_login.xml" value="0.1484375" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/activity_main.xml" value="0.2" />
-        <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/fragment_chatting.xml" value="0.21333333333333335" />
+        <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/fragment_chatting.xml" value="0.264" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/fragment_friend.xml" value="0.2" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/fragment_tree.xml" value="0.176" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/item_chat_end.xml" value="0.24427083333333333" />
-        <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/item_chat_me.xml" value="0.24947916666666667" />
+        <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/item_chat_me.xml" value="0.4" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/item_chat_question.xml" value="0.4" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/item_chat_you.xml" value="0.4" />
         <entry key="..\:/work/mobileApp/mbtree/app/src/main/res/layout/item_list.xml" value="0.24479166666666666" />
diff --git a/app/build.gradle b/app/build.gradle
index a81fe70..5644e59 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -65,12 +65,21 @@ dependencies {
     // glide 라이브러리
     implementation 'com.github.bumptech.glide:glide:4.12.0'
 
-//    implementation 'androidx.room:room-runtime:2.4.3'
-//    annotationProcessor 'androidx.room:room-compiler:2.4.3om'
-
     //circleView
     implementation 'de.hdodenhof:circleimageview:3.1.0'
-    // Coroutine
+
+    //okhttp
+    implementation 'com.squareup.okhttp3:okhttp:3.12.6'
+    implementation 'com.squareup.okhttp3:mockwebserver:3.12.1'
+
+
+    // stomp
+    implementation 'com.github.NaikSoftware:StompProtocolAndroid:1.6.6'
+    //rx
+    implementation 'io.reactivex.rxjava2:rxjava:2.2.5'
+    implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'
+
+    /* Coroutine
     implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.6.0'
     implementation 'com.squareup.retrofit2:retrofit:2.6.0'
     implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
@@ -82,4 +91,5 @@ dependencies {
     implementation 'com.squareup.okhttp3:okhttp:4.9.1'
     implementation 'com.squareup.okhttp3:logging-interceptor:4.9.1'
 
+     */
 }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8d838fc..3d6ab9b 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -100,6 +100,9 @@
             android:exported="true">
         </activity>
 
+        <activity android:name=".view.chat.ChattingActivity"
+            android:exported="true"/>
+
 
     </application>
 
diff --git a/app/src/main/java/com/umc/project/mbtree/data/Chat.kt b/app/src/main/java/com/umc/project/mbtree/data/Chat.kt
index 61ab6b6..d2cb9fc 100644
--- a/app/src/main/java/com/umc/project/mbtree/data/Chat.kt
+++ b/app/src/main/java/com/umc/project/mbtree/data/Chat.kt
@@ -3,5 +3,8 @@ package com.umc.project.mbtree.data
 data class Chat(
     var content:String,
     var time:String,
-    var viewType:Int    //1:왼쪽 2:오른쪽 3:센터
+    var viewType:Int,    //1:왼쪽 2:오른쪽 3:센터
+    var question: String? = "",
+    var answer1: String? = "",
+    var answer2: String? = ""
 )
diff --git a/app/src/main/java/com/umc/project/mbtree/data/ChatResponse.kt b/app/src/main/java/com/umc/project/mbtree/data/ChatResponse.kt
new file mode 100644
index 0000000..6a50264
--- /dev/null
+++ b/app/src/main/java/com/umc/project/mbtree/data/ChatResponse.kt
@@ -0,0 +1,66 @@
+package com.umc.project.mbtree.data
+
+data class MatchResponse (
+    val responseResult: String,
+    val chatRoomId: Int,
+    val userId: Int
+)
+
+data class ChatList(
+    val isSuccess: Boolean,
+    val code: Int,
+    val message: String,
+    val result: ArrayList<ChatListResult>
+)
+
+data class ChatListResult(
+    val id: Int,
+    val user1: User?,
+    val user2: User?,
+    val quit: Int
+)
+
+data class ChatContent(
+    val isSuccess: Boolean,
+    val code: Int,
+    val message: String
+)
+
+data class Quiz(
+    val isSuccess: Boolean,
+    val code: Int,
+    val message: String,
+    val result: QuizResult
+)
+
+data class QuizResult(
+    val id: Int,
+    val quiz: String,
+    val keyword: String,
+    val answer1: String,
+    val answer2: String
+)
+
+data class QuizAnswer(
+    val isSuccess: Boolean,
+    val code: Int,
+    val message: String,
+    val result: QuizAnswerResult?
+){
+    data class QuizAnswerResult(
+        val id:Int,
+        val user1: String,
+        val user2: String,
+        val quiz: String,
+        val quilt: String,
+        val answer1: Int,
+        val answer2: Int
+    )
+}
+
+data class QuizAnswerConfirm(
+    val isSuccess: Boolean,
+    val code: Int,
+    val message: String,
+    val result: Int
+)
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/project/mbtree/data/User.kt b/app/src/main/java/com/umc/project/mbtree/data/User.kt
index 53ca8bc..aeca9fe 100644
--- a/app/src/main/java/com/umc/project/mbtree/data/User.kt
+++ b/app/src/main/java/com/umc/project/mbtree/data/User.kt
@@ -15,8 +15,13 @@ import androidx.room.PrimaryKey
 
 
 data class User(
-    val id:Int,
+    val id: Int,
+    var uuid: String?,
     var name: String,
-    var userToken: String,
-    var mbti: String
+    var email: String,
+    var mbti: String,
+    var location: String,
+    var token: String,
+    var point: Int,
+    var createDate: String?
 )
diff --git a/app/src/main/java/com/umc/project/mbtree/remote/ChatRetrofitInterface.kt b/app/src/main/java/com/umc/project/mbtree/remote/ChatRetrofitInterface.kt
new file mode 100644
index 0000000..994eb94
--- /dev/null
+++ b/app/src/main/java/com/umc/project/mbtree/remote/ChatRetrofitInterface.kt
@@ -0,0 +1,41 @@
+package com.umc.project.mbtree.remote
+
+import com.umc.project.mbtree.data.*
+import retrofit2.Call
+import retrofit2.http.GET
+import retrofit2.http.POST
+import retrofit2.http.Query
+
+interface ChatRetrofitInterface {
+
+    //랜덤채팅 매칭시작
+    @GET("chat/join")
+    fun matchingChat(@Query("userId")userId: Int): Call<MatchResponse>
+
+    //채팅 리스트 출력
+    @GET("chat/list")
+    fun getChatListById(@Query("userId")userId: Int): Call<ChatList>
+
+    //채팅방 내용 불러오기
+    @GET("chat/list")
+    fun getChatContent(
+        @Query("userId")userId: Int,
+        @Query("roomId")roomId:Int
+    ): Call<ChatContent>
+
+    //퀴즈 가져오기
+    @GET("chat/quiz")
+    fun getQuiz(@Query("roomId")roomId: Int): Call<Quiz>
+
+    //퀴즈 정답 입력
+    @GET("chat/answerQuiz")
+    fun setQuizAnswer(
+        @Query("roomId")roomId: Int,
+        @Query("userId")userId: Int,
+        @Query("answer")answer: Int
+    ): Call<QuizAnswer>
+
+    //퀴즈 정답 비교
+    @GET("chat/checkAnswer")
+    fun getQuizAnswer(@Query("roomId")roomId: Int): Call<QuizAnswerConfirm>
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/project/mbtree/remote/NetworkModule.kt b/app/src/main/java/com/umc/project/mbtree/remote/NetworkModule.kt
new file mode 100644
index 0000000..cbd6ae6
--- /dev/null
+++ b/app/src/main/java/com/umc/project/mbtree/remote/NetworkModule.kt
@@ -0,0 +1,31 @@
+package com.umc.project.mbtree.remote
+
+import com.google.gson.GsonBuilder
+import okhttp3.OkHttpClient
+import okhttp3.logging.HttpLoggingInterceptor
+import retrofit2.Retrofit
+import retrofit2.converter.gson.GsonConverterFactory
+
+const val BASE_URL = "https://mbtree.site/"
+
+var gson = GsonBuilder().setLenient().create()
+
+//레트로핏 객체 반환
+fun getRetrofit(): Retrofit{
+
+    val okHttpClient: OkHttpClient by lazy {
+        OkHttpClient.Builder()
+            .addInterceptor(HttpLoggingInterceptor().apply {
+                level = HttpLoggingInterceptor.Level.BODY
+            })
+            .build()
+    }
+
+    val retrofit = Retrofit.Builder()
+        .baseUrl(BASE_URL)
+        .addConverterFactory(GsonConverterFactory.create(gson))
+        .client(okHttpClient)
+        .build()
+
+    return retrofit
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/project/mbtree/view/chat/ChatListRVAdapter.kt b/app/src/main/java/com/umc/project/mbtree/view/chat/ChatListRVAdapter.kt
index 38a687c..ff144a4 100644
--- a/app/src/main/java/com/umc/project/mbtree/view/chat/ChatListRVAdapter.kt
+++ b/app/src/main/java/com/umc/project/mbtree/view/chat/ChatListRVAdapter.kt
@@ -2,6 +2,7 @@ package com.umc.project.mbtree.view.chat
 
 import android.view.LayoutInflater
 import android.view.ViewGroup
+import android.widget.Toast
 import androidx.recyclerview.widget.RecyclerView
 import com.umc.project.mbtree.data.User
 import com.umc.project.mbtree.databinding.ItemListBinding
@@ -26,7 +27,10 @@ class ChatListRVAdapter(private val chatList:ArrayList<User>):RecyclerView.Adapt
             //binding.ivListProfile
             binding.tvListName.text = u.name
             binding.tvListMbti.text = u.mbti
+
+//            itemView.setOnLongClickListener{
+//                //롱클릭 시 삭제
+//            }
         }
     }
-
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/project/mbtree/view/chat/ChatRVAdapter.kt b/app/src/main/java/com/umc/project/mbtree/view/chat/ChatRVAdapter.kt
index 79e231e..3688c38 100644
--- a/app/src/main/java/com/umc/project/mbtree/view/chat/ChatRVAdapter.kt
+++ b/app/src/main/java/com/umc/project/mbtree/view/chat/ChatRVAdapter.kt
@@ -1,22 +1,45 @@
 package com.umc.project.mbtree.view.chat
 
 import android.content.Context
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.Button
 import android.widget.TextView
+import android.widget.Toast
 import androidx.recyclerview.widget.RecyclerView
 import com.umc.project.mbtree.R
 import com.umc.project.mbtree.data.Chat
-import com.umc.project.mbtree.databinding.ItemChatMeBinding
+import com.umc.project.mbtree.data.QuizAnswer
+import com.umc.project.mbtree.data.QuizAnswerConfirm
+import com.umc.project.mbtree.remote.ChatRetrofitInterface
+import com.umc.project.mbtree.remote.getRetrofit
+import org.w3c.dom.Text
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
 
-class ChatRVAdapter(private val context: Context,
-                    private val chatList:ArrayList<Chat>): RecyclerView.Adapter<RecyclerView.ViewHolder>() {
-    var chatList2 = mutableListOf<Chat>()
+//,private val chatList:ArrayList<Chat>
+class ChatRVAdapter(private val context: Context): RecyclerView.Adapter<RecyclerView.ViewHolder>() {
+
+    var chatList = mutableListOf<Chat>()
+
+    interface MyItemClickListener{
+        fun clickButton1(chat: Chat)
+        fun clickButton2(chat: Chat)
+//        fun setQuizAnswer(roomId:Int, userId:Int, answer:Int)
+//        fun getQuizAnswer(roomId: Int)
+    }
+    private lateinit var mItemClickListener: MyItemClickListener
+    fun setMyItemClickListener(itemClickListener: MyItemClickListener){
+        mItemClickListener = itemClickListener
+    }
 
     //처음에 화면에 보일 아이템뷰 생성
     override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder {
         val view: View?
+
         return when(viewType){
             1 -> {
                 view = LayoutInflater.from(parent.context).inflate(
@@ -30,12 +53,15 @@ class ChatRVAdapter(private val context: Context,
                 )
                 RightViewHolder(view)
             }
-            else -> {
+            3 -> {
                 view = LayoutInflater.from(parent.context).inflate(
-                    R.layout.item_chat_you, parent, false
+                    R.layout.item_chat_question, parent, false
                 )
                 CenterViewHolder(view)
             }
+            else -> {
+                throw RuntimeException("Error")
+            }
         }
     }
 
@@ -61,6 +87,10 @@ class ChatRVAdapter(private val context: Context,
         return chatList.size
     }
 
+    fun addItem(chat: Chat){
+        chatList.add(chat)
+    }
+
     //xml을 여러개 사용하려면 오버라이딩 해줘야 함
     override fun getItemViewType(position: Int): Int {
         return chatList[position].viewType
@@ -83,10 +113,22 @@ class ChatRVAdapter(private val context: Context,
     }
 
     inner class CenterViewHolder(view: View): RecyclerView.ViewHolder(view){
-        private val content: TextView = view.findViewById(R.id.tv_chat_content)
+        private val question: TextView = view.findViewById(R.id.tv_chat_question)
+        private val a1: Button = view.findViewById(R.id.btn_chat_a)
+        private val a2: Button = view.findViewById(R.id.btn_chat_b)
 
         fun bind(chat: Chat){
-            content.text = chat.content
+            question.text = chat.question
+            a1.text = chat.answer1
+            a2.text = chat.answer2
+
+            a1.setOnClickListener{
+                mItemClickListener.clickButton1(chatList[position])
+            }
+            a2.setOnClickListener{
+                mItemClickListener.clickButton2(chatList[position])
+            }
         }
     }
-}
\ No newline at end of file
+
+}
diff --git a/app/src/main/java/com/umc/project/mbtree/view/chat/ChattingActivity.kt b/app/src/main/java/com/umc/project/mbtree/view/chat/ChattingActivity.kt
index d5e53c4..be16d41 100644
--- a/app/src/main/java/com/umc/project/mbtree/view/chat/ChattingActivity.kt
+++ b/app/src/main/java/com/umc/project/mbtree/view/chat/ChattingActivity.kt
@@ -1,34 +1,239 @@
 package com.umc.project.mbtree.view.chat
 
+import android.content.Intent
 import android.os.Bundle
+import android.os.Handler
+import android.os.Looper
+import android.util.Log
+import android.view.MotionEvent
+import android.view.View
+import android.widget.Toast
 import androidx.appcompat.app.AppCompatActivity
-import com.umc.project.mbtree.data.Chat
+import androidx.core.os.postDelayed
+import androidx.recyclerview.widget.LinearLayoutManager
+import com.umc.project.mbtree.R
+import com.umc.project.mbtree.data.*
 import com.umc.project.mbtree.databinding.ActivityChattingBinding
+import com.umc.project.mbtree.remote.ChatRetrofitInterface
+import com.umc.project.mbtree.remote.getRetrofit
+import kotlinx.android.synthetic.main.item_chat_question.view.*
+import org.json.JSONObject
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
+import ua.naiksoftware.stomp.Stomp
+import ua.naiksoftware.stomp.dto.LifecycleEvent
+import ua.naiksoftware.stomp.dto.StompHeader
 
 class ChattingActivity: AppCompatActivity() {
     lateinit var binding: ActivityChattingBinding
     lateinit var multiAdapter: ChatRVAdapter
-    val chatList = mutableListOf<Chat>()
+//    private var flag: Boolean = true
+
+    private val url = "wss://mbtree.site/chat-websocket/websocket"
+    val stompClient = Stomp.over(Stomp.ConnectionProvider.OKHTTP, url)
 
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         binding = ActivityChattingBinding.inflate(layoutInflater)
         setContentView(binding.root)
 
-        //dummy data
-        var chatDatas = ArrayList<Chat>()
-        chatDatas.apply{
-            add(Chat("안녕하세요", "12:00", 1))
-            add(Chat("네 안녕하세요", "12:00", 2))
-            add(Chat("지금 뭐하세요?", "12:00", 1))
-            add(Chat("저 코딩하는데요", "12:00", 2))
-            add(Chat("시간어택", "12:00", 3))
+        val roomId = intent.getIntExtra("roomId", -1)
+        val userId = 3
+        Log.d("ChattinActivity", "넘어온 roomId: " + roomId)
+
+        getQuiz(roomId)
+
+        if(roomId != -1){
+            try {
+                runStomp(roomId, userId)
+            } catch (e:Exception){
+                Log.d("ERROR", "stomp 자체의 오류")
+                Log.d("ERROR", e.message.toString())
+            }
         }
 
-        multiAdapter = ChatRVAdapter(this, chatDatas)
+        // dummy data
+        var chatDatas = mutableListOf<Chat>()
+        multiAdapter = ChatRVAdapter(this)
         binding.rvChatList.adapter = multiAdapter
-        multiAdapter.chatList2 = chatDatas
+        binding.rvChatList.layoutManager = LinearLayoutManager(this)
+
+        multiAdapter.setMyItemClickListener(object: ChatRVAdapter.MyItemClickListener{
+            override fun clickButton1(chat:Chat) {
+                Toast.makeText(applicationContext, "1번 선택", Toast.LENGTH_SHORT).show()
+                setQuizAnswer(roomId, userId, 1)
+                getQuizAnswer(roomId)
+//                flag = true
+            }
+            override fun clickButton2(chat:Chat) {
+                Toast.makeText(applicationContext, "2번 선택", Toast.LENGTH_SHORT).show()
+                setQuizAnswer(roomId, userId, 2)
+                getQuizAnswer(roomId)
+//                flag = true
+            }
+        })
+        multiAdapter.chatList = chatDatas
         multiAdapter.notifyDataSetChanged()
+
+    }
+
+    //stomp구현
+    fun runStomp(roomId: Int, userId: Int){
+        stompClient.connect()
+
+        stompClient.topic("/topic/chat/${roomId}").subscribe{ topicMessage ->
+            Log.d("message Receive", topicMessage.payload)
+            val sender = JSONObject(topicMessage.payload).getString("userId").toInt()
+            if(sender != userId){
+                val content = JSONObject(topicMessage.payload).getString("message")
+                multiAdapter.addItem(Chat(content, "12:00", 1))
+
+                runOnUiThread{
+                    multiAdapter.notifyDataSetChanged()
+                }
+            }
+        }
+
+        stompClient.lifecycle().subscribe{ lifecycleEvent ->
+            when(lifecycleEvent.type){
+                LifecycleEvent.Type.OPENED -> {
+                    Log.d("OPENED", "opened")
+                }
+                LifecycleEvent.Type.CLOSED -> {
+                    Log.d("CLOSED", "closed")
+                }
+                LifecycleEvent.Type.ERROR -> {
+                    Log.d("ERROR", "error")
+                    Log.i("CONNECT ERROR", lifecycleEvent.exception.toString())
+                }
+                else -> {
+                    Log.d("else", lifecycleEvent.message)
+                }
+            }
+        }
+
+        binding.etChatSend.setOnTouchListener(object : View.OnTouchListener{
+            override fun onTouch(v: View?, event: MotionEvent?): Boolean {
+                if(event?.action == MotionEvent.ACTION_UP){
+                    if(event.rawX >= (binding.etChatSend.right - binding.etChatSend.compoundDrawables[2].bounds.width())){
+                        //action here
+//                        Toast.makeText(applicationContext, "누름", Toast.LENGTH_SHORT).show()
+                        sendStomp(binding.etChatSend.text.toString(), roomId, userId)
+                        binding.etChatSend.text = null
+                        return true
+                    }
+                }
+                return false
+            }
+        })
+    }
+
+    fun sendStomp(msg: String, roomId: Int, userId: Int){
+        val data = JSONObject()
+        data.put("messageType", "CHAT")
+        data.put("userId", userId.toString())
+        data.put("message", msg)
+
+        stompClient.send("/app/chat.message/${roomId}", data.toString()).subscribe()
+        Log.d("Message Send", "내가 보낸거: " + msg)
+
+        multiAdapter.addItem(Chat(msg, "12:00", 2))
+        runOnUiThread{
+            multiAdapter.notifyDataSetChanged()
+        }
+    }
+
+    //키워드 질문 가져오기
+    fun getQuiz(roomId: Int){
+        val retrofitService = getRetrofit().create(ChatRetrofitInterface::class.java)
+        retrofitService.getQuiz(roomId)
+            .enqueue(object: Callback<Quiz>{
+                override fun onResponse(call: Call<Quiz>, response: Response<Quiz>) {
+                    var resp = response.body()!!
+                    if(resp.isSuccess){
+                        val result = resp.result
+
+                        Log.d("ChattingActivity", "Q. ${result.quiz}")
+                        Log.d("ChattingActivity", result.answer1)
+                        Log.d("ChattingActivity", result.answer2)
+                        binding.tvChatKeyword.visibility = View.VISIBLE
+                        binding.tvChatKeyword.text = "Q. " + result.keyword
+
+                        Handler(Looper.getMainLooper()).postDelayed({
+                            binding.tvChatKeyword.visibility = View.GONE
+                            multiAdapter.addItem(Chat(result.quiz, "00:00", 3,
+                                result.quiz, result.answer1, result.answer2))
+
+                            runOnUiThread{
+                                multiAdapter.notifyDataSetChanged()
+                            }
+                        }, 50000)
+                    }
+                }
+
+                override fun onFailure(call: Call<Quiz>, t: Throwable) {
+                    Log.d("Chatting Activity", t.message.toString())
+                }
+
+            })
+    }
+
+    //퀴즈 정답 입력
+    fun setQuizAnswer(roomId:Int, userId:Int, answer:Int){
+        val retrofitService = getRetrofit().create(ChatRetrofitInterface::class.java)
+        retrofitService.setQuizAnswer(roomId, userId, answer)
+            .enqueue(object: Callback<QuizAnswer>{
+                override fun onResponse(
+                    call: Call<QuizAnswer>,
+                    response: Response<QuizAnswer>
+                ) {
+                    var resp = response.body()!!
+                    if(resp.isSuccess){
+                        Log.d("ChattingActivity", resp.result!!.user1)
+                        Log.d("ChattingActivity", resp.result!!.user2)
+                        Log.d("ChattingActivity", resp.result!!.quiz)
+                    }
+                    else{
+                        Log.d("Chatting Activity",resp.message)
+                    }
+                }
+
+                override fun onFailure(call: Call<QuizAnswer>, t: Throwable) {
+                    Log.d("ChatRVAdapter", t.message.toString())
+                }
+
+            })
+    }
+
+    //퀴즈 정답 결과
+    fun getQuizAnswer(roomId: Int){
+        val retrofitService = getRetrofit().create(ChatRetrofitInterface::class.java)
+        retrofitService.getQuizAnswer(roomId)
+            .enqueue(object : Callback<QuizAnswerConfirm>{
+                override fun onResponse(
+                    call: Call<QuizAnswerConfirm>,
+                    response: Response<QuizAnswerConfirm>
+                ) {
+                    var resp = response.body()!!
+                    if(resp.isSuccess){
+                        if(resp.result == 1)
+                            Toast.makeText(applicationContext, "서로 통했습니다!", Toast.LENGTH_SHORT).show()
+                        else
+                            Toast.makeText(applicationContext, "상대방과의 키워드 매칭에 실패했습니다", Toast.LENGTH_SHORT).show()
+                    }
+                }
+
+                override fun onFailure(call: Call<QuizAnswerConfirm>, t: Throwable) {
+                    Log.d("ChatRVAdapter", t.message.toString())
+                }
+
+            })
+    }
+
+    override fun onDestroy() {
+        super.onDestroy()
+        stompClient.disconnect()
     }
 
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/project/mbtree/view/chat/ChattingFragment.kt b/app/src/main/java/com/umc/project/mbtree/view/chat/ChattingFragment.kt
index e1fc241..dde8aea 100644
--- a/app/src/main/java/com/umc/project/mbtree/view/chat/ChattingFragment.kt
+++ b/app/src/main/java/com/umc/project/mbtree/view/chat/ChattingFragment.kt
@@ -1,17 +1,35 @@
-package com.umc.project.mbtree.view.chat
+package com.umc.project.mbtree.view
 
+import android.content.Intent
+import android.graphics.drawable.Drawable
 import android.os.Bundle
+import android.util.Log
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import android.widget.Toast
 import androidx.fragment.app.Fragment
 import androidx.recyclerview.widget.LinearLayoutManager
+import com.umc.project.mbtree.R
+import com.umc.project.mbtree.data.Chat
+import com.umc.project.mbtree.data.ChatList
+import com.umc.project.mbtree.data.MatchResponse
 import com.umc.project.mbtree.data.User
 import com.umc.project.mbtree.databinding.FragmentChattingBinding
+import com.umc.project.mbtree.remote.ChatRetrofitInterface
+import com.umc.project.mbtree.remote.getRetrofit
+import com.umc.project.mbtree.view.chat.ChatListRVAdapter
+import com.umc.project.mbtree.view.chat.ChattingActivity
+import retrofit2.Call
+import retrofit2.Callback
+import retrofit2.Response
 
 class ChattingFragment: Fragment() {
 
     lateinit var binding: FragmentChattingBinding
+    private val serverUrl = "https://mbtree.site"
+    private val userId = 3
+    var datas = ArrayList<User>()
 
     override fun onCreateView(
         inflater: LayoutInflater,
@@ -20,19 +38,94 @@ class ChattingFragment: Fragment() {
     ): View? {
         binding = FragmentChattingBinding.inflate(inflater, container, false)
 
-        //dummy data
-        var datas = ArrayList<User>()
-        datas.apply {
-            add(User(1, "user1", "123", "ISFP"))
-            add(User(2, "user2", "234", "ISFJ"))
-            add(User(3, "user3", "345", "ESFP"))
-        }
+        getChatList(userId)
+
+        //매칭시작 버튼클릭
+        binding.btnChatListStart.setOnClickListener{
+//            Toast.makeText(context, "매칭시작", Toast.LENGTH_SHORT).show()
+            binding.btnChatListStart.setBackgroundColor(resources.getColor(R.color.white))
+            binding.btnChatListStart.setTextColor(resources.getColor(R.color.main_color))
+            binding.btnChatListStart.text = "매칭 중입니다..."
 
-        //채팅리스트 어댑터 붙이기
-        val adaper = ChatListRVAdapter(datas)
-        binding.rvChatList.adapter = adaper
-        binding.rvChatList.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
+            matchingStart(userId)
+        }
 
         return binding.root
     }
+
+    private fun getChatList(userId: Int){
+        val retrofitService = getRetrofit().create(ChatRetrofitInterface::class.java)
+        retrofitService.getChatListById(userId)
+            .enqueue(object : Callback<ChatList>{
+                override fun onResponse(call: Call<ChatList>, response: Response<ChatList>) {
+                    var cList = response.body()!!
+
+                    if(cList.isSuccess){
+                        Log.d("CHATLIST", "isSuccess:" + cList.isSuccess)
+                        Log.d("CHATLIST", "code:" + cList.code)
+                        Log.d("CHATLIST", "message:" + cList.message)
+
+                        for(c in cList.result){
+                            var u1 = c.user1
+                            var u2 = c.user2
+
+                            if(u1 != null && u2 != null) {
+                                Log.d("CHATLIST", "uuid: " + u1?.uuid)
+                                datas.add(User(1, u1.uuid, u1.name, u1.email, u1.mbti, u1.location, u1.token, u1.point, u1.createDate))
+//                                datas.add(User(2, u2.uuid, u2.name, u2.email, u2.mbti, u2.location, u2.token, u2.point, u2.createDate))
+
+                                //채팅리스트 어댑터 붙이기
+                                val adaper = ChatListRVAdapter(datas)
+                                binding.rvChatList.adapter = adaper
+                                binding.rvChatList.layoutManager = LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false)
+                                Log.d("CHATLIST", "Adatper붙이기 완료")
+                            }
+                        }
+                    }
+
+                }
+
+                override fun onFailure(call: Call<ChatList>, t: Throwable) {
+                    Log.d("CHATLIST", t.message.toString())
+                }
+
+            })
+    }
+
+    private fun matchingStart(userId: Int){
+        val retrofitService = getRetrofit().create(ChatRetrofitInterface::class.java)
+        retrofitService.matchingChat(userId)
+            .enqueue(object : Callback<MatchResponse> {
+                override fun onResponse(call: Call<MatchResponse>, response: Response<MatchResponse>) {
+                    var resp = response.body()!!
+
+                    if(resp.responseResult == "SUCCESS"){
+                        Log.d("CHAT MATCH", "responseResult: " + resp.responseResult)
+                        Log.d("CHAT MATCH", "chatRoomId: " + resp.chatRoomId)
+
+                        changeButton()
+
+                        val intent = Intent(activity, ChattingActivity::class.java)
+                        intent.putExtra("roomId", resp.chatRoomId)
+                        Log.d("CHAT LIST", "매칭된 roomId: " + resp.chatRoomId)
+                        startActivity(intent)
+                    }
+                    else{
+                        Log.d("CHAT MATCH", "responseResult: " + resp.responseResult)
+                        changeButton()
+                    }
+                }
+
+                override fun onFailure(call: Call<MatchResponse>, t: Throwable) {
+                    Log.d("CHAT MATCH", t.message.toString())
+                }
+
+            })
+    }
+
+    private fun changeButton()  {
+        binding.btnChatListStart.setBackgroundResource((R.drawable.bg_textview))
+        binding.btnChatListStart.setTextColor(resources.getColor(R.color.white))
+        binding.btnChatListStart.text = "매칭 시작"
+    }
 }
\ No newline at end of file
diff --git a/app/src/main/java/com/umc/project/mbtree/view/friend/FriendFragment.kt b/app/src/main/java/com/umc/project/mbtree/view/friend/FriendFragment.kt
index 63130d1..9036a4e 100644
--- a/app/src/main/java/com/umc/project/mbtree/view/friend/FriendFragment.kt
+++ b/app/src/main/java/com/umc/project/mbtree/view/friend/FriendFragment.kt
@@ -26,9 +26,9 @@ class FriendFragment: Fragment() {
         //dummy data
         var datas = ArrayList<User>()
         datas.apply {
-            add(User(1, "user1", "123", "ISFP"))
-            add(User(2, "user2", "234", "ISFJ"))
-            add(User(3, "user3", "345", "ESFP"))
+            add(User(1, "22d31", "user1", "test@naver.com", "isfp", "temp", "ase2", 0, null))
+            add(User(2, "22d31", "user2", "test@naver.com", "isfp", "temp", "ase2", 0, null))
+            add(User(3, "22d31", "user3", "test@naver.com", "isfp", "temp", "ase2", 0, null))
         }
 
 
diff --git a/app/src/main/java/com/umc/project/mbtree/view/tree/LockerBottomSheet.kt b/app/src/main/java/com/umc/project/mbtree/view/tree/LockerBottomSheet.kt
index db93da1..b00c7bc 100644
--- a/app/src/main/java/com/umc/project/mbtree/view/tree/LockerBottomSheet.kt
+++ b/app/src/main/java/com/umc/project/mbtree/view/tree/LockerBottomSheet.kt
@@ -29,9 +29,9 @@ class LockerBottomSheet: BottomSheetDialogFragment() {
         binding = LockerLayoutBinding.inflate(inflater, container, false)
         var datas = ArrayList<User>()
         datas.apply {
-            add(User(1, "user1", "123", "ISFP"))
-            add(User(2, "user2", "234", "ISFP"))
-            add(User(3, "user3", "345", "ISFP"))
+            add(User(1, "22d31", "user1", "test@naver.com", "isfp", "temp", "ase2", 0, null))
+            add(User(2, "22d31", "user2", "test@naver.com", "isfp", "temp", "ase2", 0, null))
+            add(User(3, "22d31", "user3", "test@naver.com", "isfp", "temp", "ase2", 0, null))
         }
 
         val adaper = LockerRVAdapter(datas)
diff --git a/app/src/main/res/layout/activity_chatting.xml b/app/src/main/res/layout/activity_chatting.xml
index 3d1850b..a7f854b 100644
--- a/app/src/main/res/layout/activity_chatting.xml
+++ b/app/src/main/res/layout/activity_chatting.xml
@@ -34,7 +34,6 @@
                 android:id="@+id/iv_chat_profile"
                 android:layout_width="match_parent"
                 android:layout_height="match_parent"
-                android:scaleType="fitCenter"
                 android:background="@color/grey_76"
                 android:src="@drawable/ic_my"/>
         </androidx.cardview.widget.CardView>
@@ -95,11 +94,13 @@
         android:layout_marginTop="28dp"
         android:layout_marginHorizontal="20dp"
         app:layout_constraintTop_toBottomOf="@+id/tv_chat_keyword"
+        android:layout_marginBottom="20dp"
         app:layout_constraintStart_toStartOf="parent"
-        app:layout_constraintEnd_toEndOf="parent"/>
+        app:layout_constraintEnd_toEndOf="parent"
+        app:layout_constraintBottom_toTopOf="@+id/et_chat_send"/>
 
     <EditText
-        android:id="@+id/et_chat_sent"
+        android:id="@+id/et_chat_send"
         android:layout_width="match_parent"
         android:layout_height="50dp"
         android:paddingVertical="5dp"
diff --git a/app/src/main/res/layout/fragment_chatting.xml b/app/src/main/res/layout/fragment_chatting.xml
index a0e61f6..deeb34e 100644
--- a/app/src/main/res/layout/fragment_chatting.xml
+++ b/app/src/main/res/layout/fragment_chatting.xml
@@ -36,6 +36,7 @@
         android:id="@+id/btn_chat_list_start"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
+        style="@style/Widget.AppCompat.Button.Borderless"
         android:text="매칭 시작"
         android:textSize="15sp"
         android:textColor="@color/white"
diff --git a/app/src/main/res/layout/item_chat_me.xml b/app/src/main/res/layout/item_chat_me.xml
index aacb4f3..0de9c09 100644
--- a/app/src/main/res/layout/item_chat_me.xml
+++ b/app/src/main/res/layout/item_chat_me.xml
@@ -12,7 +12,8 @@
         android:text="메시지 테스트"
         android:textSize="@dimen/chat_text"
         android:textColor="@color/black"
-        android:padding="5dp"
+        android:paddingVertical="5dp"
+        android:paddingHorizontal="8dp"
         android:background="@drawable/tv_chat_me"
         app:layout_constraintEnd_toEndOf="parent"
         app:layout_constraintTop_toTopOf="parent"/>
diff --git a/app/src/main/res/layout/item_chat_you.xml b/app/src/main/res/layout/item_chat_you.xml
index c6e36fd..84d99d5 100644
--- a/app/src/main/res/layout/item_chat_you.xml
+++ b/app/src/main/res/layout/item_chat_you.xml
@@ -12,7 +12,8 @@
         android:text="메시지 테스트"
         android:textSize="@dimen/chat_text"
         android:textColor="@color/black"
-        android:padding="5dp"
+        android:paddingVertical="5dp"
+        android:paddingHorizontal="8dp"
         android:background="@drawable/tv_chat_you"
         app:layout_constraintStart_toStartOf="parent"
         app:layout_constraintTop_toTopOf="parent"/>
diff --git a/build.gradle b/build.gradle
index 932e4c5..c440181 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,4 +1,11 @@
 // Top-level build file where you can add configuration options common to all sub-projects/modules.
+buildscript {
+    repositories {
+        jcenter()
+        maven { url "https://jitpack.io" }
+    }
+}
+
 plugins {
     id 'com.android.application' version '7.2.1' apply false
     id 'com.android.library' version '7.2.1' apply false
diff --git a/settings.gradle b/settings.gradle
index cba649d..3db1eef 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -14,6 +14,8 @@ dependencyResolutionManagement {
 
         // 카카오 sdk 레포지토리 설정
         maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' }
+        // stomp관련 설정
+        maven { url "https://jitpack.io" }
     }
 }
 rootProject.name = "mbtree"