์ „์ฒด ๊ธ€

iOS ๊ฟ€์žผ!
๐Ÿ’ป ๊ฐœ๋ฐœ/iOS

[TIL] 22.04.20

๊ณต๋ถ€ํ•œ ๊ฒƒ ์ •์ฒ˜๊ธฐ 21๋…„ 3ํšŒ์ฐจ ์•Œ๊ฒŒ๋œ ๊ฒƒ [1๊ณผ๋ชฉ] ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ 1. ๋žŒ๋ฐ”์šฐ ๋ถ„์„ ๊ธฐ๋ฒ• - ๊ฐ์ฒด ๋ชจ๋ธ๋ง -> ๋™์  ๋ชจ๋ธ๋ง -> ๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง ์ˆœ์œผ๋กœ ์ง„ํ—น - ๊ฐ์ฒด ๋ชจ๋ธ๋ง : ์ •๋ณด ๋ชจ๋ธ๋ง์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅด๋ฉฐ ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ž‘์„ฑ - ๋™์  ๋ชจ๋ธ๋ง : ์ƒํƒœ ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์ž‘์„ฑ - ๊ธฐ๋Šฅ ๋ชจ๋ธ๋ง : ์ž๋ฃŒ ํ๋ฆ„๋„(Data Flow Diagram)์„ ์ž‘์„ฑ 2. ์š”๊ตฌ์‚ฌํ•ญ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค ๋„์ถœ(์š”๊ตฌ์‚ฌํ•ญ ์ˆ˜์ง‘) -> ๋ถ„์„ -> ๋ช…์„ธ -> ํ™•์ธ(์š”๊ตฌ์‚ฌํ•ญ ๊ฒ€์ฆ) 3. ์• ์ž์ผ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค - ์ต์ŠคํŠธ๋ฆผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ : XP, ๊ณ ๊ฐ๊ณผ ํ•จ๊ผ 2์ฃผ ์ •๋„์˜ ๋ฐ˜๋ณต ๊ฐœ๋ฐœ, TDD - ์Šคํฌ๋Ÿผ : 30์ผ๋งˆ๋‹ค ๋™์ž‘ ๊ฐ€๋Šฅํ•œ ์ œํ’ˆ์„ ์ œ๊ณตํ•˜๋Š” ์Šคํ”„๋ฆฐํŠธ ๊ฐœ๋ฐœ 4. UML ๊ด€๊ณ„ - ์ผ๋ฐ˜ํ™” : Generalization, ์‹ค์„  ์‚ผ๊ฐ ํ™”์‚ดํ‘œ, ์ผ๋ฐ˜์ ์ธ ๊ฒƒ๊ณผ ..

๐Ÿ’ป ๊ฐœ๋ฐœ/iOS

[TIL] 22.04.18

๊ณต๋ถ€ํ•œ ๊ฒƒ ์ •์ฒ˜๊ธฐ 21๋…„ 1ํšŒ์ฐจ ์•Œ๊ฒŒ๋œ ๊ฒƒ [1๊ณผ๋ชฉ] ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ 1. ๋””์ž์ธ ํŒจํ„ด - ์ƒ์„ฑ ํŒจํ„ด : ์ถ”์ƒ ํŒฉํ† ๋ฆฌ, ๋นŒ๋”, ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ, ํ”„๋กœํ† ํƒ€์ž…, ์‹ฑ๊ธ€ํ†ค - ๊ตฌ์กฐ ํŒจํ„ด : ์–ด๋Œ‘ํ„ฐ, ๋ธŒ๋ฆฌ์ง€, ์ปดํผ์ง€ํŠธ, ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ, ํผ์‚ฌ๋“œ, ํ”„๋ก์‹œ - ํ–‰์œ„ ํŒจํ„ด : ์ปค๋งจํŠธ, ์˜ต์ €๋ฒ„, ์ „๋žต, ์ƒํƒœ 2. ๊ฐ์ฒด์ง€ํ–ฅ ๋ถ„์„ ๋ฐฉ๋ฒ•๋ก  - Cord-Yourdon : E-R ๋‹ค์ด์–ด๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด์˜ ํ–‰์œ„๋ฅผ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ๋ง ํ•˜๋Š”๋ฐ ์ดˆ์  3. ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ ๋ถ„์„ - ํ”Œ๋žซํผ ๊ธฐ๋Šฅ ๋ถ„์„ - ํ”Œ๋žซํผ ์„ฑ๋Šฅ ํŠน์„ฑ ๋ถ„์„ - ์šด์˜์ฒด์ œ ๋ถ„์„ - ๋„คํŠธ์›Œํฌ ๋ถ„์„ - DBMS ๋ถ„์„ 4. UML - ํด๋ž˜์Šค ๋‹ค์ด์–ด๊ทธ๋žจ : ์‹œ์Šคํ…œ์„ ๊ตฌ์„ฑํ•˜๋Š” ํด๋ž˜์Šค๋“ค ์‚ฌ์ด์˜ ๊ด€๊ณ„๋ฅผ ํ‘œ์‹œ - ์•กํ‹ฐ๋น„ํ‹ฐ ๋‹ค์ด์–ด๊ทธ๋žจ : ์‹œ์Šคํ…œ ๋‚ด๋ถ€์— ์กด์žฌํ•˜๋Š” ์—ฌ๋Ÿฌ ํ–‰์œ„์™€ ๋ถ„๊ธฐ ๋ฐ ์กฐ๊ฑด์„ ํ‘œ์‹œ ..

๐Ÿ’ป ๊ฐœ๋ฐœ/iOS

[TIL] 22.04.17

๊ณต๋ถ€ํ•œ ๊ฒƒ ์ •์ฒ˜๊ธฐ 22๋…„ 1ํšŒ์ฐจ ์•Œ๊ฒŒ๋œ ๊ฒƒ [1๊ณผ๋ชฉ] ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ 1. ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„ ๋ฐฉ๋ฒ• - ์ƒํ–ฅ์‹ ์„ค๊ณ„ ๋ฐฉ๋ฒ• : ๋ฐ”ํ…€์—…, ์ž‘์€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ํฐ ๋ฌธ์ œ๋กœ ํ†ตํ•ฉ, ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Java) - ํ•˜ํ–ฅ์‹ ์„ค๊ณ„ ๋ฐฉ๋ฒ• : ํƒ‘๋‹ค์šด, ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋ถ„ํ•ด, ์ ˆ์ฐจ ์ค‘์‹ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (C) 2. ๋ฐ์ดํ„ฐ ํ๋ฆ„๋„ - ํ”„๋กœ์„ธ์Šค : ์› - ๋ฐ์ดํ„ฐ ํ๋ฆ„ : ํ™”์‚ดํ‘œ - ๋ฐ์ดํ„ฐ ์ €์žฅ : ํ‰ํ–‰์„  - ์ข…๋ฃŒ : ์‚ฌ๊ฐํ˜• 3. UI ์„ค๊ณ„ ๋„๊ตฌ - ์™€์ด์–ด ํ”„๋ ˆ์ž„ : ํŽ˜์ด์ง€์— ๋Œ€ํ•œ ๋Œ€๋žต์ ์ธ ๋ ˆ์ด์•„์›ƒ ๋ฐ UI ์š”์†Œ ์„ค๊ณ„ - ๋ชฉ์—… : ์™€์ด์–ด ํ”„๋ ˆ์ž„์—์„œ ๋””์ž์ธ, ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์„ค๋ช…, ํ‰๊ฐ€๋ฅผ ์œ„ํ•ด ์‹ค์ œ ํ™”๋ฉด๊ณผ ์œ ์‚ฌํ•˜๋„๋ก UI๋ฅผ ๋ณ€๊ฒฝ (์ •์ ) - ์Šคํ† ๋ฆฌ๋ณด๋“œ : ์™€์ด์–ด ํ”„๋ ˆ์ž„์—์„œ ์ฝ˜ํ…์ธ  ์„ค๋ช…, ํ๋ฆ„๋„ ์ถ”๊ฐ€ - ํ”„๋กœํ† ํƒ€์ž… : ์™€์ด์–ด ํ”„๋ ˆ์ž„..

๐Ÿ’ป ๊ฐœ๋ฐœ/Android

[Android] MVVM ํŒจํ„ด ์ ์šฉ๊ธฐ - 1

GitHub - k906506/MVVM: ๐Ÿ”จ MVVM์ด ๋ญ์—์š”? ๐Ÿ”จ MVVM์ด ๋ญ์—์š”? Contribute to k906506/MVVM development by creating an account on GitHub. github.com ์š”์ฆ˜ MVVM ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ณ  ์žˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์•ฑ ๊ตฌํ˜„ํ•  ๋•Œ ๊ทธ๋ƒฅ ์•กํ‹ฐ๋น„ํ‹ฐ์— ๋‹ค ๋•Œ๋ ค๋ฐ•์•˜์—ˆ๋Š”๋ฐ ๋ชจ๋ธ์ด๋ž‘ ๋ทฐ๊ฐ€ ๋„ˆ๋ฌด ๊ฐ•ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋˜์–ด ์žˆ๋Š” ๋Š๋‚Œ์ด ๊ฐ•ํ–ˆ๋‹ค. ๋˜ํ•œ ๋Œ€๋ถ€๋ถ„์˜ ๋กœ์ง์„ ๋ทฐ(์•กํ‹ฐ๋น„ํ‹ฐ)์—์„œ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ•˜๊ณ  ์žˆ์—ˆ๊ณ  ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋งค์šฐ ๋–จ์–ด์กŒ์—ˆ๋‹ค. ์‹ค์ œ๋กœ ๊ฒจ์šธ๋ฐฉํ•™์— ์ง„ํ–‰ํ–ˆ๋˜ ๊ธ€๋กœ๋ฒŒ์ธ์žฌํŠธ๋ž™ ๋•Œ ์–ดํ”Œ ์„ ํ•˜๋‚˜ ๋งŒ๋“ค์—ˆ๊ณ  ๋‚˜๋ฆ„ ๋ถ„๋ฆฌํ•œ๋‹ค๊ณ  ๋ถ„๋ฆฌํ–ˆ๋Š”๋ฐ ์ง„์งœ ์žฌ์‚ฌ์šฉ์„ฑ์ด 0 ์ด์—ˆ๋‹ค. MVC ๊ฐ€ ๊ตฌํ˜„ํ•˜๊ธฐ๋Š” ์ •๋ง ํŽธํ–ˆ์ง€๋งŒ ์ด ๊ธฐํšŒ์— ํŒจํ„ด ๊ณต๋ถ€๋„ ํ• ๊ฒธ MVVM ์„ ์ ‘ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๋ฌผ๋ก  MVC ..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / Kotlin] BOJ 14889 - ์Šคํƒ€ํŠธ์™€ ๋งํฌ

๋ฌธ์ œ ํ’€์ด ์–ธ์–ด Kotlin ์ฝ”๋“œ import java.lang.Integer.min import java.util.* import kotlin.math.abs import kotlin.system.exitProcess lateinit var board: Array lateinit var visited: Array var min_value = Int.MAX_VALUE var n = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() board = Array(n) { Array(n) { nextInt() } } visited = Array(n) { 0 } search(0, 0) println(min_value) } fun search(index: Int,..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / Kotlin] BOJ 1759 - ์•”ํ˜ธ ๋งŒ๋“ค๊ธฐ

๋ฌธ์ œ ํ’€์ด ์–ธ์–ด Kotlin ์ฝ”๋“œ import java.util.* var l = 0 var c = 0 lateinit var array: Array lateinit var sortedArray: Array lateinit var visited: Array var stringBuilder = StringBuilder() fun main() = with(Scanner(System.`in`)) { l = nextInt() c = nextInt() array = Array(c) { next() } sortedArray = array.sortedArray() visited = Array(c) { 0 } dfs(0, 0) println(stringBuilder) } fun dfs(index: Int, depth:..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / Kotlin] BOJ 1987 - ์•ŒํŒŒ๋ฒณ

๋ฌธ์ œ ํ’€์ด ์–ธ์–ด Kotiln ์ฝ”๋“œ import java.lang.Integer.max import java.util.* var n = 0 var m = 0 var max_value = 0 val dx = listOf(-1, 1, 0, 0) val dy = listOf(0, 0, -1, 1) lateinit var board: Array lateinit var check: Array fun main() = with(Scanner(System.`in`)) { n = nextInt() m = nextInt() board = Array(n) { Array(m) { "" } } check = Array(26) { 0 } for (i in 0 until n) { val s = next().chunked(1) for..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Math

[์ˆ˜ํ•™ / Kotlin] BOJ 11050 ~ 11051 ์ดํ•ญ ๊ณ„์ˆ˜ (1 ~ 2)

์ดํ•ญ ๊ณ„์ˆ˜ 1 ๋ฌธ์ œ ํ’€์ด ์–ธ์–ด Kotiln ์ฝ”๋“œ import java.util.* lateinit var array: Array var n = 0 var k = 0 fun main() = with(Scanner(System.`in`)) { n = nextInt() k = nextInt() // ์žฌ๊ท€ ๋Œ€์‹  DP๋กœ ํŒฉํ† ๋ฆฌ์–ผ ๊ตฌํ˜„ array = Array(n + 1) { 1 } // ํŒฉํ† ๋ฆฌ์–ผ ๊ณ„์‚ฐ for (i in 2..n) { array[i] = array[i - 1] * i } // ์กฐํ•ฉ ๊ณต์‹ ์ ์šฉ // nCr = n! / (n-r)! * r! println(array[n] / (array[n - k] * array[k])) } ํ’€์ด ๋ฐฉ๋ฒ• ๊ณ ๋“ฑํ•™๊ต ๋•Œ ๋ฐฐ์šด ์กฐํ•ฉ ๊ณต์‹ ์„ ์ ์šฉํ•˜๋ฉด ์–ด๋ ต์ง€ ์•Š๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Implementation

[๊ตฌํ˜„ / Kotlin] BOJ 13459 - ๊ตฌ์Šฌ ํƒˆ์ถœ

๋ฌธ์ œ ํ’€์ด ์–ธ์–ด Kotlin ์ฝ”๋“œ import java.util.* data class Point( val x: Int, val y: Int ) data class Points( val red_x: Int, val red_y: Int, val blue_x: Int, val blue_y: Int, val depth: Int ) data class Infos( val x: Int, val y: Int, val cnt: Int ) lateinit var array: Array val dx = arrayOf(1, -1, 0, 0) val dy = arrayOf(0, 0, 1, -1) var n = 0 var m = 0 var red = Point(0, 0) var blue = Point(0, 0) fun mai..

โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Back Tracking

[๋ฐฑํŠธ๋ž˜ํ‚น / Kotlin] BOJ 14888 - ์—ฐ์‚ฐ์ž ๋ผ์›Œ๋„ฃ๊ธฐ

๋ฌธ์ œ ํ’€์ด ์–ธ์–ด kotlin ์ฝ”๋“œ import java.lang.Integer.max import java.lang.Integer.min import java.util.* var n = 0 var max_value = Int.MIN_VALUE var min_value = Int.MAX_VALUE lateinit var array: Array lateinit var operator: Array fun main() = with(Scanner(System.`in`)) { n = nextInt() array = Array(n) { nextInt() } operator = Array(4) { nextInt() } calculate(array[0], 1) println(max_value) println(min_va..

kodo_o
๐ŸŽ๐Ÿ