반응형

Programming/JAVA 4

자바(JAVA) 직렬화, 역직렬화

자바 직렬화와 역직렬화 - 객체의 저장과 복원 자바에서 직렬화와 역직렬화는 데이터를 객체로 변환하고 그 반대 과정을 수행하는 중요한 개념입니다. 이러한 프로세스는 객체를 파일에 저장하거나 네트워크를 통해 전송하는데 유용하며, JAVA의 Serializable 인터페이스를 사용하여 구현됩니다. 1. 직렬화 (Serialization) 직렬화는 객체를 이진 형식으로 변환하여 파일이나 네트워크를 통해 전송 가능한 형태로 만드는 과정입니다. 객체를 직렬화하려면 해당 클래스가 Serializable 인터페이스를 구현해야 합니다. import java.io.*; public class SerializationExample implements Serializable { private String name; priva..

Programming/JAVA 2023.10.31

[JPA] @CreatedBy, @LastModifiedBy 를 위한 AuditorAware 적용

spring-data-commons 에는 @CreatedBy, @LastModifiedBy 라는 어노테이션이 있습니다. 물론, @CreatedDate, @LastModifiedDate가 자매품(?)으로 있긴하지만, 생성시간과 업데이트시간은 해당 어노테이션을 지정하는 것만으로도 끝나지만, 생성자, 수정자는 별도의 셋팅 과정이 필요합니다. 이 과정에서 Spring Security 셋팅이 필수로 필요합니다. Spring Security 셋팅 없이도 할 수 있겠지만 요즘 백엔드와 프론트엔드도 분리되고 JWT 토큰으로 인증을 하기에 더더욱 필요한 것 같습니다. 아래는 JPA, Spring Secutiry 환경에서 작성된 코드입니다. MemberEntity.java @Getter @ToString @Builder ..

Programming/JAVA 2022.03.30

LocalDate, LocalTime, LocalDateTime

Java Date 관련 흐름순 [java.util.Date](http://java.util.Date) → java.util.Calendar → java.time(org.joda.time) Calender, Date 를 피하는 이유 불변 객체가 아니다 set으로 변경이 가능하다는 점은 누군가 악의적으로 변경할 수 있기 때문에 get/set method에서 직접 Date 클래스를 사용하는 것이 위험하다 Calendar 객체나 Date 객체가 여러 객체에서 공유되면 한 곳에서 바꾼 값이 다른 곳에 영향을 미치는 부작용이 생길 수 있다. C#, Python 같은 언어에서는 날짜 클래스가 한 번 생성된 이후에는 내부 속성을 변경할 수 없다. 상수필드 남용 calendar.add(Calendar.SECOND, 2)..

Programming/JAVA 2020.06.04

[JAVA] XPath 사용 중 The method getTextContent() is undefined for the type Node 에러를 만났을 때 해결하는 방법

공공데이터포털(www.data.go.kr)에서 Open API 를 활용해야하는 일이 있어서 연동 중에 있었습니다. 1번 프로젝트 소스에서 JUnit를 통해 테스트를 완료하고 해당 메소드를 2번 프로젝트에 복사했는데 컴파일 에러가 발생하는것이었습니다! for( int i = 0; i < nodeList.getLength(); i++ ) { NodeList childNodeList = nodeList.item(i).getChildNodes(); for( int j = 0; j < childNodeList.getLength(); j++ ) { Node node = childNodeList.item(j); resultMap.put( node.getNodeName(), node.getTextContent() );..

Programming/JAVA 2018.12.01
반응형