[일상] 육사오(6/45) 무대인사 후기 / CGV 용산아이파크몰 7관 / 곽동연 무대인사 / 고경표 무대인사 / 이이경 무대인사
·
🐱 정주는 쉬는 중 :]/일상
육사오(6/45) 무대인사 오늘은 육사오(6/45) 무대인사를 다녀왔습니다. 육사오는 바람을 타고 군사분계선을 넘어가버린 57억 1등 당첨 오또를 둘러싼 남북 군인들간의 코믹 접선극인데요. 고경표, 이이경, 음문석, 박세완, 곽동연 , 이순원, 김민호가 출연합니다. 저는 무대인사는 처음이에요. 곽동연의 팬이라 난생 처음 무대인사를 다녀왔습니다 ㅎㅎ 영화 자체도 너무 재밌었어요. 스포가 될 수 있기에 자세한 내용은 언급하지 않겠습니다만, 그저그런 영화라고 생각하고 그리 기대하지 않았지만 개그 코드도 잘 맞고 너무 웃겼습니다 ㅋㅋ 극장 안 분위기도 다같이 웃는 분위기여서 더욱 좋았어요. 무대인사 시작 저는 CGV 용산아이파크몰 7관의 F-11 이었습니다. 되게 구석에 있는 관이었어요. 대략 이정도 거리의 자..
[Swift] 깊은 복사와 얕은 복사(feat. NSCopying)
·
Swift/개념 & 응용
Value 타입과 Reference 타입 값(value) 타입과 참조(reference) 타입은 복사 방식이 다릅니다. 일반적으로 값 타입은 깊은 복사, 참조 타입은 얕은 복사가 발생한다고 알고 계실텐데요. 정말 그런지 알아보고 참조 타입이어도 깊은 복사를 할 수 있는 방법에 대해 알아봅시다. 깊은 복사(Deep copy) 깊은 복사는 데이터 자체를 복사하는 방법입니다. 각자 독립적인 메모리를 차지하기 때문에 복사한 인스턴스의 데이터를 바꾸더라도 원본에 영향을 주지 않습니다. 값 타입의 인스턴스들은 깊은 복사를 하게 되는데요. 아래는 Collection 타입인 Array를 복사하는 예제입니다. var arr: [Int] = [1, 2, 3] var copyArr = arr print("arr: \(arr..
[iOS] Generic을 이용한 loadView( ) 코드 최적화
·
iOS/개념 & 개발
문제 상황 저는 ViewController 파일과 화면 view 세팅 파일을 분리했습니다. loadView( )를 오버라이딩해서 view를 교체해줬어요. 아래는 HomeViewController의 view를 커스텀 뷰인 HomeView로 교체하는 코드입니다. override func loadView() { super.loadView() homeView = HomeView(frame: self.view.frame) self.view = homeView } 문제 1 불필요한 view를 생성합니다. super.loadView( )에서 기존 view가 생성되고 있었습니다. 어차피 제가 만든 Custom view로 바로 교체하기 때문에 기존 view는 생성하지 않아도 되는 것이죠. 문제 2 위 코드는 모든 Vie..
[Swift] Swift Interview Questions - Intermediate(중급)
·
Swift/개념 & 응용
현재 포스팅은 2편 Intermediate 질문입니다. 1편 Beginner 보러가기 Question 1 차이가 없습니다. nil과 Optional.none은 같습니다. 동작은 같아도 nil로 작성하는 것이 일반적인 코드 컨벤션에 더 맞습니다. Question 2 let 인스턴스는 mutating 메서드를 호출할 수 없습니다. mutating 메서드는 값을 바꿀 것이라는 전제 하에 정의한 메서드인데 let 구조체 인스턴스는 내부 프로퍼티를 변경할 수 없으므로 컴파일 에러가 발생합니다. Question 3 I love cars가 출력됩니다. thing 변수를 변경하기 전에 closure에서 thing을 캡처했습니다. 따라서 I love cars가 출력됩니다. 만약 [thing]이 없었다면 "I love a..
[Swift] Swift Interview Questions - Beginner(초급)
·
Swift/개념 & 응용
서론 raywenderlich의 Swift Interview Questions에 답변을 달아보려고 합니다. Beginner, Intermediate, Advanced로 나뉘어져 있는데 이번 포스팅에서는 Beginner 질문에 대한 답변입니다. Swift 공부를 하면서 제대로 이해를 했는지, 무엇을 모르는지 알 수 있는 좋은 기회가 될 것 같아요 ㅎ Question #1 tutorial1의 difficulty는 1, tutorial2의 difficulty는 2입니다. 구조체는 값 타입이기 때문에 인스턴스의 변화가 다른 인스턴스에 영향을 주지 않기 때문입니다. 만약 Tutorial이 클래스였다면 tutorial1과 tutorial2는 같은 참조 인스턴스를 가지므로 tutorial1의 difficulty도 2..
[Swift] GCD와 Swift Concurrency 성능 비교
·
Swift/개념 & 응용
GCD와 Swift Concurrency GCD와 Swift Concurrency인 async/await를 비교하는 포스팅은 이미 몇 개 작성했습니다. 이번 포스팅에서는 성능에 초점을 맞춰서 어떤 차이가 있는지 알아보겠습니다. 문법 비교 여기에서도 다루긴 했지만 GCD와 Swift Concurrency의 문법은 어떤 차이가 있는지 한 번 더 짚고 넘어가기로 하죠. 가독성 기존 escaping 클로저와 completion handler를 이용한 비동기 코드는 가독성이 떨어집니다. func processImageData1(completionBlock: (_ result: Image) -> Void) { loadWebResource("dataprofile.txt") { dataResource in loadWe..
[Swift] DispatchTime과 DispatchWallTime 차이점
·
Swift/개념 & 응용
DispatchTime과 DispatchWallTime asyncAfter를 사용하다가 DispatchWallTime이라는 타입에 대해 알게 되었습니다. 제가 평소 사용하던 타입은 DispatchTime이었는데요. DispatchWallTime 타입도 있길래 써봤더니 똑같이 동작을 하더라고요?? 메서드 설명도 똑같고... 그래서 공식 문서에서 타입을 직접 검색해서 차이점을 비교해보았습니다. 공식 문서 살펴보기 일단 asyncAfter의 설명부터 보겠습니다. 타입이 다르니 설명도 다르지 않을까? 하는 기대감에 봤는데요. Overview asyncAfter deadline에는 execution "at" the specified time 이라고 나와 있고 asyncAfter wallDeadline에는 exec..
[Swift] Swift는 어떤 해시 알고리즘을 쓸까? / Hashable
·
Swift/개념 & 응용
Hashable 지난 포스팅에서 다뤘던 Hashable은 프로토콜 중 하나로, Hasher에 해시되어 정수 해시 값을 생성할 수 있는 타입을 정의합니다. (Hashable에 대한 더 자세한 내용은 여기에서 확인해주세요.) 오늘 포스팅은 Hasher가 어떤 해시 알고리즘을 사용하는지에 대한 내용입니다. 궁금해서 찾아봤는데 생각보다 흥미로워서 공유하기 위해 포스팅 작성합니다. 사설이 긴 편이니 바쁘신 분은 SipHash 문단부터 읽어주세요. 기존 방법 Swift 4.1부터 Equatable과 Hashable 프로토콜에 대한 적합성을 자동으로 합성해주기 시작했고, 지금의 Hasher를 이용한 해시 방법은 Swift 4.2부터 탄생했습니다. 이전에는 개발자가 직접 hash 함수를 만들어줬어야 했습니다. 찾아보니..
[iOS] flashMode와 torchMode 차이점
·
iOS/개념 & 개발
손전등 기능 작은 토이 프로젝트를 진행하면서 손전등 기능을 만들게 되었습니다. AVCaptureDevice를 조작하여 아이폰의 손전등을 켜야하는데요. torchMode와 flashMode의 차이점이 궁금해져서 찾아봤습니다. 자세한 설명 글은 아니고 간단 차이점 소개 글이에요 ㅎㅎ 저처럼 궁금해하시는 분이 있을...수도 있을 거 같아서요! Torch가 손전등 결론은 Torch가 손전등 기능입니다. 후래시 좀 켜봐! 라고 자주 말해서 혼동을 했는데요. 횃불의 의미인 Torch가 손전등을 조작할 수 있는 프로퍼티입니다. Torch의 조작은 AVCaptureDevice의 torchMode를 수정하면 됩니다. captureDevice.torchMode = toggleTorch ? .on : .off on 으로 설..
[Swift] Hashable
·
Swift/개념 & 응용
Hash Hashable에 대해 알아보기 전에 Hash에 대해 알아야 합니다. Hash란 해시 함수에 의해 얻어지는 값으로 해시값, 해시코드로도 불리는데요. 해시 함수는 특정 input을 넣었을 때 항상 일정한 output이 나오는 함수입니다. 위 사진처럼 "안녕하세요"가 input으로 들어가면 해시 로직을 거쳐 항상 동일한 output이 나와야 합니다. input이 달라지면 output도 달라져야 하는데요. 로직에 따라 다른 input이라도 output이 같을 수 있습니다. 이때! 다른 output이 나오는 input의 개수가 많으면 많을수록 좋은 해시함수랍니다. 아무튼, 오늘 포스팅에서 중요한 해시의 성질은 input을 넣었을 때 "일정한" output이 나와야 한다는 점입니다. 이것만 기억해 주세요..
유정주
'분류 전체보기' 카테고리의 글 목록 (21 Page)