목록프로젝트 (5)
효습

이전에 알림 기능을 구현할 때는 Short Polling 방식으로 구현했었다. Short Polling클라이언트가 서버로부터 정기적으로 알림 조회 요청을 보내서 데이터를 받아오는 방식이다. 그런데 웹이나 앱을 사용하다보면 알림 페이지에 있지 않아도 실시간으로 알림이 오는데 이걸 어떻게 구현할까?하고찾아보니까 크게 2가지가 있었다. 1. SSE(Server-Sent-Events)2. FCM(Firebase-Cloud-Messaging) 사실 처음에는 FCM을 하려고 해서 실제로 의존성까지 추가했는데 Karma 프로젝트는 웹으로만 동작하고 모바일 앱으로만 동작하지 않는다! -> SSE로 바꿨다. 처음에 알림 기능을 구현할 때 , 주문 상태가 접수완료 , 주문거절 , 제작대기 , 배송중인 주문 정보만 ..

Karma 프로젝트를 진행하면서 가장 해보고 싶었던 건 OAuth 2.0 로그인이었다. redis도 이론이랑 간단한 실습만 해봤지 실제 프로젝트에서 써본 적은 없어서 이번 기회에 redis도 사용해봤다. 하지만 refresh token을 redis에 보관하면 redis도 배포된 서버에서 같이 동작해야하는데이걸 당시의 프로젝트 기한 내에 못할 것 같아 일단은 refresh token을 mysql에다가 저장했었다. 이제 시간 여유가 조금 생겨서 redis 서버 배포를 다시 시도해봤다. https://sy-hj08.tistory.com/33 서버 배포 과정 이해하기배포하는 과정을 캡쳐한 게 없어 자세한 배포 과정을 정리할 수 없지만 대략적인 과정을 정리하겠다. 이번 Spring Boot 프로젝트를 배포..

프로젝트 중에 스마트 워크 센터를 검색을 구현하는 api를 담당했다.처음에 검색 요소가 이름 , 태그 2개인 줄 알고검색어가 없는 경우, 1개가 들어오는 경우 , 2개가 들어오는 경우 생각해서 메서드를 4개를 만드려고 했다. 이렇게 코드 짤 때가 너무 비효율적인 것 같다고 생각했는데 알고보니 지역구까지 해서 검색 요소가 3개인 것이다! 3개면 만들어야하는 메서드가 6개다.물론 만들수는 있지그런데 더 좋은 방법이 있는데 그걸 선택하지 않을 이유는 없다 예전에 살짝 공부한 적이 있는 QueryDSL이 떠올라 한번 적용해보기로 했다 Dependencies 추가 //QueryDsl implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotati..
1. '==' 연산자'==' 연산자는 두 객체의 주소(참조)값이 동일한지 비교함Java의 기본 자료형(int , long , boolean...)에서는 값 자체를 비교하지만, 객체 타입(Long , String , Integer..)의 경우 주소(참조)값을 비교함2. 'equals()`메서드두 객체의 주소값이 아니라 내용이 똑같은지 비교함 , 두 객체가 실제로 같은 값을 가지고 있는지 비교대부분의 Java 클래스(Long , String , Integer..)는 equals() 메서드를 오버라이드하여 객체의 값 비교 String을 예로 들면 쉽게 이해할 수 있다.String str1 = "string";String str2 = "string";String str3 = new String("string..

배포하는 과정을 캡쳐한 게 없어 자세한 배포 과정을 정리할 수 없지만 대략적인 과정을 정리하겠다. 이번 Spring Boot 프로젝트를 배포할 때는 Github Actions를 사용하여 자동으로 서버 배포 과정이 실행되게 하였고,AWS의 EC2 Ububtu 인스턴스 , RDS(DB) , S3(이미지 저장용)를 사용하였고 EC2 내의 웹 서버는 Nginx , 도커 컨테이너를 사용하여 일관된 환경을 제공하도록 하였다. 프로젝트 구조는 위와 같았다. 1. EC2 생성프리티어 계정을 사용하고 있기 때문에 Ubuntu 서버를 사용했고 인스턴스 유형은 t2.micro 유형을 사용했다.올해부터는 프리티어 계정이 t4g.small까지 지원한다고 하니 원하는 대로 하면 될 것 같다.키 페어도 생성했다 인스턴스 생..