JIGGAG

4월 한달동안 로그

2022년 5월 2일

읽어보았던

  • Optimizing React Native (https://blog.coinbase.com)
    • 지난달부터 아껴두다 이제야 읽었는데 좀 더 빨리 읽어볼 것을...
    • 비슷한 문제들을 반복해서 마주한다
    • 특히 navigation 스택이 언마운트 되지 않고 리렌더 되는 이슈는 끔찍하다
      • 본문에 나왔던 DeactivateContextOnBlur를 적용해본다던지...
      • 다시 생각해보니 이건 안되겠다
      • 그냥 컨텍스트를 제거하는게 어떨까 ☠️
    • props나 memo를 정리한다고 해두었지만 더 할 수 있을듯하다
    • API 엔드포인트를 새로 만드는 것도 효율적인 방법이 될 수 있겠구나 🤔
  • 재택근무 보편론 (https://www.saeyoonjeong.com)
    • 장점이 너무나 뚜렷하기 때문에 보편화 될 수 있지 않을까
    • 그럼에도 극단점이 존재하기 때문에 고민이 되는 점이지만
    • 신뢰를 기반으로 선순환이 이뤄진다면 단점은 존재하지 않는다
    • 하지만 신뢰라는건 결국 그동안의 발자취를 기반으로 존재하는게 아닐까 생각이 드는데
    • 퍼포먼스/결과에 따라 의심으로 이어지는 부정적인/의심스러운 사고방식을 바꿔야하는 것이 맞을까
    • 무언가 잘못된 것은 아닐까
    • ☠️ 이게 바로 또 부정적인 사고인가
  • 모던 프론트엔드 프로젝트 구성 기법 - 모노레포 도구 편 (https://d2.naver.com)

4/24 ~ 4/30

2022: 33%

  • 4월이 끝나가는데 이번달 스프린트 시작하지 못했다

코드리뷰

  • 지속가능한 SW를 위한 코드리뷰
    • 불확실하고 변동성이 많은 시대를 위한 빠르고 안정성 있는 SW 개발
      • 새로운 코드 작성보다 읽고 이해하는 코드가 더 많기 때문에 유지보수를 위한 클린코드 지향
      • 결국 위에서 이야기한 빠르고 안정성 있는 개발을 위해 읽고 이해하기 위운 코드를 작성해야한다
      • 서로 의사소통이 잘 되는 코드를 위해 리뷰가 되어야한다
      • 리뷰어를 위한 설명이 부족했다 🙈
  • 중간중간 여러 책 내용들이 떠오르는데, 영상으로 보는 기분이였다

4/17 ~ 4/23

xcode arm64

fabric

  • 로컬 빌드가 성공했다 싶었더니 fastlane firebase 빌드가 터지는 중
  • [Codegen] >>>>> Processing FBReactNativeSpec
    [Codegen] Generated schema: /var/folders/kr/c6_gp7z53h59g9008zzsyfnm0000gn/T/FBReactNativeSpecTHf3x7/schema.json
    /bin/sh: -c: line 0: syntax error near unexpected token '('
    
  • 무언가 잘못 되었네...
  • 다시 안드로이드부터 돌려보니 또 터진다 🙈
  • Execution failed for task ':app:configureNdkBuildDebug'.
    > [CXX1405] error when building with ndkBuild using /Users/jiggag/Projects/react-native-starter/android/app/src/main/jni/Android.mk: Build command failed.
    Error while executing process /Users/jiggag/Library/Android/sdk/ndk/21.4.7075529/ndk-build with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=/Users/jiggag/Projects/react-native-starter/android/app/src/main/jni/Android.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 NDK_OUT=/Users/jiggag/Projects/react-native-starter/android/app/build/intermediates/cxx/Debug/op5h1u54/obj NDK_LIBS_OUT=/Users/jiggag/Projects/react-native-starter/android/app/build/intermediates/cxx/Debug/op5h1u54/lib APP_CFLAGS+=-Wall APP_CFLAGS+=-Werror APP_CFLAGS+=-fexceptions APP_CFLAGS+=-frtti APP_CFLAGS+=-DWITH_INSPECTOR=1 APP_CPPFLAGS+=-std=c++17 APP_PLATFORM=android-21 APP_STL=c++_shared NDK_TOOLCHAIN_VERSION=clang GENERATED_SRC_DIR=/Users/jiggag/Projects/react-native-starter/android/app/build/generated/source PROJECT_BUILD_DIR=/Users/jiggag/Projects/react-native-starter/android/app/build REACT_ANDROID_DIR=/Users/jiggag/Projects/react-native-starter/android/../node_modules/react-native/ReactAndroid REACT_ANDROID_BUILD_DIR=/Users/jiggag/Projects/react-native-starter/android/../node_modules/react-native/ReactAndroid/build APP_SHORT_COMMANDS=false LOCAL_SHORT_COMMANDS=false -B -n}
    Android NDK: ERROR:/Users/jiggag/Projects/react-native-starter/android/app/src/main/jni/Android.mk:fb: LOCAL_SRC_FILES points to a missing file    
    Android NDK: Check that /Users/jiggag/Projects/react-native-starter/android/app/build/react-ndk/exported/armeabi-v7a/libfb.so exists  or that its path is correct   
    
    fcntl(): Bad file descriptor
    /Users/jiggag/Library/Android/sdk/ndk/21.4.7075529/build/core/prebuilt-library.mk:45: *** Android NDK: Aborting    .  Stop.
    
  • 된다는데... 안되는데!
  • 관련 이슈
    • react-navigation, react-native-safe-area-context, react-native-screens 모두 제거했더니 해결은 되었다
    • 이러고 싶지 않은데...
  • 이번엔 appmodules를 찾지 못하는 에러
  • 터보 모듈을 도입하면서 appmodules를 새로 등록했는데 이를 찾지 못한다 왜? java.lang.UnsatisfiedLinkError: couldn't find DSO to load: librnstarter_appmodules.so
  • 템플릿은 잘 돌아간다... 내가 잘못했다
  • 다시 마음을 다잡아보았다
  • 새로 만난 친구
  • org.gradle.api.ProjectConfigurationException: A problem occurred configuring project ':app'.
    Caused by: org.gradle.api.UnknownDomainObjectException: Extension of type 'Copy' does not exist. Currently registered extension types: [ExtraPropertiesExtension]
    
  • ??? gradle ExtraPropertiesExtension
  • build.gradle.kts 에서 상수 비교를 위해 ===를 사용하고 있었는데, ==로 변경했더니 발생하였다
    • public open operator fun equals(other: Any?): Boolean을 의미하는데
    • 여기서 말하는 Copy 그런 느낌일걸까
    • build.gradle 에서 설정을 위한 준비를 하고 있는데, 아직 코틀린 오퍼레이터를 가져오지 못한 상태로 호출해서인가
    • 다시 === 로 돌아간다

4/10 ~ 4/16

php

  • 해본적없는데...
  • 맨땅에 헤딩은 해보겠는데...
  • 제일 중요한 phpstorm에 이어서 php + composer 설치하고
  • 필요한 것은 참고

reanimated

  • 몇 달 지났는데
  • react-native-gesture-handler 파봐야겠다고 생각만하고
  • 그렇게 시간이 흘러 reanimated@2.*를 보게 되었다
  • 신박한걸!

fabric

  • 드디어 iOS 빌드에 성공했다
  • 🥳
  • 그동안 빌드는 성공했지만 앱이 뜨지 않고 죽어버렸는데 이유가 무엇이였을까
  • 나만 안되는게 맞나? 하는 의심으로 RN 0.68 템플릿을 해보니 잘되고 있었다...
  • 확실하게 무언가 설정이 잘못되었음을 깨닫고나니 의욕이 생겼다!
  • 아무리 봐도 문제가 없는데.........
  • 하던 찰나
  • 앱이 안뜨고 있으니깐 AppDelegate, main을 못찾나?
  • 하고 project.pbxproj를 보니 이상한게 보인다
  • 왜 프로젝트에 AppDelegate, main이 없지???????
  • 진짜 못찾아서 실행을 못한 것 이였다...
  • 이번에 fabric 적용하면서 AppDelegate.swiftAppDelegate.mm + main.m으로 돌려놨는데 여기서 오류가 발생했다
  • 이제 다시 swift로 갈 길을 생각해봐야지
  • (+ 깃헙 액션으로 배포하고 있는데... 이럴때마다 실패 ㅠㅠ 다시 봐야한다)

4/1 ~ 4/9

fabric

  • iOS 브릿지 어떻게 잡아서 해봤는데 빌드만 되고 실행이 안되네
  • 🙈
  • 안드로이드는 되는데 왜 네비게이션바가 이상하지!
    • 설마 react-navigation 업데이트가 필요할까
    • Class 'kotlin.Unit' was compiled with an incompatible version of Kotlin. The binary version of its metadata is 1.6.0, expected version is 1.4.2.
    • 관련 라이브러리 업데이트 했더니 코틀린도 업데이트 해야하나보다
  • 근데 안드로이드는 fabric 업데이트 이후 navigation 이동이 잘 안되는 기분이다
    • 잘 안되는게 확실하다 느리다
    • 무언가 잘못되었다
    • 리로드하면 앱이 죽는다
    • 메트로가 이상한가
    • 시뮬은 잘되는걸 보니 디바이스 문제인걸로!

reflow