본문 바로가기
반응형

분류 전체보기337

[Jackson] JsonNode, ObjectNode, ArrayNode 차이 🐱‍🐉 개요 이번에 개발하면서 JsonNode, ObjectNode, ArrayNode을 정말 많이 썼는데 정리용으로 글을 작성한다. 먼저 Json에 대해 잘 모르면 아래 글부터 읽어보길 바란다. https://yeonyeon.tistory.com/48?category=925909 [Json] Json의 개념과 형식 개요 JsonNode와 ObjectNode의 차이점을 찾다가 아예 json에 대해 정리하게 되었다. 목차는 다음과 같다. Json의 개념 Java에서 Json 사용하기 - Jackson JsonObject와 JsonArray JsonNode와 ObjectNode Json 관련.. yeonyeon.tistory.com 🐱‍👤 JsonNode, ObjectNode, ArrayNode JsonNo.. 2021. 8. 24.
[Spring] HTTP 응답 📖 개요 서버에서 응답 데이터를 만드는 방법은 크게 3가지다. 정적 리소스 (ex: 정적 html, css, js, ...) 뷰 템플릿 (ex: 동적 html) HTTP 메시지 📕 1. 정적 리소스 정적 리소스는 해당 파일을 변경 없이 그대로 서비스하는 것이다. src/main/resources는 리소스를 보관하는 곳이고, 클래스패스의 시작 경로다. 스프링 부트는 클래스 패스의 다음 디렉토리에 있는 정적 리소스를 제공한다. /static, /public, /resources, /META-INF/resources 📒 2. 뷰 템플릿 뷰 템플릿을 거쳐 html이 생성되고, 뷰가 응답을 만들어 전달한다. 일반적으로 html을 동적으로 생성하는 용도로 사용된다. 스프링 부트의 기본 뷰 템플릿 경로는 아래와 같다.. 2021. 8. 11.
[Spring] http 요청 데이터 조회 📖 개요 클라이언트에서 서버로 요청 데이터를 전달하는 경우는 크게 3가지가 있다. GET - 쿼리 파라미터 (ex: ~~/url?username=yeonLog) POST - html form 태그 HTTP 메시지 바디에 데이터 직접 담기 (ex: json, xml, text, ...) 위 3가지 방법을 통해 요청 데이터를 실제로 조회해보자. 📕 1. GET - 쿼리 파라미터 url 뒤에 파라미터를 직접 넣어주는 방식 RequestParamController.java @Slf4j @Controller public class RequestParamController { @RequestMapping("/request-param-v1") public void requestParamV1(HttpServletReq.. 2021. 8. 9.
[Oracle] ORA-01476: 제수가 0 입니다. 📌 ORA-01476: 제수가 0 입니다. 에러 ❓ 제수란? 나눗셈에서 어떤 수를 나누는 수 ex: '12 나누기 6은 2' 에서 제수는 6 💡 원인 발견 수학에서 어떤 수를 0으로 나누는 것은 불가능하다. SELECT SUM(컬럼1) / COUNT(컬럼2) 식으로 되어있다고 가정할때, COUNT(컬럼2) 값이 0일 경우 위와 같은 에러가 발생한다. 🎉 해결 방법 NVL(), NULLIF(), DECODE()와 같은 함수를 사용해 0일 경우를 다르게 처리하면 된다. 몇 가지 예시를 살펴보자. a는 10, b는 0일 경우에 a/b 결과를 구하는 SQL문이다. 10을 0으로 나누게 되므로 제수가 0이라는 에러가 발생할 것이다. SELECT a/b FROM (SELECT 10 AS a, 2 AS b FROM .. 2021. 8. 9.
[Mybatis] ResultMap 이용하기 📔 개요 현재 진행중인 프로젝트에서는 mssql, Oracle 등 다양한 종류의 database를 사용하고 있다. mssql에서 데이터 타입이 'ntext'인 컬럼을 조회하는 SQL문을 실행했는데 HashMap에 매핑되지 않는 현상이 발생했다. 원인 파악에 도움을 받았는데 Mybatis 설정 중에 varchar로 받아내게 하는 부분이 존재했고, ntext형식의 데이터를 varchar 형식으로 매핑하려니 문제가 생긴 것이다. 이를 어떻게 해결할까 고민하다가 resultMap을 이용하기로 했다. 📚 ResultMap이란? 복잡한 결과 매핑을 간편하게 만들어주기 위해 만들어진 태그다. 📕 예제 1 일반적인 Mybatis의 매핑 구문은 다음과 같다. select id, username, hashedPasswor.. 2021. 8. 2.
[Oracle] 인덱스에서 누락된 IN 또는 OUT 매개변수:: 📌 인덱스에서 누락된 IN 또는 OUT 매개변수:: 5 에러 ❓ 원인 필요한 매개변수가 존재하지 않기 때문 에러명 :: 숫자 2021. 8. 2.
[Log4j] no service named is available 에러 📌 org.apache.axis.ConfigurationException: No service named 서비스명 is available 에러 일단 해결 방법은 log4j의 properties를 INFO로 바꿔주면 해결된다. log4j.logger.org.apache.axis.ConfigurationException=INFO 위 설정을 통해 더이상 로그가 뜨지 않을테지만... 그래서 저게 뜬 이유가 뭔데? 싶어서 좀 더 찾아보았다. ❗ 해당 로그가 발생하는 과정 '서비스명'을 찾으려고 할 때, ConfigurationException이 잡힌다. (DEBUG 레벨이라면) ConfigurationException 클래스에서 1을 기록한다. 사용할 수 있는 다른 서비스를 찾기 위해 또다른 시도 ❓ 예상 원인 .. 2021. 7. 21.
[Windows] hosts 파일 수정하기 🤨 어쩌다 hosts 파일을 수정하게 되었나? 로컬에서 프로젝트를 실행하려는데 다음과 같은 에러가 떴다. Caused by: java.net.UnknownHostException: ~~~ 원인을 찾아보니 DNS 주소가 잘못되었거나 해당 주소로 접근할 수 없거나... 오류명 그대로 'unknown host', 알 수 없는 호스트이기 때문에 생긴 오류였다. 하지만 해당 주소는 다른 분들 로컬에서는 잘 돌아가고 있기 때문에 내 로컬에 문제가 있다고 판단했다. 매니저님께 문의를 드린 결과.. hosts 파일을 수정해야 한다고 하셨다. 💡 hosts 파일을 수정하는 이유 인터넷 창에 URL을 호스트 형태로 입력하면 DNS를 거쳐 IP주소로 접근하게 된다. ex: www.yeonyeon.tistory.com 입력 .. 2021. 7. 19.
[Spring] 헤더 조회 어노테이션 기반의 스프링 컨트롤러는 다양한 파라미터를 받아올 수 있다. 어떠한 파라미터를 받아올 수 있는지 몇 가지 예제를 통해 살펴보겠다. 📚 HTTP 헤더 조회 @Slf4j @RestController public class RequestHeaderController { @RequestMapping("/headers") public String headers(HttpServletRequest req, HttpServletResponse res, HttpMethod httpMethod, Locale locale, @RequestHeader MultiValueMap headerMap, @RequestHeader("host") String host, @CookieValue(value="myCookie", .. 2021. 7. 14.
반응형