🌿SPRING 37

[SPRING] Controller, Service, Repository

어떤 것이든 개념을 알기 전에 왜? 부터 생각하는 것이 나중에 더 좋다는 걸 알았다. ❓Survlet 으로도 구현이 가능한데 왜 Controller를 쓸까? => 컨트롤러의 장점 : API 마다 파일을 만들 필요가 없음. => 보통 하나의 controller 안에 모든 api를 넣지는 않고 유사한 성격의 api를 하나의 controller로 관리. (함수 명도 마음대로 설정 가능 (클래스내 중복함수명은 불가)) ❓All in one Controller의 문제점? => 한 개의 클래스에 너무 많은 양의 코드가 존재 => 이해하기 어려움 - 현업에서는 코드 추가 또는 변경 요청이 계속 생김. 1. Controller의 역할 클라이언트의 요청을 받음 요청에 대한 처리는 서비스에게 전담 클라이언트에게 응답 2...

[SPRING] 입문주차 과제 - 출력 값 + 에러코드 만들어주기

=> "success" : true "data":[{ 조회 값 }] "error" : null =>"success" : true "data":[{ 작성한 것들 }] "error" : null 에러메세지 ^^,,,,, 여기까지 해놓고 다한 줄 알았음^^!!! 생각지도 못함 ㄴㅇㄱ 그러면 뭐다? 수정해줘야지 ^^ 야호!! - 출력 값을 모두 data로 감싸서 그안에 입력되어있음 + success :boolean + error : code/msg 가 따로 뜸! - success가 true일때 : 정상 출력, error : null false 일때 : 에러메세지만 출력 data : null 1차로 든 생각은 [Controller]에서 리턴 값들을 모두 바꿔주면 되겠다! 뭘로? =>Response Dto 를 따로..

[SPRING] MVC 패턴

Model - View - Controller 3가지 역할로 프로젝트 구성요소를 구분한 패턴 Model 어플리케이션이 무엇을 할 것인지 정의하는 부분즉 DB와 연동하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터를 다룸 View 사용자에게 시각적으로 보여주는 부분 (UI) Controller Model이 데이터를 어떻게 처리할지 알려주는 역할. 사용자에 의해 클라이언트가 보낸 데이터가 있으면 모델을 호출하기전에 적절히 가공을 하고 모델을 호출. 그런다음 모델이 업무 수행을 완료하면 그 결과를 가지고 View에게 전달하는 역할. => 사용자가 URL을 호출하면 Controller에서 요청들을 받고 그 안에서 로직이나 데이터가 필요하면 Model에서 호출해서 모델에 구성된 로직이나 DB에 접근해서 데이..

[SPRING] JPA / ORM

JPA JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준 JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다. JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 Mapping 해준다. JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 활용하면 패러다임 불일치, SQL 의존성 등으로 인해 효율성이 떨어진다. 이 때, JPA를 활용한다면 모든 SQL에 대해 개발자 대신 JPA가 자동으로 해결해 준다는 점에서 생산성을 크게 높인다. ORM ORM(Object-Relational Mapping)은 객체와 관계형 DB를 매핑한다는 뜻 ORM 프레임워크를 사용하..

[SPRING] 입문주차 과제 - 전체 게시글 목록 조회 / 게시글 조회

03 주차 과제를 잘해낸 줄 알았더니 아니었다 ... 전체 게시글 조회 시 : 제목/ 작성자명/ 작성 날짜 가 떠야하고 게시글 조회 시 : 제목/ 작성자명/ 작성날짜 / 작성내용 이 떠야했다.. 어제까지 만든건 모두 다 떴다 ...^^ 작성날짜/수정날짜/id/제목/내용/작성자/내용/비밀번호 모두 .. 배포까지 다하고나서야 알게되어서 ... ㅎㅎ 그치만 제출 전까지 시간이 남은 상태에서라도 알게되었으니까 수정해야지..ㅎ [Controller] @GetMapping("/api/post") public List getPosting() { return postingRepository.findAllByOrderByModifiedAtDesc(); } Entity가 리스트 형태로 나온다 그렇다면 일단 Entity로 ..

[SPRING]입문주차 과제 비밀번호 확인 API 만들기

03주차 과제를 하면서 다른 부분은 강의부분을 보면서 그대로 작성하면서 이해했는데 새로운 기능이 더 있었다. 이론은 알아도.. 처음부터 해보려니 안되는 것,,, ^^ 고생하면서 했었어서 정리해두려고 한다. API 명세서중 비밀번호 확인 부분이다. 비밀번호를 보내면 db에 저장된 값과 비교해보고 true / false로 응답이 오면 된다. Controller에 api를 적어주려면 일단 비밀번호확인에대한 서비스 부분을 먼저 구현해야 한다. 서비스 부분에 만들려하니 매개변수로 비밀번호만 따로 dto를 따와서 입력받은 비밀번호와 비교해야 한다!! 그렇다면 비밀번호 DTO를 먼저 따줘야 한다! (순서는 솔직히 상관 없을 듯) 1. requestDto =>PostingPasswordDto먼저 만들어줌 @Getter..