JAVA
-
DTO vs VOJAVA 2025. 4. 16. 14:13
실무에서 DTO와 VO를 구분짓지 않고 비슷하게 사용하는 경우가 많다.이 둘은 명칭이 다른거처럼 사용하기위한 목적이 엄연히 다르다. 바로 요약부터 하자면 아래와 같다. 항목 VO (Value Object) DTO (Data Transfer Object) 목적값을 표현하는 객체 (불변, 의미 중심)데이터 전송을 위한 객체 (레이어 간 전달)용도도메인 모델의 구성 요소계층 간 (예: 컨트롤러 ↔ 서비스) 데이터 전달불변성원칙적으로 불변 (immutable)변경 가능 (mutable)equals/hashCode값 기준 비교 (필수 구현)주로 필요 없음위치도메인 모델 내부계층 사이 (Controller, Service, etc)이렇게 봐도 사실 크게 와닿지 않을 수 있다. 추가로 예시코드까지 봐보자.이메일에..
-
[JAVA] IO스트림 이란? / InputStream, OutputStreamJAVA 2022. 8. 20. 20:37
오늘은 JAVA에 IO스트림에 대해 알아볼까 한다. 최근 프로젝트 진행시 파일 입출력 및 타 시스템 연계에 있어 I/O스트림을 접하게 된 상황이 있는데 개념이 부족함을 느꼈다.... Stream 이란? 일반적으로 프로그램이 외부데이터를 읽거나 외부에 데이터를 출력하는 작업을 하게 되는 경우가 있다. 이때 데이터가 흐르는 통로가 있을것이며 그 통로를 Stream이라고 한다. Stream에 데이터 흐르는 방향은 단일 방향이다. 그렇기 때문에 InputStream과 OutputStream이 나눠져 있다. 또한 입출력 단위는 바이트, 문자로 나뉜다. - 바이트 : 동영상, 이미지, 오디오 등 바이너리 파일이 해당. 1byte - 문자 : 한글, 한자 등이 해당. 2byte I/O Stream 종류 입력 출력 바..
-
[JAVA] Lombok과 자주사용하는 어노테이션JAVA 2022. 7. 6. 14:31
이번에 새로운 프로젝트를 준비하며 통일된 소스 템플릿을 만들기위해 여러 어노테이션과 Lombok 개념에 대해 공부 한 내용을 정리해보려 한다. Lombok이란? 롬복이란 JAVA의 라이브러리를 통해 자주 사용하는 메소드를 Annotation을 사용해서 자동으로 완성해주는 라이브러리이다. 일반적으로 VO안에 선언되어있는 private 변수들의 getter, setter, 생성자 등을 매번 작성하지만 Lombok을 사용하여 자동완성 한다고 생각하면 된다. Lombok의 장점 반복되는 코드를 어노테이션으로 생략하기 때문에 생산성이 향상된다. 코드의 축소로 가독성 및 유지보수에 효율적이다. Lombok의 단점 코드를 축소시키기 때문에 직관성이 떨어진다. 기능을 숙지하지 않으면 예상치 못한 에러가 발생할 수 있다..