본문 바로가기

전체 글90

[프로그래밍 이론] 두 점 사이의 절대각도를 재는 atan2 두 점 사이의 절대각도를 재는 atan2 프로그래밍 언어에서 역탄젠트를 계산하는 함수 atan2의 특징을 알아보자 아크탄젠트란? 아크탄젠트(arctangent)는 역탄젠트라고도 하며 탄젠트의 역함수이다. 아크탄젠트를 이용하면 위 사진에서의 θ의 각도를 구할 수 있다. 모든 프로그래밍 언어에는 아크탄젠트를 계산할 수 있도록 Math 모듈에 atan(y / x)과 atan2(y, x) 함수를 지원한다. atan과 atan2의 차이점 atan과 atan2은 두 점 사이의 θ의 절대각을 구하는 함수인데 왜 두가지로 나뉘었을까? atan은 두 점 사이의 탄젠트값을 받아 절대각을 -π/2 ~ π/2의 라디안 값으로 반환한다. (-90 ~ 90도) atan2는 두 점 사이의 상대좌표(x, y)를 받아 절대각을 -π .. 2020. 6. 3.
[Algorithm] 평면 좌표 경로 압축 알고리즘 평면 좌표 경로 압축 알고리즘 2D 평면 좌표(x, y)들의 경로를 압축, 요약하는 알고리즘을 만들어보자. 사전 지식 이 알고리즘은 평면좌표 표현 방법과 기초 삼각 함수를 숙지하여야 한다. 라디안 라디안 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 라디안(영어: radian)은 각의 크기를 재는 SI 단위이다. 호도(弧度)라고도 하며, 기호는 rad이다. 단위원의 중심각의 라디안 값은 그 각이 대하는 호의 길이와 같다. 1라디안은 약 57.3도이다. 라디안은 입체각의 단위인 스테라디안과 함께 SI 보조 단위에 속했으나, 1995년에 SI 보조 단위가 폐지되면서 SI 유도 단위가 되었다. 라디안의 표기는 rad 기호가 가장 흔하며, 이는 자주 생략된다. 간혹 c(위첨 ko.wiki.. 2020. 5. 14.
[Flutter] Firebase cloud messaging 적용하기 Firebase cloud messaging 적용하기 플러터 앱에 FCM 푸시 알림 기능을 적용해보자. FCM이란? FCM은 Firebase cloud messaging의 약자로 앱이나 웹에 푸시 알림을 전송할 수 있도록 해주는 파이어베이스 서비스 중의 하나이다. 푸시 알림에는 사용자에게 보여지는 제목과 내용, 사용자는 볼 수 없는 데이터를 포함하여 보낼 수 있으며, 데이터 사이즈에는 제한이 있지만 사용량에는 제한 없이 모두 무료이다. FCM 이전에 GCM(Google cloud messaging)이라는 서비스도 있었는데 2019년 4월 11일자로 서비스를 중단해서 이제는 FCM을 써야한다. 선행 작업 이 글은 1. 파이어베이스에 프로젝트 생성 2. 파이어베이스에 Android, iOS 등록 3. APN.. 2020. 4. 20.
[Flutter] Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.RuntimeException: PluginRegistrantCallback is not set. Stacktrace Fatal Exception: java.lang.RuntimeException Unable to create service io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService: java.lang.RuntimeException: PluginRegistrantCallback is not set. 발생 원인 발생 조건 v2 embedding이 적용된 플러터 안드로이드 프로젝트 Firebase_messaging 패키지를 사용 사용자 문제는 아니고 Firebase_messaging 패키지가 v2 embedding을 제대로 적용하지 않아서 생긴 문제이다. 플러터에서 네이티브 코드를 호출하기 위해서는 패키지 내부 소스코드에서 .. 2020. 4. 17.
[Apple] Apple push notification service (APNs) 설정하기 Apple push notification service (APNs) key 설정하기 iOS 앱으로 푸시 알림을 보낼 수 있도록 APNs 인증서와 키를 발급해보자. APNs란? APNs는 Apple push notification service의 줄임말로, iOS에 표시되는 푸시알림 기능이다. 애플 개발자 페이지에서 인증서와 키를 설정해야만 사용할 수 있다. 선행 작업 이 글은 애플 개발자 페이지의 Identifiers 항목에 iOS 앱을 등록한 이후의 작업을 다루므로, 아직 등록하지 않았다면 아래 링크를 따라 작업을 완료해야 한다. iOS - How to Create an App ID The second step to complete and publish your app is to create a un.. 2020. 4. 11.
[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.
[Firebase] 파이어베이스에 BigQuery 연결하기 파이어베이스에 BigQuery 연결하기 파이어베이스에 대용량 로그 DB 서비스인 빅쿼리(BigQuery)를 연동해보자 선행 작업 이 글은 파이어베이스 프로젝트 생성 이후의 일을 다루므로 파이어베이스 프로젝트를 생성하지 않았다면 아래 링크에서 선행 작업을 완료해야한다. 1. Firebase 프로젝트 생성하기 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Console 접속 파이어베이스 서비스를 이용하기 위해서는 구글 파이어베이스 콘솔에 접속해야한다. https://console.firebase.. spiralmoon.tistory.com 작업 순서 1. 파이어베이스 프로젝트 요금제 변경.. 2020. 3. 17.
[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.
ASUS 비보북 15 R564DA에 RAM 교체하는 방법 ASUS 비보북 15 R564DA에 RAM 교체하는 방법 집에서 직접 노트북 램을 교체해보자. 나사 분리 노트북 하판의 나사를 모두 분리해준다. 나사는 2종류이고 긴 것 6개, 짧은 것 4개이다. 보통은 소비자가 노트북을 쉽게 분해할 수 없도록 고무발판 안쪽에 나사를 숨겨놓는 경우가 있는데 이 모델은 그런거 없다. 굿 (다이소 드라이버는 진짜 가성비 짱이다) 기본 장착된 RAM 꺼내기 이 모델(비보북 15 R564DA)은 메인보드 내장 RAM 4GB + 삼성 RAM 4GB = 총 8GB인 상태로 출고된다. 8GB는 요즘 쓰기엔 용량이 적어서 직접 교체해주기로 했다. (윈10만 써도 이미 3.7GB정도는 날려먹음) 사진속의 빨간 동그라미로 표시해둔게 기본 장착된 삼성 RAM이다. 노트북을 처음 뜯어보면 검.. 2020. 2. 13.
[MongoDB] 계정을 사용하여 DB 권한 제어하기 계정을 사용하여 DB 권한 제어하기 계정을 사용하여 데이터베이스에 대한 쓰기/삭제, 관리 기능 등의 권한을 제어해보자. 2021년2월13일 업데이트 데이터베이스 보안 기초 우리가 사용하는 대표적인 DB들은(MySQL, MongoDB 등) 기초적인 보안 기능들을 제공한다. 첫 번째는 허용된 IP만 DB에 접근할 수 있도록 화이트리스트를 설정하는 것이고, 두 번째는 허용된 사용자만 DB에 접근할 수 있도록 계정을 관리하는 것이다. 이 글에서는 두 번째 방법을 이용해 MongoDB에 계정을 설정해 볼 것이다. 작업 환경 OS : Ubuntu 18.04 LTS DB : MongoDB 3, 4 버전대 작업 순서 1. MongoDB 설치 확인 2. 설정 파일 수정 3. 계정 생성 4. 계정 확인 MongoDB 설치.. 2020. 1. 28.
[Firebase] 파이어베이스에 웹 프로젝트 추가하기 파이어베이스에 웹 프로젝트 추가하기 웹 프로젝트에서 파이어베이스를 사용할 수 있도록 콘솔에 등록하고 SDK를 추가해보자 선행 작업 이 글은 파이어베이스 프로젝트 생성 이후의 일을 다루므로 파이어베이스 프로젝트를 생성하지 않았다면 아래 링크에서 선행 작업을 완료해야한다. 1. Firebase 프로젝트 생성하기 [Firebase] Firebase 프로젝트 생성하기 Firebase 프로젝트 생성하기 Google Firebase 프로젝트를 생성해보자. Google Firebase Console 접속 파이어베이스 서비스를 이용하기 위해서는 구글 파이어베이스 콘솔에 접속해야한다. https://console.firebase.. spiralmoon.tistory.com 작업 순서 1. 파이어베이스에 웹 프로젝트 등록.. 2020. 1. 15.
반응형