전체 글 (35) 썸네일형 리스트형 DYLD, Dynamic Link Editor이 무엇일까? 앱 개발하는 과정에서 대부분 혼자만의 코드로만 프로젝트를 구성하지 않습니다. Github 등 오픈소스나 유료 소스를 바탕으로 특정 기능에 대한 구현을 빌리는 경우가 많습니다. 다수에 의해 검증된 코드들이 많다보니 직접 코드를 구성하는 것보다 성능이 좋은 경우도 많습니다. 이렇듯 외부에 의존성을 두게 되면 일반적으로는 코코아팟 cocoapod, 카르타고, spm 등 의존성 관리도구를 활용하게 됩니다. 일반적으로는 외부 소스나 프레임워크의 사용에 에러나 큰 문제가 없겠지만, 해당 프레임워크가 dynamic framework로 제공되는 경우, 하단과 같은 에러를 만나기도 합니다. dyld: Library not loaded: 뭐. 말 그대로 라이브러리가 로드되지 않았다는 뜻이겠죠. 해당 키워드의 원인은 여러 .. [iOS] 자주 사용하는 컴파일 조건구문에 대하여 (#if, #endif, canImport 등) + available, unavailable iOS를 개발하면서, 타겟 버전이나 플랫폼 조건 등에서 #if, #endif 등 컴파일 조건 구문을 익숙하게 봐오셨을 거라 생각합니다. 사용법을 보기 전에 #if로 시작하고, #endif로 끝나는 구문이 어떤 건지 자세히 알아보면 좋을 것 같습니다. 이렇게 컴파일 단계에서 조건을 추가하기 위해 사용되는 구문을 Compiler Control Statement라고 부릅니다. Compiler Control Statement의 역할은 타겟이 컴파일되는 과정에서 컴파일러의 작동 양상을 바꿀 수 있도록 해줍니다. 크게 보자면 총 3가지로 나눌 수 있고, 각각은 하단과 같습니다. (물론 각각에 대해서도 플랫폼, 버전 등에 따라 많은 조건들이 있네요.) 1. conditional-compilation-block 2. .. iOS Device Screen Size Height, Width 값 얻기(feat. UIScreen.main) 목차 1) iOS ~16.0 2) iOS 16.0 < (version) 3) 기타 참고 1) iOS ~16.0 일반적으로 iOS Device의 Screen Size를 얻기 위해서 다음과 같은 로직을 많이 써왔다. UIScreen.main.bounds.size.height UIScreen.main.bounds.size.width 코드 작업 중 Xcode IDE에 의해 main이 deprecated 될 거라는 경고문을 안내받았다. 경고문에 안내하듯 Context에 의해 찾아진 UIScreen 인스턴스로 대체하라는 방식대로 코드를 작성하라고 안내하고 있다. ex) view.window.windowScene.screen 2) iOS 16.0 < (version) StackOver Flow에서 관련된 질의글을 찾.. iOS 의존성 관리도구 CocoaPods 코코아팟 사용하기 CocoaPods => Swift 및 Objective-C Cocoa 프로젝트 종속성 관리자 타 의존성 관리도구로 카르타고나 spm(swift package manager)이 있다. 이 중 spm은 Apple에서 지원해주는 First Party에 해당한다. 하지만 아직은 SPM을 지원하지 않는 많은 라이브러리들이 있기 때문에 SPM이 아닌 cocoapods도 필요하다고 판단이 되어 도입하였다. 하단 페이지에도 설명되어 있지만, 설치 방법은 간단하다. sudo gem install cocoapods 터미널 창을 열고, cocoapods 설치를 위한 명령어를 실행하면 된다. 대표사진 삭제 사진 설명을 입력하세요. Password를 입력하고 나면 위와 같은 ~ 1 gem installed로 끝나게 되고, co.. [ELLLO IM4] Tips for Learning English IM4 : Tips for Learning English Summarize Ben is English teacher. He want his students to get confidence in producing English or increaing their listening ability. so he ask Haha some strategies about improving English skills. And Hana says that the first thing is listening. if we want to communicate in English, we have to understand first. By listening to audio, or sound, then we can learn voca.. 개발자의 글쓰기 | 글쓰기에 대한 고민을 다룬 책을 읽으며 안녕하세요. 루얀입니다. :) 12월의 12일입니다. 다들 즐거운 일요일 보내고 계신가요? 오늘은 도서관에 간 김에 책이 한 권 눈에 밟혀서 이렇게 들고 왔습니다. 개발자의 글쓰기 | 위키북스 개발자는 희망하지만 기술 블로그를 잘 못 쓰는 이유가 블로그에 글을 쓰는 방법이 일반적으로 학생 때 배운 글쓰기 방법과 사뭇 다르다며 관련된 내용을 소개해주네요. 대한민국에서 입시 과정을 겪었던 사람이라면.. 아래와 같은 논설문이나 설명문에 대하여 하단과 같은 질의를 하는 문제를 접해보셨을 거라고 생각합니다. '이 글을 왜 쓰는가?' '이 글을 읽는 독자는 누구인가?' '이 글을 읽는 독자에게 무엇을 말하려고 하는가?' '이 글이 주장하는 바는 무엇인가? '이 글이 주장하는 바의 근거는 분명한가?' 사실 저도 동일.. 2021년도 결산. 안녕하세요 루얀(Luyan)입니다 다사다난(?) 했던 올해를 보내기 전에 2021년을 기록해보려고 컴퓨터 앞에 앉았습니다. 개발자들 사이에서 유행인지 모르겠지만, 매년에 회고를 남기는 분들이 많이 계시더라구요. 사실 12월 초에 작성하기 때문에 조금 이른 회고입니다만, 남은 12월 동안 집중해야 할 일이 생겨 미리 작성을 작성을 합니다. 저는 컴퓨터 공학을 전공하면서 실제 3년 가까이 코드 작성을 했지만, 제대로 코딩을 했다.라고 생각되는 건 올해가 처음이었던 것 같아요. 학부 과정에서 생각보다 그렇게 열심히 하지 않았어요. 스스로 잘 안 했다고 할 만큼(겸손 떠는 것 절대 아닙니다.) 이제 졸업도 얼마 남지 않았고, 정말 사회로 나갈 준비를 하고 있다 라는 생각을 하고 있는 것 같아요. 스트레이트로 대.. [백준]1931_회의실 배정 문항번호: 1931번 회의실 배정 tags: problem solving 1. 문제 분석 목표: 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수 찾기 2. 풀이 계획 입력 제한 : N(1 ≤ N ≤ 100,000) 시간 제한 : 2초 생각한 방향 최대한 회의를 많이 하기 위해서는 가급적 빠른 시간에 끝나는 회의를 선택하는 방법을 선택해야한다. 빠른 시간에 끝나는 회의임을 찾기 위한 정렬 과정이 요구된다. -> sort() 메서드 사용 추가로 다음에 시작할 수 있는 회의는 현재의 종료시간 이후이거나 같은 값을 가져야 한다. -> if 조건문 3. 계획 검증 시간 복잡도 예상 : 최대 100,000개의 데이터가 들어온다고 가정했을 때, Swift에서 제공하는 sort 함수의 시간복잡.. 이전 1 2 3 4 5 다음