diff --git a/code_convention.md b/code_convention.md
new file mode 100644
index 0000000..6ca0b69
--- /dev/null
+++ b/code_convention.md
@@ -0,0 +1,228 @@
+# Code Convention
+
+
+
+## binding μμ± κ΄λ ¨
+
+```kotlin
+
+lateinit var binding: ActivityMainBinding
+
+override fun onCreate(...) {
+ binding = ActivityMainBinding.inflate(layoutInflater)
+ setContentView(binding.root)
+}
+```
+
+## μ€λ³΅μ½λ
+μ€λ³΅λ μ½λκ° μμΌλ©΄ μΆν μ μ§λ³΄μκ° μ΄λ ΅κ³ , λ³κ²½ μ μ€μν κ°λ₯μ±μ΄ 컀μ§λ―λ‘ νΌνλ κ²μ΄ μ’μ΅λλ€. 곡ν΅λ λ‘μ§μ Util ν΄λμ€λ‘ λΉΌμ μ¬μ¬μ©μ±μ λμ΄λ κ²μ΄ μ’μ΅λλ€. λν λ©μλμ κΈΈμ΄λ λ무 κΈΈλ©΄ κ°λ
μ±μ΄ λ¨μ΄μ§λ―λ‘, 10~20λΌμΈ μ λλ‘ μ μ§νλ κ²μ΄ μ’μ΅λλ€.
+
+- μ€λ³΅μ½λ μ κ±° μ
+ ```kotlin
+ fun showErrorDialog(context: Context) {
+ AlertDialog.Builder(context)
+ .setTitle("Error")
+ .setMessage("An error occurred.")
+ .setPositiveButton("OK") { dialog, _ -> dialog.dismiss() }
+ .show()
+ }
+
+ fun showSuccessDialog(context: Context) {
+ AlertDialog.Builder(context)
+ .setTitle("Success")
+ .setMessage("Operation completed successfully.")
+ .setPositiveButton("OK") { dialog, _ -> dialog.dismiss() }
+ .show()
+ }
+ ```
+
+- μ€λ³΅μ½λ μ κ±° ν(use util)
+ ```kotlin
+ fun showDialog(
+ context: Context,
+ title: String,
+ message: String,
+ positiveButtonText: String = "OK"
+ ) {
+ AlertDialog.Builder(context)
+ .setTitle(title)
+ .setMessage(message)
+ .setPositiveButton(positiveButtonText) { dialog, _ -> dialog.dismiss() }
+ .show()
+ }
+
+ fun showErrorDialog(context: Context) {
+ showDialog(context, title = "Error", message = "An error occurred.")
+ }
+
+ fun showSuccessDialog(context: Context) {
+ showDialog(context, title = "Success", message = "Operation completed successfully.")
+ }
+ ```
+
+## Scope ν¨μ
+Scope ν¨μ(let, apply, run, also, with)λ κ°μ²΄λ λ‘μ§μ κ°κ²°νκ² μ²λ¦¬νκ³ , κ°λ
μ±μ λμΌ μ μλλ‘ λμμ€λλ€. μ μ ν Scope ν¨μλ₯Ό μ¬μ©νλ κ²μ΄ μ€μνλ©°, μ½λ κ°λ
μ± λ° λͺ
νμ±μ μ μ§ν΄μΌ ν©λλ€.
+```kotlin
+// let μμ
+val user = api.getUser()
+user?.let {
+ // itμ ν΅ν΄ user κ°μ²΄λ₯Ό μμ νκ² μ¬μ©
+ println(it.name)
+}
+
+// apply μμ
+val view = TextView(context).apply {
+ text = "Hello"
+ textSize = 20f
+ setTextColor(Color.BLACK)
+}
+
+// run μμ
+val result = run {
+ val x = 10
+ val y = 20
+ x + y // λ§μ§λ§ λΌμΈμ΄ λ°νκ°
+}
+```
+
+
+## μμ
+νλμ½λ©λ κ°μ μλλ₯Ό νμ
νκΈ° μ΄λ ΅κ³ , μ μ§λ³΄μκ° μ΄λ €μΈ μ μμΌλ―λ‘ μμλ‘ μ μν΄μ κ΄λ¦¬νλ κ²μ΄ μ’μ΅λλ€. λν, μλ―Έ μλ μ΄λ¦μ λΆμ¬ν΄ μ½λ κ°λ
μ±μ λμΌ μ μμ΅λλ€.
+
+- νλμ½λ©λ μμ:
+ ```
+ kotlin
+ fun setTextSize(textView: TextView) {
+ textView.textSize = 16f // νλμ½λ©λ μ«μ
+ }
+ ```
+
+- μμνλ μ½λ
+ ```kotlin
+ const val DEFAULT_TEXT_SIZE = 16f
+
+ fun setTextSize(textView: TextView) {
+ textView.textSize = DEFAULT_TEXT_SIZE // μμ μ¬μ©
+ }
+ ```
+
+## μ£Όμμ μμΉ
+
+ν¨μ μ£Όμμ μμΉ
+
+```kotlin
+// λͺ¨λ μ£Όμμ ν¨μ μ μΈ λ°λ‘ μμ
+fun foo(f: Any) {
+ ...
+}
+
+/**
+ * μ¬λ¬ μ€μΌ κ²½μ°μλ
+ * μ΄ νμμΌλ‘
+ */
+fun bar(b: Bar) {
+ ..
+}
+```
+
+## ν¨μ νλΌλ―Έν°
+
+2κ° μ΄νμΌ κ²½μ° ν μ€μ
+
+```kotlin
+fun foo(a: Int, t: List) {
+ ...
+}
+```
+
+3κ° μ΄μμΌ κ²½μ° μ¬λ¬ μ€λ‘ split
+
+```kotlin
+fun bar(
+ b: Float,
+ a: List>,
+ c: Context, // trailing comma λ£κΈ°
+) {
+ ...
+}
+```
+
+## ν¨μ νλΌλ―Έν°μ μ°μ μμ
+
+- 1μμ: κΈ°λ³Έκ°μ΄ μλ νλΌλ―Έν°
+- 2μμ: Modifier (+modiferλ κΈ°λ³Έκ°μ λ£μ΄μ£ΌκΈ°)
+
+```kotlin
+fun Switch(
+ onToggle: (SwitchState) -> Unit,
+ modifier: Modifier = Modifier,
+ switchState: SwitchState = SwitchState.Unselected
+)
+```
+
+## π¨ λ§μ νλΌλ―Έν° vs κ°μ²΄ μ체λ₯Ό λκΈ°κΈ°
+- λ
Όμκ° νμν©λλ€!
+
+## μ€κ΄νΈ
+
+if, for, when λΈλμΉ, do λ° while λ¬Έκ³Ό ννμμ κ²½μ° λ³Έλ¬Έμ΄ λΉμ΄ μκ±°λ λ¨μΌ κ΅¬λ¬Έλ§ ν¬ν¨νλ κ²½μ°μλ μ€κ΄νΈκ° νμν©λλ€.
+
+```kotlin
+if (string.isEmpty())
+ return // WRONG!
+
+if (string.isEmpty()) {
+ return // Okay
+}
+
+if (string.isEmpty()) return // WRONG
+else doLotsOfProcessingOn(string, otherParametersHere)
+
+if (string.isEmpty()) {
+ return // Okay
+} else {
+ doLotsOfProcessingOn(string, otherParametersHere)
+}
+```
+
+λΉλΈλλ μ€κ΄νΈ μ΄νμλ enterν΄μΌν©λλ€.
+
+```kotlin
+try {
+ doSomething()
+} catch (e: Exception) {} // WRONG!
+
+try {
+ doSomething()
+} catch (e: Exception) {
+} // Okay
+```
+
+
+## ννμ
+
+ννμμΌλ‘ μ¬μ©λλ if/else 쑰건문μμλ μ 체 ννμμ΄ ν μ€μ λ€μ΄κ°λ κ²½μ°μλ§ μ€κ΄νΈλ₯Ό μλ΅ν μ μμ΅λλ€.
+
+```kotlin
+val value = if (string.isEmpty()) 0 else 1 // Okay
+
+val value = if (string.isEmpty()) // WRONG!
+ 0
+else
+ 1
+
+val value = if (string.isEmpty()) { // Okay
+ 0
+} else {
+ 1
+}
+```
+
+
+
+## reference
+- https://it-techtree.tistory.com/entry/codesmell-refactoring
+- https://github.com/PRNDcompany/android-style-guide
\ No newline at end of file