본문 바로가기

분류 전체보기59

DTO와 VO, 의문에 대한 답변 (DTO와 VO는 왜 혼용되는가, DTO는 왜 사용하는가, VO는 무엇인가) 이번 우테코 테코톡에서 인비의 DTO와 VO에 대한 발표가 있었다. 테코톡이 끝나고 루트가 DTO와 VO에 대한 질문을 남겼는데, 생각해 보니 같은 의문점이 들어서 자료를 찾아봤다. 이번 글은 DTO와 VO에 대해 설명하느 글이 아니다. DTO와 VO에 대한 사람들의 의문에 대한 답변을 준비해 봤다. 댓글로 남긴 답변을 약간 다듬어서 블로그에 남겨본다. 저도 DTO VO를 공부하다가 알게된 사실이 있어서 공유 드립니다! 인비가 자세하게 설명해 줘서 추가자료라고 생각하시면 좋을 것 같아요.루트의 질문을 받고 저도 문득 DTO와 VO에대해 궁금해져서 자료를 좀 찾아봤어요. 그리고 그 정답이 들어있는 자료를 찾았습니다! 그것은 바로, 마틴 파울러 아저씨의 저서입니다 (Patterns of Enterprise .. 2021. 2. 26.
공변반환 타이핑 이펙티브 자바의 builder 패턴을 읽다가 발견했다. 지금까지 모르고 있었는데 정말 신기한 기법이다. 자바의 변수가 "공변" 임을 이용하는 기법인데 소스를 보면서 확인하자 public class Main { abstract static class Test { int a = 1; public int getA() { return a; } abstract public Test ret(); } static class T extends Test { int b = 2; public int getB() { return b; } @Override public T ret() { return new T(); } } public static void main(String[] args) { T t = new T(); t.g.. 2021. 2. 26.
캡슐화란 무엇인가? 어떤 이점이 있는가? 객체지향을 공부하면 처음부터 귀에 못이 박히도록 듣는 단어가 있다. 바로 캡슐화다. 캡슐화가 도대체 뭐고, 이게 왜 중요한 요소일까? 일단 위키를 보도록 하자 캡슐화(영어: encapsulation)는 객체 지향 프로그래밍에서 다음 2가지 측면이 있다: 객체의 속성(data fields)과 행위(메서드, methods)를 하나로 묶고, 실제 구현 내용 일부를 외부에 감추어 은닉한다. 그래, 캡슐화는 객체의. 속성과 행위를 하나로 묶고 구현 내용을 외부에 감춘다는 것, 알겠다. 그래서 뭐 어쩌라는건가? 이게 왜 중요한가?? 이에 대한 답을 한번 찾아가 보도록 하자. 위키의 정의에 따르면, 캡슐화는 클래스 안에다가 데이터와 데이터를 처리하는 행위를 묶어 놓는 것 이라고 말할 수 있다. 사실 객체지향을 처음 .. 2021. 2. 18.
디미터의 법칙(Law of Demeter)이란 뭘까? 그리고 왜 지켜야 할까? 클린코드를 읽으면서 디미터의 법칙이라는 것을 처음 접했었다. 당시에는 그냥 읽으면서, 기차충돌(Message Chains) 코드를 피하면 좋다는 건가? 라는 식으로 이해하고 넘어갔다. 왜 지켜야 하는지에 대한 진지한 고민을 못해본 것 이다. 최근 최범균님의 개발자가 반드시 정복해야 할 객체지향과 디자인 패턴 을 읽고 디미터의 법칙에 대한 인사이트를 얻었다. 일단, 디미터의 법칙이 뭔지부터 알아보자. 위키피디아에 의하면 아래와 같이 디미터의 법칙을 설명하고 있다. ... In its general form, the LoD is a specific case of loose coupling. ... Each unit should have only limited knowledge about other units.. 2021. 2. 18.