Project/Table_of_Organization_Management_System (15) 썸네일형 리스트형 Spring MVC Process Spring 에게 Request 가 들어왔을때 Spring MVC 의 과정은 아래 이미지와 같다. DispatcherServlet : Request 가 들어오면 해당 Request 를 처리하는 수문장 역할을 한다. 요청이 들어오면 Spring 이 만들어 놓은 DispatcherServlet.java 파일에 doDispatch 메서드가 실행된다. HandlerMapping : Spring 은 HandlerMapping 을 List 을 가지고 있다가 이곳에서 요청이 들어온 URL 에 맞춰 HandlerMapping 을 찾는다. Spring Boot 는 @Controller 클래스에서 @RequestMapping 을 통해 명시한 URL 에 맞춰 RequestMappingInfo 인스턴스를 만드는데 이를 Han.. IntelliJ 의 편리한 기능 - 인레이 힌트 환경설정 > 에디터 > 인레이 힌트라는 설정이 있다. 이를 통해 구현되어있는 곳, 사용하고 있는 곳 등으로 손쉽게 이동할 수 있게 인텔리제이가 표시를 해준다. 한번 써보면 편리한 기능이여서 특히 인터페이스를 많이 활용해야하는 우리 자바 개발자에게는 구현체로 손쉽게 이동할 수 있어서 코드 보기에 진짜 좋은 기능인것 같다! IntelliJ 플러그인을 활용해 마지막 Git 커밋 사용자를 표시해보자 협업시 누가 코드를 수정했고 커밋 내용까지 쉽게 확인할 수 있는 Git 관련 플러그인이 있다. 다음과 같이 포커스 되어있는 라인을 수정한 마지막 커밋 사용자와 커밋 내용을 표시해준다. 설정방법은 간단하다. IntelliJ에서 GitToolBox 라는 플러그인을 설치하면 된다. Error 처리를 해보자 ApiResponse 를 사용하자 에서 보았듯이 응답의 형태를, 사용하는 프로젝트 요구에 맞게 통일시켜줄 필요가 있다. 이는 Error 에서도 마찬가지이다. 때문에 간단하게 Error 처리를 한번 해보자. 프로젝트에 범용적으로 쓰일 BusinessException 을 만들어보자. BusinessException 은 RuntimeException 으로 만들것이다. BusinessException.java public class BusinessException extends RuntimeException { private final ErrorCode errorCode; public BusinessException(ErrorCode errorCode) { super(errorCode.name()); this... Java - Code Convention 설정하기 git 을 이용해 프로젝트를 관리할때 팀원들간에 code style 이 달라 쓸데없는 commit 이 발생할 수도 있고, 각각의 다른 style 로 인해 code 가 난잡해 보일 수 있기에, 프로젝트를 진행할때 코드 style을 팀원간 맞출 필요가있다. Java Code Style *google java code style : https://google.github.io/styleguide/javaguide.html 참고 https://github.com/google/google-java-format 에서 IntelliJ Java Google Style 파일 를 다운로드한다. 다운로드 받은 파일을 선택한다. Editor > Code Style > Other File Types 에서 필요시 tab 및 in.. Postman?"No", Http?"Yes" - IntelliJ의 .http를 사용해보자 Postman 을 사용하다보면 단점을 느낄때가 많다. - Postman 을 설치 후 실행해야한다. - 진행중인 프로젝트가 여러개인경우 url 관리하기가 힘들다. 때문에 어느순간 Postman 을 거의 사용하지 않고 Swagger 를 사용해 API 요청이 잘되는지 확인하고있다. 그런데 Swagger 또한 사용하다 보면 단점이 존재한다. Request를 보낼 때 data 가 필요한경우 계속해서 data 의 값을 입력한뒤 요청을 보내야 한다. 반면에 IntelliJ .http 은 파일로 관리가 되기때문에 git 으로 형상관리가 가능하다. 물론, 협업시에는 data 의 구조를 한번에 파악할 수 있고, 사용법이 간단한 Swagger 는 좋은 프레임워크이다. 그러나 협업을 위함이아닌 서버의 요청이 잘되는지, 단순 .. ApiResponse 를 사용하자 참고 블로그 1 ResponseBody 로 응답을 하는 RestController 의 경우 ResponseEntity body 에 data 가 객체로 담기면 Json 으로 변환해 내려주게된다. 그러나 String 이 담긴다면 plain/test 형태로 내려주기에 응답의 형태가 달라지게 된다. -> 즉, HttpResponse 응답을 내려줄때 정상응답/에러 등등 에서 데이터의 형식을 json 으로 통일시켜줄 필요가 있다. 이를 위해 공통 응답 클래스인 ApiResponse 를 만들어 사용하게 된다. ApiResponse 클래스는 status, data, message 세가지 필드를 갖는다. status : 정상(success), 예외(error), 오류(fail) 중 한 값을 갖는다. data : 정상(s.. Jpa - QueryDsl 준비하기 Jpa 와 QueryDsl 은 추가할 의존성도 많고 QueryDsl 같은경우 빌드뒤 생성된 Q파일을 사용하기에 따로 빼서 관리하는 것이 좋다. Jpa 와 QueryDsl 관련 gradle 설정을 따로 외부로 빼고, 사용할 domain 모듈에서 파일을 불러와 사용해 보도록 하겠다. Root 모듈에 jpa.gradle 파일을 만들자 apply plugin: "com.ewerk.gradle.plugins.querydsl" apply plugin: "idea" def querydslVersion = '5.0.0' def queryDslDir = "src/main/generated" // Q파일 생성위치 querydsl { library = "com.querydsl:querydsl-apt:${querydslVer.. 이전 1 2 다음 목록 더보기