본문 바로가기

전체 글

(268)
(Vue.js환경 만들기 1) Node.js -npm 설치 1. Node.js 설치하기 Vue.js 를 사용하기 위해서 Node.js(npm) 를 설치해줘야한다. npm은 Node.js - Package - Manager 즉 Node.js 로 만들어진 프로그램을 쉽게 설치 등을 도와주는 것이다 https://nodejs.org/ko/ Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 원하는 버전을 선택하여 다운로드 신뢰도가 높은 LTS 버전을 다운로드 했다 2. node.js & npm 버전확인 cmd창에서 설치된 폴더로 이동하여 다음 명령어를 입력 아직 환경변수를 설정하지 않아서 설치된 폴더로 이동하여 version을 확인. node -v npm ..
62 : 검색기능 + 카테고리 (SpringbootAPi + JPA) 카테고리(제목/내용/작성자)를 선택 후 검색하는 기능을 만들어보자. 위 사진은 Jspmvc에서 구현한 모습이다. SpringbootApi는 Postman가 클라이언트 역할을 하므로 값을 직접 넣어줘야한다 (변수 stype가 위 사진의 "제목"을 선택하는 부분, svalue가 검색하는 부분이다) BoardJpaController의 @RequestParam 리스트 출력 페이지에 검색기능을 넣기위해서 url로 들어오는 검색값에 String형 null값을 허용하기 위해서 @RequestParam ( required = false ) 를 추가해줬다. -> 검색을 위한 stype(카테고리), svalue(검색값) 값을 넣지않으면 원래의 전체 리스트를 보여주게 만들것이다. @GetMapping(value = "/")..
61 : 답글 깊이 제한 (SpringbootApi + JPA) 1. 답글의 깊이를 3으로 제한 (11-06) @PostMapping(value = "/reply") public ApiResponse postBoardReplyContent(@RequestBody BoardDTO boardDTO){ if(boardDTO.getDepth()>2){ return new ApiResponse(false,"The maximum value cannot exceed 3", null); } return boardJpaService.postReply(boardDTO); } Comment에 깊이제한을 둬서 통과하지 못하면 Service로 넘어가지 못한다 자동으로 id값 을 할당하는 @GenerateValue 를 제거하고, 저번에 설정한 DB의 maxId + 1 로 id값을 지정했다(아..
11월 1주차 몇 가지 기능 추가 1. 검색기능 아래의 BoardJpa에서 구현한 검색 옵션기능을 추가하고 싶은데 Postman로 프론트엔드를 구현해서 보기 힘들 듯 8- JSP 게시판 (검색기능) ::구현방식 Jsp boardList에 새로운 폼을 만들었다. select를 사용하여 제목,내용, 작성자 옵션을 선택 가능하게 하고, 검색하고자 하는 키워드를 입력하면 select한 옵션에 따라 키워드를 검색한다. Cmd dwc04112.tistory.com 구현한 검색기능 62 : 검색기능 + 카테고리 (SpringbootAPi + JPA) 카테고리(제목/내용/작성자)를 선택 후 검색하는 기능을 만들어보자. 위 사진은 Jspmvc에서 구현한 모습이다. SpringbootApi는 Postman가 클라이언트 역할을 하므로 값..
60 : SpringbootApi 관련 질문 SpringbootApi의 여러 질문 중.. 어떤 API건 요청하는 특정 Requestbody에 대해 Exception을 내는 이유 즉 예외처리를 하는 이유는? (문제를 잘못 이해하고있었다..) 데이터 무결성 보호 시스템을 유지보수하는 개발자로 하여금 이상이 발생했을 때 빨리 조치(debug)하게 하기 위함 로그인 여부와 상관없이 호출할 수 있는 API 2개는? 왜 로그인 여부와 상관없이 호출 가능할까? 회원가입 - http://localhost:8080/api/member 로그인 - http://localhost:8080/SpringbootApi/authenticate API를 호출할때 처음 JwtRequestFilter에서 토큰값을 확인하고 실행되기 때문에 로그인(토큰확인)을 해야지 Api를 호출할수..
59 : jar & war 파일로 빌드하기 이전까지 만들었던 SpringbootApi 를 jar파일과 war파일로 빌드를 해볼것이다 jar/war 파일 빌드 하는법을 순서대로 적어놨다. jar 파일로 빌드하기 1. pom.xml 파일 다음과 같은 위치에jar 추가 4.0.0 org.springframework.boot spring-boot-starter-parent 2.5.5 kr.ac.daegu SpringbootApi 0.0.1-WAR-SNAPSHOT SpringbootApi SpringbootApi 1.8 jar 2. 우측 maven > Lifecycle > (필드 페이즈) package를 실행하면 > target에 SpringbootApi.jar 파일이 생성 이 파일을 open in Explorer or Terminel 로 연다. pack..
58 : 답글 구현하기 (SpringbootApi + JPA) 답글 구현하기의 Service 부분과, 쿼리를 구현하는 Repository 부분을 실행 순서에 따라 다룬 글이다 Repository의 코드는 (BoardRepository)로 표시 1. ID 값 체크 1-1 입력한 id로 해당하는 테이블 글정보 불러온다 -> 입력한 id로 검색한 값이 DB에 없으면 -> 예외 출력한다. @Transactional public ApiResponse postReply(BoardDTO dto) { /* JPQL TEST 겸 원글 불러오기 */ Board b = boardRepository.selectBoard(dto.getId()); if(b == null){ return new ApiResponse(false, "board id " + dto.getReplyRootId() ..
57 : @Transactional @Transactional 이란? 스프링에서는 트랜잭션 처리를 지원하는데 그중 어노테이션 방식으로 @Transactional을 선언하여 사용하는 방법이 일반적이며, 선언적 트랜잭션이라 부른다 @RequiredArgsConstructor @Service @Slf4j public class CommentJpaService { public final CommentRepository commentRepository; public final BoardRepository boardRepository; @Transactional public CommentDTO postComment(CommentDTO commentDTO) { @Transactional 의 역할은? 데이터베이스의 상태를 변경하는 작업 또는 한번에 수행..