Project
-
처음으로 회원가입시 생기는 문제Project/Greendar 2023. 4. 21. 16:09
데이터베이스의 멤버가 아무도 없는 상태에서 회원가입을 하려다 에러가 생기는 것을 찾았다. 다음 에러를 만나면 데이터 베이스 부터 한번 보자, 데이터가 있는지 javax.persistence.NoResultException: No entity found for query 분석 : 기존에는 회원 가입을 할시 다음과 같은 코드를 거친다. Repo 단의 saveMember code 이다. Service layer 에서 validateDuplicateEmail 즉 이메일을 중복 처리하는 로직을 두고 saveMember 를 최대한 member 만 생성하는 함수로 변경을 해는것 좋아보인다. 에러를 잡고 테스트코드 짜고 리펙을 해주자. public Optional saveMember(String name, String..
-
프로젝트 그린더 Data Jpa 적용 2편Project/Greendar 2023. 4. 18. 22:08
1편에서 이어서 작성을 한다. https://chosunghyun18.tistory.com/98 프로젝트 그린더 Data Jpa 적용 1편 이 글은 프로젝트의 일정은 끝났지만 개인의 학습과 탐구심의 목표를 채우기 위하여 이것 저것을 한 글 입니다. 관련 깃허브 : https://github.com/Team-Greendar/GreendarServer GitHub - Team-Greendar/GreendarServer: G chosunghyun18.tistory.com ... + https://github.com/Team-Greendar/GreendarServer/tree/develop/greendar GitHub - Team-Greendar/GreendarServer: Greendar Server Repo..
-
프로젝트 그린더 Data Jpa 적용 1편Project/Greendar 2023. 4. 18. 21:22
이 글은 프로젝트의 일정은 끝났지만 개인의 학습과 탐구심의 목표를 채우기 위하여 이것 저것을 한 글 입니다. 관련 깃허브 : https://github.com/Team-Greendar/GreendarServer GitHub - Team-Greendar/GreendarServer: Greendar Server Repository Greendar Server Repository. Contribute to Team-Greendar/GreendarServer development by creating an account on GitHub. github.com 구글 솔류션 첼린지는 끝났지만 새로운 프로젝트를 하기보다는 서비스를 고도화 시키는 작업 + 기술의 이해을 하고 싶었다. 추가적으로 앞으로는 redis , ..
-
S3 버킷 정책과 api 를 이용한 이미지 다운로드Project/NYAM 2023. 3. 3. 22:01
s3 의 버킷 정책을 추가해보겠습니다. 상황: 이미지 파일을 다운로드가 필요한 요구사항이 들어왔습니다. 본인의 로컬 컴퓨터로 다운로드 하기위해서는 s3 의 키값을 로컬로 저장하고 커맨드로 다운로드 가 가능하니 공식 문서를 참고하시길 바랍니다. 추가로 api 를 이용하여 다운로드 환경을 구성할려다 브라우저에서 다운로드를 지원하는것을 개발중에 깨달아 사진이 기획자분들에게 사진 객체의 url 을 전달하는 것으로 마무리 지었습니다. 추가한 버킷의 정책은 다음과 같습니다. { "Version": "2012-10-17", "Statement": [ { "Sid": "CustomPublicRead", "Effect": "Allow", "Principal": "*", "Action": [ "s3:GetObject", ..
-
매장 조회수 적용 api 성능 개선기(promise.all) 성능 4배 올리기Project/NYAM 2023. 3. 3. 01:48
사용 기술 : Nest.js - mongoDB 현제 서비스 중인 어플리케이션은 사용자의 행동들에 따른 log 데이터를 생성하여 특정 형식으로 mongodb 에 저장을 해둡니다. 가게 검색시 가게 조회수별 정렬을 위하여 다음과 같이 store_view 를 추가했습니다. 가게 데이터입니다. 추가로 store_total_view 도 추가를 같이 하였습니다. 서비스가 커지는 것을 예상을 하여 ,항상 가게들의 모든 조회수를 계산하여 데이터를 업데이트 하는 방식은 서버와 디비에 부담이 될것이므로, 스캐줄러를 이용하여 모든 조회수를 store_total_view 에 저장을 하고 , 특정 기간별 (예 최근 1주일 ) 조회는 store_view 에 넣는 방식으로 구성을 했습니다. 사용자의 모바일 기록 Log 데이터는 다..
-
매장 리뷰수 계산 api 성능 문제Project/NYAM 2023. 2. 28. 19:53
사용 기술 : Nest.js - mongoDB 현제 서비스 중인 어플리케이션은 유저별 리뷰수를 지원을 하고 있다. 유저는 리뷰를 지울 수는 없으며, 개발자 혹은 기획자는 리뷰를 차단 할 수 있다. 이 글은 리뷰마다 유저들의 리뷰수를 보여주기 위하여 실제 서비스 운영중에 기능을 추가했던 상황과 대략적인 방식 그리고 현제 업데이트될 방식과 상황에 대한 글이다. 데이터를 보자 유저의 리뷰 숫자가 , 리뷰 도큐먼트 안에 들어가 있다. 또한 유저의 데이터에도 유저 리뷰 카운트의 숫자가 들어가 있다. - 리뷰의 숫자를 추가하는 기능이 리뷰를 만드는 기능보다 나중에 나와서 , 리뷰의 숫자를 계산하는 기능을 새롭게 업데이트를 할때 업데이트시 초기화 해주는 유저의 리뷰수 데이터 필드와 실제 리뷰수가 일치하지 않는 다라는..
-
"아니 디도스 공격을 받았다고요 ???"Project/NYAM 2023. 2. 25. 01:37
넵 저희 서버 이야기는 아니지만 연관된 이야기 입니다 여유롭게 오늘도 학교에 있는 스타트업 사무실로 출근을 하는중 ,,,,,,,, 너무 여유가 넘쳤나 봅니다 https://www.boannews.com/media/view.asp?idx=114586 가비아, 디도스 공격으로 네임서버 장애... 현재 서비스 정상화 가비아가 24일 오전 10시 12분부터 12시 58분까지 디도스(DDoS) 공격을 받아 가비아 전체 서비스에 장애가 발생했다고 밝혔다. 이로 인해 가비아 네임서버로 연결되어 있는 서비스 연결이 불안정 했 www.boannews.com 저희 앱은 가비아에 도메인을 등록 한후 3 개의 서브 도메인을 추가로 구성을 하여 앱, 웹, 개발 등여러곳에서 운영 중이었고 도메인 호스팅 업체가 디도스 공격을 받을..
-
몽고디비 필드값 다중 검색 $or 사용 및 향상Project/NYAM 2023. 2. 24. 21:39
앱 마이무라의 다음 버전의 들어가는 가게 검색 api을 만든 것을 정리 하는 글입니다. 사용기술 : NestJS , MongoDB, Regex() 다음 과 같은 필드에서 가게 이름 ("store_name": "돈카츠앤우동돼랑이우랑이") 또는 가게의 메뉴를 입력 받았을때 모든 가게를 찾는 검색 쿼리를 만들려고합니다. "store_name": "돈카츠앤우동돼랑이우랑이", "store_thumbnail_image": "store/1672723948155.jfif", "store_call": "02-969-1999", "category": { "category_name": "일식", "category_id": "63aef68a0ef2e5098a34e48d" }, "sp_categorys": [ { "catego..