전체 글 310

에러] cannot deserialize from Object value (no delegate- or property-based Creator) 해결방법

로그 2023-06-29 22:56:16.148 INFO 42779 --- [ main] o.s.b.t.m.w.SpringBootMockServletContext : Initializing Spring TestDispatcherServlet '' 2023-06-29 22:56:16.148 INFO 42779 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Initializing Servlet '' 2023-06-29 22:56:16.150 INFO 42779 --- [ main] o.s.t.web.servlet.TestDispatcherServlet : Completed initialization in 1 ms org.springframework.web.u..

IntelliJ] 디버깅 모드가 안될 때

인텔리제이에서 디버깅모드를 하게 되면 해당 값이 정상적으로 나오는지 확인을 해야합니다. 근데 어느날 디버깅모드를 실행하는데 정상적인 값은 안나오고 계속 내부클래스만 보여지고 있었습니다. 뭔가 이상해서 계속 찾아보다 해결법을 알아서 게시해봅니다 증상 디버그 브레이크포인트를 걸어놨는데 디버깅 모드 시 내부 클래스가 보여진다. (해당 메서드에 값은 안보이고 이게 뭔...) 해결 맥북 기준 Shift + CMD + F8 를 누른다 (윈도우일 경우 설정 > Keymap > Find Shortcut or Search를 하면 단축키 확인이 가능하다) Shift + CMD + F8을 누르면 아래와 같은 BreakPoints 팝업창이 뜬다. 여기서 Java Exception Breakpoints, Any exceptio..

지름이야기] TP-Link TAPO C320WS 시놀로지 NAS랑 연동하기

TAPO C320WS CCTV가 시놀로지와 연결 가이드가 없어서 작성해봅니다. C320WS를 연결하시고 스마트폰 어플리케이션 Tapo와 연동했다는 가정하에 진행하겠습니다. 참고로 연결방식은 ONVIF 입니다. 가이드 목록 1. 공유기에서 포트포워딩 허용하기 2. Tapo 앱에서 설정하기 3. 시놀로지 NAS DSM SurveillanceStation에서 설정하기 1. Tapo 앱 설정 1) 로그인 후 카메라 설정 > 고급설정 > 장치계정에서 로그인 (로그인 및 비밀번호 기억해주세요) * 카메라 설정은 즐겨찾기에 있는 곳에서 누르시고 오른쪽 상단 톱니바퀴를 누르시면 됩니다. * 스샷 참고 2) 카메라 설정에서 카메라 모델명 부분을 터치해서 들어갑니다 (IP주소를 기억합니다) * 스샷 참고 2. 공유기 설정..

지름s 이야기 2023.06.23

지름이야기] 제우스랩 Z16p pro max 터치스크린 설정 방법

보조 모니터인 제우스랩 Z16p Pro Max는 터치스크린이 가능합니다 윈도우 기준으로 작성하니 한번 따라해보세요 윈도키 + S > 제어판 검색 > 태블릿 PC 설정 설정 클릭! 이런식으로 화면이 나오게 되면 엔터키를 누릅니다. 누르게 되면 제우스랩 보조모니터에 동일한 메시지의 화면이 나옵니다. 이때 제우스랩 보조모니터를 손가락으로 터치하면 됩니다. 이제 웹 사이트를 열고 스크롤이 긴 화면을 띄워서 테스트해봅니다!

지름s 이야기 2023.06.02

기본 생성자 없이 직렬화하기 feat. java Object to JSON

현재 개인 프로젝트를 진행하기 위해서 인강을 보면서 약간 의문점이 남아서 해당 부분을 기록합니다. 테스트케이스를 작성할 때 Object형태를 JSON형식으로 RequestBody에 요청하는 케이스가 생겼습니다. 아래는 위의 설명을 코드화한 것입니다. @Test @DisplayName("/posts 요청") void test() throws Exception { PostCreate request = PostCreate.builder() // 빌더패턴을 이용했습니다. .title("제목입니다.") .content("내용입니다.") .build(); ObjectMapper objectMapper = new ObjectMapper(); // 오브젝트메퍼를 이용해 직렬화합니다. String json = objec..

Servlet] Intellij console log가 안나올 때 해결법 feat.SpringBoot

요즘 다시 백엔드 공부를 하고 있습니다... 정말 많이 돌아왔네요... 자 아무튼 김영한님의 스프링 강의를 보면서 하다가 System.out.print를 했는데 안나오시는 경우가 생겼습니다. 원인 ServletApplication의 @ServletComponentScan 어노테이션이 없어서 그렇습니다. @SpringBootApplication public class ServletApplication { public static void main(String[] args) { SpringApplication.run(ServletApplication.class, args); } } 해결 SpringBoot를 이용하는데 Boot에서 Servlet을 이용하려면 @@ServletComponentScan 어노테이션..

자바] 함수형 인터페이스 및 람다 표현식

자바를 오랜만에 하니깐 개짜증납니다. 맥으로 인텔리제이를 하니깐 더 짜증납니다. 단축키의 노예인데 윈도우로만 작업했다가 간만에 맥으로 하려니 너무 짜증납니다람쥐 항상 자바스크립트를 이용하면서 함수형 프로그래밍에 익숙해지고 있는 와중에 다시 자바를 하려니깐 기억이 잘 안나서 기초적인 부분을 다시 학습하고 있습니다. 그 중에 하나인 람다 표현식을 간단하게 알아보려고 합니다. 아래는 뻔하디 뻔한 인터페이스와 추상 메서드입니다. 이녀석을 이용한 익명 클래스를 한번 만들어볼까 합니다. public interface FunctionalTest { void dodo(); } 보통 아래와 같은 형태를 사용하고는 합니다. 하지만 자바8의 기능인 람다를 사용해서 간결하게 표현해보도록 하겠습니다. import java.ut..

시놀로지] 포트포워딩 후 접속 안되는 문제 해결 방법

개요 나스에서 어떤 작업을 하면서 포트를 설정하고, 이때 ASUS 공유기 내 포트포워딩 페이지에서 포트를 맞췄는데 접속이 되지 않는 문제를 해결하는 방법을 설명하겠습니다. 상황 예시 현재 doker를 이용해 컨테이너를 올린 이미지입니다. 해당 포트를 보면 로컬포트가 8989라고 되어 있습니다. (컨테이너 포트는 지금 포스팅에서 이용되지 않으니 패스!) ASUS 공유기 포트포워딩 페이지에 아래 스샷처럼 포트포워딩을 했습니다. 맨 아래를 보시면 docker_ds_nginx라고 되어 있는 부분이 위 도커 컨테이너에 설정된 로컬포트와 동일함을 볼 수 있습니다. 자, 이제 나스의 해당 IP:포트로 접속을 해서 정상적으로 페이지가 뜨는지 확인해보겠습니다. ex) 192.168.1.1:8989 이런식으로 접속! 접속..

네트워크 기초] Contents-Type Header 그리고 Accept Header

Contents-Type 컨텐츠 타입은 말 그대로 해당 컨텐츠가 무엇인지 알려주는 것을 의미하는데 정의하자면 자원의 형식을 알려주기 위해 Header에 실리는 정보를 말한다. 조금 더 쉽게 말하면 해당 리소스의 미디어 유형을 나타내는데 사용된다. Accept Header 요청한 유형을 헤더에 표기하는 것을 의미한다. 즉, 클라이언트가 나는 꼭 JSON으로 보내줘 혹은 XML로 보내줘라고 서버에 (요청)알리는데 사용되는 것이다. contents-type은 현재 전송하는 데이터가 어떤 타입인지에 대해서 설명하는 개념이고 accept header는 클라이언트가 서버한테 특정한 데이터 타입을 보낼 때 이 요청을 받은 서버는 클라이언트의 요청한 데이터타입으로만 응답을 해야하는 하나의 약속 같은 개념이다.