본문 바로가기

전체 글92

[JPA] @JsonBackReference, @JsonManagedReference ✔ 문제엔티티 구조A_entity(부모)↳ B_entity (부모: A_entity, 자식: C_entity)↳ C_entity (부모: B_entity, N:1 참조: D_entity)↳ D_entity (부모: X)// C_entity @JsonBackReference @ManyToOne @JoinColumn(name = "D_entity_id") private D_entity d_entity; JPA 를 사용하는 프로젝트에서 C_entity에서 D_entity 조회가 안되는 오류  ✔ 해결과정@JsonBackReference 어노테이션 제거@JsonBackReference는 자식 엔티티에서 부모 엔티티의 정보를 숨겨서, JSON 직렬화 시 순환 참조 문제를 해결하는 데 도움을.. 2024. 9. 23.
이미지 화면 동적으로 프린트하기 window.print() ✔ 시작이미지파일 위에 동적으로 사용자 정보를 출력하려고 한다.새 창으로 프린트 할 화면을 띄우고, 그 화면을 프린트하는 방법을 구현하기로 선택했다. 환경React,Next,Typescript✔ 과정export default function Print({ 정보1 imageUrl,}: TProps){ const handlePrint = (): void => { const printWindow = window.open('', '_blank'); if (printWindow) { const htmlContent = ` ${정보1} .. 2024. 7. 21.
아이폰 웹 사파리 브라우저 개발자 모드 확인, 실행 방법 pc에서는 이슈가 없었던 기능을 모바일로 테스트 하니까 문제가 발생했다.모바일에서는 개발자 도구를 볼 수 없어서 답답했었는데 아이폰과 맥북을 활용해서 볼 수 있는 방법이 있다고 해서 바로 테스트 시작! 1. 아이폰에서 웹 인스펙터 설정 활성화설정 -> Safari -> 고급 -> 웹 인스펙터 활성화 2. 맥북 개발자 모드 설정 활성화 Safari 탭 -> 설정 -> 고급 -> 하단 메뉴 막대에서 개발자용 메뉴 보기 활성화 3. 아이폰과 맥북 케이블로 연결- 신뢰하는 컴퓨터 알림 뜨면 '신뢰' 클릭- Safari 열고 -> 개발자용 탭 -> 연결된 내 아이폰 클릭 -> JSContexts에 대한 웹 속성 자동으로 보기 4. 아이폰 Safari 에 개발자모드로 확인하고 싶은 웹 사이트 켜기 아이폰 : 위의 .. 2024. 5. 28.
계정 접속 오류 'root'@'localhost' root password 변경, mariaDB version 11.3.2 문제 인텔리제이에 mariadb 설정을 하려고 하는데 아래와 같이 계정에 연결할 수 없다는 알림이 떴다. Access denied for user 'root'@'localhost' password를 변경하기위해 mariadb에서 아래의 명령어를 입력해줬다. alter user 'root'@'localhost' identified with mysql_native_password by 'passworde'; You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'alter user 'root'@'localhost' ide.. 2024. 3. 29.
[GitLab CI/CD] gitlab-ci.yml 파일 설명 ✔️ GitLab CI/CD 개념 반복적인 코드 변경사항을 지속적으로 구축, 테스트, 배포 및 모니터링하는 지속적인 소프트웨어 개발 방법. ✔️ GitLab CI/CD를 위한 준비 1. GitLab Runner 를 설치해야 한다. 2. 프로젝트 생성 3. .gitlab-ci.yml 파일 생성 ✔️ .gitlab-ci.yml 파일 설명 GitLab CI/CD 에 대한 지침을 지정하는 YML 파일이다. 이 파일은 Runner 가 실행해야 하는 작업의 구조와 순서이다. stages: - develop - build - deploy job_develop: stage: develop only: - develop script: - echo "develop the project" job_build: stage: bu.. 2024. 3. 28.
[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.