JSON 데이터를 라이브러리 없이 파싱해보자 우선 json이란 무엇일까요? 파싱해보는게 주제이므로 json에 대해서는 아래글을 참조해주세요. https://notavoid.tistory.com/29 restfull 통신할때 많이 사용하는 MIME(Content-type)타입인 application/json 타입 데이터를 파싱 해볼겁니다. 파싱할때 로직이 복잡해서, 보통 jackson 라이브러리나 gson 라이브러리를 많이 씁니다. 얼마나 복잡하냐? - 중첩된 객체, 배열, 특수 문자 처리, 타입 변환 등 복잡한 JSON 구조나 데이터 타입을 처리를 내부적으로 처리해줘야합니다. 하지만 저는 중첩된 객체, 배열 정도만 처리하는걸로해서 예제를 작성해 볼 예정입니다. 물론 jackson 라이브러리를 써서 처리하..
자바
Form 데이터를 파싱해보자 웹 개발에서 사용자 입력을 처리하는 것은 필수적인 작업입니다. 1. application/x-www-form-urlencoded 타입 2. application/json 타입 두 MIME 타입은 HTML 폼 데이터를 서버로 전송하는 데 자주 사용되는 인코딩 방식입니다. 그 중에 application/x-www-form-urlencoded 타입을 알아 볼 겁니다. application/x-www-form-urlencoded의 MIME 타입은 폼 데이터를 키-값 쌍으로 인코딩하며, 각 쌍은 &으로 구분되고 키와 값은 =으로되고 띄어쓰기는 +로 됩니다. 예를 들어, 사용자가 웹 폼에 이름, 나이, 도시를 입력하는 경우를 보겠습니다. 이름 : sumin Kim 나이 : 30 도시 :..
자바 리플렉션의 기본 원리와 사용 예 1. 리플렉션이란? 리플렉션(Reflection)은 Java에서 런타임에 클래스의 메타데이터를 조회하거나 수정할 수 있는 강력한 기능입니다. 이를 통해 개발자는 실행 중인 Java 애플리케이션 내부의 클래스, 메서드, 변수 등에 대한 정보를 동적으로 액세스하고 조작할 수 있다. 2. Person 클래스를 통한 리플렉션 사용 예 Person 클래스는 구성은 아래와 같습니다. 속성 : name, age 메서드 : sayHello 생성자 : 전부 public class Person { private String name; private int age; public Person(String name) { this.name = name; } public Person(int a..
오늘은 자바의 강력한 기능 중 하나인 '레코드(Records)'에 대해 기록을 해보려고 합니다. 자바 16부터 정식으로 도입된 레코드는 데이터 전송 객체(DTO)의 생성을 더욱 간결하고 명확하게 만들어 줍니다. 저는 보통 lombok을 사용해서 어노테이션을 덕지덕지 붙여놨었는데 DTO를 Record로 생성하면 간단하게 해결되더라구요. 정리를 해보자면 자바 레코드란? 자바 레코드는 데이터를 운반하는 데에 최적화된 불변의 데이터 클래스입니다. 기존의 클래스보다 훨씬 간결한 코드로 필드와 데이터를 정의할 수 있어, 개발자의 편의성을 크게 향상시킵니다. 예제 한번봅시다. public record Person(String name, int age) {} 끝. 단 몇 줄의 코드로 Person 클래스를 완성할 수 있..