Project/Collabo Project

1. https 적용https 적용기 https 적용기기존의 문제점프로젝트를 진행하면서 사용자의 위치가 필요했다.사용자의 현재위치를 가져오는 API는 Geolocation API을 사용하려 했다. 이는 사용자에게 권한 확인을 받은 후 사용할 수 있다.navigatsesam-dev.tistory.com  2. 프론트에서 위치 정보(위도, 경도)를 받아왔다.클릭하면 위도, 경도를 받아올 수 있게 했다.const Location = () => { const userInfo = useSelector(state => state.loginCheck.loginInfo); const sendLocation = () => { if (navigator.geolocation) {..
기존의 문제점프로젝트를 진행하면서 사용자의 위치가 필요했다.사용자의 현재위치를 가져오는 API는 Geolocation API을 사용하려 했다. 이는 사용자에게 권한 확인을 받은 후 사용할 수 있다.navigator.geolocation 객체를 이용하면 된다. 그러나 해당 객체가 없을 수도 있으므로 다음과 같은 방식으로 처리하여 사용할 수 있다.if('geolocation' in navigator) { // 위치정보 사용 가능} else { // 위치정보 사용 불가능}  문제사용자의 위치를 가져오고 싶었지만, https환경에서만 사용가능 했다. HTTPS🔒http는 hypertext transfer protocol의 약자로 쉽게말해 브라우저와 서버의 통신 규약이다. 다시말해 우리가 데이터를 주고 받는..
1. VM 생성 & 고정 IP로 변경Docker+GCP로 프론트 배포 정리위에 링크해서 해두었다! VM 에 연결된 아이피를 고정 아이피로 변경로 변경도 해주어야 한다. 2. 외부 도메인에 네임서버를 GCP로 변경- 영역이름은 고유하게 만들면 된다.- DNS 이름은 도메인 이름을 넣는다- DNSSEC는 Domain Name System Security Extensions 라는 의미로 이름조회에 대한 응답을 인증하는 기능이다. 공격자가 DNS요청에 대한 응답을 조작 또는 악성 처리하는 것을 방지한다고 되어있는데, 자세한건 아래 사이트에서 확인해보는게 좋을거 같다. 기본값이 사용안함으로 되어있긴 한데, 여기서는 사용으로 했다.https://cloud.google.com/dns/docs/dnssec?hl=ko ..
상황문제 : GATEWAY 에 api/v1/user 로 들어오는 요청이 USER-SERVICE 로  흘러가지 않았다.GATEWAY 에 USER-SERVICE가 분명 올라가 있다  하지만 해당 경로로 요청할 시 GATEWAY 에서는 USER-SERVICE를 찾을 수 없다고 로 log가 나온다.이유는 api/v1/user 로 들어오는 요청에 대해 gateway에선 USER-SERVICE로 로드밸런싱 해주는데 gateway와 USER-SERVICE는 서로 다른 network에서 실행중이어서 소통이 안됐다.   해결#1다른 VM에서 실행 중이던 gateway와 USER-SERVICE를 같은 VM( villion-server )에서 실행해주었다.   #2하나의 network 를 만들어서 소통이 가능하게 했다.do..
eureka 배포하는 방법에 Docker와 전통적인 가상 머신(VM)을 사용하는 방법으로 2가지를 고려했다. 방법1. 전통적인 가상 머신(VM)에서의 작업 흐름(Docker 사용 X)VM 생성:클라우드 서비스(예: AWS, Azure, GCP) 또는 로컬 환경에서 가상 머신을 생성한다.인스턴스에 Java 설치:VM에 접속하여 필요한 Java 버전을 설치한다.예시: sudo apt-get install openjdk-11-jdkEureka 프로젝트 .jar 파일을 인스턴스에 업로드:로컬 머신에서 .jar 파일을 VM으로 전송한다.예시: scp eureka.jar user@vm-ip:/path/to/directory실행:Java 명령을 사용하여 .jar 파일을 실행한다.예시: java -jar /path/t..
프론트엔드 배포 준비물1. vm 2. docker 3. git(선택)4. front source  5. node.js6. nginx 해야할 일1. 클라우드 컴퓨팅을 대여한다2. 클라우드에 도커를 설치한다.3. 깃을 설치한다. (선택)4. 프론트엔드 소스를 받아온다.5. 도커를 이용해서 nginx 를 사용해 화면을 배포한다.  그림 한 장 요약  Docker + GCP 활용한 프론트 배포 과정#1 GCP 환경 설정1. VM 인스턴스 생성 (= AWS EC2 인스턴스 생성)1-1.Google Cloud 가입https://cloud.google.com/products/compute?hl=ko https://cloud.google.com/products/compute?hl=ko cloud.google.com 1..
검색 기능은 모든 애플리케이션에서 사용자 경험의 핵심 요소이다. 용자가 특정 키워드를 검색했을 때 원하는 결과를 얻지 못하면, 다른 키워드로 다시 검색해야 하는 불편함을 겪게 된다. 따라서, 사용자가 원하는 도서를 빠르고 정확하게 찾을 수 있도록 하는 것은 서비스의 중요한 요소라고 생각한다. 이 프로젝트에서는 도서 검색 기능을 구현하기 위해 여러 가지 기술적 선택지를 검토하였고, 그 중 MySQL의 FULLTEXT 인덱스를 활용하기로 결정했다. 왜 이 선택을 하게 되었는지, 그리고 그 과정에서 고려한 요소들을 설명하고자 한다. 도서 검색에서 고려해야할 요소 검색 속도: 사용자가 빠르게 결과를 얻기 위한 검색 속도검색 정확도: 사용자가 원하는 결과를 정확하게 얻을 수 있어야 한다.다양한 검색 기준: 제목,..
특정 책에 관심이 있어 클릭해서 상세페이지에 들어갔을 때, 클릭했던 책을 거래한 사람이 함께 거래했던 책을 추가적으로 보여주고 싶었다.유사한 관심사를 가진 사용자에게 함께 거래한 책을 추천함으로써 거래율을 증가시킬 수 있을 것이라 기대했기 때문이다.  주문을 할 때에 아래처럼 값을 보내주고 있다.orderList를 그대로 DB에 저장하고 싶지만, DB에 객체를 넣어줘야해서 보기가 불편할 것 같았다. { "renterUserId" : 1, "userName": "John Doe", "phoneNumber": "1234567890", "address": "123 Main St, Cityville, ST 12345", "deliveryMemo": "Leave at the front ..
기존 양방향JPA 연관관계를 사용하여 사용자가 거래내역을 조회했을 때, 거래했던 상품들을 보여주고자 했다.Rental 클래스에 주문내역을 보여주고, RentalProducts에서 한 주문내역에 대한 제품들을 보여주도록 관계를 만들었다.💡 양방향 매핑 규칙객체의 두 관계중 하나를 연관관계의 주인으로 지정연관관계의 주인만이 외래 키를 관리(등록, 수정)주인이 아닌쪽은 읽기만 가능주인은 mappedBy 속성 사용X주인이 아니면 mappedBy 속성으로 주인 지정💡 연관 관계의 주인(Owner) 지정 방법외래키가 있는 곳을 주인으로 지정할것!→ Rental의 객체에서 값을 바꿨는데, RENTALPRODUCTS테이블에 쿼리문이 나가면 혼란스럽다.  @OneToMany, @ManyToOne을 사용하여 양방향 매..
상황재고가 1개 남은 도서를 2명의 대여자가 대여 버튼을 동시에 눌렀을 때 재고를 초과하는 상황이 발생을 방지하고자 한다. 예를 들어, 선착순 쿠폰을 100개만 발급하고자 하는 경우랑 비슷하다고 보면 될 것같다. user가 대여 버튼을 누르면 Kafka를 이용하여 product-service로 대여 데이터를 전송한다.  USER-SERIVCE// UserController@PostMapping("/addDeliveryOrder/{userId}")public void addDeliveryOrder(@PathVariable Long userId, @RequestBody RequestAddDeliveryOrder requestAddDeliveryOrder) { productService.addDelive..
sesam
'Project/Collabo Project' 카테고리의 글 목록