본문 바로가기

웹 개발42

[error/spring] BeanCreation, BeanDefinition 에러 spring 공부를 진행하다가 빈 관련된 에러 두 가지를 마주치고 해결했던 것을 정리해보고자 한다. 1. BeanDefinition 에러✔️BackgroundA디렉터리에서 작업하던 것을 그대로 B디렉터리에 복붙해오면서 작업하며 발생하게 된 에러이다. 컨트롤러, 서비스, 레포지토리 등을 복붙해와서 리팩토링을 하였기 때문이다. 스프링 빈은 유일해야 하는데 이름이 같기 때문에 빈 정의 오류가 발생한다.   ✔️해결과정● A컨트롤러, A컨트롤러 → A컨트롤러, B컨트롤러 컨트롤러를 예로 든다면 A컨트롤러와 같이 동일한 이름의 컨트롤러가 2개 이상 존재하면 안된다. 스프링은 스프링 컨테이너에 스프링 빈을 등록할 때 기본으로 싱글톤(Singleton)으로 등록한다.  싱글톤 방식은 유일하게 하나만 등록해서 공유한다.. 2024. 3. 24.
[linux] vi/vim 에디터 사용법 #2 지난 시간에 이어 vi 에디터 사용법에 대해 알아보고자 한다. 2024.03.16 - [웹 개발/linux] - [linux] vi/vim 에디터 사용법 [linux] vi/vim 에디터 사용법 vi 편집기는 리눅스나 유닉스 유저라면 한 번쯤은 경험해보았을 편집기이다. 무언가 설정을 바꾸기 위해 시스템에 있는 기존 파일을 들어가 편집하고, 저장해서 나오는 경우도 꽤 빈번하다. vi편 dani0312.tistory.com 명령모드 명령어 북마크 m{a-zA-Z} : 해당 커서를 북마크로 설정 :marks : 북마크 리스트 확인 \{a-zA-Z} : 기록된 북마크로 이동 치환 %s/old/new : 각 행의 처음 나오는 old를 new로 치환 %s/old/new/g : 모든 old를 new로 치환 %/old.. 2024. 3. 17.
[linux] vi/vim 에디터 사용법 vi 편집기는 리눅스나 유닉스 유저라면 한 번쯤은 경험해보았을 편집기이다. 무언가 설정을 바꾸기 위해 시스템에 있는 기존 파일을 들어가 편집하고, 저장해서 나오는 경우도 꽤 빈번하다. vi편집기는 우리가 자주 사용하는 메모장과는 다른 방식이기 때문에 그 사용법을 알아두면 좋다. vi 편집기에는 3가지 모드가 존재한다. * vi 편집기 3 모드 1. EX 명령모드 2. 명령모드(command mode) 3. 편집 모드(edit mode) 다음과 같은 형태로 모드를 넘나들어 사용할 수 있다. 1. 명령모드 → 편집모드 전환 입력모드 전환 a : 커서 뒤(오른쪽)부터 입력 A : 줄의 마지막에 입력 i : 현재 문자 앞에 입력 l : 줄의 시작 부분에 입력 o : 현재 줄 다음 줄에 입력 p : 커서가 있는 .. 2024. 3. 16.
[linux] nohup 명령어 + 사용법 📌Nohup 명령어 알아보기 ◾Nohup 명령어란 리눅스에서 자주 사용하는 Nohup명령어는 no hanp up의 약자이다. 즉 '끊지마'이다. 전화할 때 끊지마 'Don't hang up'이라고 하듯이 같은 의미이다. 프로세스가 중단되지 않고 백그라운드로 작업을 수행할 수 있게 하는 것이다. 사용자가 로그아웃하거나 작업 중인 터미널 창을 닫아도(터미널의 세션 연결이 끊어지더라도) 실행 중인 프로세스를 백그라운드 프로세스로 계속 작업할 수 있도록 하는 것이다. 용량이 큰 데이터 압축 해제와 같은 실행 시간이 오래 걸리는 프로세스들에 대해 nohup으로 처리하여 작업하면 작업 중단 없이 해당 업무를 완료할 수 있다. ◾Nohup.out 파일 `nohup.out`은 nohup으로 실행된 프로세스의 표준 출력.. 2024. 3. 15.
[spring] dto클래스에 Getter가 필요한 이유 📌DTO 클래스에 Getter가 필요한 이유 ◾DTO란 DTO(Data Transfer Object)란 데이터를 이동(Transfer)시키기 위한 객체이다. Client가 Controller에 요청을 보낼 때 RequestDto의 형식으로 데이터를 객체로 받고, controller가 Client에게 응답을 보낼 때도 ResponseDto의 형태로 데이터를 보내게 된다. 또 controller ↔ service ↔ repository 계층간에 데이터를 교환하는 것도 이 DTO의 형태로 이동하게 된다. 응답에 있어 본다면 앞서 말했든 controller가 요청을 받고, 응답을 하는 것이 DTO의 형태이므로 service에서 repository를 이용해 데이터베이스에 있는 데이터를 찾아 DTO형태로 만들어 반.. 2024. 2. 29.
[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.

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