header-img
์ฒœ์ฒœํžˆ ๊พธ์ค€ํ•˜๊ฒŒ
์ „์ฒด ๊ธ€ 103
[Swift] ๋‚˜์ด์ˆœ ์ •๋ ฌ
2025.08.20
https://www.acmicpc.net/problem/10814 import Foundationstruct Person { var name: String var age: Int var index: Int init(_ info: [String], index: Int) { self.name = info[1] self.age = Int(info[0])! self.index = index }}let N = Int(readLine()!)!var people: [Person] = []for index in 0..
[Swift] ์ขŒํ‘œ ์ •๋ ฌํ•˜๊ธฐ
2025.08.20
https://www.acmicpc.net/problem/11650 import Foundationstruct Index { var x: Int var y: Int}let N = Int(readLine()!)!var locations: [Index] = []for _ in 0..
[Swift] ๊ตญ์˜์ˆ˜
2025.08.20
https://www.acmicpc.net/problem/10825 import Foundationstruct Student { var name: String var korean: Int var english: Int var math: Int init(_ info: [String]) { self.name = info[0] self.korean = Int(info[1])! self.english = Int(info[2])! self.math = Int(info[3])! }}let N = Int(readLine()!)!var students: [Student] = []for _ in 0..
list img
[Objective-C]SceneDelegate ์ดํ›„ ๋ฐ”๋€ UIWindow ์ ‘๊ทผ๋ฒ•
2025.06.13
์•ˆ๋…•ํ•˜์„ธ์š”?iOS 13์— ๋ฐ”๋€ ๊ฑธ ์™œ 2025๋…„์—... ...????? ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค๊ธฐ๋Š” ํ•˜์ง€๋งŒ์‚ด๋‹ค๋ณด๋ฉด ์ดํ•ดํ•  ์ˆ˜ ์—†๋Š” ์ผ์ด ์žˆ๋Š” ๋ฒ•์ด๋‹ค ๋ณดํ†ต ํšŒ์‚ฌ์— ๋‚จ์•„ ์žˆ๋Š” ๋ ˆ๊ฑฐ์‹œ ์ฝ”๋“œ๊ฐ€ ๊ทธ๋ ‡๋‹ค ์ฐพ์•„๋ณด๋ฉด Swift ๊ธฐ๋ฐ˜ ์ฝ”๋“œ๋“ค์€ ๋งŽ์ด ๋‚˜์˜ค๋Š”๋ฐ Objective-C ์—์„œ ๋ณ€๊ฒฝํ•˜๋Š” ์ฝ”๋“œ๋“ค์€ ๋งŽ์ด ์•ˆ ๋‚˜์˜ค๋”๋ผ ๊ธฐ์กด ์ฝ”๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค.SceneDelegate๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ํ”„๋กœ์ ํŠธ์˜ ๊ฒฝ์šฐ,window ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ณดํ†ต ์•„๋ž˜์™€ ๊ฐ™์€ ์„ ์–ธ์„ ์‚ฌ์šฉํ•œ๋‹ค. UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow; UIWindow *window = [[[UIApplication sharedApplication] dele..
list img
[Instruments] Time Profiler ์‚ฌ์šฉํ•ด์„œ ์•ฑ์ด ๋ฉˆ์ถ”๋Š” ์ด์œ  ์ฐพ๊ธฐ
2025.05.08
๋ถ„๋ช…........์„ฑ๋Šฅ์„ ์ƒ๊ฐํ•˜๋ฉฐ ๊ฐœ๋ฐœํ•˜๋Š”๋ฐ๋„ ์–ด๋А ์ˆœ๊ฐ„ ๋ณด๋ฉด ์•ฑ์ด ๋ฉˆ์ถ”๋Š” hanging ํ˜„์ƒ์ด ์ผ์–ด๋‚  ๋•Œ๊ฐ€ ์žˆ๋‹ค. hanging ํ˜„์ƒ์ด ์ผ์–ด๋‚˜์ง€ ์•Š๋Š” ๊ฒŒ ์ตœ๊ณ ์ง€๋งŒ ๋งˆ์ฃผํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๋ฐ›์•„๋“ค์ด๊ณ  ์ด๋ณ„ํ•  ๋ฐฉ๋ฒ•์„ ๊ฐ•๊ตฌํ•ด์•ผ ํ•œ๋‹ค. ํ™˜๋ฉธ ๊ฒฉ๋…ธ ์ขŒ์ ˆ ์ข…๋ง์ด ์˜ค๊ธฐ ์ „์— ์ ๋‹นํžˆ ๊ณตํฌ์—์„œ ํƒˆ์ถœํ•ด์•ผ ํ•œ๋‹ค.Xcode๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์— ๋‚˜๋ฅผ ํ™”๋‚˜๊ฒŒ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์ง€๋งŒ ์ข‹์€ ๊ธฐ๋Šฅ์ด ๊ฝค ๋งŽ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๋Š” Instruments์ธ๋ฐ, hanging ํ˜„์ƒ debuging์— ์œ ์šฉํ•œ ๊ฑด Time profiler์ด๋‹ค. Time profiler ๋ฅผ ์ผœ๊ณ  ์™ผ์ชฝ ์œ„ ๋…นํ™” ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅธ ์ดํ›„์— ํ•ด๋‹น ํ˜„์ƒ์„ ์žฌํ˜„ํ•ด ๋ณด๋ฉด ์œ„์™€ ๊ฐ™์€ ์‚ฌ์ง„์ด ๋‚˜์˜จ๋‹ค.Hangs์— ๋‚˜์™€ ์žˆ๋Š” ๋นจ๊ฐ„ ๋ถ€๋ถ„์ด ์•ฑ์ด ๋ฉˆ์ถฐ ์žˆ๋˜ ๋ถ€๋ถ„์ด๋‹ค. ^__^ ์•„๋‹ˆ๋ฉด xcode์—์„œ..
Arithmetic Overflow in Swift & Objective-C
2025.04.07
์ตœ๊ทผ Objective-C๋กœ ๋œ ์†Œ์Šค๋ฅผ Swift๋กœ ๋ฐ”๊พธ๋Š” ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ๋‹ค. (์ด์   ๊ฑฐ์˜ ๋ง‰๋ฐ”์ง€๋ผ๋Š” ๊ฒƒ์ด ๋ฏฟ๊ธฐ์ง€ ์•Š๋Š”๋‹ค.)Objective-C์—์„œ๋Š” C์™€ ๋™์ผํ•œ ํƒ€์ž…์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ, Swift์—์„œ๋Š” C์˜ unsigned char, unsigned int ๊ฐ’๋“ค์„ UInt8, UInt32๋กœ ํฌํŒ…ํ•˜์—ฌ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์ค‘ ... ... arithmetic overflowThread 1: Swift runtime failure: arithmetic overflow ์ด ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋‚ฌ๋‹ค.ํ•ด๋‹น ์˜ค๋ฅ˜๋Š” ๋ฐ˜๋“œ์‹œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์—ˆ๋‹ค. (๋กœ์ง์ด ๊ทธ๋žฌ์Œ) ์—๋Ÿฌ ๋ฌธ๊ตฌ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด, ์‚ฐ์ˆ  ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ๋กœ ํƒ€์ž…์—์„œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ ์ด์ƒ์„ ๋„ฃ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ–ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋˜ ๋ณ€์ˆ˜๋Š” UInt8 ํƒ€์ž…์œผ๋กœ, ..
list img
2024๋…„ ํšŒ๊ณ : ์–ผ๋ ๋šฑ๋•… ์‹ ์ž…์„ ๋ฒ—์–ด๋‚˜๊ณ  ์‹ถ์–ด 6
2025.01.11
์ด์ œ ๋ง‰ ๊ฐœ๋ฐœ์„ ํ•œ ์ง€ 2๋…„ ์ •๋„๊ฐ€ ๋˜์—ˆ๋‹ค. ์ƒˆ์‚ผ... ... ์ฐธ ์‹œ๊ฐ„์ด ๋น ๋ฅธ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ  ๋А๋ฆฐ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.ํšŒ์‚ฌ์— ๋“ค์–ด์˜จ ์ง€๋Š” 10๊ฐœ์›”! ์ด์ œ 2์›”์ด๋ฉด 1๋…„์ฐจ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋œ๋‹ค๋Š” ์‚ฌ์‹ค์ด ์š”์ƒํ•˜๋‹ค. ... ...์ž‘๋…„ ์ด๋ง˜ ๋•Œ ์ทจ์ค€์„ ํ•˜๊ณ  ์žˆ์—ˆ๋‹ค๋Š” ์‚ฌ์‹ค์ด ๋” ์ด์ƒํ• ์ง€๋„ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์•„๋ฌดํŠผ.  2023๋…„ ํ•œ ํ•ด๋Š” ๋„์ „ํ•˜๊ณ , ๋ฐฐ์šฐ๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋ชจ๋‘ ์Ÿ์•˜๊ณ  2024๋…„์€ ๋ฐฐ์šฐ๊ณ , ๋˜ ์ ์‘ํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์„ ๋งŽ์ด ์“ด ๊ฒƒ ๊ฐ™๋‹ค. ์™œ ์ด๋ ‡๊ฒŒ ์‹œ๊ฐ„์ด ๋นจ๋ฆฌ ๊ฐ”์ง€?! ์‹ถ์„ ์ •๋„๋กœ ์ˆœ์‹๊ฐ„์— ์ง€๋‚˜๊ฐ”๋˜ 2024๋…„์ด๋ผ๊ณ  ํ•ด์•ผ ํ• ๊นŒ. :32023๋…„์€ ์œ ๋… ๋งŽ์€ ๊ฑธ ํ–ˆ๊ณ , ๋А๋ฆฌ๊ฒŒ ๊ฐ”๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ 24๋…„์€ ๋ˆˆ ํ•œ๋ฒˆ ๊นœ๋นกํ•˜๋‹ˆ ์ง€๋‚˜๊ฐ„ ๋А๋‚Œ์ด๋‹ค.      ์ฒ˜์Œ ํšŒ์‚ฌ์— ๋“ค์–ด์™”์„ ๋•Œ๋Š” ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์“ด ์‚ฌ๋žŒ์˜ ์˜๋„๋‚˜ ๋ฐฉํ–ฅ๋ณด๋‹ค๋Š” ๋‹จ์ˆœํžˆ..
[SwiftUI Preview error] unrecognized selector sent to instance 1
2024.09.26
Application Specific Information:        CoreFoundation:            *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIButton lbText]: unrecognized selector sent to instance 0x1052ce370' ์ด ์˜ค๋ฅ˜๊ฐ€ ์™œ ๋‚˜๋Š”์ง€๋Š” ์•Œ๊ณ  ์žˆ์—ˆ๋‹ค.๋ณดํ†ต swift ํ”„๋กœ์ ํŠธ์—์„œ ObjC ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜์—ˆ์„ ๋•Œ, other linker flag์— `-ObjC`๋ฅผ ์ถ”๊ฐ€ ์•ˆ ํ•ด ์ฃผ๋ฉด ํ•ด๋‹น ObjC ํŒŒ์ผ์„ ์Šค์œ„ํ”„ํŠธ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฐพ์ง€ ๋ชปํ•ด ํ•ด๋‹น ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žฆ๋‹ค. ํ•˜์ง€๋งŒ? ์ด๋ฒˆ์—๋Š” ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๋Š” ์•„๋‹ˆ์—ˆ๋”ฐ . . ..
list img
XCTestCase 2
2024.09.17
์š”์ฆ˜์—๋Š” SwiftTest๋ผ๊ณ  SwiftUI์—์„œ ํ•˜๋Š” ํ…Œ์ŠคํŠธ๊ฐ€ ๋”ฐ๋กœ ์žˆ๋˜๋ฐ ์šฐ๋ฆฌ ํšŒ์‚ฌ๋Š” UIKit์„ ๊ธฐ๋ฐ˜์œผ๋กœ Objc / Swift๋ฅผ ํ˜ผํ•ฉํ•˜์—ฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด XCTest๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ๋‹ค.WWDC ์ฆˆ์Œ๋ถ€ํ„ฐ ๊ณต๋ถ€ํ•˜๋˜ ๊ฑฐ๋ผ ใ„ฑ- ์•Œ๊ณ  ๋ณด๋‹ˆ SwiftTest๋Š” 2024WWDC์—์„œ ์ƒˆ๋กœ ๋‚˜์˜จ ๊ฑฐ๋”๋ผ?! ์ „ํ˜€ ๋ชฐ๋ผ๋”ฐ .... :3  XCTest์˜ ์ฒ˜์Œ๊ณผ ๋๋จผ์ €, ๊ธฐ๋ณธ์ ์ธ ์ˆœ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.setUp(): ์•ฑ ์‹คํ–‰test_something(): ๊ธฐ๋Šฅ ํ…Œ์ŠคํŠธtearDown(): ์ข…๋ฃŒ์ฒจ์— ์ด๋Ÿฐ ์ˆœ์„œ๋ฅผ ์•Œ๊ณ  ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ๋Š”๋ฐ ๊ฐ‘์ž๊ธฐ? ๋ง‰ ์˜ค๋ฅ˜๊ฐ€ ๋‚˜๊ณ ? ์ด์ƒํ•˜๊ฒŒ ํ…Œ์ŠคํŠธ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๊ฒƒ์ด๋‹ค.๊ทธ๋Ÿฌ๋‹ˆ๊นŒ, ๋‚˜๋Š” … … setUp() → test_1() → test_2() → … → tearDown() ์ด๋Ÿฐ ์ˆœ์ธ ์ค„ ์•Œ์•˜๋Š”๋ฐ ์•„๋‹ˆ์—ˆ๋‹ค..
list img
Frida๋ฅผ ์ด์šฉํ•œ iOS ๋ฉ”๋ชจ๋ฆฌ ๋ถ„์„ 5
2024.07.03
ํ•˜๊ฒŒ ๋œ ๊ณ„๊ธฐํŒ€ ๋‚ด์—์„œ ์•”ํ˜ธ ๊ณ ๋„ํ™” ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š”๋ฐ, ๊ด€๋ จํ•˜์—ฌ ์–ด๋–ค ๋ถ€๋ถ„๊นŒ์ง€ ์•”ํ˜ธํ™”๋˜์–ด์•ผ ์•ˆ์ „ํ•œ์ง€์— ๋Œ€ํ•ด ์˜๋ฌธ์ด ์ƒ๊ฒผ๋‹ค. iOS ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ ์ •๋ณด๋ฅผ ํƒˆ์ทจํ•˜๊ฑฐ๋‚˜ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ๊นŒ? ํƒˆ์ทจํ•˜๋ฉด ์–ด๋–ค ์ •๋ณด๊ฐ€ ๋‚˜์˜ค๋Š”๊ฐ€? ๊ฐ„๋‹จํžˆ ์‹œ๋„ํ•ด๋ณด์•˜์„ ๋•Œ ํ•ด์ปค๊ฐ€ ์–ด๋А ๋ถ€๋ถ„๊นŒ์ง€ ์นจํˆฌํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ์‚ดํŽด๋ณด๊ณ ์ž ํ–ˆ๋‹ค. (๋ง์€ ๊ฑฐ์ฐฝํ•˜์ง€๋งŒ ์‹ค์€ ๊ทธ๋‹ฅ ๊ฑฐ์ฐฝํ•˜์ง€๋Š” ์•Š๋‹ค)    ์ด์šฉํ•œ ๋ฐฉ๋ฒ•๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์ด์šฉํ•˜์˜€๋‹ค.memory dumpmethod hooking๋จผ์ €, Memory Dump๋Š” ์ •์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ, ํŠน์ • ์‹œ์ ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ ์•Œ ์ˆ˜ ์žˆ๋‹ค. fridump๋ฅผ ์ด์šฉํ•˜์—ฌ ํ˜„์žฌ ๋ฉ”๋ชจ๋ฆฌ ์ƒํƒœ๋ฅผ dump ๋œจ๊ณ  ๊ด€์ฐฐํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์กฐ๊ธˆ ๋…ธ๊ฐ€๋‹ค์— ๊ฐ€๊นŒ์› ๋‹ค. (๋ฌผ๋ก  ๋‚ด๊ฐ€ ๋А๋ผ๊ธฐ์—๋Š”….) ์•„๋ฌด๋ž˜๋„ ์š”๋ฉฐ์น  ๋™์•ˆ ์žก๊ณ  ์žˆ์œผ๋ฉด์„œ ๊ฐ€๋ณ๊ฒŒ ๊ณต๋ถ€๋ฅผ ํ•œ..
list img
[frida] error: externally-managed-environment
2024.07.03
$ python3 -m pip install requests # or any other moduleerror: externally-managed-environment× This environment is externally managedโ•ฐโ”€> To install Python packages system-wide, try brew installxyz, where xyz is the package you are trying toinstall.If you wish to install a non-brew-packaged Python package,create a virtual environment using python3 -m venv path/to/venv.Then use path/to/venv/bin/pyt..
list img
Kotlin Multiplatform์˜ ๊ตฌ์กฐ์™€ ์ดํ•ด
2024.06.27
Kotlin Multiplatform์˜ ํŠน์ง•Kotlin์„ ๊ณตํ†ต ์–ธ์–ด๋กœ ์‚ฌ์šฉandroid / iOS์—์„œ KMP๋ฅผ ํ†ตํ•ด ์ž‘์„ฑํ•œ ๋ถ€๋ถ„์€ framework ํ˜•ํƒœ๋กœ ๋™์ž‘ํ•จ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๋ถ€ํ„ฐ UI๊นŒ์ง€ ๊ณตํ†ต ๊ฐœ๋ฐœ ๊ฐ€๋Šฅํ˜„์žฌ iOS ๋ฐ UI ๊ณตํ†ต ๊ฐœ๋ฐœ ๊ธฐ๋Šฅ์€ Beta   Kotlin ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๊ฒฝ์šฐ, ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ณ  ํ”Œ๋žซํผ๋ณ„ ๋ฐ”์ด๋„ˆ๋ฆฌ ์„ธํŠธ๋ฅผ ์ƒ์„ฑํ•จ. ๋™์ผํ•œ ์ฝ”๋“œ์—์„œ ์—ฌ๋Ÿฌ ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ฒŒ ๋จ.ex) ๋™์ผํ•œ ์ฝ”ํ‹€๋ฆฐ ํŒŒ์ผ์—์„œ JVM ํŒŒ์ผ๊ณผ ๊ธฐ๋ณธ ์‹คํ–‰ ํŒŒ์ผ ์ƒ์„ฑ  java ์ฝ”๋“œ๊ฐ€ ์–ด๋–ป๊ฒŒ Native ์ฝ”๋“œ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ์ง€? ํ•˜๊ณ  ๋‚ด๋ถ€ ๊ตฌ์กฐ๋ฅผ ์ฐพ์•„๋ดค๋Š”๋ฐ Kotlin -> ObjC๋กœ ๋ณ€ํ™˜๋˜๋Š” ๊ตฌ์กฐ์ธ๊ฐ€๋ด„ Swift๋กœ๋„ ๋ณ€ํ™˜์€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ObjC๋ณด๋‹ค ์ œํ•œ์ ์œผ๋กœ ๊ฐ€๋Šฅํ•จ์ž์„ธํ•œ ๊ฑด ์ด์ชฝ ์ฐธ๊ณ https://kotlinlang..
list img
[error] Interrupted system call
2024.05.22
ํ…Œ์ŠคํŠธ๋ฅผ ํ•˜๋‹ค ๋ณด๋ฉด ๊ฝค ์ž์ฃผ ๋œจ๋Š” ์˜ค๋ฅ˜์ด๋‹น. ๋”๋Š” ๊นŒ๋จน์ง€ ์•Š๊ธฐ ์œ„ํ•ด ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. Simulator์˜ ์บ์‹œ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ stackoverflow์˜ ๋„์›€์„ ๋ฐ›์•˜๋Š”๋ฐ, ํ•ด๋‹น ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.Xcode๋ฅผ ๋‹ซ๊ณ  terminal์— sudo chmod 1777 /tmp~/Library/Developer/CoreSimulator/Caches/dyld ํด๋”์— ๋‚จ์•„ ์žˆ๋Š” ์บ์‹œ๋ฅผ ์‚ญ์ œํ•ด ์ค€๋‹ค.Xcode ์žฌ์‹คํ–‰! ๋ฐฉ๋ฒ•์ด ์ƒ๋‹นํžˆ ๊ฐ„๋‹จํ•œ๋ฐ, chmod 1777์€ ์™œ ํ•˜๋Š”๊ฑฐ์ง€? ์‹ถ์–ด์„œ ์กฐ๊ธˆ ์ฐพ์•„๋ณด์•˜๋‹ค. chmod ๋Š” ํ”ํžˆ ์•Œ๊ณ  ์žˆ๋“ฏ์ด ํŒŒ์ผ์ด๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๊ถŒํ•œ์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด์ด๋‹ค. ํ•ด๋‹น ๋ช…๋ น์–ด๋Š” ๊ฐ bit ์ž๋ฆฌ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜์—ฌ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,read(r): 4write(r):..
[Objective-C] hooking๊ณผ method swizzling
2024.04.18
Swift์™€ Objective-C์—์„œ Swizzling๊ณผ Hooking์€ ๋น„์Šทํ•œ ๊ธฐ์ˆ ์ด์ง€๋งŒ, ๋‹ค๋ฅธ ๋ชฉ์ ๊ณผ ๊ตฌํ˜„ ๋ฐฉ์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. Swizzling๋Ÿฐํƒ€์ž„์—์„œ method ๊ตฌํ˜„์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ž˜์Šค์˜ method๋ฅผ ๋‹ค๋ฅธ method๋กœ ๊ต์ฒดํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ธฐ์กด์˜ method ๋™์ž‘์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.Swift์™€ Objective-C๊ฐ€ ๋™์ ์œผ๋กœ ๋™์ž‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, Swizzling์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (์ •์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” C / C++๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์—๋Š” method Swizzling์ด ๋ถˆ๊ฐ€๋Šฅ)Swizzling์€ ์ฃผ๋กœ ๋””๋ฒ„๊น…์ด๋‚˜ ๋Ÿฐํƒ€์ž„์—์„œ์˜ ๋™์ž‘ ๋ณ€๊ฒฝ์— ์‚ฌ์šฉ๋œ๋‹ค.+ (void)swizzleMethod { Class class = [self class]; ..
list img
[docker] Ubuntu์— Tomcat server ์„ธํŒ…ํ•˜๊ธฐ on mac 1
2024.04.12
๊ฐ‘์ž๊ธฐ? docker? ์‹ถ๊ธฐ๋„ ํ•˜๊ฒ ์ง€๋งŒ... ๋‚ด๊ฐ€ macOS๋ฅผ ์“ฐ๊ณ  ์ž‡๋Š”๋ฐ, ๊ฐ‘์ž๊ธฐ Linux ํ™˜๊ฒฝ์— ์ ์šฉ ๊ฐ€๋Šฅํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ / ์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•ด์š”! ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋‹ˆ๊นŒ docker๋กœ ๋‹ค๋ฅธ OS๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ araboza. ์ฐธ๊ณ ๋ฅผ ๋งŽ์ด ํ•œ ๋ธ”๋กœ๊ทธ ์ดˆ๋ณด๋ฅผ ์œ„ํ•œ ๋„์ปค ์•ˆ๋‚ด์„œ - ๋„์ปค๋ž€ ๋ฌด์—‡์ธ๊ฐ€? ๋„์ปค๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž๋‚˜ ์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ๋„์ปค ์ „๋ฐ˜์— ๋Œ€ํ•ด ์–•๊ณ  ๋„“์€ ์ง€์‹์„ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋„์ปค๊ฐ€ ๋“ฑ์žฅํ•œ ๋ฐฐ๊ฒฝ๊ณผ ๋„์ปค์˜ ์—ญ์‚ฌ, ๊ทธ๋ฆฌ๊ณ  ๋„์ปค์˜ ํ•ต์‹ฌ ๊ฐœ๋…์ธ ์ปจํ…Œ์ด๋„ˆ์™€ ์ด subicura.com Install Docker Sign in to Docker Desktop Explore the Learning center and understand the benefits of signing in to ..
list img
[iOS] Privacy Manifest 2
2024.03.25
Privacy Manifest ๋•Œ๋Š” ๋ฐ”์•ผํ๋กœ 24๋…„ 2์›” 29์ผ. Apple Development News๊ฐ€ ์˜ฌ๋ผ์™”๋‹ค. ๋ฐ”๋กœ Privacy Manifest์— ๊ด€ํ•œ ๊ฒƒ์ด์—ˆ๋Š”๋ฐ, ์ฒ˜์Œ ๋ดค์„ ๋•Œ๋Š” ์ด… … ์ด๊ฒŒ ๋ญ์ง€? ์‹ถ์—ˆ๋‹ค. ๊ทธ๋žฌ๋‹ค. ๋‚ด๊ฐ€ ๋ณด์ง€ ์•Š์€ 2023 WWDC ์˜์ƒ ์ค‘ ํ•˜๋‚˜๊ฐ€ Privacy Manifest ๊ด€๋ จ์ด์—ˆ๋˜ ๊ฒƒ์ด๋‹ค…. Get started with privacy manifests - WWDC23 - Videos - Apple Developer Get started with privacy manifests - WWDC23 - Videos - Apple Developer Meet privacy manifests: a new tool that helps you accurately identify ..
list img
.app has comflicting provisioning settings.
2024.03.20
๋ฌธ์ œ ์ƒํ™ฉ .app has comflicting provisioning settings. Invalid Provisioning Profile Signature. The provisioning profile included in the bundle com.blablabla.BlaBla [com.blablaba.BlaBla.pkg/Payload/BlaBla.app] cannot be used to submit apps to the Mac App Store until it has a valid signature from Apple. For more information, visit the macOS Developer Portal. ํšŒ์‚ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋‹ค ๋ณด๋ฉด ๊ฐ„ํ˜น ์ด๋Ÿฐ ์ธ์ฆ์„œ ์˜ค๋ฅ˜๊ฐ€ ๋œจ๋ฉด์„œ ๋นŒ๋“œ๊ฐ€ ์•ˆ ๋  ๋•Œ..
list img
Objective-C ๊ธฐ์ดˆ ๋ฌธ๋ฒ• ์ •๋ฆฌ 2
2024.02.15
๊ธฐ์ดˆ ๋ฌธ๋ฒ• .h ํ—ค๋” ํŒŒ์ผ๊ณผ .m ๊ตฌํ˜„ ํŒŒ์ผ 2๊ฐœ๊ฐ€ ์กด์žฌํ•œ๋‹ค. ํ—ค๋” ํŒŒ์ผ์—๋Š” ํด๋ž˜์Šค๋‚˜ ๋ณ€์ˆ˜, ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธํ•ด ์ฃผ๊ณ  .m ํŒŒ์ผ์—์„œ ์ž์„ธํ•œ ๊ตฌํ˜„ ์‚ฌํ•ญ์„ ๊ธฐ์ˆ ํ•œ๋‹ค. ํ•œ ๋ฌธ์žฅ์ด ๋๋‚  ๋•Œ๋งˆ๋‹ค ์„ธ๋ฏธ์ฝœ๋ก ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. #import #import "headerSomethingHeader.h" #import ์™ธ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ, ํ”„๋กœ์ ํŠธ ๋‚ด์— ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ํŒŒ์ผ์— ์„ ์–ธ๋œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ importํ•ด ์ค€๋‹ค. ๊ตฌํ˜„ ํŒŒ์ผ์—์„œ๋„ ์ž์‹ ์˜ ํ—ค๋” ํŒŒ์ผ์„ ๋ฐ˜๋“œ์‹œ import ํ•ด์•ผ ํ•˜๋ฉฐ, .h ํŒŒ์ผ์—์„œ import ํ•œ ๋‚ด์šฉ์€ .m ์—์„œ importํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ฐ๊ฐ ํŒŒ์ผ๋ณ„๋กœ ๊ด€๋ฆฌ๋œ๋‹ค๊ณ  ๋ณด๋ฉด ๋˜๋ฉฐ, C์–ธ์–ด์™€ ๋น„์Šทํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๋ฉด importํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ํด๋ž˜์Šค ์„ ์–ธ @interface Person : N..
list img
[iOS] ์•ฑ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ(App's Life Cycle)
2024.01.30
iOS์—์„œ ์•ฑ์„ ์‹คํ–‰ํ•˜๋ฉด? UIKit์€ Objective-C ๊ธฐ๋ฐ˜์œผ๋กœ ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€์—์„œ main ํ•จ์ˆ˜๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋Œ์•„๊ฐ„๋‹ค. ์ด main ํ•จ์ˆ˜๊ฐ€ ๋Œ์•„๊ฐ€๋ฉด์„œ `UIApplication`์ด ์‹คํ–‰๋˜๊ณ , ์ด `UIApplication`์€ singleton ํ˜•ํƒœ๋กœ ์ƒ์„ฑ๋˜์–ด ์•ฑ ์ „์—ญ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ดํ›„, ์•„๋ž˜ ์‚ฌ์ง„์˜ Main Run Loop๊ฐ€ ์‹คํ–‰๋œ๋‹ค. ์ด Main Run Loop๊ฐ€ ๋Œ์•„๊ฐ€๋ฉด์„œ View์—์„œ ์‚ฌ๋žŒ๋“ค์˜ event๋ฅผ ๋ฐ›๊ณ  updateํ•œ๋‹ค. ๋‹น์—ฐํžˆ! main Run Loop๋Š” UI ๊ด€๋ จ ๋™์ž‘์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— Main Thread์—์„œ ๋™์ž‘ํ•œ๋‹น. ์•ฑ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ๊ฐœ์š” ์•ฑ์˜ ํ˜„์žฌ ์ƒํƒœ๋ž€ ์•ฑ์ด ์–ธ์ œ๋“ ์ง€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘์—…๊ณผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ์ž‘์—…์„ ๊ฒฐ์ •ํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ํฌ๊ทธ๋ผ์šด๋“œ ์•ฑ์€ ์‚ฌ..
list img
์ƒˆ์‹น(SeSAC) iOS ์•ฑ๊ฐœ๋ฐœ์ž ๋ฐ๋ท” ๊ณผ์ • 3๊ธฐ ์ˆ˜๋ฃŒ ํ›„๊ธฐ 6
2024.01.27
๊ธธ๊ณ  ๊ธธ์—ˆ๋˜ 6๊ฐœ์›” ๋™์•ˆ์˜ ์ƒˆ์‹น ๊ณผ์ •์„ ๋งˆ์ณค์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค ์ˆ˜๋ฃŒํ•˜๊ณ  ๋‚˜์„œ ๋ฐ”๋กœ ์ˆ˜๋ฃŒ ํ›„๊ธฐ๋ฅผ ์“ฐ๊ณ  ์‹ถ์—ˆ๋Š”๋ฐ, ๋ง‰์ƒ ์ˆ˜๋ฃŒ ์ „์—๋Š” ํ›„๊ธฐ๋นจ๋ฆฌ์“ฐ๊ณ ์‹ถ๋‹น์ด๊ธ€์ด๊ธ€์ด๊ธ€ ํ•˜๋‹ค๊ฐ€ ์ˆ˜๋ฃŒํ•˜๊ณ  ๋‚˜๋‹ˆ ์ž๊พธ ๋ฏธ๋ฃจ๊ฒŒ ๋˜๋Š” ๊ฑฐ ์žˆ์ฃ . ๋ฐฉ๊ธˆ ํ™ˆํŽ˜์ด์ง€ ์ˆ˜๊ฐ• ํ›„๊ธฐ๋ฅผ ์“ฐ๊ณ  ์˜ค๋ฉด์„œ ๊ทธ๋ƒฅ ์˜ค๋Š˜ ํ›„๊ธฐ๋ž€ ํ›„๊ธฐ๋Š” ๋‹ค ์จ๋ฒ„๋ฆฌ์ž! ๋ผ๋Š” ๋งˆ์Œ๊ฐ€์ง์œผ๋กœ ์ƒˆ์‹น ์ˆ˜๋ฃŒ ํ›„๊ธฐ๋ฅผ ์ž‘์„ฑํ•ด ๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.  ์ฐธ๊ณ ์šฉ์œผ๋กœ 1๊ธฐ์…จ๋˜ ์ฝ”์ข…๋‹˜ ํ›„๊ธฐ๋„ ๋‚จ๊ฒจ๋†“์•„์š”! ^_^ ์ €๋Š” ์ฝ”์ข…๋‹˜ ํ›„๊ธฐ๋ฅผ ๋ณด๊ณ  ์ƒˆ์‹น์— ๊ฐ€๊ธฐ๋กœ ๋งˆ์Œ์„ ๊ตณํ˜”๋‹ต๋‹ˆ๋‹ค... ...https://kokojong.tistory.com/72 [ํ›„๊ธฐ] SeSAC iOS ์•ฑ ๊ฐœ๋ฐœ์ž ๋ฐ๋ท” ๊ณผ์ • PLUS ํ›„๊ธฐ(?) ๋ฐ 3๊ธฐ ๋Œ€๋น„ FAQ์•ˆ๋…•ํ•˜์„ธ์š” ์ฝ”์ฝ”์ข…์ž…๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ œ๊ฐ€ ์ด์ „์— ํ›„๊ธฐ๋กœ ๋ช‡๋ฒˆ ๋‚จ๊ฒผ๋˜ (์ง„์งœ ๋„ˆ๋ฌด ์ข‹์•„์„œ ์ถ”์ฒœํ•ด๋“œ๋ ค์„œ ๊ทธ๋ž˜์š”....