본문 바로가기

분류 전체보기

(35)
[Swift] 전처리문(The preprocessor macro) 참고하면 좋은 블로그 https://eunjin3786.tistory.com/219 전처리문이란? 컴파일 이전에 처리되는 코드로 빌드 시 DEBUG, RELEASE 등을 구분하거나 디바이스 혹은 OS 버전을 구분하는 용도로 흔하게 사용한다. #if DEBUG // 디버그로 빌드했을 때 사용 할 코드 ... #elseif RELEASE // 릴리즈 빌드시 사용 할 코드 ... #endif 디버그와 릴리즈를 구분하는 전처리문을 사용했을 때 좋은 점은? 내가 만든 앱을 테스트하는 경우 보통 디버그 모드로 빌드해 앱을 테스트한다. 그럴 때 정상적으로 동작하는지 print문을 이용해 콘솔창에 로그를 출력하거나 개별적인 로그 방식을 이용해 앱을 테스트하는데(간혹 더미값을 넣기도 함) 휴먼 에러로 print문을 지우..
[모니터 리뷰] 삼성 스마트 모니터 M7 S43AM700 안녕하세요 우디입니다. 오랜만에 글을 작성하는데요, 그 글이 iOS나 개발 글이 아닌 장비에 관한 글을 작성해봤습니다. 원래 사용하던 4K 모니터가 있었는데 청소하다가 부숴버리는 바람에 모니터를 새롭게 구해야만 했습니다. 😂 여러 옵션들이 있었지만 모니터는 거거익선이라는 생각과 USB-C타입을 통한 영상 송출이 가능한 모니터를 고르고 고른 끝에 삼성 스마트 모니터 M7 S43AM700 모델을 구매했습니다! 스마트 모니터답게 다양한 기능이 재공되는데요 넷플릭스나 유튜브는 물론이고 왓챠, 티빙 등 다양한 기능과 함께 삼성 티비 플러스 기능을 통해 TV 부럽지 않은 기능을 경험할 수 있었습니다. 그리고 USB-C타입을 통한 맥북 외장 모니터 및 충전기능을 지원해서 손쉽게 사용가능했습니다 방금 둘러보다가 발견한..
함수형 프로그래밍 안녕하세요 우디입니다! 이번 글에서는 함수형 프로그래밍에 대해 알아볼거에요. 절차 지향 프로그래밍, 객체 지향 프로그래밍에 대해 들어본 적은 있어도, 함수형 프로그래밍에 대해 못들어보신 분도 있을 것 같아 공부해봤습니다. (사실 제가 못들어봐서 공부했습니다) 함수형 프로그래밍이란? 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다. 명령형 프로그래밍에서는 상태를 바꾸는 것을 강조하는 것과는 달리 함수형 프로그래밍은 함수의 응용을 강조한다. 따라서 외부의 상태나 값을 변경하지 않는 순수 함수를 통해 프로그램을 구성한다. (위키백과 - 함수형 프로그래밍) 순수 함수 함수형 프로그래밍의 특징 중 하나인 순수 함수는 부작용이 없는 함수를 의미합니다. 함수의..
Protocol 안녕하세요, 우디입니다. 이번 글에서는 Swift에서 사용 가능한 프로토콜에 대해 이야기해보려고 합니다. 기능에 대한 정확한 정보와 사용 방법은 언제나! 꼭! 공식문서를 참고하시길 바랍니다. Swift - Protocols Protocols — The Swift Programming Language (Swift 5.5) Protocols A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality. The protocol can then be adopted by a class, structure, or enumeration to p..
[Swift] Closure 안녕하세요 우디입니다 🤪 최근에 면접을 봤는데 많이 어렵네요... 한번씩 공부하고 사용한 개념들이지만 긴장해서 그런건지 제대로 공부하지 못한건지 스스로 아쉬운 대답이 많았습니다 ㅠㅠ 그래서 '아 이렇게 대답한게 맞나...?' 한 부분에 대해 다시한번 공부하고 정리해보는 시간을 가지려고 합니다. 야곰 아카데미에서 야곰이 종종 하는 말이 있습니다. '설명하지 못하면 모르는거다' 이번에 공부해볼 내용은 클로져입니다. Swift - Closure Closures — The Swift Programming Language (Swift 5.5) Closures Closures are self-contained blocks of functionality that can be passed around and used ..
UI구현은 스토리보드로 하는게 나을까 코드로 하는게 나을까? 안녕하세요 Wody입니다! 마지막 포스팅으로부터 약 2달 정도가 지났는데요 ㅎㅎ... 그래서 지금이라도 다시! 블로그로 기록을 남겨보자는 마음에 글을 작성하게 됐습니다. 오늘의 주제는 UI구현을 스토리보드로 할지, 코드로 할지에 대한 고민입니다. 이 주제는 구글에 검색만 해보아도 많은 분들이 다룬 글을 확인할 수 있는데요. 먼저 많은 글들에서 이야기하는 장단점을 간단하게 다뤄보고 제 생각을 이야기해보려고 합니다. 스토리보드 UI의 장단점 장점 UI 구성을 한눈에 확인할 수 있다 View에 어떤 속성과 값을 설정했는지 확인하기 쉽다 단점 StoryBoard 구현을 위해 Xcode 메모리가 올라간다. (이 부분은 기능별로 StoryBoard를 분리하면 해결 가능) 협업시 StoryBoard 충돌 혹은 이슈가..
[Swift] Data(contentsOf: url) 동기적인 파일 다운로드 원본 글 [Swift] Data(contentsOf: url) Apple Developer - Data(contentsOf: url) wodylikeios.notion.site 안녕하세요 Wody입니다. 요즘 앱은 대부분 네트워크 통신 기능을 사용합니다. 예를 들어 사진을 표시하거나 사용자 정보를 저장하기 위해 서버와 통신하는 경우가 있습니다. 이번에 알아볼 것은 동기적으로 동작하는 간단한 다운로드 기능입니다. Apple Developer - Data(contentsOf: url) 소속 Foundation > Data > NSData init(contentsOf: url) init?(contentsOf url: URL) 사용법 let data = try? Data(contentsOf: url) 설명 이 ..
[iOS] UILabel에 취소선 (strikethroughStyle) 적용하기 UILabel에 취소선 적용하기 Apple Developer - UILabel.attributeText Apple Developer - NSAttributeString Apple Developer - NSMutableAttributedString UILabel의 text에 속성(attribute)를 적용시키려면 UILabel에 있는 attributeText 프로퍼티를 변경해주면 된다. 그런데 attributeText 프로퍼티는 NSAttributedString 클래스 타입의 값으로 이에 맞는 값을 만들어 적용해야 한다. 실제 코드에서 어떻게 만들면 되는지 알아보자 적용하기 let testLabel: UILabel = { let label = UILabel() let label.text = "test La..
[iOS] Unable to activate constraint with anchors Error 개요 SnapKit을 통해 코드로 레이아웃을 만들고 있다가 오류를 만났습니다. 레이아웃을 잡으면 발생하는 오류이고, 레이아웃을 잡지 않으면 오류가 발생하지 않았습니다. 에러의 원인은 레이아웃이라고 생각했습니다. 에러 본문 Thread 1: "Unable to activate constraint with anchors and because they have no common ancestor. Does the constraint or its anchors reference items in different view hierarchies? That's illegal." 에러 해석 (번역기) 쓰레드 1 : "앵커로 구속을 활성화할 수 없음"Anchor : 0x6000017f0380 "OpenMarket.Item..
[Swift] URLSession으로 multipart/form-data request하기 안녕하세요 wody입니다. 얼마 전에 URLSession에 대해 알아보는 글을 작성했었는데, 오늘은 활용하는 글을 작성하고자 합니다. 이번 공부의 핵심 주제는 다음과 같습니다 HTTP 통신 HTTP 개요 - HTTP | MDN HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버 developer.mozilla.org Apple Developer - URLRequest Apple Developer Documentation developer.apple.com 개요 URLSession을 통해 GET 방식의 통신은 body가 없으므로 API에 맞는 url주소로 요청하..