본문 바로가기

Web/Spring

Spring : Lagacy 프로젝트에서 FCM Web Push 수신을 받아보았다. Vue나 React에서 FCM을 수신받는 레퍼런스는 구글에 널리고 널렸다. 하지만 Spring Legacy 프로젝트에서 FCM 관련해서는 Web Push 발신요청을 하는 것 뿐이지, 수신받는 것은 없었다. 발신 요청에 대한 정보는 Spring : FCM (Firebase Cloud Message) 서버를 구축해 보았다. 기나긴 "한성대학교 기자재 대여 통합 시스템" 개발의 마지막 단계 FCM기능을 구축해 보았다. "한성대학교 기자재 대여 통합 시스템" 개발팀의 자문을 맡은게 22년도 2월이고, 본격적으로 준팀장 dequista.tistory.com 이곳에 있으니 참고. 이 포스팅은 "발신요청"이 아닌 "수신"에 관한 내용이다. Spring Legacy에서 Web Push 수신받는 작업이 필요했던 나는 결.. 더보기
Spring : POST 동적 생성 POST요청은 HTML과 JavaScript를 사용하는 프론트엔드에서 일어난다. 가장 쉬운 방법은 태그를 이용해 요소들을 태그로 감싸고 Button에 submit()을 붙이는 것이다. 하지만 내 프로젝트에서 동적으로 POST요청을 해야하는 상황이 등장했다. 이 장면에서 총 후보자가 몇명인지 서버에 알려줘야 하는데, 사용자에 의해 동적으로 생성되는 후보자 정보 입력 칸 때문에 어쩔 수 없이 동적으로 생성하게 되었다. 사실 여기서는 이미 작성된 form에 요소를 추가하는 방식이긴 하지만, 동적으로 생성하는 방법도 동일하다. 1. 먼저 input 요소를 생성한다. 2. 그리고 type, name, value를 셋팅해준 다음 3. form 요소에 만들어진 input을 담아 보내면 된다. 사실 되게 별거 아닌데,.. 더보기
Spring : FCM (Firebase Cloud Message) 서버를 구축해 보았다. 기나긴 "한성대학교 기자재 대여 통합 시스템" 개발의 마지막 단계 FCM기능을 구축해 보았다. "한성대학교 기자재 대여 통합 시스템" 개발팀의 자문을 맡은게 22년도 2월이고, 본격적으로 준팀장으로 개발에 참여한게 5월부터니, 3개월에 걸친 개발도 끝을 향해 달려가고 있다. 아무튼, 파이어베이스에서 해당기기로 푸시알림을 보낼 수 있는 서비스가 있는데, 그것을 이용하여 신청한 기자재가 관리자에 의해 승인이 났을 때 승인 완료 알림을 주고 싶었다. 그것을 구축했고, 테스트까지 성공하였다. 이제 그 방법을 포스팅하겠다. #1 FCMMessage 우선, 데이터를 통신하기 위해 기준이 되는 클래스인 DTO를 만든다. 이부분은 Firebase Cloud Message 공식문서에 잘 나와있다. https://fire.. 더보기
Spring : MySQL 다중 쿼리를 해봤다. 이건 한성대학교 선거 웹앱을 만들면서 느끼는 것이 "SQL은 어렵게쓰면 정말 어려울 수도 있다. " 라는 생각이든다. View나 Union, Join을 생각하면 벌써부터 머리가 아파오기 시작하는 사람들도 있을 것이다. 거두절미하고, 위와 같은 개념을 이용해 쿼리문을 작성하면 당연히 ";"이 여러번찍히게 되는 상황에 놓인다. 나같은경우도 그랬다 이런 경우였는데 열심히 Workbench에서 쿼리문을 작성하고 Spring의 mapper에 옮겨 테스트를 하려는 순간! 난 내가 문법을 잘못 적은 줄 알았었다. 어디서부터 잘못되었나 쿼리문을 뒤부터 지워가며 알아낸 결론 ";"이 여러번찍히면 안된다. 무조건 한번의 쿼리만 허용한다는 뜻. 하지만 이런생각이 들었다. "상식적으로 서비스를 여러개를 만들어서 다중쿼리를 하.. 더보기
Spring : 스프링 Github 프로젝트 시 .gitignore설정 이번 포스팅은 설명은 아니고 유용한 설정을 공유하려고 한다 사실 내가 쓰려고 만드는거 히힛 Reference : https://jazzodevlab.tistory.com/50 Spring Legacy 프로젝트에서 사용한 .gitignore 파일 스프링 레거시... 스프링 프로젝트를 진행하면서 가장 많이 애를 먹었던 부분은 바로바로바로 깃허브 사용이다. 초기 깃이그노어 설정이 필요하긴 하지만 이렇게 어려울 일인가... 라는 생각이 jazzodevlab.tistory.com 아래 코드를 .gitignore 에 복사해주면 된다 # Created by https://www.toptal.com/developers/gitignore/api/eclipse,java # Edit at https://www.toptal... 더보기
Spring : 이미지를 MySQL에 저장하고 출력 해봤다 웹페이지에서 이미지를 띄우는 일은 백엔드를 개발하다 보면 자주 일어나는 일이다. 나 역시 이미지를 출력해야하는 상황이 발생해서 열심히 구글링을 해본결과... 전부 다 서버에 이미지를 저장하고, html 태그 안에 이미지의 경로를 적어 이미지를 출력하는 방식이였다... 근데 난 MySQL에다가 사진을 저장하고 싶단 말이지? 이번에도 어김없이 박치기를 한 결과 그 방법을 포스팅한다. #1. 이미지를 저장할 테이블부터 만들자 이미지를 저장하는 컬럼의 데이터타입은 LONGBLOB 이다. LONG Binary Large OBject의 약자이며 사진, 음악, 바이너리 형식으로 나타낼 수 있는 것을 담을 수 있다. 최대크기는 4GB이며, 가변길이 데이터타입이니 안심하고 쓰면된다. 그렇다고 동영상 같은거 함부로 올리면.. 더보기
Spring : 스프링으로 MySQL을 쿼리하는 API를 만들어 보았다 요즘 진행하고 있는 멀티플렛폼 프로젝트 중에 웹서버를 스프링으로 사용하는 프로젝트가 있다. 웹의 기능을 똑같이 Android, iOS로 개발중인데, 데이터베이스를 MySQL을 쓰고있다. 당연하게도 멀티플렛폼이니 모바일과 웹 모두 같은 데이터베이스를 사용해야한다. 그러나 Android Studio도 그렇고, Xcode도 그렇고 MySQL과의 직접 연결을 보안상의 이유로 엑세스를 지원하지 않는다. 하지만 어딘가에는 답은 있다. 바로 중간에 웹서버를 한번 거쳐서 웹서버에 서비스를 요청하는 방식이다. 이렇게되면, 1. 모바일에서 웹서버로 서비스를 요청한다. 2. 웹서버는 데베에 접근하여 쿼리를 한다. 3. 웹서버가 모바일에게 쿼리결과를 던져준다. 4. 모바일에서 받는다. 순서인 것이다. 그런데 이를 구현하려고 .. 더보기