React & React Native/환경 설정 및 구성

[RN] React Native iOS App Store 등록 방법 -2 : App Store 배포 심사 준비 + 사전 대비

adjh54 2024. 8. 1. 14:14
반응형
해당 글에서는 이전 글에서 App Store Connect에서 구성한 앱과 Archive 된 파일을 기반으로 실제 App Store에 심사를 요청하는 과정에 대해 알아봅니다.

 

 

 

 

 

💡 [참고] Android / iOS에 각각 앱을 배포하는 과정에 대해 궁금하시면 아래의 글을 참고하시면 도움이 됩니다.
플랫폼 분류 링크
Android React Native Google Play Store 등록 방법 -1 : 초기 환경 설정 https://adjh54.tistory.com/301
Android React Native Google Play Store 등록 방법 -2 : Google Play Console 설정 https://adjh54.tistory.com/306
Android React Native Google Play Store 등록 방법 -3 : Google Play Console 프로덕션 설정 https://adjh54.tistory.com/307
     
iOS React Native App Store 등록 방법 -1 : 앱 Archive 및 TestFlight 구성 https://adjh54.tistory.com/537
iOS React Native App Store 등록 방법 -2 : App Store 배포 심사 준비 + 사전 대비 https://adjh54.tistory.com/543

 

 

 

💡 이전에 작성한 글에 이어지는 내용입니다.
 

[RN] React Native iOS App Store 등록 방법 -1 : 앱 Archive 및 TestFlight 구성

해당 글에서는 React Native 환경에서 iOS 플랫폼을 App Store에 올리는 방법 중 하나로 앱을 Archive 하고 TestFlight를 구성하는 방법에 대해 알아봅니다.1) TestFilght💡 TestFilght- Apple의 공식 베타 테스트 플

adjh54.tistory.com

 

 

 

1) App Store


💡 App Store

- 애플(Apple)사가 운영하는 디지털 애플리케이션 유통 플랫폼입니다.
- iOS, iPadOS, macOS, watchOS 및 tvOS 애플리케이션을 다운로드하고 설치할 수 있는 공식 마켓입니다.

 

 

💡 기본적으로 Apple Developer를 통해서 가입이 되어야 개발을 진행할 수 있기에 가입이 모두 되었다는 전제로 진행을 합니다.
 

Apple Developer

There’s never been a better time to develop for Apple platforms.

developer.apple.com

 

 

 

2) [App Store Connect] iOS 앱 설정


 

1. [iOS 앱 > iOS 앱 버전 1.0 > iOS 미리보기 및 스크린샷] AppStore에 추가될 사진들을 업로드합니다.


💡 [iOS 앱 > 1.0 제출 준비중 탭 > iOS 미리 보기 및 스크린샷] AppStore에 추가될 사진들을 업로드합니다.

- 최신 기기의 스크린샷을 추가하면 App Store에서 앱의 사용자 경험을 더 정확하게 보여 줄 수 있습니다.
- 스크린샷은 모든 iOS 디스플레이 크기 및 현지화에 사용됩니다. 스크린샷은 iOS 앱에만 필요합니다.

iPhone / iPad 사이즈 필요 사항
iPhone 6.7 디스플레이 1290 x 2796px 또는 2796 x 1290px 최대 3개의 앱 미리보기와 10개의 스크린샷을 여기로 드래그하십시오.
iPhone 6.5 디스플레이 1242 x 2688px, 2688 x 1242px,
1284 x 2778px 또는 2778 x 1284px
최대 3개의 앱 미리보기와 10개의 스크린샷을 여기로 드래그하십시오.
iPhone 5.5 디스플레이 1242 x 2208px 또는 2208 x 1242px 최대 3개의 앱 미리보기와 10개의 스크린샷을 여기로 드래그하십시오.
iPad13 디스플레이 2064 x 2752px, 2752 x 2064px,
2048 x 2732px 또는 2732 x 2048px
최대 3개의 앱 미리보기와 10개의 스크린샷을 여기로 드래그하십시오.
iPad Pro(2세대) 12.9 디스플레이 2048 x 2732px 또는 2732 x 2048px 최대 3개의 앱 미리보기와 10개의 스크린샷을 여기로 드래그하십시오.

 

 

 

💡 App Store에서 아래와 같은 화면 출력되는 영역에 대한 미리보기 및 스크린샷입니다.

https://apps.apple.com/kr/app/네이버-naver/id393499958?platform=ipad

 

 

💡 [참고] 이전에 심사 과정 중 이와 관련되어서 문제가 발생했던 적이 있습니다.

- 각각의 스크린샷은 iPhone에 대해서는 iPhone 기기에서 촬영되어야 하며, iPad인 경우에 대해서는 iPad에 대해 촬영되어야 한다라고 심사 중 거절이 발생했던 적이 있습니다.

 

 

2. [iOS 앱 > iOS 앱 버전 1.0 > iOS 미리 보기 및 스크린샷] App Store 내에 출력될 미리 보기 내용을 작성합니다.


 

분류 설명
프로모션 텍스트 프로모션 텍스트를 사용하면 업데이트된 사항을 제출하지 않고 현재 앱 기능을 App Store 방문자에게 알릴 수 있습니다. 프로모션 텍스트는 iOS 11 이상 또는 macOS 10.13 이상이 설치된 기기를 사용하는 경우 App Store의 앱 설명 위에 표시됩니다. 더 보기 버튼을 누르지 않은 상태에서 보이는 텍스트들을 의미합니다
설명 앱의 특징과 기능에 대한 자세한 설명입니다. 더 보기 버튼을 눌러서 나오는 앱에 대한 설명이 보여지는 텍스트를 의미합니다
키워드 앱을 설명하는 하나 이상의 키워드를 포함하십시오. 키워드를 사용하면 App Store 검색 결과의 정확도를 높일 수 있습니다. 쉼표, 중국어 쉼표 또는 두 쉼표 모두 사용하여 각 키워드를 구분할 수 있습니다. 쉼표를 기준으로 앱에 검색 결과로 나타낼 정보들을 입력합니다.
지원 URL 앱에 대한 지원 정보가 포함되어 있는 URL입니다. App Store에 앱을 출시한 후 앱 제품 페이지에서 볼 수 있습니다. 앱의 지원정보가 포함된 사이트 링크
마케팅 URL 앱에 대한 마케팅 정보가 포함되어 있는 URL입니다. 이 URL은 App Store에 표시됩니다. 앱의 마케팅 정보가 포함된 사이트 링크
버전 추가 중인 앱의 버전입니다. 번호를 매길 때에는 소프트웨어 버전 관리 규칙을 따라야 합니다. 시작하려는 버전을 의미하며 일반적으로 시멘틱 버저닝(메이저.마이너.패치)형태로 구성을 합니다.
저작권 앱에 대해 독점 권한을 가진 개인 또는 법인의 이름으로, 앞에 권한을 획득한 연도가 옵니다(예: ‘2008 Acme Inc.’). URL을 제공하지 마십시오. 개인 혹은 법인의 이름
라우팅 앱 적용 범위 파일 앱에서 지원하는 대륙별 지역을 지정하십시오. 파일은 .geojson 포맷이어야 하고 하나의 멀티폴리곤 요소만 포함할 수 있습니다.  

 

💡 [참고] 각각의 영역에 대해서는 공식 사이트 글을 확인하시면 각각에 대해 보이는 곳을 확인할 수 있습니다.
 

Creating Your Product Page - App Store - Apple Developer

Find information and best practices for creating a quality App Store product page for your app.

developer.apple.com

 

 

💡 [참고] 이전에 심사 과정 중에 이와 관련되어 문제가 발생했던 적이 있습니다

- 아래의 내용은 '설명' 부분에 안드로이드에 대한 언급 내용이 포함되어 있었고, 이에 대해 불필요한 내용이라고 심사에서 거절을 당했던 적이 있으니 참고하시면 좋을 것 같습니다.

 

 

3. [iOS 앱 > iOS 앱 버전 1.0 > 앱 클립,  iMessage 앱,  Apple Watch] 해당되지 않아 제외하였습니다.


💡 [iOS 앱 > iOS 앱 버전 1.0 > 앱 클립, iMessage 앱, Apple Watch]

- 해당 부분은 포함되지 않아서 제출하지 않았습니다.

 

 

4. [iOS 앱 > iOS 앱 버전 1.0 > 빌드] 이전에 올린 빌드 파일을 업로드합니다.


💡 [iOS 앱 > iOS 앱 버전 1.0 > 빌드] 이전에 올린 빌드 파일을 업로드합니다.

- 이전에 XCode 내에서 Archive 한 빌드 파일을 선택하고 업로드해줍니다.

 

 

 

5. [iOS 앱 > iOS 앱 버전 1.0 > 앱 심사 정보] 각각에 항목에 대해 입력합니다.


💡 [iOS 앱 > iOS 앱 버전 1.0 > 앱 심사 정보] 각각에 항목에 대해 입력합니다.

- 심사자가 테스트를 위해 필요한 정보들에 대해서 입력합니다.

앱 심사 정보 설명
로그인 정보 로그인 정보는 앱 로그인에 사용할 수 있는 사용자 이름과 암호를 뜻하며 앱의 모든 기능을 심사하기 위해 사용됩니다. 사용자가 소셜 미디어를 사용하여 로그인하는 경우 사용할 수 있는 계정 정보를 제공하십시오. 계정 정보는 심사 기간 내 유효하며 활성화된 상태여야 합니다. 심사자들을 위한 계정을 제공하기 위해 로그인 정보를 작성합니다. (*실제 로그인이 되는 계정이 전달되어야 합니다)
연락처 정보 앱 심사 팀에서 궁금한 점이 있거나 추가 정보를 필요로 할 경우에 연락할 조직의 담당자입니다. 심사자들이 궁금한점 혹은 추가 정보가 필요하는 경우 연락을 할 담당자 정보입니다
메모 심사 과정 중에 도움이 될 만한 앱에 대한 추가 정보입니다. 앱별 설정처럼 앱을 테스트하는 데 필요할 수 있는 정보를 포함하십시오. 심사자들이 심사를 하는 동안에 추가적인 이해를 돕기위해 제공하는 정보입니다
첨부파일 앱 심사 과정 중에 지연을 방지하기 위해 특정 앱 문서, 데모 비디오 및 기타 항목을 첨부할 수 있습니다. 확장자가 .pdf, .doc, .docx, .rtf, .pages, .xls, .xlsx, .numbers, .zip, .rar, .plist, .crash, .jpg, .png, .mp4, 또는 .avi인 파일을 사용하십시오. 심사자들이 좀 더 쉽게 테스터를 할 수 있도록 하기 위해 관련 정보를 전달합니다.

 

 

💡 [참고] 이전에 심사 과정 중에 이와 관련되어 문제가 발생했던 적이 있습니다

- 심사자가 실제 테스트를 하는 과정에서 회원가입을 수행할 때, PASS를 이용하여서 전화번호 인증을 하는 과정이 있었습니다.
- 해당 과정에서는 실제 회원가입을 진행할 수 없기에 회원가입이 처리되는 과정을 영상으로 포함이 되어야 한다라고 이야기를 하고 있습니다.

 

 

 

6. [iOS 앱 > iOS 앱 버전 1.0 > App Store 버전 출시] 버전 출시에 사용할 방법을 지정합니다.


💡 [iOS 앱 > iOS 앱 버전 1.0 > App Store 버전 출시] 버전 출시에 사용할 방법을 지정합니다.

- App Store에서 심사에 대한 승인을 받자마자 바로 출시할 것인지 아니면 나중에 App Store에서 수동으로 선택하여 출시할 것인지에 대한 선택 부분입니다.

출시 방식 설명
자동 출시 앱이 App Store 심사 팀의 승인을 받은 즉시, 자동으로 출시되는 옵션입니다. 승인되면 별도의 조치 없이도 앱이 배포됩니다.
수동 출시 개발자가 앱 심사 팀의 승인을 받은 후, 직접 App Store Connect에서 출시 버튼을 눌러야 하는 방식입니다.

 

 

 

3) 일반 정보 > 앱 정보 설정


 

1. [일반 정보 > 앱 정보 > 일반 정보] 설정


분류 설명
이름 앱을 다음에 제출할 때 이름을 심사합니다. 실제 App Store에 노출되는 앱 이름입니다.
부제 App Store 제품 페이지의 앱 이름 아래에 표시되는 앱의 요약으로 30자를 넘지 않아야 합니다. App Store 아래에 출력되는 부제입니다.
번들 ID(사전 입력) 번들 ID는 Xcode에 사용한 ID와 일치해야 합니다. 첫 번째 빌드를 업로드한 후에는 변경할 수 없습니다. 최초 앱을 생성할때 지정하였던 XCode 번들아이디 입니다.
SKU(사전 입력) 사용자에게 표시되지 않는 앱의 고유한 ID입니다. 최초 앱을 생성할때 지정하였던 고유 ID입니다.
Apple ID(사전 입력) 자동으로 생성된 해당 앱의 ID입니다. -
기본 언어(사전 입력) 현지화된 앱 정보가 국가 및 지역에서 제공되지 않을 경우 기본 언어의 정보가 대신 사용됩니다. -
카테고리 이 앱을 가장 잘 설명하는 카테고리입니다.  앱의 분류를 설정하는 카테고리입니다.
콘텐츠 권한 앱에 타사 콘텐츠가 포함 또는 표시거나 타사 콘텐츠에 액세스하는 경우 해당 콘텐츠에 대한 필요한 권한을 갖고 있거나 콘텐츠 사용이 허가되어 있어야 합니다. 타사 앱으로 콘텐츠가 액세스 되는 경우가 있으면 선택하시고 아니면 아니요를 선택합니다.
연령 등급 앱의 연령 등급으로 사용자가 앱에 부적절한 콘텐츠가 포함되어 있는지 알 수 있습니다. 각각 선택지를 선택하여 앱의 연령등급이 지정이 되는 부분입니다.

 

 

💡 [참고] 공식 사이트 내에서 각각의 항목에 대해서 확인이 가능합니다.
 

Creating Your Product Page - App Store - Apple Developer

Find information and best practices for creating a quality App Store product page for your app.

developer.apple.com

 

 

💡 콘텐츠 권한을 선택합니다.

- 타사앱과 연동이 되어서 액세스 되는 경우가 있다면 선택을 하고 아니면 아니요를 선택합니다.

 

 

💡 [연령 등급] 연령 등급을 판단받기 위해 각각을 선택합니다.

 

 

 

 

2. [일반 정보 > 앱 정보 > 앱 암호화 문서] 설정


💡 [일반 정보 > 앱 정보 > 앱 암호화 문서] 설정

- Xcode에서 앱의 Info.plist 파일에 App Uses Non-Exempt Encryption 키와 앱의 암호화 사용 여부를 나타내는 불값(Boolean value)을 추가하여 암호화 사용 여부를 명시하십시오.
- 해당 경우에는 별도의 앱 암호화 문서를 사용하지 않기에 사용하지 않음으로 설정하였습니다.

 

 

💡 Info.plist 파일로 접근하여 “+”기호를 누르고 아래와 같은 항목을 추가합니다
App Uses Non-Exempt Encryption : No

 

💡 [참고] 또는 아래와 같이 태그 형태로 추가하셔도 됩니다.
<dict>
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
</dict>	
 

Complying with Encryption Export Regulations | Apple Developer Documentation

Declare the use of encryption in your app to streamline the app submission process.

developer.apple.com

 

 

 

3. [일반 정보 > 앱 정보 > App Store 규정 및 허가] 디지털 서비스법 규정 준수에 따른 선택을 합니다.


 

 

4) App Store > 신뢰 및 안전


 

1. [앱이 수집하는 개인정보] ‘시작하기’ 버튼을 누릅니다.


 

2. [앱이 수집하는 개인정보 > 데이터 수집] 데이터 수집에 대해 선택합니다.


 

 

3. [앱이 수집하는 개인정보 > 데이터 수집] 예, 이 앱에서 데이터를 수집합니다. 의 경우, 수집하는 데이터를 선택합니다


 

 

 

카테고리 항목 설명
연락처 정보 이름 성 또는 이름 수집 여부
  이메일 주소 해시 처리된 이메일 주소 등 수집 여부
  전화번호 해시 처리된 전화번호 등 수집 여부
  주소 예: 집 주소, 거주지 주소 또는 우편 주소 수집 여부
  기타 사용자 연락처 정보 앱 외부에서 사용자에게 연락하는 데 사용할 수 있는 기타 정보 수집 여부
건강 및 피트니스 건강 건강 및 의료 데이터 - 임상 건강 기록 API, HealthKit API, 운동 장애 API, 건강 관련 인체 실험 또는 기타 사용자 제공 건강 또는 의료 데이터 등 수집 여부
  피트니스 피트니스 및 운동 데이터 - 동작 및 피트니스 API 등 수집 여부
재무 정보 지불 정보 지불 형식, 지불 카드 번호 또는 은행 계좌 번호. 귀사의 앱이 지불 서비스를 제공하면서 지불 정보가 앱의 외부에서 입력되고 귀사가 개발자로서 지불 정보에 전혀 접근하지 않는 경우 지불 정보는 수집되지 않으며 명시할 필요가 없습니다.
  신용 정보 신용 점수 수집 여부
  기타 재무 정보 월급, 수입, 자산, 부채 또는 기타 재무 정보 수집 여부
위치 정확한 위치 소수점 아래 3자리 이상 해상도의 위도 및 경도로 사용자 또는 기기의 위치를 설명하는 정보 수집 여부
  대략적인 위치 소수점 아래 3자리 미만 해상도의 위도 및 경도로 사용자 또는 기기의 위치를 설명하는 정보(예: 위치 추정 서비스) 수집 여부
민감 정보 민감 정보 인종 또는 민족 데이터, 성적 지향, 임신 또는 출산 정보, 장애, 종교 또는 철학적 신념, 노동조합 가입, 정치적 견해, 유전 정보 또는 생체 데이터 수집 여부
연락처 연락처 사용자의 전화, 주소록 또는 소셜 그래프의 연락처 목록 수집 여부
사용자 콘텐츠 이메일 또는 문자 메시지 이메일 또는 메시지의 제목, 보낸 사람, 받는 사람 및 콘텐츠 포함 수집 여부
  사진 또는 비디오 사용자의 사진 또는 비디오 수집 여부
  오디오 데이터 사용자의 목소리 또는 사운드 녹음 수집 여부
  게임 플레이 콘텐츠 게임 내 사용자 생성 콘텐츠 수집 여부
  고객 지원 고객 지원 요청 시 사용자가 생성한 데이터수집 여부
  기타 사용자 콘텐츠 사용자 생성 기타 콘텐츠 수집 여부
방문 기록 방문 기록 사용자가 앱의 일부가 아닌 콘텐츠(예: 웹 사이트)를 본 정보 수집 여부
검색 기록 검색 기록 앱에서 수행된 검색에 대한 정보
식별자 사용자 ID 예: 대화명, 핸들, 계정 ID, 배정된 사용자 ID, 고객 번호, 확률적 식별자 또는 특정 사용자 또는 계정을 식별하는 데 사용할 수 있는 기타 사용자 또는 계정 레벨 ID
  기기 ID 예: 기기의 광고 식별자 또는 기타 기기 레벨 ID 수집 여부
구입 항목 구입 항목 계정 또는 개인의 구입 항목 또는 구입 경향 수집 여부
사용 데이터 제품 상호 작용 앱 실행, 탭, 클릭, 스크롤 정보, 음악 청취 데이터, 동영상 조회, 게임에서 저장된 장소, 동영상, 노래 또는 사용자가 앱과 상호작용하는 방법에 대한 기타 정보 수집 여부
  광고 데이터 사용자가 본 광고에 대한 정보 수집 여부
  기타 사용 데이터 앱에서의 사용자 활동에 대한 기타 데이터 수집 여부
진단 충돌 데이터 충돌 로그 수집 여부
  실적 데이터 실행 시간, 무반응률 또는 에너지 사용 수집 여부
  기타 진단 데이터 앱과 관련하여 기술 진단 측정을 위하여 수집된 기타 데이터 수집 여부
주변 환경 환경 스캐닝 메시, 평면, 장면 분류 및/또는 사용자 주변 환경의 이미지 감지 등 수집 여부
신체 사용자의 손 구조 및 손 움직임 수집 여부
  머리 사용자의 머리 움직임 수집 여부
기타 데이터 기타 데이터 언급되지 않은 기타 데이터 유형 수집 여부

 

 

 

💡 [참고] 공식사이트에서 확인하는 개인정보 수집 사항
 

앱이 수집하는 개인정보 세부 사항 - App Store - Apple Developer

App Store 제품 페이지에 표시되도록 App Store Connect에 앱의 개인정보 처리방침 세부 사항을 제공하는 방법에 대해 알아보세요.

developer.apple.com

 

 

 

 

4. [앱이 수집하는 개인정보 > 데이터 유형] 수집되는 데이터에 대해서 상세 정보를 선택합니다.


💡 [앱이 수집하는 개인정보 > 데이터 유형] 수집 되는 데이터에 대해서 상세 정보를 선택합니다.

- 각각 수집하는 항목을 선택한 것에 대해 상세 정보를 선택합니다.

 

 

5) App Store Connect > 수익화


 

1. [App Store Connect > 수익화 > 가격 및 사용 가능 여부 > 가격 변경 일정] 가격 추가 버튼을 누릅니다.


💡 [App Store Connect > 수익화 > 가격 및 사용 가능 여부 > 가격 변경 일정] 가격 추가 버튼을 누릅니다.

 

 

💡 앱 가격 설정

- 기준 국가 또는 지역을 선택하고 앱에 대한 가격을 지정합니다.

 

 

 

 

2. [App Store Connect > 수익화 > 가격 및 사용 가능 여부 > 앱 사용 가능 여부] 사용 가능 여부 설정 버튼을 누릅니다.


💡 [App Store Connect > 수익화 > 가격 및 사용 가능 여부 > 앱 사용 가능 여부] 사용 가능 여부 설정 버튼을 누릅니다.

 

💡 출시하려는 국가를 지정합니다.

- 국내 출시만 하는 경우 "특정 국가 또는 지역" 체크 박스를 선택하고 "다음" 버튼을 누릅니다.

 

 

💡 국내에서만 선택을 하는 경우 "대한민국"을 선택하고 "확인" 버튼을 누릅니다.

 

 

6) [App Store Connect] iOS 앱 설정


 

1. 앱 심사 버튼을 눌러서 심사를 진행하면 과정이 완료가 됩니다.

 

 

 

 

 

7) 심사 이전 확인사항


 

1. [XCode > Supported Destinations] 지원하는 기기를 확인합니다.


💡 지원하는 기기를 확인합니다.

- XCode 내에서 앱의 기준이 되는 기기에 대해서 설정합니다. iPhone, iPad, Mac, Apple TV, Apple Vision이 있는데 이에 대해 기준으로 잡은 기기 외에 다른 것이 있다면 제외를 시켜줍니다.

 

 

2. 언어를 설정합니다.


 💡 App Store 내에서 아래와 같이 나타나는 부분에 대한 설정을 ‘한국어’로 변경해 줍니다.

- 기본적으로 en(영어)로 되어 있기에 한국어가 기준이 되도록 합니다.

 

 

2.1. [info.plist] Default localization 값을 en -> Korea로 바꿔줍니다.

💡 [info.plist] Default localization 값을 en -> Korea로 바꿔줍니다.

- 아래와 같이 파일을 수정하였습니다.

 

 

 

2.2. [프로젝트/ios/xx.xcodeproj] 파일에 접근하여 값을 수정하여 줍니다


💡 xx.xcodeproj 파일을 오른쪽 클릭하고 '패키지 내용 보기'를 선택합니다.

 

 

💡 선택하면 아래와 같은 폴더가 출력되고 project.pbxproj를 엽니다.

 

 

💡 파일 내에서 "developmentRegion"를 검색하고 en으로 되어 있는 값을 "ko"로 수정하여 저장합니다.

 

 

 

💡 [참고] XCode 내에 Localizations 부분이 Korean으로 변경된것을 확인하였습니다.

 

 

💡 [참고] 해당 수정과 관련된 참고 링크
 

Changing the development language in Xcode

I need to set Spanish as development language for an iOS app. I'm already using Xcode 6, and I changed the Localization native development region entry in app's Info.plist (CFBundleDevelopmentRegion)

stackoverflow.com

 

 

 

 

3. [plist.info] 앱 권한에 대한 설명


💡 앱 권한에 대한 설명

- 앱스토어 심사 과정에서 앱에 대한 권한 설명을 구체적으로 작성하는 것이 중요합니다. 이는 사용자가 앱을 설치하고 사용할 때 어떤 권한을 요청하는지 명확히 알 수 있도록 하기 위함입니다.

이전 설명 구체적인 설명
카메라 권한을 요청합니다 학습 기능에 필요한 측정을 위해 카메라 권한이 필요합니다.

 

 

 

 

 

 

오늘도 감사합니다. 😀

 

 

 

반응형