분류 전체보기 86

[Swift] Method Dispatch - 정적 vs 동적 디스패치

Method Dispatch는 프로그램이 어떻게 해당 메소드를 실행할지 정하는 것이다. Method Dispatch에는 Direct(Static 이라고 부르기도 한다.) / Dynamic 방식이 있으며, Dynamic Dispatch 방식에는 Table Dispatch / Message Dispatch 방식이 있다. 해당 Dispatch는 swift에만 있는 것이 아니라 모든언어에 있다. swift가 컴파일되고 해당 메소드르 부르는 방식에는 Direct, Table, Message 총 3가지가 있다고 보며 된다. 많은 언어들이 Direct나 Table Dispatch를 지원한다. Java는 Table dispatch를 기본적으로 사용한다. c++는 기본적으로 Direct dispatch를 이용한다. 하지..

Mobile App/iOS 2020.01.12

[Git] revert / merge 된 브랜치에서 어떻게 써야 하는가

git commit 취소에 대해서는 revert를 해서 해당 commit 번호를 입력하면 된다. 하지만 merge된 branch에 하면 오류가 발생 할것이다. 예를 들어서 develop 브랜치에 feature branch를 merge했다고 보자. 그리고 해당 featrue를 revert 하고 싶지만 에러가 발생하기도 할 것이다. git은 자신의 부모가 누구였는지 정확히 모른다. 그래서 부모를 지정 해줘야 한다. git logs 를 통해서 log를 보면 Merge: 8989ee0 7c6b236 위와 같은 문구가 있을 것이다. 부모가 2개이기에 그런것이다. 그래서 revert시 -m (부모 번호) 를 입력 해줘야 한다. develop 브랜치에 merge가 되었고 feature를 revert하고 싶은 것이면 ..

카테고리 없음 2020.01.11

[React] context api - provider

위 그림 처럼 A라는 컴포넌트에 monet르 d에게 전달하기 위해서는 A -> B - C -> D로 전달해야한다. children의 children의 children... 에게 계속 전달해주게 되면 props drilling 현상이 된다. react 16.3부터는 context api를 제공하는데 이것을 해결할 수 있다. ## 정리 - 어떤 특정값만 보내는게 아니라, 특정 컴포넌트 메소드도 넘길수 있으므로 활용하면 좋다. - 예) React native에서 portal을 구현할 때, 위에 방식처럼 구현하면 편하다. https://www.toptal.com/react/react-context-api Working with the React Context API The React Context API was..

Web/React 2020.01.11

타입스크립트에서 특정 prop을 제외시키기 ( Omit )

interface Test { a: string; b: number; c: boolean; } type OmitA = Omit; // Equivalent to: {b: number, c: boolean} type OmitAB = Omit; // Equivalent to: {c: boolean} const a: OmitA = { a: 'aa', b: 1, c: true } const b: OmitAB = { a: 'aa', b: 1, c: true } Omit 은 optional으로 된 prop이 사라지는 버그가 있었는데 3.5에서 패치가 되었다. interface Test { a?: string; b?: number; c?: boolean; } type OmitA = Omit; // Equivalent ..

[Rx] combineLatest Operator

https://stackblitz.com/edit/typescript-vadvm2?file=index.ts&devtoolsheight=100 typescript-vadvm2 - StackBlitz Blank starter project for building TypeScript apps. stackblitz.com combineLatest는 여러 Observable에서 각 Observable의 마지막 값을 내보낸다. * 각 Observable이 1번이라도 값을 내보낸적이 있어야지 emit 한다. 예를 들어서 A,B Observable이 있다고 해보자 - A라는 Observable이 5초동안 emit하지 않으면, 5초동안 emit하지 않는다. - A가 50번 emit하고 B가 10번 Emit 했으면 총 5..

Rx 2019.11.24

[Rx] sequenceEqual operator

Observable이 A, B가 있다고 가정해보자 A는 유저가 입력한 Key의 모음이고 B는 유저가 맞쳐야하는 Key라고 해보자 만약 B가 [A,B,C,D,D] 이면 유저는 똑같이 A, B, C,D,D를 입력해야 한다. 이것을 확인하기 위해서 sequenceEqual를 사용하면된다. // 유저가 입력한 키 const A = from([ 'ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', ]); // 유저가 맞쳐야하는 key const codes2 = from([ 'ArrowUp', 'ArrowUp', 'ArrowDown', 'ArrowDown', ]); const matches = codes2.pipe(sequenceEqual(codes)); matches.subscri..

Rx 2019.11.24

iOS - UI test 한번에 하기

시뮬레이터로 하나씩 검사하기 귀찮을 때가 있을 것이다. 아래와 같은 명령어를 사용하면 한번에 할 수 있다. # 1 xcodebuild test -scheme MyApp \ -destination "plaform=iOS,name=iPhone 8" \ -destination "platform=iOS,name=iPhone 8 Plus" # 2 xcodebuild test -project MyAppProject.xcodeproj -scheme MyApp -destination 'platform=OS X,arch=x86_64' -destination 'platform=iOS,name=Development iPod touch' -destination 'platform=Simulator,name=iPhone,OS=9..

Mobile App/iOS 2019.11.24