String 자료형에 + 연산이 있을 때마다 새로운 String 객체가 생성된다(문자열 간 + 연산이 있는 경우 자바는 자동으로 새로운 String 객체를 만들어 낸다. 따라서 메모리에 효율적인 사용을 위해서 StringBuffer를 사용하기도 한다. 1. StringBufferStringBuffer sb = new StringBuffer(); // StringBuffer 객체 sb 생성sb.append("this");sb.append("is");sb.append("String");String result = sb.toString();System.out.println(result); 2. String String result = "";result += "This";result += "is";result..
프로젝트를 진행하다보면 일정시간마다 작동해야하는 서비스가 존재할 수 있다. 처음에는 어떻게 구현해야할지 몰라서 스레드를 통해서 구현할까 생각도 했었는데 스레드를 사용하게되면 스레드에서 원하는 시간조건을 sleep 통해 걸어줘야하고 조건을 걸기가 좀 귀찮은 측면이 존재한다. 하지만 스프링에서 지원하는 scheduler를 사용하면 간편하게 구현할 수 있다. 시간조건 또한 Cron 표현식을 통해서 어렵지 않게 작성할 수 있다. 이를 사용하기위해선 servlet.xml 설정을 해야하는데 이는 생략한다. 클래스파일을 등록하는 것은 간단하다. 클래스에 @Component 어노테이션을 달아주고 메소드 앞에 스케쥴 어노테이션을 작성해주면된다. @Component public class Scheduler { /** * ..
자바에서는 날짜와 관련된 수 많은 라이브러리들이 존재하는데 1.8버전 이상에서는 LocalDate라는 매우 쓰기 편한 라이브러리가 있었다. 관련된 포스팅을 퍼왔다. 1. 날짜와 시간 객체 생성하기 1.1. LocalDate 로컬 날짜 클래스로 날짜 정보만 필요할 때 사용하면 된다. LocalDate currentDate = LocalDate.now(); // 컴퓨터의 현재 날짜 정보를 저장한 LocalDate 객체를 리턴한다. 결과 : 2016-04-01 LocalDate targetDate = LocalDate.of(int year, int month, int dayOfMonth); // 파라미터로 주어진 날짜 정보를 저장한 LocalDate 객체를 리턴한다. 결과 : 1986-11-22 리턴 타입메소..
들어가며 모든 클래스의 가장 최상위 클래스인 Object 클래스가 있다. 이때 Object 클래스가 가진 메소드 중 toString이라는 메소드가 있는데 이 toString이라는 메소드는 객체가 가지고 있는 정보나 값들을 문자열로 만들어 리턴하는 메소드이다. 그렇다면 우리가 너무나도 당연하게 작성하는 아래와 같은 DTO 클래스에서 toString 메소드는 왜 만들어줄까? package com.example.put.dto; import com.fasterxml.jackson.annotation.JsonProperty; import java.util.ArrayList; public class PutRequestDto { private String name; private int age; @JsonProper..
VO(Value Object) - 데이터 그 자체로 의미 있는 것을 담고 있는 객체이다. DTO(Data Transfer Object) - 전송되는 데이터의 컨테이너 DTO도 VO와 동일하게 데이터를 저장하여 사용한다. 다만 VO와 비교해서 다른 것은 DTO는 같은 시스템에서 사용되는 것이 아닌 다른 시스템으로 전달하는 작업을 처리하는 객체일 때 DTO라고 한다. VO/DTO에 대한 논쟁도 많고 반드시 사용 용도를 구분하는 건 무의미하다고 하니 개발팀내에서 용도를 정해서 사용하면 된다고 한다. 예를 들어 외부시스템과 데이터 통신을 할 경우에는 DTO로, DB에서 가져오는 Data는 VO로 정의해서 사용한다고 약속을 하는 식으로 말이다.