Books/클린코드

[클린코드] 6장 객체와 자료구조

유로띠 2022. 3. 13. 23:50
반응형

클린 코드

객체와 자료구조 🙌


객체와 자료구조 차이점 👍

 

 👀강의(course)를 예로 든다면...  

class course {

    const totalTime;
    const playTime;
    const completedPlayTime;
}

const progressPercent() {
    const percent = Math.floor((completedPlayTime / totalTime) * 1000) / 10;
}

자료구조는 자신이 가지는 그대로를 뜻한다.
course(강의)에서는 전체 수강시간,  시청 시간,  완료된 시청 시간 등을 가지는데 이는 자료구조라 할 수 있다. 😄

 

객체는 데이터 그대로가 아닌 함수를 제공한다.
course(강의)에서 수강생의 시청시간, 수강시간은 중요하지 않고

해당 강의의 수강률, 진도율을 제공하는 것이 객체라 볼 수 있다. 😄

 

상황에 맞게 선택한다. 👍

✅ 자료구조

자료구조를 사용하는 절차적인 코드는 기본 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉽다.
절차적인 코드는 새로운 자료 구조를 추가하기 어렵다.
그러려면 모든 함수를 고쳐야 한다.

 

✅ 객체

기존 함수를 변경하지 않으면서 새 클래스를 추가하기 쉽다.
새로운 함수를 추가하기 어렵다. 그러려면 모든 클래스를 고쳐야 한다.

 

DTO (Data Transfer Object)

대표적인 자료구조이다.

다른 계층간에 데이터 교환을 위한 객체를 이야기합니다.

 

그럼 각 계층은 무엇일까?

 

 

다음은 Spring 웹 계층이다. 

간단하게 각 영역을 설명하면 다음과 같다.

 

Web Layer

 컨트롤러와 뷰 템플릿 영역이며, 외부 요청과 응답에 대한 전반적인 영역을 보여줍니다.

 

Service Layer

컨트롤러와 Dao의 중간 영역에서 사용되며, Transactional이 사용되어야 하는 영역입니다.

 

Repository Layer

데이터베이스와 같이 데이터 저장소에 접근하는 영역입니다.

 

이처럼 Entity 클래스와 Controller에서 사용할 Dto는 분리해서 사용해야 합니다.

 

 

 

반응형