전체 글 68

[프로그래머스] 파괴되지 않은 건물 (Swift)

[프로그래머스] 파괴되지 않은 건물 (Swift) https://programmers.co.kr/learn/courses/30/lessons/92344 코딩테스트 연습 - 파괴되지 않은 건물 [[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5],[5,5,5,5,5]] [[1,0,0,3,4,4],[1,2,0,2,3,2],[2,1,0,3,1,2],[1,0,1,3,3,1]] 10 [[1,2,3],[4,5,6],[7,8,9]] [[1,1,1,2,2,4],[1,0,0,1,1,2],[2,2,0,2,0,100]] 6 programmers.co.kr 이해 처음 문제를 읽었을때는 생각보다 쉽네? 라는 마음이었습니다. 카카오 문제라서 그렇게 쉽진 않겠지... 라는 생각에 다른 방법을 생각해보려고 노력했지만 완..

[Swift] ARC (2/2)

[Swift] ARC (2/2) [Swift] ARC (1/2) 보러가기 [Swift] ARC (1/2) [Swift] ARC (Automatic Reference Counting) 앱의 메모리 사용량을 추적하고 관리 어떠한 클래스 인스턴스가 더 이상 필요하지 않을 때 인스턴스에 할당된 메모리 자동해제 Reference Type 인 클래스 인스턴스 trumanfromkorea.tistory.com 클로저에 대한 강한 참조 사이클 (순환 참조) 순환 참조는 클래스 인스턴스의 프로퍼티에 클로저를 할당하고 해당 클로저의 바디에 인스턴스를 캡처하는 경우에도 발생할 수 있습니다. 클로저의 바디에서 self.someProperty 와 같이 인스턴스의 프로퍼티에 접근하거나 self.someMethod() 와 같이 인..

iOS 개발/Swift 2022.04.29

[Swift] ARC (1/2)

[Swift] ARC (Automatic Reference Counting) 앱의 메모리 사용량을 추적하고 관리 어떠한 클래스 인스턴스가 더 이상 필요하지 않을 때 인스턴스에 할당된 메모리 자동해제 Reference Type 인 클래스 인스턴스에만 적용. Value Type 에는 해당되지 않음 동작 방식 클래스가 새 인스턴스를 생성할때마다 ARC 는 메모리 할당 인스턴스의 메모리가 해제되면 더 이상 해당 인스턴스에 접근 불가능 그래서 ARC 는 인스턴스가 언제까지 필요한지 알기 위해 인스턴스를 참조하는 프로퍼티, 상수, 변수의 수를 추적함 클래스 인스턴스를 할당하기 위해 변수를 3개 선언하고, 나중에 nil 을 할당하여 해제해주기 위해 Optional 로 선언합니다. reference1 변수에 클래스 인..

iOS 개발/Swift 2022.04.29

[프로그래머스] 다단계 칫솔 판매 (Swift)

[프로그래머스] 다단계 칫솔 판매 (Swift) https://programmers.co.kr/learn/courses/30/lessons/77486 코딩테스트 연습 - 다단계 칫솔 판매 민호는 다단계 조직을 이용하여 칫솔을 판매하고 있습니다. 판매원이 칫솔을 판매하면 그 이익이 피라미드 조직을 타고 조금씩 분배되는 형태의 판매망입니다. 어느정도 판매가 이루어진 후, programmers.co.kr 이해 아래 그림과 같이 생긴 다단계 수익 구조가 있고, 판매원이 칫솔을 하나 판매할때마다 자신은 수익의 90% 를 가져가고 자신의 parent 에게 수익의 10% 를 나눠줍니다. 주어진 배열을 이용해 이를 반복하였을 시 판매원들이 가져가는 수익을 계산하는 문제입니다. 얼마전에 트라이 자료구조 관련한 문제를 풀..

[Swift] 클로저 (Closures)

Closure 란? 사용자의 코드 안에서 전달되어 사용할 수 있는 로직을 가진 코드 블럭 1급 객체의 역할을 할 수 있음 1급 객체란 전달 인자로 보낼 수 있고, 변수/상수 등으로 저장하거나 전달할 수 있으며 함수의 리턴값이 될 수도 있음 함수 또한 클로저의 한 형태로, 이름이 있는 클로저 참조 타입 Closure 의 형태 전역 함수는 이름을 가지고 어떠한 값도 캡쳐하지 않는 클로저 중첩 함수는 이름을 가지고 둘러싼 함수로부터 값을 캡쳐할 수 있는 클로저 클로저 표현식은 주변 컨텍스트에서 값을 캡쳐할 수 있는 경량 구문으로 작성된 이름이 없는 클로저 Closure Expressions 클로저 표현식 (Closure Expressions) 은 간단하고 집중적인 구문으로 인라인 클로저를 작성하는 방법입니다...

iOS 개발/Swift 2022.04.22

[React Native] iOS 빌드 시 ~.modulemap' not found

프로젝트 진행 중 master 와 브랜치를 병합하는 과정에서 빌드 오류가 발생했다. ~.modulemap' not found 라는 에러였는데, React Native 개발을 처음 접하기 시작했을때 비스무리한 경우를 겪었던 것이 떠올랐다. 당시에는 YogaKit 모듈맵을 찾지 못한다는 에러였는데, .xcodeproj 파일을 실행해서 생긴 문제였다. 해당 문제는 .xcworkspace 파일로 실행해서 해결했었는데, 이번 경우에는 이 방법이 통하지 않았다 ㅜㅜ 두 번째로 시도한 방법은, 모듈 재설치였다. 뭔가 모듈을 못찾는다는 에러가 발생하니 node_modules 혹은 podfile 에서 오는 문제라고 생각했고 프로젝트 디렉토리의 node_modules 폴더와 ios 폴더 내의 podfile.lock 파일을..

ETC/React Native 2021.08.15

[React Native] Linking / Deep Link

어플리케이션 내 컨텐츠를 외부로 공유하는 기능을 구현해야 해서, 링크를 생성하는 방법을 찾아보았다. React Native 내장 라이브러리인 Linking, Firebase 에서 제공하는 Dynamic Links 등의 방법이 있었다. 일단은 Linking 라이브러리를 이용하여 구현을 해보고자 하였다. 앱 내 컨텐츠에 접근하기 위해서는 특정되어있는 경로가 필요했다 그렇기 때문에 나는 해당 페이지를 나타내는 파일 내에서 링크를 생성하거나, 공유하고자 하는 페이지의 상위 페이지에서 링크를 생성한 후 특정 페이지의 id 값을 넘겨줘야 한다고 생각했다. 그래서 나는 Deep Link 에 대해 알아보았다. https://help.dfinery.io/hc/ko/articles/360039757433-%EB%94%A5..

ETC/React Native 2021.08.07

[React Native] Android Debug mode not working

리액트 네이티브로 프로젝트 빌드 시, 안드로이드에서 디버그 모드가 작동하지 않는 오류가 있었다. 디버그 모드가 작동되지 않았기 때문에 실시간으로 코드의 변동 사항도 확인할 수 없었고, 콘솔로 출력을 확인할 수도 없었다. 처음에는 단순하게 디버그 모드가 아닌 릴리즈 모드로 빌드가 되는 줄 알았으나, 알고 보니 이전에 빌드했던 릴리즈 버전으로 실행이 되고 있었다. 그래서 아래 명령어를 이용해 bundle 파일을 새로 생성해 빌드해 보았다. react-native bundle --platform android --dev true --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest a..

ETC/React Native 2021.08.04