본문 바로가기

스파이11

[도착 알리미 SUFY] 11. SUFY 완성 지금까지 귀찮아서 블로그에는 안 올렸지만... 나름 열심히 필요한 기능들을 모두 구현 완료했다.이제 진짜 실 생활에 유용하게 쓸 수 있을 듯... 쓸 사람이 없으면 나라도 열심히 써야지 ㅋㅋ 주소는 다음과 같다: https://kimdevstudio.com  (지금은 닫혔읍니다.) SUFY kimdevstudio.comㅋㅋ 이 도메인 뭐임?? 이라고 물으실 수도 있는데...7월에 워드프레스로 기술 블로그 구축한답시고 저 도메인 1년동안 샀는데 이번에 닫아버려서 ㅋㅋ그냥 버리기 아까우니까 그 EC2 서버랑 도메인 재사용했읍니다... 내년 7월 되면 새로 도메인 구매해야지... 구현된 기능들OAuth2.0과 카카오 API를 활용한 카카오 로그인Spring Security와 Jwt토큰을 통한 보안 로그인, S.. 2024. 3. 9.
[도착 알리미 SUFY] 10. 설정한 알림 조회 이제 핵심 기능들은 거의 다 구현했고, 편의 기능들을 추가로 더 구현하면 될 것 같다.첫 번째로는 내가 설정한 알림 목록을 조회하는 기능을 구현해보려고 한다!일단 다음과 같이 '설정된 알림 조회' 버튼을 만들어 주고, 클릭 시 /searchAlarms로 이동하게 해주었다.그리고 /searchAlarms 페이지로 이동하면, div에 접속한 유저가 설정한 알림들을 모두 보여주면 된다. 알림들을 보여주는 컨트롤러와 로직은 다음과 같다.@GetMapping("/alarmList")public ArrayList alarmList(@RequestParam String username) {    ArrayList alarms = homeService.alarmList(username);    return alarms.. 2024. 2. 25.
[도착 알리미 SUFY] 9. FCM으로 포그라운드 푸시 알림 보내기 저번 포스트를 마치면서 '운에 따라 푸시가 전송된다'고 작성했었는데... 3일의 사투 끝에 드디어 그 원인을 알아냈다. Firebase의 구글 API 문서를 읽어보다가... 아래와 같은 내용을 발견했다. Notification messages are handled differently depending on whether the page is in the foreground (has focus), or in the background, hidden behind other tabs, or completely closed. 그렇다... 해당 웹사이트가 현재 Background냐, Foreground냐에 따라 다르게 작동한다는 것이었다...... 기본적으로 푸시 알림이 전송되는 건 백그라운드였고, 포그라운드에.. 2024. 2. 24.
[도착 알리미 SUFY] 8. 전역 출발 시 푸시 알림 보내기 거의 막바지에 다다랐다...이제 전역을 출발하면, 해당 역에 알림이 등록된 계정에 푸시 알림을 보내면 된다.사실 6번 포스트에서 목적지 전역을 출발할 때 특정 코드를 실행하는 로직은 이미 구현해 놨고, 7번 포스트에서 푸시 알림을 전송하는 메서드도 구현해 놨기 때문에 이 둘을 그냥 합쳐주면 된다.그러니까... 6번 포스트에서 작성한 로직을 조금만 수정해주면 되는 것. ...라고 했는데, Alarm 테이블에 저장한 값이 username이 아니라 User(Account 객체)였네...?ㅋㅋㅋ... 저번 포스트에서 SendPushDTO에 username을 넣어놨어서... User로 수정해 주었다...username은 Alarm 테이블에 없어서 활용할 수 없으니까...@Getter@Setter@RequiredA.. 2024. 2. 22.
[도착 알리미 SUFY] 7. FCM을 활용하여 푸시 알림 전송하기 이제... 드디어 알림을 보낼 때이다.아니 그런데 카카오 API 문서에 있는 메시지 전송은 SUFY 채널에서 사용자에게 메시지를 보낼 수 있는 게 아니라, 사용자가 자신에게 보내거나 사용자의 친구에게 메시지를 보내는 용도로 사용되는 것이라는 이슈가 있었다... 그래서... 진짜 오만 문서들을 다 찾아봤다. 푸시 알림 서비스도 찾아봤는데 이건 앱 전용인 것 같아서 못 쓰고... 알림톡 서비스는 사업자 계정이 아니면 사용하지 못하고... 진짜 이 때 멘붕 그 자체........... 결국 찾은 건 구글 FCM을 활용하여 푸시 알림을 보내는 것이었다!Firebase Cloud Messaging이라고 하는 건데... 진짜 역대급으로 힘들었다...FCM 역시 설명이 다 제각각이어서 찾는 데 힘들었지만... 지금부.. 2024. 2. 19.
[도착 알리미 SUFY] 6. 일정 시각마다 특정 작업 수행 로직 구현하기 이제 알림 정보를 DB에 저장하는 것까지 완료했다.이제 실시간 지하철 위치 정보를 주기적으로 확인하면서, alarm 테이블에 저장된 칼럼들을 돌며 해당 목적지 역에 접근하는 열차가 있을 때마다 특정 작업(알림 전송)을 실행해주면 된다. 즉 우리와 같은 경우에는 15초 마다 한 번씩 REST API의 URI로 Http 요청을 보내서, 실시간 지하철 정보를 받아온 후 다음 로직을 작성하면 될 것...스프링에서 주기적으로 특정 작업을 하기 위해서는, 해당 함수에 @Scheduled 어노테이션을 붙여주면 된다. 우선 메인 클래스에 @EnableScheduling 어노테이션을 붙여 주자.@SpringBootApplication@EnableSchedulingpublic class SubwayNotifyApplica.. 2024. 2. 16.
반응형