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) {..
Project
기존의 문제점프로젝트를 진행하면서 사용자의 위치가 필요했다.사용자의 현재위치를 가져오는 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 ..
문제com.mongodb.MongoCommandException: Command failed with error 18 (AuthenticationFailed): 'Authentication failed.' MongoDB 서버에 인증 정보를 사용하여 로그인 시도가 실패했음을 의미한다. 오류 메시지는 "Authentication failed."로, 인증이 실패했다는 것을 나타낸다. 해결application.yml 파일에서 접속 URI를 바꾸어 주었다. 변경 전spring: application: name: chatting-service data: mongodb: username: root password: 1234 host: 35.192.15.104 p..
상황문제 : 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..
상황문제 : GATEWAY 에 api/v1/user 로 들어오는 요청이 USER-SERVICE 로 흘러가지 않았다.GATEWAY 에 USER-SERVICE가 분명 올라가 있다 하지만 해당 경로로 요청할 시 GATEWAY 에서는 USER-SERVICE를 찾을 수 없다고 로 log가 나온다.이유는 api/v1/user 로 들어오는 요청에 대해 gateway에선 USER-SERVICE로 로드밸런싱 해주는데 gateway와 USER-SERVICE는 서로 다른 network에서 실행중이어서 소통이 안됐다. 해결따라서 아래의 network 를 만들어서 소통이 가능하게 했다.docker network create test-net 생성 후 아래의 명령어로 container를 실행할 때 네트워크 추가docker ..
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..
에러org.hibernate.bytecode.internal.bytebuddy.BytecodeProviderImpl Unable to get public no-arg constructorHibernate가 엔티티 클래스를 인스턴스화하려고 할 때 기본 생성자를 찾지 못할 때 발생하는 오류 해결https://stackoverflow.com/questions/75487370/how-to-resolve-an-unable-to-get-public-no-arg-constructor-error-while-trying How to resolve an ' Unable to get public no-arg constructor' error while trying to push data to GCS and load it i..
검색 기능은 모든 애플리케이션에서 사용자 경험의 핵심 요소이다. 용자가 특정 키워드를 검색했을 때 원하는 결과를 얻지 못하면, 다른 키워드로 다시 검색해야 하는 불편함을 겪게 된다. 따라서, 사용자가 원하는 도서를 빠르고 정확하게 찾을 수 있도록 하는 것은 서비스의 중요한 요소라고 생각한다. 이 프로젝트에서는 도서 검색 기능을 구현하기 위해 여러 가지 기술적 선택지를 검토하였고, 그 중 MySQL의 FULLTEXT 인덱스를 활용하기로 결정했다. 왜 이 선택을 하게 되었는지, 그리고 그 과정에서 고려한 요소들을 설명하고자 한다. 도서 검색에서 고려해야할 요소 검색 속도: 사용자가 빠르게 결과를 얻기 위한 검색 속도검색 정확도: 사용자가 원하는 결과를 정확하게 얻을 수 있어야 한다.다양한 검색 기준: 제목,..