springboot
-
Java JSON 처리 실전 시리즈 10화 – JSON ↔ YAML, XML 포맷 변환: Jackson 기반 다중 포맷 처리 전략기술과 산업/언어 및 프레임워크 2025. 5. 19. 11:02
Jackson은 JSON뿐 아니라 YAML, XML 등 다양한 포맷을 처리할 수 있는 모듈을 제공합니다. Spring Boot 환경에서 포맷 변환을 구현하는 방법과 실무 활용 전략을 예제로 설명합니다.1. 왜 JSON 외의 포맷이 필요한가?REST API 시대에도 여전히 다음과 같은 이유로 다양한 포맷 변환 수요가 존재합니다:YAML: 설정 파일, DevOps 구성, Kubernetes manifest 등에서 주로 사용XML: 금융, 보험, 공공기관 등 레거시 시스템과의 연동에서 사용CSV: 데이터 이관, 리포트, 분석용 다운로드 등에서 필요JSON ↔ YAML ↔ XML 간 변환이 필요한 상황이 실제 현장에서 반복적으로 발생Jackson은 이 모든 포맷을 하나의 ObjectMapper 구조를 확장해서 ..
-
Java JSON 처리 실전 시리즈 9화 – 따옴표 없는 JSON 처리하기: 비표준 포맷 대응 전략과 보안 고려사항기술과 산업/언어 및 프레임워크 2025. 5. 19. 11:01
Jackson에서 따옴표 없는 필드, 단일 따옴표 등 비표준 JSON 형식을 처리하는 방법을 다룹니다. JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES 활용법과 실무 적용 시 주의사항을 정리합니다.1. 왜 따옴표 없는 JSON이 문제가 되는가?표준 JSON에서는 모든 키와 문자열 값에 반드시 **쌍따옴표(")**가 있어야 합니다.RFC 8259 – JSON 표준 예시:{ "name": "홍길동", "age": 30}그러나 실무에서는 다음과 같은 비표준 JSON을 종종 마주합니다:{ name: '홍길동', age: 30}키에 쌍따옴표 없음문자열 값에 단일 따옴표 사용이런 JSON은 Jackson의 기본 설정으로는 파싱되지 않고 JsonParseException이 발..
-
Java JSON 처리 실전 시리즈 8화 – 커스텀 Serializer와 Deserializer로 JSON 변환 제어하기기술과 산업/언어 및 프레임워크 2025. 5. 19. 10:57
Jackson에서 커스텀 Serializer 및 Deserializer를 구현해 특수 포맷, 민감 정보, 복합 필드에 대한 JSON 직렬화/역직렬화를 제어하는 방법을 실무 예제 중심으로 설명합니다.Spring Boot에서 기본적인 JSON 직렬화/역직렬화는 ObjectMapper가 자동으로 처리해줍니다. 그러나 아래와 같은 상황에서는 커스텀 Serializer 또는 Deserializer가 필요해집니다.특정 필드를 Base64 인코딩 또는 마스킹 처리하고 싶을 때날짜 포맷이 비표준이거나 복합적인 형태일 때중첩된 객체를 평탄화하거나 축약해서 표현하고 싶을 때클라이언트에 따라 JSON 포맷을 맞춤화하고 싶을 때이번 글에서는 Jackson에서 커스텀 직렬화/역직렬화 클래스를 구현하고 적용하는 방법을 구체적인 ..
-
Java JSON 처리 실전 시리즈 7화 – JSON 응답 필드 제어 전략: null 제외, 조건부 출력, 필터링 방법기술과 산업/언어 및 프레임워크 2025. 5. 19. 10:52
Spring Boot + Jackson 환경에서 JSON 응답 필드를 제어하는 방법을 정리합니다. @JsonInclude, @JsonView, @JsonFilter를 활용한 null 제거, 조건부 노출, 민감 정보 제외 전략을 실전 예제 중심으로 소개합니다.REST API를 설계하다 보면 다음과 같은 고민이 자주 발생합니다:값이 null인 필드는 응답에서 빼고 싶다일부 필드는 관리자만 볼 수 있어야 한다한 객체를 다양한 응답 구조로 재사용하고 싶다Jackson은 이런 문제를 해결하기 위한 어노테이션과 설정 옵션을 제공합니다. 이번 글에서는 API 응답을 더 가볍고 안전하게 만들 수 있는 필드 제어 전략을 정리합니다.1. @JsonInclude – null 또는 빈 값 제외가장 기본이 되는 필드 제어 전략..
-
Java JSON 처리 실전 시리즈 6화 – Spring MVC에서 JSON 요청과 응답 처리 흐름: Jackson과 HttpMessageConverter 작동 원리기술과 산업/언어 및 프레임워크 2025. 5. 19. 10:51
Spring MVC에서 JSON 요청을 수신하고 JSON 응답을 반환하는 내부 흐름을 @RequestBody, @ResponseBody, HttpMessageConverter, Jackson 중심으로 구조적으로 정리합니다.Spring Boot 기반 REST API 개발을 하다 보면 다음과 같은 작업이 아주 자연스럽게 이루어집니다:@PostMapping("/user")public UserResponse register(@RequestBody UserRequest request) { return userService.create(request);}이 한 줄에는 다양한 내부 처리 흐름이 숨어 있습니다. 이 글에서는 Spring MVC가 JSON 데이터를 Jackson을 통해 어떻게 처리하는지 구조적으로 ..
-
Java JSON 처리 실전 시리즈 5화 – JSON 필드명 자동 변환: CamelCase ↔ Snake_Case 대응 전략기술과 산업/언어 및 프레임워크 2025. 5. 19. 10:50
Jackson을 이용해 JSON 필드명을 자동으로 camelCase ↔ snake_case로 변환하는 방법을 소개합니다. @JsonProperty, @JsonNaming, application.yml 설정까지 실무 예제 기반으로 정리합니다.백엔드 개발자라면 이런 상황을 한 번쯤 겪어봤을 것입니다.Java 객체는 camelCase로 선언프론트엔드나 외부 API는 snake_case JSON 포맷 요구이때마다 @JsonProperty("user_name")을 필드마다 붙이자니 번거롭고, 유지보수성도 떨어집니다.이 글에서는 Jackson에서 제공하는 자동 네이밍 전략을 통해 코드는 camelCase로 유지하면서, JSON은 snake_case로 제공하는 방법을 설명합니다.1. 문제 예시public class ..
-
Java JSON 처리 실전 시리즈 4화 – JSON을 Java 객체로 역직렬화하기: 날짜, Enum, Optional 대응 전략기술과 산업/언어 및 프레임워크 2025. 5. 17. 14:23
Jackson을 활용해 JSON을 Java 객체로 역직렬화할 때 발생할 수 있는 날짜, Enum, Optional 타입 처리 문제를 실제 예제와 함께 분석하고 해결 방법을 정리합니다. 1. 역직렬화(Deserialization)란? 역직렬화란 JSON 문자열을 Java 객체로 변환하는 과정을 말합니다. Jackson에서는 ObjectMapper.readValue() 메서드로 간단하게 구현할 수 있습니다.String json = "{\"name\":\"홍길동\", \"age\":30}";User user = objectMapper.readValue(json, User.class);하지만 필드 타입이 LocalDateTime, Enum, Optional처럼 단순하지 않을 경우 오류가 발생하기 쉽습니다. 실..
-
JHipster 시리즈 6화 - JHipster 프로젝트 구조와 코드 흐름 분석하기기술과 산업/언어 및 프레임워크 2025. 5. 15. 19:35
JHipster로 생성된 Spring Boot + React 기반 프로젝트의 전체 디렉토리 구조, 주요 모듈, 코드 흐름을 실무 수준에서 상세하게 해부합니다. 실전 개발 시 반드시 알아야 할 핵심 구조 가이드. 왜 프로젝트 구조를 이해해야 하는가? JHipster는 단순 템플릿이 아닙니다.자동으로 구성되는 백엔드 + 프론트엔드 + DevOps + 보안을 포함하는 완성형 프로젝트입니다. 하지만 규모가 커지고 팀이 늘어나면 구조를 이해하고, 커스터마이징할 수 있는 역량이 핵심 경쟁력이 됩니다. 이번 글에서는 실무 관점에서 JHipster 프로젝트의 전체 구조와 코드 흐름을 상세하게 분석합니다. JHipster 전체 구조 (Monolith 기준)├── src/│ ├── main/│ │ ├── j..