Development 19

[Github Action] Github Action을 통한 자동 배포 적용하기 (Git 인증 과정 추가)

https://obeyjy.tistory.com/entry/Github-Action-Github-Action%EC%9D%84-%ED%86%B5%ED%95%9C-%EC%9E%90%EB%8F%99-%EB%B0%B0%ED%8F%AC-%EC%A0%81%EC%9A%A9%ED%95%98%EA%B8%B0 [Github Action] Github Action을 통한 자동 배포 적용하기 (React + NGINX) 프로젝트 중 React를 통해 구현된 프로젝트가 있고, 해당 프로젝트는 NGINX를 통하여 배포가 되고 있다. React 소스코드가 수정되면 새로운 버전을 서버에 반영하기 위해서는 아래의 과정을 거쳐야 obeyjy.tistory.com 이전 글에서 Github action을 통해서 Push 이벤트가 발생되었을..

Development/Git 2024.02.26

[Github Action] Github Action을 통한 자동 배포 적용하기 (React + NGINX)

프로젝트 중 React를 통해 구현된 프로젝트가 있고, 해당 프로젝트는 NGINX를 통하여 배포가 되고 있다. React 소스코드가 수정되면 새로운 버전을 서버에 반영하기 위해서는 아래의 과정을 거쳐야 한다 1. 프로젝트 수정 파일을 Github에 Push 한다. 2. 배포 중인 서버에 접속해서 Github의 최신 버전을 Pull한다. 3. `npm run build`를 통하여 새로운 빌드 파일을 생성한다. 4. 서버 프레임워크를 재시작한다. 위의 과정을 한두 번 거치는 것은 크게 불편하지 않을 수 있지만, 위 과정이 많은 횟수로 지속된다면 생산성이 비효율적으로 전환될 수 있다. 예를 들어, 위 과정을 한 번 수행하는 데 1분이 걸린다면 10회에는 10분이 소요된다. 티끌 모아 태산이랄까? 개발자에게 ..

Development/Git 2024.02.23

[Bluetooth 1] Bluetooth 간단 개념 및 라이브러리 검토

Bluetooth란? Bluetooth는 근거리 무선 통신을 위한 프로토콜 표준 기술이다. 보통 주변 장치 (Peripheral)와 통신해야 하는 경우가 있을 때 고려되는 대표적인 옵션 중 하나다. 요즘에는 BLE (Bluetooth Low Energy) 프로토콜을 사용해서 저전력을 통해 효율적으로 통신할 수 있도록 지원한다. 블루투스는 버전과 사양에 따라서 다른 특징을 가지고 있다. 많은 버전이 있지만 이번 프로젝트에서 사용하게 될 4.1의 특징은 아래와 같다. Bluetooth 4.1 - Coexistence 향상 : 블루투스와 LTE 무선이 서로 통신 상태를 조정해 가까운 대역폭으로 인한 간섭 현상을 줄인다. - Better connections : 두 장치 간 거리가 멀어져 연결이 끊으지게 되면,..

[Trouble Shooting] Android “cannot resolve symbol R”

새로운 Android 프로젝트를 생성하고 Build 하니 앱의 실행은 정상적으로 되었지만, Resources 파일에 “cannot resolve symbol R” 에러가 발생했다. 위 문제가 발생하는 대표적인 원인은 Build 과정에서 Resrouce files 동기화 중에 문제가 발생했기 때문이다. 물론, 다른 원인들도 있다. 해당 문제를 해결하기 위해 아래의 과정을 거쳤다. 1. File > Sync project with Gradle Files. - 위 방법은 동기화를 다시 진행하는 것인데 해결되지 않았다. 2. Build > Clean Project - 위 방법으로도 해결되지 않았다. 3. Build > Invalidate Cache - 위 방법으로도 해결되지 않았다. 위 방법으로 안 된다는 것은..

Development/Android 2023.09.10

[React Navigation] Deep Linking 적용

React Native의 Linking을 사용해 보고자 했지만, 공식 문서의 구체적이지 못한 설명과 URL을 직접 파싱해야 하는 등의 과정이 필요하여 확인해 보니, React Navigation에서 Deep Linking 기능을 제공해 줌. NavigationContainer의 lingking props에 linking에 관련된 설정을 전달해 주면 자동으로 처리해 주는 편리한 녀석. 각 OS별 (Android, IOS)로 추가적인 설정이 필요함. 설정 방안은 공식 문서에 잘 설명되어 있음. Deep Linking 설정 NavigationContainer에 linking prop을 설정해 주면, 들어오는 링크들을 쉽게 다룰 수 있도록 해 줌. 이 중에서 linking prop에서 2가지 중요한 proper..

[Docs] Testing

https://reactnative.dev/docs/testing-overview#mocking Testing · React Native This guide introduces React Native developers to the key concepts behind testing, how to write good tests, and what kinds of tests you can incorporate into your workflow. reactnative.dev 위 사이트의 내용을 번역하고 정리함. Unit tests 유닛 테스트는 코드의 개별 적인 기능이나 클래스처럼 가장 작은 부분을 담당한다. 테스트 되어야 하는 객체가 의존성을 가지고 있을 때, 종종 객체를 mock out 해야 할 필요가 있다..

React Native iOS 배포

1. 프로젝트 불러오기 2. 라이브러리 설치 npm i 3. Pod 설치 pod install 4. 시뮬레이터를 이용한 테스팅 npm run ios -- --simulator="iPhone 8" simulator 뒤의 인자는 사용 중이거나 이용 가능한 시뮬레이터의 기기를 적으면 됨. 5. 문제가 없다면 release 모드 배포 5-1) Xcode -> Window -> Organizer | Xcode 실행 5-2) Any Device 선택 | 배포 디바이스 설정 5-3) Product -> Archive | Archive 파일 생성 5-4) Distribute App -> App Store Connect -> Upload -> Signing | 앱 배포 (업로드 및 서명) 5-5) 업로드 완료 6. 업로..

React Native Firebase 설정 및 구글 로그인 연동 (iOS)

Firebase 설정 - rnfirebase.io/ React Native Firebase | React Native Firebase Welcome to React Native Firebase! To get started, you must first setup a Firebase project and install the "app" module. rnfirebase.io 위 사이트 내용을 따라하면 설정이 완료된다. 구글 로그인 연동 - github.com/react-native-google-signin/google-signin react-native-google-signin/google-signin Google Sign-in for your React Native applications. Contribu..

Cocoapods

React Native 개발 중 iOS의 경우 라이브러리 설치 후 pod install을 하라는 문구가 떴다. pod는 무엇이고 왜 해당 명령어를 치라고 하는가? Cocoapods - Xcode 프로젝트 (iOS, Mac OS)의 라이브러리 의존성 관리할 수 있게 해 주는 툴 - 프로젝트에 대한 의존성들이 Podfile에 명시되고, Cocoapods가 라이브러리들의 의존성을 관리하며, 소스코드로 fetch하여 linking 함. - 궁극적 목표는 프로젝트를 중심으로 써드파티 라이브러리들과 연동을 용이하게 하고 관리를 편하게 해 주는 것 설치 방법 sudo gem install cocoapods