본문 바로가기

웹 개발/error10

[error/spring] BeanCreation, BeanDefinition 에러 spring 공부를 진행하다가 빈 관련된 에러 두 가지를 마주치고 해결했던 것을 정리해보고자 한다. 1. BeanDefinition 에러✔️BackgroundA디렉터리에서 작업하던 것을 그대로 B디렉터리에 복붙해오면서 작업하며 발생하게 된 에러이다. 컨트롤러, 서비스, 레포지토리 등을 복붙해와서 리팩토링을 하였기 때문이다. 스프링 빈은 유일해야 하는데 이름이 같기 때문에 빈 정의 오류가 발생한다.   ✔️해결과정● A컨트롤러, A컨트롤러 → A컨트롤러, B컨트롤러 컨트롤러를 예로 든다면 A컨트롤러와 같이 동일한 이름의 컨트롤러가 2개 이상 존재하면 안된다. 스프링은 스프링 컨테이너에 스프링 빈을 등록할 때 기본으로 싱글톤(Singleton)으로 등록한다.  싱글톤 방식은 유일하게 하나만 등록해서 공유한다.. 2024. 3. 24.
[error/jpa] SQL에러 Unknown Column in field list ◾에러 파악하기 ✔️Background 기존에는 Jdbc를 이용하여 API개발을 진행하다가, Spring Data JPA를 사용하기 위한 코드로 리팩토링하였다. 리팩토링은 엔터티 한 개에 `@Entity`를 붙여 테이블과 매핑을 하는 것인데, 컴파일 상 오류는 없었고 서버는 정상적으로 동작했다. ⚠️Error 에러는 아래와 같다. Unknown column '테이블명_필드명' in field list 라는 오류이다. 상황 문제는 db상의 테이블과 객체의 매핑에 있었다. `LocalDate warehousingDate` 필드 때문이었다. POST API나 PUT API를 할 시 위와 같은 에러가 터지며 POSTMAN에서는 500에러를보냈다. db상에는 warehousingDate라는 이름의 테이블이 있으나.. 2024. 2. 28.
[java/sql] 쿼리 작성 시 테이블명이 빨간 색일 때 해결법 테이블이 빨간색으로 표기되는 현상 에러는 아닌 듯 하지만 자바 코드 안에서 JdbcTemplate을 이용하여 mysql과 연동하여 사용하기 위해 쿼리를 작성하던 중 아래와 같이 테이블명에 빨간색이 들어올 수 있다. 마치 잘못된 코드를 작성한 것 같은 기분이 든다. 데이터베이스 테이블이 없어서 그런 것일까? 그렇지 않다. 아래처럼 데이터베이스를 확인해보면 `fruit`이라는 이름의 테이블이 멀쩡히 존재한다. 이유는 어떤 데이터베이스 즉 지금 인텔리에서 어떤 스키마를 선택해야할지 모르기 때문이다. fruit테이블이 존재하지만 이테이블이 library라는 스키마에 있을 수도, 또 product라는 스키마에 있을 수도 있다. 그러므로 아래와 같이 스키마를 선택해주기만하면 된다. 해결법 1. fruit위를 마우스.. 2024. 2. 23.
[error/spring] 스프링 시큐리티 POST요청 시 403에러 ◾에러 파악하기 ✔️Background spring boot 를 이용하여 토이 프로젝트로를 진행중이었고, 로그인 관련된 인증 부분은 spring security를 이용하였다. 프로젝트를 진행하던 중, 인증을 모두 잘 마쳤는데 요청을 보낼 403 forbidden에러가 발생하였다. 혼란을 주었던 것이, GET요청은 잘 요청이 가는데 POST요청을 보내면 403 에러가 발생하였다. 심지어 혹시 몰라 모든 url에 대해서도 `permitAll()`로 허용을 해두어도 에러가 계속 발생했다. ◾에러 해결하기 우선 403에러는 주로 권한이 없을 때 발생하는 오류이다. 그럼 왜 권한이 없다고 뜨는 것인가?? url설정을 모두 허용하였는데도. 원인은 CSRF 였다. CSRF란? Cross-Site Request For.. 2024. 2. 2.
[error/security] CORS란? Origin이란? CORS는 개발을 하다보면 매우 자주 맞닥뜨리게 되는 이슈이다. 프론트와 백엔드를 함께 작업을 하게 되면 마주치곤 한다. 이는 사용자의 잘못이 아닌 사용자를 보호하기 위해 걸려있는 웹브라우저의 보안 정책이다. 서버 측의 문제가 아니라 브라우저의 측의 문제임을 기억해야 한다. 📌CORS와 Origin의 의미 ◾CORS란? Cross-Origin Resource Sharing의 약자이다. 출처가 다른 자원들을 공유한다는 뜻으로, 한 출처에 있는 자원에서 다른 출처에 있는 자원에 접근하도록 하는 개념이다. 직역하면 교차되는 출처 자원들의 공유이다. 예를 들면 출처A에서 출처B로 자원을 요청한다고 하면, 이를 교차 출처 요청이라 부른다. 브라우저에서는 보안의 이유로 이렇게 교차 출처의 HTTP 요청을 제한한다... 2024. 1. 10.
[error] ERR_CONNECTION 서버가 꺼져있을 때 발생하는 연결 에러 ◾에러 파악하기 요청을 보내는 곳, 즉 요청을 받아 응답해야 하는 곳의 서버가 꺼져있을 때 발생하는 연결에러이다. 물론 어떤 식으로든 연결이 되지 않는다면 이 연결 에러가 발생할 것이다. ✔️Background 현재 프론트엔드는 nginx서버로, 백엔드는 백엔드 서버로 진행하고 있다. 서비스를 하기 위해 프론트에서 백엔드 서버로 POST요청을 보냈을 때이다. ✔️에러 발생 상황 POST 요청을 보내는 버튼을 클릭하면, 개발자도구에서 다음과 같은 connection오류가 나온다. 에러 메시지를 확인해보면 POST뒤에 나오는 http://158... 주소는 벡엔드 서버 (API서버) 의 주소이다. 첫 번째 에러는 ERR_CONNECTION_REFUSED "POST요청을 보냈을 네트워크가 연결에 실패했다. ".. 2024. 1. 3.

/* 내가 추가한 코드 */ /* 내가 추가한 코드 끝끝 */