본문 바로가기

Programming61

[Flutter] Firebase를 이용하여 Sign In with Apple 사용하기 Firebase를 이용하여 Sign In with Apple 사용하기 파이어베이스에서 애플 로그인을 사용해보자. 알림 : 2020.04.08 안드로이드 환경에서 애플 로그인을 실행하는 플러그인을 개발하여 내용 추가함 알림 : 2019.12.29 아직 안드로이드나 iOS 12 이하에서 애플 로그인을 쉽게 적용할 수 있는 플러그인이 개발되지 않았으므로, 관련 내용은 추후에 추가할 예정 선행 작업 이 글은 1. 파이어베이스에 프로젝트 생성 2. 파이어베이스에 Android, iOS 등록 3. 애플 개발자 페이지에서 애플 로그인 활성화 4. 파이어베이스 호스팅 활성화 위 프로세스 이후의 작업을 다루므로 앞의 프로세스를 진행하지 않았다면 아래 링크에서 먼저 모든 작업을 완료해야 한다. 1. 파이어베이스 프로젝트 .. 2020. 4. 9.
[Node.js] parameter가 있는 middleware parameter가 있는 middleware 매개변수를 사용할 수 있는 미들웨어를 만들어보자. router와 middleware의 기본 형태 router.get('/example', function (req, res, next) { ... }); NodeJS에서는 라우터를 구성할 때 위 소스코드처럼 경로를 지정하고 해당 경로에서 트리거 될 미들웨어를 작성한다. // 미들웨어의 기본 형태 function (req, res, next) { } // 파라미터를 스킵한 미들웨어의 형태 function () { } 미들웨어는 항상 기본 파라미터로 request, response, next 개체들을 받거나 스킵할 수 있는데, 개발자가 원하는 파라미터를 따로 선언할 수 없다는 문제점이 있다. parameterized.. 2020. 3. 27.
[Flutter] Firebase remote config 적용하기 Firebase remote config 적용하기 Flutter 앱에 파이어베이스 원격 구성을 적용해보자 선행 작업 이 글은 파이어베이스 프로젝트가 생성되있어야 하고 파이어베이스 프로젝트에 Android, iOS가 등록된 이후의 작업을 다루므로, 앞의 작업을 완료하지 않았다면 아래 링크에서 먼저 모든 작업을 완료해야한다. 1. 파이어베이스 프로젝트 생성 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Console 접속 파이어베이스 서비스를 이용하기 위해서는 구글 파이어베이스 콘솔에 접속해야한다. https://console.firebase.. spiralmoon.tistory.com .. 2020. 2. 28.
[Flutter] Firebase Crashlytics 사용 설정하기 Firebase Crashlytics 사용 설정하기 플러터 프로젝트에 오류 로그 수집기인 Firebase crashlytics을 설정해보자 선행 작업 이 글은 파이어베이스 프로젝트 생성 및 Android, iOS 앱 등록 이후의 작업을 다루므로 앞의 두 프로세스를 완료하지 않았다면 아래 링크에서 작업을 완료해야 한다. 1. 파이어베이스 프로젝트 생성 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Console 접속 파이어베이스 서비스를 이용하기 위해서는 구글 파이어베이스 콘솔에 접속해야한다. https://console.firebase.. spiralmoon.tistory.com 2... 2019. 12. 21.
[Flutter] Firebase를 이용하여 Facebook Login 사용하기 Firebase를 이용하여 Facebook Login 사용하기 플러터 환경에서 파이어베이스를 사용하여 페이스북 인증을 해보자 작업 환경 아래 항목은 필수 사항이다. - 안드로이드 : AndroidX 이상 - iOS : Deployment target iOS 9 이상 선행 작업 이 글은 파이어베이스와 페이스북에 각각 프로젝트가 생성되어 있어야 하며, 양 쪽 프로젝트 모두 Android, iOS가 등록된 이후의 작업을 다루므로 앞의 프로세스를 진행하지 않았다면 아래 링크에서 먼저 모든 작업을 완료해야한다. 1. 파이어베이스 프로젝트 생성 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Co.. 2019. 12. 11.
[Flutter] Firebase를 이용하여 Google Login 사용하기 Firebase를 이용하여 Google Login 사용하기 플러터 환경에서 파이어베이스를 사용하여 구글 인증을 해보자 선행 작업 이 글은 파이어베이스 프로젝트가 미리 생성되어 있어야 하고, 프로젝트에 Android나 iOS 앱을 등록한 이후의 작업을 다루므로 앞의 두 프로세스를 진행하지 않았다면 아래 링크에서 먼저 작업을 완료해야한다. 1. 파이어베이스 프로젝트 생성 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Console 접속 파이어베이스 서비스를 이용하기 위해서는 구글 파이어베이스 콘솔에 접속해야한다. https://console.firebase.. spiralmoon.tist.. 2019. 12. 4.
[Android] Cannot fit requested classes in a single dex file Cannot fit requested classes in a single dex file Android나 Flutter 개발을 하다보면 잘 컴파일되던 소스코드가 갑자기 "Cannot fit requested classes in a single dex file"이라는 메시지와 함께 컴파일 오류를 내는 경우가 있다. 원인 안드로이드 공식 문서에는 다음과 같이 쓰여있다. 앱 및 앱이 참조하는 라이브러리에서 메서드가 65,536개를 초과하면 앱이 Android 빌드 아키텍처의 제한에 도달했음을 알리는 빌드 오류가 발생합니다. 개발에 실수해서 생기는 오류는 아니고 그냥 프로젝트에 포함된 총 메소드의 갯수가 65,536개가 넘어가면 발생하는 오류이다. (메소드 수는 라이브러리 내부의 메소드까지 포함한 수치) 위의 .. 2019. 11. 26.
[C#] 확장 메소드 (Extension Methods) 확장 메소드 (Extension Methods) C#에서 이미 만들어진 클래스에 메소드를 추가하는 방법에 대하여 알아보자. 확장 메소드란? 프로그래밍을 하다보면 이미 만들어진 클래스에 새로운 메소드를 추가해야 할 때가 생긴다. 직접 만든 클래스라면 메소드를 추가하여 수정이 가능하지만, 남이 만든 클래스(라이브러리, C# 기본 제공 클래스 등)는 소스코드를 수정할 수 없다. 대표적인 대안으로 부모클래스를 상속하여 자식클래스에서 메소드를 추가해 확장하는 방법이 있는데, 이는 메소드가 추가될 뿐인데 상속을 유발하기 때문에 프로그램 설계상 가장 좋은 방법은 아니다. C#은 상속을 하지 않고도 이미 만들어진 클래스에 새로운 메소드를 추가 확장할 수 있는 방법을 제공하며, 이를 확장 메소드(Extension met.. 2019. 11. 21.
[Javascript] 세미콜론 자동 삽입과 중괄호 위치 버그 세미콜론 자동 삽입과 중괄호 위치 버그 자바스크립트의 세미콜론 자동 삽입에 의해 나타날 수 있는 현상인 중괄호 위치 버그에 대해 알아보자. 세미콜론 자동 삽입 프로그래머가 세미콜론(;)을 삽입하지 않은 채 행을 종료하면, 자바스크립트에서는 코드가 실행될 때 행의 마지막에 세미콜론을 자동 삽입한다. // 예시 1 var number = 100 // 예시 2 console.log(number) 위 코드 두 줄은 각각 행의 마지막에 세미콜론을 붙이지 않은 코드이지만 실제로는 동작한다. 세미콜론을 넣지 않고 number 변수에 100을 할당하는 코드이다. 실제로 number 변수의 값을 조사해보면 100이 할당된 것을 확인해 볼 수 있다. console.log 함수를 이용해 number 변수의 값을 다시 한 번.. 2019. 11. 10.
[Javascript] 문자열 replace와 replaceAll ▶ 주제 : 문자열 replace와 replaceAll. 자바스크립트에서의 문자열 replace 처리 동작과 replaceAll 하는 방법을 알아보자. ▶ 문자열 replace 문자열 replace 기법은 주어진 문자열의 내부에서 패턴 A에 해당하는 부분을 문자열 B로 교체하는 방법이다. 'aaa?bbb?ccc' 이라는 문자열에서 ?을 @로 교체(replace)한다고 했을 때 'aaa@bbb@ccc'로 변경된다고 이해하면 된다. 겨우 이런 것 가지고 글을 쓰는 이유는 Javascript에서의 replace 함수가 다른 메이저 언어들의 replace 함수와 동작이 다르기 때문이다. ▷ Javascript의 replace : let str = 'aaa?bbb?ccc'; console.log(str.repla.. 2019. 10. 20.
[프로그래밍 이론] 반각문자 @와 전각문자 @ ▶ 주제 : 반각문자 @와 전각문자 @ 반각문자와 전각문자에 대해 알아보고 실제 프로그래밍 상황에서 어떤 문제가 발생하는지에 대해 알아보자. ▶ 상황 다국어를 지원하는 모바일 앱을 개발 및 테스트 하던 도중 일본어 환경에서 회원가입이 되지 않는 문제가 발생하였다. 정규식을 통해 이메일 형식 아이디를 입력받게 구현되있었는데, 제대로 입력했음에도 정규식이 통과하지 않는 것이었다! ▶ 원인 위의 상황이 발생한 원인은 일반적인 자판의 반각 골뱅이표시(@)와 일본어 자판의 전각 골뱅이표시(@)가 서로 다른 문자이기 때문에 반각 골뱅이표시만으로 이메일 형식을 검사하는 정규식에 통과하지 못했던 것이다. 즉, 두 골뱅이표시를 나타내는 유니코드가 각각 다르다. 완전히 다른 문자라는 것이다. (이 글을 보고있는 환경에 따.. 2019. 10. 10.
[C#] string + string 과 StringBuilder.Append() 차이 ▶ 주제 : 문자열을 더할때 자주 쓰이는 string + string 연산과 StringBuilder 클래스의 Append 함수 연산의 차이를 비교해보자. ▶ 문자열을 더하는 방법 C#에서 문자열을 더하는 방법은 여러가지가 있지만 가장 잘 알려진 방법은 아래와 같은 방법일 것이다. string result = "hello" + "world"; // "helloworld" 문자열과 문자열을 더하기 기호로 이어붙이는 방법이다. 단순하게 표현할 수 있어서 C# 이외에도 대부분의 언어들이 지원하고 있는 기능이다. 두 번째로 알려진 방법은 StringBuilder 클래스의 Append 함수를 이용하여 builder 객체에 문자열을 이어붙인 후 꺼내는 방법이다. var builder = new StringBuild.. 2019. 9. 23.
반응형