전체 글 61

flutter notification 중복 알림 문제

포어그라운드에서..AOS는 포어그라운드 알림 설정만으로 알림이 안간다. onMessage에서 Local Notification을 호출해야 알림이 간다. IOS는 포어그라운드 알림 설정만으로 알림이 간다. onMessage에서 Local Notification을 이용할 경우FirebaseMessaging 에서 한번, onMessage에서 한번 알림이 간다. 즉, IOS는 알림이 중복으로 간다. await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions( alert: true, badge: true, sound: true,);FirebaseMessaging.onMessage.listen((RemoteM..

카테고리 없음 2024.12.24

alteon 5208 DSR cong

같은 VLAN 내에서 로드밸런싱을 프록시모드로 맞춰놓으니 리얼서버에서 클라이언트 아이피를 구분을 못한다. 그래서 DSR로 변경하려고 한참을 헤맸는데 아래 세팅으로 했더니 된다. 세팅은 로드밸런서 보다는 윈도우 리얼서버의 설정에서 어려움이 많았다. VIP를 어떻게 핸들링하냐는 크게 두 가지 방법이있는듯한데 1. 루프백 주소에 VIP 할당2. 입력 포트에 포워딩 다음은 그 중 1번에 대한 설정이다. 먼저 프록시 설정으로 LB 되게끔 설정하고 윈도우 서버 cmd 설정1. VIP를 테이블에서 지워준다. arp -d 2. LB VIP가 연결된 인터페이스를 찾는다. netsh interface ipv4 show interfaces3. 찾은 인터페이스에서 VIP에 대한 ARP 응답을 차단한다. netsh inte..

카테고리 없음 2024.12.19

Apache Echart geoJson 데이터 만들기 && 사용하기

1. QGIS 프로그램 다운로드 - QGIS-OSGeo4W-3.36.2-1.msi 다운로드 및 설치 2. https://www.geoservice.co.kr  에서 해당되는 데이터 다운로드 3. qgis에서 다운로드한 데이터 열기레이어>레이어추가>벡터레이어추가>벡터 데이터셋에 다운로드받은거 다 집어넣기>인코딩 EUC-KR>추가 4. 추가된 레이어 속성 변경레이어중 하나만 사용할것임좌측하단 레이어 탭에서 아무거나 하나 잡고 우클릭>속성 테이블 열기EMD_CD, EMD_ENG_NM, EMD_KOR_NM 속성 이름을 확인EMD는 읍면동 데이터를 받아서 EMD인것이고 다른것 받으면 다른이름이 있다.-> 이것을 echart에서 사용하기위해 id, name_eng, name으로 변경해주는것-> 우클릭>편집모드 켜고..

카테고리 없음 2024.12.09

윈도우 서버에서 let's encrypt 로 인증서 발급, 리뉴얼

L4에서 라우팅되는 윈도우 서버 IIS로 운영하는 웹사이트에서 사용할 3개월 짜리 http 인증서를 let's encrpyt에서 무료로 발급받기 WEB 1 과 WEB2 가 있다고 가정ACME을 사용함ACME으로 인증정보 요구시 WEB2로 가도록 L4 설정(또는 어디로 가는지 찾을것) 1. WEB2에서 인증서 발급을 진행한다. 2. win-acme을 관리자모드로 실행한다. 3. 새로발급은 N, 갱신 R4. 발급받은 후 인증서 지문을 확인한다. 5. 인증서 갱신 및 발급되고나서 해당 서버는 IIS에서 인증서가 작동으로 적용된다. 6. 인증서 파일은 C:\ProgramData\win-acme\acme-v02.api.letsencrypt.org\Certificates에 있다. 7. 지문을 잘 보고 pfx파일을 ..

카테고리 없음 2024.09.19

웹소켓 열 때 http세션정보 가져오기

웹소켓 열 때 헤더에 토큰을 넣으면 좋겠지만현재는 레디스 세션을 이용하고있다.  웹소켓도 http로 시작을 하기 때문에 업그레이드가 되기 전 http 세션Id를 웹소켓 세션에 담으면 된다.  1. 이 용도로 사용할 인터셉터를 만든다. @Overridepublic boolean beforeHandshake(ServerHttpRequest request, ServerHttpResponse response, WebSocketHandler wsHandler, Map attributes) throws Exception { HttpServletRequest servletRequest = ((ServletServerHttpRequest) request).getServletRequest(); HttpSessio..

카테고리 없음 2024.08.28

MQTT 비스무리한 Redis Pub/Sub 서버

ESP 8266 모듈을 사용중이다. UART로 NON OS AT COMMAND를 사용한다. 그러면 MQTT를 이용할 수가 없다. 그래서 MQTT 기능인 연결관리, 재연결, 재전송 등을 stm 프로세서가 하도록 수동으로 만들었다.  궁금해서 esp 32 를 샀다. 얼마나 잘난놈일까. 역시나. AT 커맨드 숫자부터 남다르다. 약간의 버그라고 느껴졌던 부분도 막힘없이 경쾌하게 다 한다. 멋지다.  1아무튼 ip와 포트까지 특정해서 패킷을 날리면서버에 와서 redis 로 아이디 구독 하고 아이디를 갖고있는 유저+아이디 더해서 발행한번 하고 간다.  2한편 앱에서 유저+아이디로 웹소켓으로 붙는다. 로드밸런싱 중이기 때문에 서버가 각자 웹소켓 커넥션을 맵으로 관리하고레디스에 갖고있는 커넥션을 구독한다.  1에서 발..

카테고리 없음 2024.08.08

IIS + Tomcat(spring boot) + WebSocket

지속적으로 데이터를 받아야하는 경우가 있다. 그러나 클라이언트에서는 딱히 줄 필요는 없다. 그래서 SSE(Server Side Event)를 이용해서 개발을 했었다. 내장톰캣만으로는 잘 됐었으니까.그런데 운영환경인 IIS + Tomcat 구조에 적용해보니 모든 이벤트들이 버퍼에 담겼다가 연결이 종료되고 한번에 출력이 됐다. 원하는 시나리오가 아니다. 이것저것 하다가 마감에 쫒겨 http 폴링으로 마무리 하고 sse 는 잠시 주석을 해뒀었다.  바쁜일들이 많이 지나가고 내부 인테리어를 하는데 SSE 를 소생시켜 다시 써보려고 하니 좀처럼 해결이 되지 않았다. 한참 찾아보는데, 답이 없다고 생각하며 결론에 도달하던 중 이런 글을 봤다.  그냥 웹소켓으로 하는게 낫겠다.  WEB(IIS) + WAS(Tomca..

카테고리 없음 2024.08.01

Mysql 레플리카 설정

운영 서버 실시간 백업을 위한 레플리카 설정 백업 대상: MASTER, 백업 위치: SLAVE 1. MASTER에 접속할 백업 전용 계정 생성 # MASTER 서버에서 Mysql에 접속mysql -u root -p 123!@#mysql> CREATE USER 'slave_db'@'Slave server IP' IDENTIFIED BY '패스워드';mysql> GRANT REPLICATION SLAVE ON *.* TO 'slave_db'@'Slave server IP' IDENTIFIED BY '패스워드';mysql> flush privileges; my.cnf 편집하기 MySQL 5.5 이하 # vi /etc/my.cnf[mysql]log-bin=mysql-bin..

카테고리 없음 2024.07.15

왜 최신 삼성 휴대폰에서 AP 연결이 자꾸 끊기는가?

얼마전 개발한 SoftAp 모듈이 삼성 최신폰에서 연결이 안되고 자꾸 끊기는 문제가 있었다.  도대체 왜인가? 아이폰에서도 되고 삼성 이전폰들도 됐는데 왜 갑자기 안되나 ?   인터넷을 검색해봐도 알수가 없었다.  그러나 몇일의 탐색끝에 찾은 결론은 "AP 연결시 게이트웨이로 핑이 안붙으면 와이파이 연결을 해제하도록 OneUI 6 부터 바뀌었다"

카테고리 없음 2024.07.02