본문 바로가기
728x90
반응형

전체 글101

[Spring , React] mkcert를 이용한 localhost ssl 인증서 구성 localhost ssl 인증서 관련문제요청 오류 원인로컬호스트 ssl 인증서 사용으로 인한 문제ssl 인증서가 유효하지 않다는 이유로 크롬브라우저에서 인증서 오류로 백엔드에 요청을 보내지 않고 오류처리.오류 발생시 크롬 브라우저로 백엔드 주소 (https://localhost:8080)로%EB%A1%9C) 직접 접속해서안전 관련 경고 무시 처리 이후,프론트 엔드의 요청이 정상적으로 전달됨.큰 문제가 없으나,가끔 발생하는 해야 하는 캐시 삭제 이후 매번 해줘야 하는 번거로움으로 인해 해결을 목표로 함.해결 방법해결방법 1. 실제 SSL 인증서를 구매 또는 무료 발급실서비스 도메인에서는 실제 인증서가 필요.가장 추천:Let’s Encrypt → 무료, 자동 갱신 가능비용 없음nginx·Apache·Spri.. 2025. 11. 18.
[Java/Spring] devtools를 이용한 백엔드 재실행 문제 문제 상황이게 왜 어떤내용을 바꾸고나서 이런 문제가 발생하기시작했는지는 기억이 안나는데devtools 를 이용해서 백엔드 코드가 바뀌면 자동 재실행하는 부분에서 오류 발생.원인서버를 직접 재실행하면 문제가 없는데 devtools의 재실행을 의존하면 발생하는 오류임.재실행 원인 파악메시지 추적으로는웹 애플리케이션 인스턴스가 이미 중지되었는데 mapper/ 를 로드하려고하는 상황이라 발생하는것 같음.직접 실행할때와 devtools를 통해 실행하는 순서가 다른것같은데mapper/ 를 불러오는 시점에 어떤것들이 구성되어있어야하는지 확인해봐야할것같음Spring-devtools프로젝트에서 devtools를 이용해서 코드 변경시 자동 재실행을 함.devtools는 클래스 경로에서 디렉터리를 가리키는 모든 항몽의 변경.. 2025. 11. 16.
[Window] 사용 중인 포트가 아닌데, 이미 쓰고 있음 문제 발생문제상황기본적으로 사용하려는 포트가 이미 다른 프로세스에서 점유하고 있을 때 나오는 에러로 netstat -ano | find "포트번호" 라고 입력하면 문자열 검색으로 출력되는건 알고있는데 사용하려는 8080포트는 내가 사용하는 포트인데 어디선가 점유하고있는 메시지를 확인이 되는 경우가 있음.문제는 이 포트를 사용중인 프로세스가 없는데도 오류가 발생함. 문제 해결 방법 1. cmd or 파워쉘을 관리자 권한으로 실행2. 아래의 명령어를 순서대로 입력 후 실행net stop winnatnet start winnat이러면 해결. 관리자 권한으로 bat파일실행하면 굳이 입력할 필요 없게만들기 메모장에 아래의 파일 내용을 그대로 적고, 확장자를 .bat으로 수정하거나첨부파일 다운해서 쓰기.@ech.. 2025. 11. 4.
[Spring] 로그인처리 1. 개요 로그인 처리를 기본적으로 프론트에서 form 처리와 post처리를 통해 진행하려고 했었으나구글 outh 인증을 통해 진행하도록 노선을 잡았고, 더욱이 jwt를 통해 사용자 인증권한에 대한 자원소모를 줄이고자했던 노력으로 인해 좀 더 복잡해졌던 내용을 정리. 2. 오류2-1) JWT,, HttpOnly 쿠키에 대한 이해부족사용자 요청시 검증에 관련된 로직처리방법을 고민하던 부분.사용자의 구글 인증 후 사용자의 정보를 DB에 저장, 이후 jwt 값을 전달한 뒤,리액트로 구현한 프론트의 store에 저장할 경우, 새로고침하면 사라진다는 문제로 인해httpOnly 쿠키를 사용하게됨.새로고침이나, 세션쿠키, 사용자가 브라우저의 쿠키를 삭제하는 경우, 기한만료가 아닌이상 유지되는것을 알았다. 2-2) .. 2025. 9. 18.
[React/docker] node.js 다른 버전 돌리기 1. 개요개발 PC에 설치된 node.js 는 18버전인데사용하는 소스코드는 node.js의 20버전을 이용할때. 사용하는 IDE에서npm run dev로 간단하게 실행하는게 좋지만혹시나, 현재 사용중인 버전과 다른 버전의 코드를 써야한다면도커를 사용하는게 좋은 대안이 될 수 있을 것 같아서 적어봄 1-1. 전제조건현재 PC에 도커 컨테이너가 설치되어있어야함.윈도우라면 도커 공식 설치페이지에 접속해서 설치 후 실행할 것 2. 본문#Dockerfile# Node 20 기반 이미지 사용FROM node:20# 작업 디렉토리 생성WORKDIR /app# package.json, package-lock.json 복사COPY package*.json ./# 의존성 설치RUN npm install# 나머지 코드 복.. 2025. 8. 17.
[java/spring] 구글 oauth 인증 구글 로그인 을 사용하려면 oauth 사용 필요, Spring Security 사용 필요초기 세팅 하는방법도 모름.어떤식으로 정보를 요청해야하는지,또 어떤 정보를 받는지 모름.로그인 기능구현의 주요 목표구글 로그인 적용하기 (민감하지 않은 개인정보, 구분 가능한 사용자정보 획득하기)부가목표누가, 어떤 기기로, 언제, 로그인 및 접속을 하였는지, 확인하기- 스프링 시큐리티 의존성https://docs.spring.io/spring-security/reference/getting-spring-security.html- 스프링부트 인증 서버https://docs.spring.io/spring-authorization-server/reference/index.html- 스프링부트 OAuth2 가이드https:/.. 2025. 5. 13.
[ JAVA/Spring ] yml의 변수 application.yml 에서 DB의 정보를 분리하기 위해 있었던 오류를 정리하는 글이다. 초기 프로젝트 세팅시 application.yml에 모든 정보를 집어넣고 세팅했었고DB연결을 분리하고 DB 접속 정보는 변수로 다루기 위해 db.yml이라고 선언.application.yml에서 불러오는(import) 형식으로 선언했다.spring: config: import: - classpath:/application-db.yml - classpath:/mybatis.yml 문제는 yml에 변수를 선언하고 가져다 사용하려고 했던 부분이다.로딩할때 application.yml에서 다른 yml파일을 불러올 수 는 있지만import 된 yml 안의 정의한 변수는 치환이 안.. 2025. 4. 15.
[React] React의 useState와 useEffect에 대한 이해 useStateReact에서 '상태'라는 개념은 단순한 변수처럼 보이지만 다름.useState로 선언한 값은 내부적으로 상태가 바뀔 때마다 컴포넌트를 리렌더링하게 되어 있음.일반 변수(let 등)는 값이 바뀌어도 화면은 바뀌지 않음.반면 useState는 setter 함수(setX)로 값을 바꾸면, React가 다시 렌더링을 해서 UI에 반영됨.→ 핵심:값 + 그 값이 바뀌었을 때 컴포넌트를 다시 그려줄지 말지를 React가 관리해주는 구조또한, React는 상태의 불변성을 중요하게 다룸.그렇기 때문에 항상 새로운 값을 만들어서 넘겨주는 식으로 상태를 업데이트해야 함.(ex. 배열이나 객체 수정 시 원본을 바꾸는 게 아니라 복사본 만들어서 set해주기)useRefuseRef는 값을 저장할 수 있지만, 리.. 2025. 4. 11.
[Ubuntu] 원격접속 Ubuntu 22.04  우분투 OS 원격접속 설치.데스크톱 버전을 사용중이었기 때문에 GUI 지원하는 패키지 설치하지 않았음.   Xrdp + Windows 원격 데스크톱 연결 설치패키지 openssh 설치sudo apt updatesudo apt install openssh-serversudo systemctl enable sshsudo systemctl start ssh xrdpsudo apt install xrdpsudo systemctl enable xrdpsudo adduser xrdp ssl-certsudo systemctl start xrdp xrdp 설치 후 설정파일 내용 변경 필요위치 : /etc/xrdp/startwm.sh sudo nano /etc/xrdp/startwm.shorsu.. 2025. 4. 9.
네트워크 잘못알고있던부분 내가알고있는 기본 네트워크 개념에는 망, 스위치, 라우터 가 전부였음 개략적으로 정리하면pc → 공유기 → 모뎀 → IPS → 특정 서버정도로 요약이 가능하고 상세하게 작성해도PC   ↓ 이더넷 공유기 (라우터)   ↓ 광케이블 통신사 네트워크 장비 (ONU/모뎀 등)   ↓ ISP (통신사) 코어 네트워크 장비들   ↓ 지자체/지역 백본망   ↓ 국가 간 연결망 (해저케이블 포함)   ↓ 상대방 서버 위치까지 라우팅정도라고 생각했었는데....프록시 서버, 리버스 프록시 서버, 게이트웨이, 로드밸런서에 대한 생각은 전혀 못하고 있었다.로드밸런서나 프록시 서버 같은건, 전용 장비를 따로 둘 수도, 프로그래밍적으로 처리가 가능하다는 것  로드밸런서라는건 예전에 네이버에서 이 수많은 접속자들을 어떻게 처리하는.. 2025. 4. 9.
HTTP와 잃어버렸던 기억 이 글은 프록시서버, 리버스 프록시 서버의 개념을 공부하는중,스스로 HTTP에 대한 개념을 바로 잡는 중 느낌 소감을 작성한 글이다.   TCP/IP 기반 통신서버만 주구장창 개발하다가 웹소켓 서버를 개발이 필요해서, 개념을 대충 공부하고 넘어갔었던적이 있다.다만 여기서 stateless 라는 내용과 연결에 관련된 내용을 그저 그렇구나 라고만 인식하고 넘어갔고, 심지어 서버 개발시 웹소켓으로 진행했던 터라, 실제 http에 대한 이해가 부족했던 것을 이번 기회에 인지하게 되어서,확실히 정립하고자 하여 HTTP에 대한 기초 개념을 작성하였다.  API 서버를 개발할때는, 클라이언트로 curl 명령어를 사용하거나, 브라우저로 접속했을때 응답받음,서버에서는 접속 로그 확인됐고 데이터 전송까지 확인됐으니 잘 됐.. 2025. 4. 9.
[HTTP/HTTPS] HTTP(s) 통신 기본 개념 1. HTTP란?아주 단순한 질문으로 어딜가도, 누가봐도 쉽게 이해 할 수 있는 내용을 제공하기 위해, 위키피디아 내용을 첨부한다 HTTP(HyperText Transfer Protocol, 초본문전송규약, 하이퍼본문전송규약)는 W3 상에서 정보를 주고받을 수 있는 통신 프로토콜이다. 주로 'HTML 문서를 전송'하는 용도에 쓰인다. TCP를 사용하고 HTTP/3부터는 UDP 및 80번 포트를 사용한다. 1996년 버전 1.0, 그리고 1999년 1.1이 각각 발표되었다.HTTP는 클라이언트와 서버 사이에 이루어지는 상호 대화를 위한 요청-응답 프로토콜이다. 예를 들면, 클라이언트인 웹 브라우저가 HTTP를 통하여 서버로부터 웹페이지(HTML)나 그림 정보를 요청하면, 서버는 이 요청에 응답하여 필요한 .. 2025. 4. 9.
728x90
반응형