🔻Back-End

swagger를 사용하기 위해서 설정을 추가하고 서버를 실행하니 발생한 오류이다! Spring boot 2.6버전 이후에 spring.mvc.pathmatch.matching-strategy 값이 ant_apth_matcher에서 path_pattern_parser로 변경되면서 몇몇 라이브러리에서 오류가 발생한다고 한다. application.yml에 아래의 설정을 추가해주면 해결된다! spring: mvc: pathmatch: matching-strategy: ant_path_matcher
org.mariadb.jdbc.Driver에서 오류가 발생했다 마리아DB와 연결했던 프로젝트의 application.properties를 보니 드라이버 이름에서 오류가 나있었다 해결하기 위해 mysql의 의존성을 추가해준 후 싱크해주니 오류가 사라졌다!
h2-console로 접속 후 connection을 누르니 제대로 나오지 않고 localhost에서 연결을 거부했다고 나왔다 그래서 SecurityConfig 클래스에서 configure함수의 내용을 위와 같이 변경해주었다 다시 서버 실행 후 접속해보니 제대로 실행되었다!
DB가 연결되지 않은 상태로 서버를 실행하면 발생하는 오류 중 하나이다 당장 DB 서버가 구축되지 않았다면 h2를 연결해주면 해결된다! spring: h2: console: enabled: true path: /h2-console datasource: driver-class-name: org.h2.Driver url: jdbc:h2:mem:testdb username: sa password:
페이징 처리를 하기 위해 JPA와 Pagable을 이용해보았다 -BoardRepository -BoardService boardService에서 전체 리스트를 불러오는 함수에 파라미터로 Pageable을 넣어주고 boardList를 boardRepository에서 findAll함수에 pageable을 파라미터로 넣어주고 해당 반환값을 리스트화시켜 준다 -BoardController 파라미터로 쿼리스트링의 디폴트값을 지정해주고(page와 size, sort는 쿼리스트링으로 입력해서 변경 가능) @PageableDefault(page = 0, size = 5, sort = "boardId", direction = Sort.Direction.DESC) Pageable pageable boardService에 ..
h2로 DB를 연결하고 http://localhost:8080/h2-console/로 접속한 후 연결을 누르니 해당 오류가 발생했다 해당 파일을 삭제 후 오른쪽 키를 누르고 새로 만들기 > 텍스트 파일을 누르기 test.mv.db로 다시 생성해준 후 서버를 재실행하고 다시 h2콘솔로 접속 후 연결을 누르면
해당 오류가 나왔을 때 오류가 발생하는 DTO(req)에 @NoArgsConstructor를 붙여주면 오류없이 실행된다!
빌드 명령어를 실행했지만 권한 문제로 오류 발생 gradlew의 모드 변경 후 다시 빌드 chmod +x gradlew 빌드할 때 10분이 지나도 움직이지 않는다면 서버가 다운된 것이라 EC2 인스턴스를 중지 후 재실행
터미널에서 프로젝트 폴더로 이동 후 빌드해보려고 한다 ❗빌드 ./gradlew clean build ❗서버 중지 ctrl + z를 누르게 되면 정지가 된다 하지만 이 상태는 계속해서 포트를 사용하고 있다고 뜨기 때문에 다른 작업을 할 수 없다 ❗서버 종료 서버를 종료하기 위해선 ctrl + c를 누르거나 변경사항을 받아오기 위해 pull 명령어를 실행하면 자동으로 kill된다 ❗다시 빌드 변경사항이 반영된 채로 다시 빌드를 실행하면 로컬에서 작업한 것이 EC2 서버에서도 작동하게 된다
❗@RequestBody http요청의 body 부분을 java 객체로 받을 수 있게 해주는 어노테이션으로 주로 json을 받을 때 활용 @PostMapping("/board/write") public Board boardWrite(@RequestBody Board board){ Board newBoard = board; boardService.boardWrite(newBoard); return newBoard; } 해당 API에서는 Board가 많은 정보를 담고 있기 때문에 query string이나 path variable로 각각의 값을 하나씩 받아오는 것은 번거로운 작업이다. 이럴 때 @RequestBody로 JSON객체로 정보를 받고 그 정보를 매개변수로 받아서 사용해줄 수 있다 Body에 JSO..
❗Query String /users?id=111 API 뒤에 있는 id = 111 부분을 Query String이라고 한다 id라는 변수에 111이라는 값을 담아 백엔드로 보내는 역할을 한다 @GetMapping("/board/delete") public Board boardDelete(@RequestParam("id") int id){ Board deleteBoard = boardService.searchBoardById(id); boardService.boardDelete(id); return deleteBoard; } Query String을 사용하고 싶다면 어떤 변수명으로 값을 받아올 것인지를 명시하기 위해 그 값을 받을 매개변수 앞에 @RequestParam("변수명")을 붙여준다 Query ..
mysql --version mariadb --version 위의 명령어를 통해 버전을 확인할 수 있다
해당 오류가 발생했을 때 아래의 경우를 확인해야 한다 1. Controller, DAO(Repository), Service에서 각각에 넘겨주는 쿼리값의 주입이 됐는지 확인 2. DB가 run 중인지 확인 1. Controller, DAO(Repository), Service에서 각각에 넘겨주는 쿼리값의 주입이 됐는지 확인 2. DB가 run 중인지 확인
board라는 엔티티에 id, title, content라는 컬럼을 설정해주었다 작성 버튼을 누르면 DB에 해당 내용들이 저장되어야 하는데 오류가 발생했다 이 오류를 해결하기 위해 not null인 컬럼에 @Column(nullable = false) 어노테이션을 붙여주었다 또한 auto_increment는 자료형이 int나 float일 때만 가능하므로 id의 자료형을 INTEGER에서 int로 변경해주었다
https://radiant515.tistory.com/m/237 [Database] DB 생성 후 Intellij 및 Datagrip과 연결 Datagrip을 통해 boardschema란 스키마를 생성했다 boardschema를 해당 DB를 사용할 인텔리제이 프로젝트에서도 바로 열어볼 수 있게 추가하고자 한다(추가하지 않아도 상관은 없다) DB의 URL은 jdbc:mariadb:// radiant515.tistory.com 같은 URL로 연동되어 있는 데이터그립과 인텔리제이 프로젝트에서 데이터그립에서 테이블을 생성한 후 생성했던 테이블이 잘 보여지는 것을 볼 수 있다
DB를 연결하지 않고 서버를 실행하면 DB를 연결해주라는 오류 문구가 나오게 된다 application.properties(application.yml)에서 설정을 통해 DB를 연결할 수 있다 spring.datasource.driver-class-name=org.mariadb.jdbc.Driver spring.datasource.username=root spring.datasource.password=비밀번호 spring.datasource.url=jdbc:mariadb://localhost:3307/[스키마(데이터베이스)이름]?characterEncoding=UTF-8&serverTimezone=UTC spring.datasource.driver-class-name=com.mysql.cj.jdbc.D..
Datagrip을 통해 boardschema란 스키마를 생성했다 boardschema를 해당 DB를 사용할 인텔리제이 프로젝트에서도 바로 열어볼 수 있게 추가하고자 한다(추가하지 않아도 상관은 없다) DB의 URL은 jdbc:mariadb://localhost:[설정한 포트 번호]/[스키마이름] 이다 DB를 생성한 드라이버를 맞게 선택하고 OK를 눌러준다 URL이 아닌 Path를 활용해서 DB를 불러올 수도 있다
name은 원하는 걸로 바꿔주고(바꾸지 않아도 상관없음) host는 로컬에서 사용할 것이기 때문에 그대로 두고 포트 번호는 mariaDB 처음 설치했을 때 지정했던 포트 번호인 3307로 변경 계정과 비밀번호에는 root와 설정한 비밀번호 등록 스키마(데이터베이스)를 먼저 생성 후 테이블을 생성할 수 있고, 후에 원하는대로 사용하면 된다
1.MySQL mysql -u root -p까지 입력 후 엔터 후 root계정의 비밀번호 입력 2. MariaDB mariadb -u root -p까지 입력 후 엔터 후 root계정의 비밀번호 입력
_니지
'🔻Back-End' 카테고리의 글 목록 (2 Page)