목록스프링 (5)
멍두의 개발새발
📍 서론 개발을 하다가 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception 이라는 에러가 발생했다.responseDTO에 @Getter를 넣어주지않아 발생한 오류였다. 그렇다면 왜 필요한 것일까? 📍 본문일단 기본적으로 우리가 dto를 사용하여 response를 보내고, request를 받아오면 Jackson 라이브러리에서 자동으로 ObjectMapper를 사용해 직렬화(object -> json 파싱)와 역직렬화(json -> object 파싱)를 해준다는 것을 알고있자. 또한 objectmapper는 직렬화, 역직렬화에 reflection을 사용하는데reflection이란 런타임에 클래스,..

📍 기존 코드와 문제점 1. 문제 상황 사용자가 학습하는 전체 리스트를 업데이트 해줘야하는데 이 때 대략 통신이 5초이상 걸린다는 것을 알게됐다. 2. 현재 코드 흐름 public String updateCardWeakSound(Long userId){ //card weaksound 테이블 해당 userId 행 전부 삭제 cardWeakSoundRepository.deleteByUserId(userId); List cardList = getCardListWithoutSentence(); List phonemeList = getPhonemeList(userId); cardList.forEach(card -> { Lis..

💥 문제문제 1 : ios 앱 개발을 하면서 프론트 측에서 Http response Body의 한글 값이 깨졌다. 해결 1 : 그래서 항상 헤더에 utf-8 인코딩을 넣어서 보내줬다.public ResponseEntity postCardInfo(@PathVariable("cardId") Long cardId) { CardInfoResponseDto cardInfoResponseDto = cardInfoService.getCardInfo(1L, cardId); //utf-8인코딩 HttpHeaders headers = new HttpHeaders(); MediaType mediaType = new MediaType("application", "js..
@RestControllerAdvice@ResponseBody와 @ControllerAdvice를 결합한 Annotaiton으로 전역으로 에러를 처리하고 자동으로 http body에 예외 정보를 넣어준다. @Slf4j@RestControllerAdvicepublic class MainExceptionResolverController { @ExceptionHandler(IllegalArgumentException.class) public ResponseEntity illegalArgumentExceptionHandler(IllegalArgumentException ex){ ExceptionDto exceptionDto = new ExceptionDto("IllegalArgumentE..

스프링을 공부하다보면 정말 많이 나오는 단어가 WAS이다. 🙄 음 뭔가 서블릿이 저기서 뭐가 되는것같은데.. 뭔가 동적인것같고 음..그래서 WAS가 뭐지?WAS Web Application ServerWAS를 알기전에 알아 둬야 할 단어들에 대해 먼저 설명하겠다. 1. Client주로 웹 브라우저 (크롬, 사파리, 엣지 등등)웹 서버로부터 웹 페이지(HTML, 파일 등)를 가져오기 위해 대부분 HTTP로 통신2. Web ServerClient(웹브라우저)로부터 HTTP요청을 받아 정적 컨텐츠를 제공해주는 컴퓨터 프로그램 (apache, IIS, nginx 등)정적 컨텐츠를 제공해주므로 빠르다3. Web Container서블릿 컨테이너 라고도 불리며 자바 서블릿과 상호작용하여 서블릿, JSP 등에 대한 ..