매일 작성하는 개발 일기
close
프로필 배경
프로필 로고

매일 작성하는 개발 일기

  • 분류 전체보기 (593) N
    • JavaScript (39)
    • Flutter (25)
    • HTML CSS (2)
    • 알고리즘 (334)
      • Programmers (170)
      • Baekjoon (164)
    • CS (11)
      • 컴퓨터 구조 (5)
      • 네트워크 (6)
    • 스파르타코딩클럽 (166)
      • 내일배움캠프 (152)
      • 웹개발 종합반 (9)
      • 앱개발 종합반 (5)
    • 개발 기록장 (8)
    • 프로젝트 (2) N
    • 회고 (6)
  • 홈
  • JavaScript
  • Flutter
  • 태그
  • 방명록
[JavaScript] Firebase Cloud Functions 연동(3) - DB 조회 후 FCM 알림 전송

[JavaScript] Firebase Cloud Functions 연동(3) - DB 조회 후 FCM 알림 전송

구현 목표지정된 시간마다 자동으로 Firestore에서 데이터를 조회해서조건을 만족하면 FCM으로 알림을 전송하는 기능을 구현한다. onShedule 예약 함수 작성// The Cloud Functions for Firebase SDK to create Cloud Functions and triggers.const { logger, setGlobalOptions } = require("firebase-functions/v2");const { onSchedule } = require("firebase-functions/v2/scheduler");// The Firebase Admin SDK to access Firebstore.const { initializeApp } = require("firebase-..

  • format_list_bulleted JavaScript
  • · 2025. 8. 4.
  • textsms
[JavaScript] Firebase Cloud Functions 연동(2) - 지정된 시간마다 호출되는 함수

[JavaScript] Firebase Cloud Functions 연동(2) - 지정된 시간마다 호출되는 함수

구현 목표평일 오후 5시~5시 50분에 10분 간격으로 자동 실행되는 함수를 만들었다.함수가 실행되면 조건 충족 여부에 따라 DB에 데이터를 추가한다. onSchedule 예약 함수 작성지정된 시간에 함수를 실행하도록 예약하려면 `firebase-functions/v2/scheduler`에서 제공하는 `onSchedule` 핸들러를 사용하여 지정한 시간마다 함수 로직을 호출한다. 이를 위해서는 프로젝트에 `Cloud Scheduler API`가 사용 설정되어 있어야 하는데,대부분의 Firebase 프로젝트에서는 이미 사용 설정이 되어 있을 것이다.사용 설정 여부는 Google Cloud 콘솔에서 확인할 수 있다. const { logger, setGlobalOptions } = require("fire..

  • format_list_bulleted JavaScript
  • · 2025. 7. 22.
  • textsms
[JavaScript] Firebase Cloud Functions 연동(1) - 기본 함수 테스트

[JavaScript] Firebase Cloud Functions 연동(1) - 기본 함수 테스트

구현 목표매일 특정 시간마다 특정 사이트를 스크래핑해서 원하는 데이터가 올라왔는지 확인하고,데이터가 올라왔다면 DB에 저장 후, 앱 푸시를 보내는 기능을 구현하고 싶다. 일단 Functions가 어떻게 작동하는지 직접 코드를 작성하고 실행해 보면서 배워보려고 한다.이번 글에서는 Firebase Functions를 초기화하고, 함수를 작성 후 배포까지 해 보았다. 프로젝트 초기화 및 구조 변경npm install -g firebase-toolsFirebase CLI를 설치한다. firebase login다음 명령어를 실행하여 Google 계정으로 Firebase에 로그인한다. firebase init`firebase init`을 실행한다. Firestore와 Fuctions를 선택한다.참고로 Firebas..

  • format_list_bulleted JavaScript
  • · 2025. 7. 17.
  • textsms
[Next.js] Google Analytics Data API (GA4) 연동해서 방문자 데이터 가져오기

[Next.js] Google Analytics Data API (GA4) 연동해서 방문자 데이터 가져오기

구현 목표Google Analytics(GA4)의 Data API를 이용해서 Next.js에서 “일자별 방문자 수”, “운영체제별 방문자 수”, “조회수 상위 페이지” 데이터를 가져오는 API를 구현해 보자. Google Analytics Data APIGA4에서 수집한 통계 데이터를 외부 앱에서 사용할 수 있도록 제공하는 API이다. 이 API를 사용하기 위해서는 서비스 계정을 생성하고, JSON 형태의 키 파일을 발급받아야 한다. 서비스 계정 생성구글 클라우드 콘솔에서 `IAM 및 관리자 > 서비스 계정` 탭에 들어가서 [서비스 계정 만들기] 버튼을 클릭한다. `서비스 계정 ID` 항목만 입력하고 [완료] 버튼을 누르면 간단하게 서비스 계정이 생성된다. JSON 키 파일 발급새로 생성한 서비스 계정의..

  • format_list_bulleted JavaScript
  • · 2025. 6. 27.
  • textsms
[TIL] 2023.09.10 Programmers_숫자의 표현

[TIL] 2023.09.10 Programmers_숫자의 표현

숫자의 표현 문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현하는 방법이 여러 개라는 사실을 알게 되었습니다. 예를 들어 15는 다음과 같이 4가지로 표현할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해 주세요. 나의 1차 풀이 function solution(n) { const arr = Array(n).fill(0).map((_, idx) => idx + 1); let count = 0; for (let i = 0; i < n; i++) { ar..

  • format_list_bulleted 알고리즘/Programmers
  • · 2023. 9. 10.
  • textsms
[TIL] 2023.09.09 Programmers_이진수 더하기

[TIL] 2023.09.09 Programmers_이진수 더하기

이진수 더하기 문제 설명 이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return 하도록 solution 함수를 완성해 주세요. 입출력 예 bin1 bin2 result "10" "11" "101" "1001" "1111" "11000" 입출력 예 #1 10 + 11 = 101 이므로 "101" 을 return 합니다. 입출력 예 #2 1001 + 1111 = 11000 이므로 "11000"을 return 합니다. 나의 풀이 function solution(bin1, bin2) { let decimal = parseInt(bin1, 2) + parseInt(bin2, 2); return decimal.toString(2); } 처음에는 아예 2진수 더하..

  • format_list_bulleted 알고리즘/Programmers
  • · 2023. 9. 9.
  • textsms
[TIL] 2023.09.06 Programmers_3진법 뒤집기

[TIL] 2023.09.06 Programmers_3진법 뒤집기

3진법 뒤집기 문제 설명 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해 주세요. 입출력 예 n result 45 7 125 229 입출력 예 #1 답을 도출하는 과정은 다음과 같습니다. n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 45 1200 0021 7 따라서 7을 return 해야 합니다. 입출력 예 #2 답을 도출하는 과정은 다음과 같습니다. n (10진법) n (3진법) 앞뒤 반전(3진법) 10진법으로 표현 125 11122 22111 229 따라서 229를 return 해야 합니다. 나의 풀이 function solution(n) { const ternary..

  • format_list_bulleted 알고리즘/Programmers
  • · 2023. 9. 6.
  • textsms
[TIL] 2023.09.04 Programmers_이진 변환 반복하기

[TIL] 2023.09.04 Programmers_이진 변환 반복하기

이진 변환 반복하기 문제 설명 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. x의 모든 0을 제거합니다. x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해 주세요. 입출력 예 회차 이진 변환 이전 제거할 0의 개수 0 제거 후 길이 이진 변환 결과 1 "1100..

  • format_list_bulleted 알고리즘/Programmers
  • · 2023. 9. 4.
  • textsms
[TIL] 2023.09.03 Programmers_최솟값 만들기

[TIL] 2023.09.03 Programmers_최솟값 만들기

최솟값 만들기 문제 설명 길이가 같은 배열 A, B 두 개가 있습니다. 각 배열은 자연수로 이루어져 있습니다. 배열 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱합니다. 이러한 과정을 배열의 길이만큼 반복하며, 두 수를 곱한 값을 누적하여 더합니다. 이때 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다. (단, 각 배열에서 k번째 숫자를 뽑았다면 다음에 k번째 숫자는 다시 뽑을 수 없습니다.) 예를 들어 A = [1, 4, 2] , B = [5, 4, 4] 라면 A에서 첫번째첫 번째 숫자인 1, B에서 첫 번째 숫자인 5를 뽑아 곱하여 더합니다. (누적된 값 : 0 + 5(1x5) = 5) A에서 두번째 숫자인 4, B에서 세 번째 숫자인 4를 뽑아 곱하여 더합니다. (누적된 값 : 5..

  • format_list_bulleted 알고리즘/Programmers
  • · 2023. 9. 3.
  • textsms
[TIL] 2023.08.27 Programmers_JadenCase 문자열 만들기

[TIL] 2023.08.27 Programmers_JadenCase 문자열 만들기

JadenCase 문자열 만들기 문제 설명 JadenCase란 모든 단어의 첫 문자가 대문자이고, 그 외의 알파벳은 소문자인 문자열입니다. 단, 첫 문자가 알파벳이 아닐 때에는 이어지는 알파벳은 소문자로 쓰면 됩니다. (첫 번째 입출력 예 참고) 문자열 s가 주어졌을 때, s를 JadenCase로 바꾼 문자열을 리턴하는 함수, solution을 완성해 주세요. 입출력 예 s return "3people unFollowed me" "3people Unfollowed Me" "for the last week" "For The Last Week" 나의 풀이 function solution(s) { let arr = s.split(" "); for (let i = 0; i < arr.length; i++) { ..

  • format_list_bulleted 알고리즘/Programmers
  • · 2023. 8. 27.
  • textsms
  • navigate_before
  • 1
  • 2
  • 3
  • 4
  • 5
  • navigate_next
GitHub Link 포트폴리오 링크
전체 카테고리
  • 분류 전체보기 (593) N
    • JavaScript (39)
    • Flutter (25)
    • HTML CSS (2)
    • 알고리즘 (334)
      • Programmers (170)
      • Baekjoon (164)
    • CS (11)
      • 컴퓨터 구조 (5)
      • 네트워크 (6)
    • 스파르타코딩클럽 (166)
      • 내일배움캠프 (152)
      • 웹개발 종합반 (9)
      • 앱개발 종합반 (5)
    • 개발 기록장 (8)
    • 프로젝트 (2) N
    • 회고 (6)
인기 글
최근 글
전체 방문자
오늘
어제
전체
Copyright © 쭈미로운 생활 All rights reserved.
Designed by JJuum

티스토리툴바