2026. 10. 6. 09:03

1. Firebase 프로젝트 (https://console.firebase.google.com)
 - 새 프로젝트 만들기
 - 프로젝트 이름 입력 -> helloapple -> 약관 동의 -> 계속
 - Gemini in Firebase: 꺼도 됩니다
 - Google Analytics: 꺼도 됩니다
 - 프로젝트 만들기

2. iOS 앱 등록
 - 프로젝트 개요에서 iOS+ 아이콘 클릭
 - Apple 번들 ID: com.helloapple.helloapple
 - 앱 등록 -> GoogleService-Info.plist 다운로드
 - 이후 "SDK 추가", "초기화 코드 추가" 진행 -> 콘솔로 이동

plist를 프로젝트에 넣는 방법
 - Xcode에서 넣으려면 왼쪽 helloapple 폴더를 우클릭
 -> Add Files to "hello apple" ... -> 파일 선택
-> Targets 에서 helloapple 체크 -> Add 순서로 진행
또는 front/ios/helloapple/ 폴더에 파일 넣고 Xcode 프로젝트 등록

3.  Android 앱 등록

- 프로젝트 개요 -> 앱 추가 -> Android 아이콘
- Android 패키지 이름: com.helloapple
- 앱 닉네임과 SHA-1: 비워도 됨
- 앱 등록 -> google-services.json 다운로드
- 파일을 front/android/app/ 에 넣음
- Gradle과 SDK 반영

4. iOS 푸시 키 (APNs)

- Apple Developer (https://developers.apple.com/account)
https://developers.apple.com/account/resources/authkeys/add
-> Keys Name 입력 (ex: helloapple push)
 - Keys Name 입력하는 위치: 푸터의 계정 -> 인증서, ID 및 프로파일(영문)
 -> Keys -> Create a key
-> Apple Push Notifications service(APNs) 체크
-> Configure - Environment: Sandbox & Production
-> Key type: Team Scoped
-> Continue -> Register -> Download
키를 만들고 .p8 파일을 받음

- Firebase -> 프로젝트 설정 -> 클라우드 메시징
Apple App 구성 -> APNs 인증 키에 업로드
(Key ID, Team ID: GAB839QPF3)

5. 서버용 키
- 프로젝트 설정 -> 서비스 계정 탭 -> 새 비공개키 생성 
-> JSON 다운로드
- 서버에 올리고 .env 에 FIREBASE_CREDENTIALS=
/home/ubuntu/back/firebase-service-account.json
- pip install google-auth
python manage.py migrate
# Firebase -> 서비스 계정 -> "새 비공개 키 생성"으로
받은 JSON 을 서버에 두고 .env 에 추가
sudo systemctl restart apple

GoogleService-Info.plist, google-services.json 비밀 아님 (Firebase 공식 안내) 해도 됨
APNs .p8 키 비밀 ❌ 절대 금지
서비스 계정 JSON 비밀 (푸시 발송 권한) ❌ 절대 금지 (.gitignore에 추가해 둠)
2026. 10. 6. 08:41

@notifee/react-native

@react-native-firebase/app

@react-native-firebase/messaging

react-native-callkeep

react-native-voip-push-notification

Android 전용

@react-native-firebase/app
 - React Native에서 firebase를 쓰기 위한 기본 모듈
 - Firebase 프로젝트와 앱을 연결 

 - 아래 messaging이 동작하려면 반드시 필요


@react-native-firebase/messaging
 - FCM 푸시를 받는 모듈
(Firebase Cloud Messaging)
- getToken()/onTokenRefresh()

기기 FCM 토큰을 받아 /account/push-token에 등록
- setBackgroundMessageHandler()

앱이 꺼져 있어도 푸시가 오면 JS 코드 실행
착신 알림이 오는 시작점
- onMessage()

앱이 화면에 떠 있을 때 온 푸시를 처리

 

서버는 priority HIGH인 data 메시지로 보냄
그래야 절전 모드(doze)에서도 바로 도착

@notifee/react-native
- 로컬 알림을 세부적으로 꾸밀 수 있는 라이브러리
FCM은 메시지를 전달
화면을 보이는 건 이 쪽이 담당
CALL + fullScreenAction:
잠금 상태에서 전체화면 수신 화면으로 띄움
[거절]/[받기] 액션 버튼, 반복 벨소리(loopSound),
40초 뒤 자동 제거(timeoutAfter)
onBackgroundEvent/getInitialNotification
앱이 꺼진 상태에서 받거나 거절을 눌렀을 때 그 동작을 처리
Android 13 이상에서는 알림 권한을 요청
requestPermission

iOS 전용

react-native-voip-push-notification
- Apple CallKit(iOS 기본 전화 수신 UI)을 다루는 라이브러리


react-native-callkeep

 

 

2026. 9. 25. 23:50

@notifee/react-native

@react-native-firebase/app

@react-native-firebase/messaging

react-native-callkeep

react-native-voip-push-notification

Android 전용

@react-native-firebase/app
 - React Native에서 firebase를 쓰기 위한 기본 모듈
 - Firebase 프로젝트와 앱을 연결 

 - 아래 messaging이 동작하려면 반드시 필요


@react-native-firebase/messaging
 - FCM 푸시를 받는 모듈
(Firebase Cloud Messaging)
- getToken()/onTokenRefresh()

기기 FCM 토큰을 받아 /account/push-token에 등록
- setBackgroundMessageHandler()

앱이 꺼져 있어도 푸시가 오면 JS 코드 실행
착신 알림이 오는 시작점
- onMessage()

앱이 화면에 떠 있을 때 온 푸시를 처리

 

서버는 priority HIGH인 data 메시지로 보냄
그래야 절전 모드(doze)에서도 바로 도착

@notifee/react-native
- 로컬 알림을 세부적으로 꾸밀 수 있는 라이브러리
FCM은 메시지를 전달
화면을 보이는 건 이 쪽이 담당
CALL + fullScreenAction:
잠금 상태에서 전체화면 수신 화면으로 띄움
[거절]/[받기] 액션 버튼, 반복 벨소리(loopSound),
40초 뒤 자동 제거(timeoutAfter)
onBackgroundEvent/getInitialNotification
앱이 꺼진 상태에서 받거나 거절을 눌렀을 때 그 동작을 처리
Android 13 이상에서는 알림 권한을 요청
requestPermission

iOS 전용

react-native-voip-push-notification
- Apple CallKit(iOS 기본 전화 수신 UI)을 다루는 라이브러리


react-native-callkeep

 

 

2026. 8. 27. 15:11

OCI의 Ubuntu 이미지는 22번 포트만 열린 iptables 규칙을 탑재

 

VCN 보안 목록에서 80을 열어도 인스턴스 안쪽 방화벽에서

 

한 번 더 막히기 때문에 브라우저에서 안 보임

 

# REJECT 규칙(5번) 앞에 80/443 허용 삽입

sudo iptables -I INPUT 5 -p tcp --dport 80 -m state --state NEW -j ACCEPT

 

 

2026. 8. 4. 13:40

1. mariadb 설치

sudo apt update

sudo apt install mariadb-server -y

 

2. mariadb 실행 상태 확인

sudo systemctl status mariadb

 

sudo systemctl start mariadb

sudo systemctl enable --now mariadb

 

3. 보안 설정

sudo mariadb-secure-installation

 

여기서

 - root 비밀번호 설정

 - 익명 사용자 삭제 

 - 테스트 DB 삭제

 - 원격 root 로그인 여부 설정

 

4. mariadb 작성

sudo mariadb -u root -p

 

5. 데이터베이스 schema 작성

 

CREATE DATABASE apple CHARACTER SET
utf8mb4 COLLATE utf8mb4_unicode_ci;

 

CREATE USER 'apple'@'localhost' IDENTIFIED BY 'PASSWORD';

GRANT ALL PRIVILEGES ON apple.* TO 'apple'@'localhost';

FLUSH PRIVILEGES;

SELECT VERSION();  -- 10.5이상 확인

EXIT;

 

6. 생성한 DB user로 접속

mariadb -u apple -p