전체 글114 [Nginx] Nginx 의 개념 및 nginx.conf 설정에 대해 알아보기 ✔️ Nginx 간단 설명 reverse proxy nginx 는 클라이언트와 어플리케이션 서버 사이에 위치해 있다. nginx 는 api Server 에게 Load Balancing(부하 분산) 을 할 수 있다. client 의 요청을 어떤 서버로 보낼지 reverse proxy가 결정 쉽게 말해서 요청과 응답을 서버 앞에서 흘려보내주는 역할. ✔️ 흐름 (client --> Db 방향) -> upstream client -> nginx -> api Server - Database 2024. 3. 27. [Spring Security] 스프링시큐리티 사용하는 이유, 사용하지 않았을 때 차이 비교 ✔ 사용하는 이유1. Spring Security 를 사용하지 않았을 때의 요청 누구나 정보 확인이 가능하다. public - 정보를 볼 수 있는 사람을 컨트롤 할수 없다. annonymous - 누가 요청했는지 알수 없다. unprotected - 누군가 악의적으로 브라우저 기반의 취약점을 이용할 수 있다. 1-1. Spring Security 사용하지 않았을 때 존재하지 않는 endpoint 요청 404 가 나쁜 것은 아니지만 이와같이 존재하지 않는 endpoint 임을 알려주면 이 또한 취약점이 될 수 있다. 2. Spring Security 를 사용했을 때의 요청스프링 시큐리티를 추가한 후 이전과 같은 요청을 보내보았다. 아무나 데이터 조회가 가능했던 이전과 달리 401이 나오는걸 확인할 수 있다.. 2024. 2. 17. Next.js middleware 에서 이전페이지 주소 확인 후 요청 처리 시나리오 외부에서 들어온 요청 중 url 이 A 인 경우에만 특정 처리를 해주려고 한다. 이 때 next 의 미들웨어에서 이전 url 을 확인하고, 이전 url 이 A 와 일치하는지 확인하려고 한다. 방법 next의 전역 middleware 에서 req.headers.get('referer') 를 사용하면 요청을 보낸 url 을 확인할 수 있다. middleware 란? Next.js에서 전역 미들웨어를 사용할 경우, 애플리케이션 전체에서 공통으로 적용되며 모든 페이지에 영향을 줍니다. 제가 사용한 전역 middleware 의 경우 애플리케이션이 실행될 때 가장 처음으로 실행되어서 apps 이전에 실행되는 곳입니다. import { NextResponse } from 'next/server' import.. 2023. 12. 11. Next + React + typescript 프로젝트 생성 명령어 오랜만에 프로젝트를 생성해봤는데 역시 한번에 생성되지 않네요! 1. 프로젝트 생성 명령어 타입스크립트 안쓰면 app 까지만 입력. npx create-next-app --typescript 2. 오류 아래와 같이 노드 버전 오류가 남. error next@14.0.2: The engine "node" is incompatible with this module. Expected version ">=18.17.0". Got "18.8.0" error Found incompatible module. 3. 아래 명령어 순서대로 입력 npm install -g n npm cache clean -f sudo n stable 명령어 실행 후 다시 1의 프로젝트 생성 명령어 입력했더니 성공적으로 프로젝트 생성할수 있었.. 2023. 11. 11. [Mac] 맥북 터미널 숨김파일 보기 터미널에서 모든 파일 보기 명령어, 옵션 현재 디렉토리 내 모든 파일 보기 : ls 숨김파일 포함한 모든파일 보기 : ls -a 파일 상세 정보 보기 : ls -l 2023. 11. 11. [vscode] html 자동완성 단축키 vscode 에서 html 파일 자동완성 단축키 ! 누르고 tab 키 누르기 안 써서 잊고 산 html 자동완성 이거였구나🤣 2023. 11. 8. [mac] homebrew docker 설치 오류 해결 ✔ 문제 홈브루에 도커를 설치하려고 했으나 오류 발생 brew install --cask docker Error: It seems there is already a Binary at... brew remove docker Error: Cask 'docker' is not installed. ✔ 해결과정 1. homebrew 설치 목록 확인 brew list 2. 확인 결과 docker-completion 파일 발견 3. 해당파일 삭제 brew remove docker-completion 4. 삭제 후 재 설치 brew install --cask docker 🍺 docker was successfully installed! 성공! 2023. 7. 20. SQLD 자격증 시험 합격 후기 / 준비방법 / 추천사이트 안녕하세요! SQLD 자격증 시험 합격후기, 준비 방법에 대해 기록해볼겠습니다 우선 저는 select, where 등 기본적인 쿼리는 알지만 간단한 것 조차 직접 짜보라고 하면 어버버 거리는 수준이었습니다🥲 ✔ 시험 후기 준비물 신분증, 컴싸, 검정색 볼펜, 수험표(안 들고갔지만 준비물에 써있음) 시험 문제 구성 (단답형 문제 수는 매번 다른것 같음)1과목 (객관식 9 + 단답형 1) 2과목 (객관식 35 + 단답형 5) 시험은 대충알면 틀리고, 정확히 알아야 맞출 수 있게 문제를 내더라고요 객관식이라 찍으면 되겠지 생각하면 안되고 확실히 기본 개념을 알아야 풀수 있었어요 정말 정확히 모르는 부분은 보기 번호 두개 중에 헷갈려서 틀린 문제가 많아요! 전공자 또는 sql 을 많이 다뤄보신 분들은 벼락치기 .. 2023. 7. 10. [JPA] @ElementCollection 어노테이션 ✔ 개념 RDB 는 Collection 형태의 데이터를 저장할 수 없다. 따라서 컬렉션을 저장하기 위해서는 별도의 테이블을 만들어서 따로 관리해줘야한다. Jpa 에서는 @ElementCollection 을 사용하여 해당 컬럼이 컬렉션 객체임을 알려줄 수 있다. 값 타입 컬렉션은 개념적으로 보면 1:N 관계이다. ✔사용방법 @Entity class Test { @Id @GeneratedValue(strategy = GenerationType.AUTO ) val id: Long = 0 @Column @ElementCollection var roles: List = ArrayList(); } roles 컬럼이 권한 여러개를 가질 경우 ElementCollection 어노테이션을 사용해서 별도의 테이블로 관리할.. 2023. 7. 1. 이전 1 2 3 4 5 6 7 ··· 13 다음