ios개발/개념 정리

<아키텍처> data driven programming vs data oriented design

studying develop 2020. 10. 7. 00:41

advanced ios app architecture를 보다 보면 data driven programming이란 말이 나온다. 사실 다른 데서도 많이 본듯. 근데 저게 궁금해서 검색하다 보면 data oriented랑 단어가 비슷해서 궁금했다. 둘다 몇시간 찾아봐도 영어로 설명되어 있어서 이해가 잘안됐지만 그나마 된 내용을 간단하게 정리하면.

 

일단 참고한 링크들은,[stackoverflow.com/questions/1065584/what-is-data-driven-programming], [gamesfromwithin.com/data-oriented-design], [stackoverflow.com/questions/1641580/what-is-data-oriented-design/1641615#1641615]

 

data driven programming

data_lloyd = {'name': 'Lloyd', 'lives': 'Alcoy }
data_jason = {'name': 'Jason', 'lives': 'London' }
go = function(x) 
    if x.name == 'Lloyd' 
    then 
        print("Alcoy, Spain") 
    else 
        print("London, UK") 
end

위는 non data driven

 

data_lloyd = {'name': 'Lloyd', 'lives': function(){ print("Alcoy, Spain") }
data_jason = {'name': 'Jason', 'lives': function(){ print("London, UK") }
go = function(x)
    x.lives()
end

이게 data driven

 

In the last example the output is determined by the data that is passed to the function and for that reason we say the output is 'driven' by the data.

즉 데이터에 따라서 결과가 결정된다. 약간 선언형 ( <-> 명령형) 프로그래밍이 생각난다.

 

 

data oriented design

[gamesfromwithin.com/data-oriented-design] -> 한글 번역 [lab.gamecodi.com/board/zboard.php?id=GAMECODILAB_Lecture&no=204&z=]

 

둘다 10년은 된 글이다.

 

음 감만 잡으면 내용은 보면 자세한데, 정확히 잡히진 않았다. 

 

우리가 다루는 데이터들 변수, 메모리에 적재되는 그 데이터 위주로 설계하여, 병렬 처리나 데이터 관련된 처리가 원활하도록 하자는 것이다.

 

아직 그 이상은 잘 이해가 안된다.