본문 바로가기

전체 글

(267)
Missing URI template variable for method parameter of type string d @PathVariable 에러 Missing URI template variable for method parameter of type string ------------------------------------------------------------------------------------------------------------------------------ @GetMapping("/admin/users/{AAA}") public UserDetailResponseDTO getUserInfo(@PathVariable Long BBB) { } ------------------------------------------------------------------------------------------------------..
Springboot 페이징처리 Parameter 에러 보통 @Controller 내부의 @GetMapping 에서 다음과 같이 pageable을 매개변수로 넣어놓으면 요청 url 에 들어있는 "page=1" 라는 형식의 간단한 parameter를 자동으로 pageable 변수로 바꾸어 주었다. 하지만, 아래와같이 page=1이외에도 다른 parameter 를 넣다보니 localhost:8080/api/condition?page=0&system=네이버 page를 인식을 하지 못했다. 삽질결과 그냥 page 라는 int 를 매개변수로 받고 ( @PathVariable int page ,@PathVariable String system ) 그 값으로 Pageable 변수를 만들어 주기로햿다. 방법은 다음과 같다. Pageable pageable = PageReq..
vue.js 입문자가 실무에서 주의해야할 5가지 특징 1. 반응성 왜 내 화면은 다시 그려지지 않을까? -데이터의 변화에 따라 화면이 다시 그려지는 뷰의 성질 data 안에 있는 값이 변화되었을때 화면이 변경된다. #반응성은 언제 설정될까? 인스턴스가 생성될때 > data 속성들을 초기화 만약 인스턴스가 생성된 후에 data 내부에 속성을 새롭게 생성한다면 그 값을 '변경해도 화면이 새로 그려지지 않는다'. 그러면 어떻게 해야할까? 쉽게하려면 create 단계에서 속성을 미리 생성해놓는다. 또는 공식적으로 제공하는 reactivity 를 셋팅하는 방법을 사용하면 된다. |+| this.$set ( this.someData[0], '속성값' ,false ) ( reactivity 동적셋팅) # VUEX 의 state 도 data와 동일하므로 조심하자. 2. ..
pub sub 구조 ( 웹소켓 채팅 ) ============================================================ pub sub 구조는 일종의 Messaging 패턴이다. Message Queue 패러다임의 Sibiling 정도이다. ============================================================ 간단히 설명하자면, # 보내는 사람이 받는사람을 직접적으로 설정하지 않고 메세지를 발행한다. '발행(publish)' 은 불특정 다수에게 메세지를 뿌린다고 보면 된다. # 이때, 받는사람은 발매인의 정보를 알지 못하고, 자신의 Interest 에 충족하는 메세지만을 가져와 읽을 수(구독) 있다. ===========================================..
Vue.js / Springboot / 웹소켓 (Stomp) [velog.io/@skyepodium/vue-spring-boot-stomp-%EC%9B%B9%EC%86%8C%EC%BC%93 참고하여 간단하게 정리만 했습니다.] Vue.js 가 localhost:8080/receive 로 보내고 Springboot 가 localhost:8080/send 받아서 다른 Vue.js 로 보내준다. [서버] 0. 의존성 # web - 스프링 부트의 MVC 패턴을 사용 # websocket - stomp 가 들어있어서 웹소켓을 사용할 수 있다. # lombok - 게터,세터, 생성자 1. 구조 메시지 정보를 담는 vo ( 유저 정보 , 내용 ) controller ( 메세지를 받는 컨트롤러 ) config ( 웹소켓 endpoint 설정 , cross origin 해재 ) ..
mapstruct 사용해서 Entity to Dto , Dto to Resource 변환 coding-start.tistory.com/349
Business Exception 처리 요구사항에 맞지 않을 경우 발생하는 Exception을 어떻게 발생시킬까 고민해보자. 예를들어 쿠폰을 사용하고 싶은데, 이미 사용한 쿠폰인 경우에는 더이상 로직을 이어가면 안된다. 그러므로 , 적절한 Exception 을 발생시키고, 로직을 종료시켜야 한다. 즉, 개발자가 로직의 흐름상 필요에 의해서 직접 발생시키는 Exception 들을 말한다,. 로직 도중 stop 해야할 곳에서는 반드시 .Exception을 이용해서 끊어주어야 한다. 그렇지 않으면, 다음 로직에서 책임이 더 커지고, 코드가 무거워지게 된다. 먼저 Exception을 적절히 이용하지 않고, 에러 메세지 출력으로 로직을 짠 코드르 보이겠다. 가독성이 좋지 못해서 핵심 비즈니스를 파악하기 어렵다. if else처리 코딩도 어려울 것이다...
Exception Guide 예외처리 방법 [Spring] 스프링은 예외처리를 위해서 다양한 어노테이션을 제공하고 있습니다. 일관성 있는 코드 스타일을 유지하면서 Exception 을 처리하는 방법이 있다. ErrorResponse 를 이용해서 처리해보자. Error Response 객체 class 형식 - errorResponse.getXXX 형식으로 쉽게 가져올 수 있다. - Exception에 대해서 ErrorResponse 객체를 어떻게 만들 것인가에 대한 책임을 명확하게 갖는 구조로 설계할 수 있습니다 @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class ErrorResponse { private String message; private int status; private Li..