Spring Boot와 Firebase Cloud Messaging으로 웹 푸시 알림 보내기
버튼 한 번으로 웹 푸시 알림을 보내기까지 이번 실습의 목표는 단순했다. 브라우저에서 알림 권한을 허용하고 FCM 토큰을 발급받은 뒤, Spring Boot 서버를 거쳐 같은 브라우저로 푸시 알림을 보내는 것이다. 화면에서는 버튼 두 개만 누르면 된다. 알림 권한 요청 + 토큰 발급 푸시 알림 전송 하지만 실제로는 브라우저, Spr...
버튼 한 번으로 웹 푸시 알림을 보내기까지 이번 실습의 목표는 단순했다. 브라우저에서 알림 권한을 허용하고 FCM 토큰을 발급받은 뒤, Spring Boot 서버를 거쳐 같은 브라우저로 푸시 알림을 보내는 것이다. 화면에서는 버튼 두 개만 누르면 된다. 알림 권한 요청 + 토큰 발급 푸시 알림 전송 하지만 실제로는 브라우저, Spr...
풀어보다가 굉장히 좋은 문제라고 생각하여 글을 쓴다. 문제 Given a binary tree root, a node X in the tree is named good if in the path from root to X there are no nodes with a value greater than X. Return the number of...
설정 한 줄이 끝이 아니었다 이 실습에서 가장 먼저 눈에 들어온 코드는 application.properties였다. spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/ssafylive?serverTi...
로그로 테스트하던 내가 Mockito를 공부해보았다 예전에 팀 프로젝트를 할 때 이런 적이 있다. 🦊 나: 프론트님! 기능 구현 완료해서 Swagger 문서까지 작성해놨으니 API 연동하시면 됩니다. 테스트도 했습니다. 🦁 프론트 담당자: 넵, 테스트는 어떻게 하셨나요? 🦊 나: 로그 찍어가면서 했어요. 🦁 프론트 담당자: ?...
SWEA 2383: 점심 식사시간 풀이 정리 문제 조건 분석 계단을 내려가는 시뮬레이션에서 가장 중요한 규칙들을 정리합니다. 계단 입구까지의 이동 시간 사람($P$)에서 계단 입구($S$)까지 가는 시간은 맨해튼 거리로 계산합니다. $이동 시간 = PR - SR ...
문제 조건에서 N은 1,000,000,000,000,000,000까지 주어진다. 즉, int는 물론이고 일반적인 선형 DP로도 감당하기 어려운 크기다. 게다가 결과는 1,000,000,007로 나눈 값을 출력해야 한다. 처음 이 문제를 봤을 때는 익숙한 피보나치 문제처럼 보였지만, 입력 범위를 보는 순간 평소 방식으로는 안 되겠다고 생각했다. 이 문...
구간 합 질의가 잦은데 값도 자주 바뀌는 문제를 풀면서 세그먼트 트리를 다시 손에 익혔다. 스터디 때 쓴 자바 코드를 정리해둔다. 노드 의미와 배열 인덱싱 segmentTree[node]는 구간 [nodeL, nodeR] 합을 담는다. 부모의 왼쪽·오른쪽 자식 인덱스는 2*node, 2*node+1. 트리 크기는 안전하게 4*N 배열을 ...
두 문자열의 최장 공통 부분수열(LCS)을 풀다가, 캐시를 켜고 끈 상태가 얼마나 다른지 직접 찍어봤다. 손에 익힌 느낌을 적어둔다. 문제와 기초 재귀 기본 재귀식은 다음과 같다. 문자가 같으면 1을 더하고, 아니면 두 가지 분기를 비교한다. int LCS(int i, int j) { if (i == n || j == m) return 0; ...
스터디 때 밤새 붙잡았던 문제다. “1에서 N까지 가는데 v1, v2를 모두 거쳐야 한다”는 제약이 붙으니 구현이 헷갈렸다. 직접 자바로 정리해둔 기록. 문제 세팅 양방향 가중치 그래프, 정점은 1..N 반드시 v1, v2를 모두 통과해야 하며 순서는 자유 답은 min(1→v1→v2→N, 1→v2→v1→N) 핵심 코드 가중치가 큰 입...
[문제링크] N x N 격자에서 좌상단→우하단 최소 비용을 구하는 문제. 가중치가 모두 양수라 그냥 다익스트라면 된다. 그래도 우선순위큐로 바꿔야 마음이 편함. 구현 메모 dict[y][x]는 시작점에서 (y,x)까지의 최소 비용. 4방향 이동 시 if (dict[ny][nx] > dict[cy][cx] + cost)로 완화. 큐...