728x90
Swift에서 싱글톤을 쓰지 마세요
·
개발노트/iOS
Let's Swift 뉴스레터를 슥 훑어보는데 눈에 띄는 주제가 있었다.Stop Making Singletons in Swift: A Dependency Injection Guide 웬만하면 사용하지 않으려고는 하나, 종종 사용했던 싱글톤 패턴인지라(ex. 의존성 주입)이참에 특징과 장단점, 그리고 저 문서에서 얘기하는 내용이 무엇인지 공부하면서 정리해두면 좋을 것 같다는 생각에 포스팅을 작성하기 시작했는데,(한편만에 끝낼 수 있었다면 좋았을텐데 아직 고찰을 끝내지 못했다..)이번 1편에서는 위 포스팅의 작성자가 왜 싱글톤을 쓰지 말라고 하는가 정도만 적어본다.1. 싱글톤이란 무엇인가쉽고 간단하게, 앱 생명주기동안 한 번만 생성되는 객체를 싱글톤 객체라고 한다.첫 회사에서 처음 넘겨 받은 코드에는 sha..
Flutter에서 Firebase Authentication으로 이메일 로그인 구현하기
·
개발노트/Flutter
Firebase에서 Authentication은 구글 로그인과 애플 로그인 기능만 이용해봤는데, 이메일/비밀번호 로그인 기능도 제공한다.: Firebase Authentication을 사용하면, 기본적인 로그인 및 회원가입 기능을 간단히 구현할 수 있습니다. Firebase Auth는 자동으로 비밀번호를 안전하게 해시화하여 저장하므로, 직접 해시화 로직을 구현할 필요가 없습니다. 백엔드 개발자 따로 두지 않고 Firestore Database 연동해서 간단한 미니 프로젝트 만들어보려고 했던 건데,Authentication에서 생성된 UID를 저장해두고 사용하는 식으로 하면 내가 원하던대로 별도의 회원 테이블 관리도 가능해보여서 로그인 기능은 이쪽의 도움을 받아보기로 했다. 2024.11.14 - [개발노..
Flutter에서 로컬 DB 구현하기 (SQFlite)
·
개발노트/Flutter
플러터 로컬디비 서치해보면 나름 이것저것 있는데, 그중 Hive라고 NoSQL 기반 라이브러리도 있더라.한 번 써보고 싶다고 생각했는데, 이 프로젝트는 일단 관계형DB가 더 나을 것 같아서 저건 나중에 기회 되면 또 사용해보는 걸로. 🔗 SQFite 패키지 1. 패키지 설치flutter pub add sqflite 그리고 해보니까 path 패키지도 필요하더라flutter pub add path   2. 코드 작성2-a. Database 만들기Future getDatabase() async { if (_database != null) return _database!; final String dbPath = await getDatabasesPath(); final String path = join(d..
iOS 인앱 결제 테스트하기
·
개발노트/iOS
결제 기능 자체를 처음부터 구현한 건 아니지만, 결제 이후의 프로세스를 개선하는 작업을 진행하게 됐다.(결제 완료 후에 서버 통신으로 DB 정보를 갱신해준다든가 등등)보다보니 상품 구매 프로세스 기획 자체에 오류가 있어 테스트를 점점 딥하게 파고들었고,다음에 인앱 결제 관련 작업을 또 하게 될 경우 참고하고자 포스팅으로 정리해보려 한다.1. 용어 및 프로세스 훑어보기productIdentifier: 앱스토어 커넥트에 등록하는 인앱 혹은 구독 상품의 고유 아이디trasactionIdentifier: 결제(거래) 아이디. 각 결제 건을 구분하는 고유 아이디 값이다. 구독 상품이 갱신된 결제 건의 경우에도 새롭게 생성된다.originalTransactionIdentifier: 구독 결제의 경우 존재하는, 최초..
Flutter에서 FCM 설정하기
·
개발노트/Flutter
2024.11.14 - [개발노트/Flutter] - Flutter 프로젝트에서 Firebase 이용하기 (공통 설정)1. Apple Developers 설정🔗 Apple Developers 사이트 인증서, 식별자 및 프로파일 카테고리에서 ```식별자(Identifiers)```를 선택한다.→ 개발 중인 앱 아이디에 들어가서 ```Push Notification``` 기능을 활성화한다. 이후 좌측 메뉴에서 ```Keys```를 선택한다.→ APNS 키를 생성한다.❗️ iOS 키파일 나올때마다 적는데, 한 번 다운로드 받으면 이후 분실 시에도 재다운로드 받을 수 없으니 잘 보관해야 한다  2. Firebase Console 설정좌측 톱니바퀴 모양 → 프로젝트 설정 → 클라우드 메세징스크롤 조금만 내리면 ..
안드로이드 Google Play Store 대응기
·
개발노트/Android
플레이스토어 콘솔에 앱 등록 관련하여 겪은 문제들을 모아서 기록해보려고 만든 포스팅!계속 추가해나갈 예정이다.1. 앱에서 포그라운드 서비스 권한을 사용하는지 알려 주셔야 합니다.업체에서 스토어 등록 진행하는 중이라며, 문제 해결해달라고 스크린샷만 하나 덜렁 도착했다. 사용하는 기능 설명 적당히 입력하면 되지 않을까 싶은데,Android 쪽은 아직도 쌩초보인지라 정작 저걸 어디서 어떻게 수정해야 하는지 한참 헤매었다.. Play Console에서 업로드할 앱 선택 → 테스트 및 출시 → 프로덕션 → 출시 → 버전 수정 → 다음업체에서 스토어 제출 단계를 진행하던 도중이라서 위 경로로 들어가면 저 화면을 똑같이 마주할 수 있다. 오류 항목에서 선언으로 이동 클릭하면 자동으로 화면 이동 시켜준다.동영상 링크는..
git-crypt (git 암호화) 사용해보기 (Mac)
·
개발노트/기타
API Key 등을 따로 파일 분리하여 관리하다보면 싱크가 안 맞는 경우가 생기는 게 조금 불편하다고 생각했다.(원래 형상관리를 깃이 편하게 해주는데 깃에 올리지를 않으니..)그래서 깃에는 올리되 특정 인원만 해당 파일을 볼 수 있게 암호화 하는 방법이 있지 않을까? 하는 생각으로 검색해봤고,그에 대한 기록을 작성해두는 포스팅이다.참고로 새삼스럽게 적어보자면 맥 환경을 기준으로 작성했다.1. 사용 준비1-a. GPG 설치❓ GPG란?GPG(gnupg, GNU Privacy Guard)는 데이터를 암호화하고 디지털 서명을 생성할 수 있는 오픈 소스 소프트웨어입니다. 주로 이메일, 파일, 코드 등의 보안을 유지하기 위해 사용됩니다. GPG는 공개 키 암호화를 사용하여 데이터를 안전하게 암호화하고, 디지털 서..
iOS에서 API Key 파일 분리하기
·
개발노트/iOS
사실 Android의 경우는 로컬 프로퍼티 등의 파일을 분리해둬서 처음 프로젝트 넘겨받을 때 필요한 파일들을 추가로 받아야 빌드 가능한 모습들을 익히 봐왔다.하지만 자사 서비스를 할 때도 그렇고, 프리랜서로 유지보수 프로젝트 받을 때도 그렇고, iOS는 생각해보면 딱히 그런 적이 없었다. 물론 자사 서비스든 외주 서비스든 깃 프로젝트를 공개로 오픈해두는 경우는 없고API Key도 그 키값만으로는 사용할 수 없으니 '깃에 업로드 해두면 절대 안 돼'까지는 아니겠지만,그래도 민감한 정보를 따로 분리할 수 있다면 방법을 알아둬서 나쁠 것이야말로 없으니 기록해두려고 한다. 1. Config 파일 생성 및 작성New File from Template 해서 아래로 스크롤 내리다보면 config 템플릿 찾을 수 있다..
Flutter 프로젝트에서 Apple Login 설정하기
·
개발노트/Flutter
이 포스팅은 Firebase를 통해 Apple Login 기능 구현할 때 설정해야 하는 것들에 대한 내용이다.즉, 아래 링크 작업이 선행되어야 한다.2024.11.14 - [개발노트/Flutter] - Flutter 프로젝트에서 Firebase 이용하기 (공통 설정)1. Firebase Console 설정 - 11-a. Apple Login 기능 활성화Firebase Console 좌측 메뉴 빌드 카테고리에서 Authentication 메뉴를 클릭하면 된다.제공업체 중에서 Apple을 선택하여 사용 설정을 on 해준다.(저장 버튼이 아래 있는데 스크롤이 가끔 이상하니 잘 찾아서 꼭 눌러주자)아래에 있는 콜백 URL도 복사해둔다.  2. Apple Developers 설정 - 1🔗 Apple Develo..
Flutter 프로젝트에서 Google Login 설정하기
·
개발노트/Flutter
2024.11.14 - [개발노트/Flutter] - Flutter 프로젝트에서 Firebase 이용하기 (공통 설정)1. Firebase Console 설정1-a. Google Login 기능 활성화Firebase Console 좌측 메뉴 빌드 카테고리에서 Authentication 메뉴를 클릭하면 된다.```시작하기```를 클릭하고 제공업체 중에서 Google을 선택하여 사용 설정을 on 해준다. 1-b. SHA1 인증서 지문 추가 (for Android)Android 기기에서 구글 로그인을 테스트 해보려면 필요한 절차다.(스토어에 제출할 때는 스토어 앱 서명에 있는 값을 추가해주기 때문에혹시라도 Android 디바이스에서 테스트해볼 일이 없다면 추가 안 해도 된다는 뜻)(하지만 Flutter로 개발..