본문 바로가기

전체 글

(116)
DTO에 무엇을 담아야 적절할까? 자바 - 스프링 프레임워크 혹은 스프링 부트를 기반으로 사용했다면 DTO, VO, Entity 등 필요한 값만 정의한 객체를 흔히 봤을 것이다. 만드는 것은 정말 단순하지만, 응용하기에 따라서 DTO, Entity 등 영속성과 변동성 문제 때문에 역할을 나누는 등 DTO 하나를 가지고 여러 방법으로 정의할 수 있다. 내가 실질적으로 여러 번 만드면서 고민한 것은, 과연 DTO에는 어떤 값이 들어가야 적절한가? 이것이다. 1. DTO 기존에는 로직처리에 들어가는 모든 값을 담으면 객체 하나로 필요한 변수를 모두 파악할 수 있으니 편하리라 생각했다. 하지만 기존에 딱 전달할 데이터만 담아서 만든 프로그램의 경우는 위와 같은 방법으로 하면 왜 필요도 없는 정보를 DTO에 담는지 의문이 든다는 말을 들었다. 확..
Spring framework는 기본적으로 String 타입을 사용한다 Spring 기반 Java 앱에서는 반환받는 타입의 값이 무엇인지 딱히 고민한 적이 없었다. 일반적으로 String 타입이겠거니 하면 다 맞았다. 사칙연산을 사용하거나 수학적인 계산이 필요하다면 그 때만 Integer, int 타입을 사용했다. 그런데 왜 String이 기본 타입일까? 스프링은 기본적으로 프로퍼티 값을 BeanFactory 구성 파일에서 가져온다. 구성 파일 내부에서는 일반적으로 쌍따옴표로 값을 표현한다. 반환하는 값도 기본적으로 String 타입이다. 따라서 String이 Spring 기반 Java 앱의 기본 타입으로 사용되는 것이다! ========= 전문가를 위한 스프링 5를 읽다가 알게 된 사실이다. 역시 책을 읽으면 당연하게 여겼던 것도 왜 그렇게 작동되는지 알게 되니 돈이 아깝..
JS에서 함수를 사용하기까지 한 생각 JS로 코딩하면서 이것저것 다양한 방식을 도입해봤다. 처음에는 단순하게 필요할 때 변수 선언하고 로직이 필요하면 그때그때 한줄한줄 넣는 방식으로 해봤다. 물론 잘 돌아갔으나 다음에 비슷한 로직이어서 복붙하기 위해서 참고하려고 하니 지옥과도 같았다. 1. 로직과 변수의 결합 로직 사이사이에 변수를 선언하고 거기서만 사용하니 재사용하기 너무 까다로웠다. 변수 이름도 너무 구체적으로 적은 것이 단점이었다. 비슷한 로직이지만 담는 내용이 바뀌니 매번 적절하게 바꾸는 것도 상당히 고된 일이었다. 단점을 알았으니 다음 작업을 진행할 때는 변수를 최대한 전역객체에 선언했다. 이름도 보다 추상적인 이름으로 선택했다. 확실히 이렇게 하니 전보다는 코드를 재사용하기 쉬웠다. 그렇게 진행하다보니 또다시 문제를 발견했다. 쓸..