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년은 된 글이다.
음 감만 잡으면 내용은 보면 자세한데, 정확히 잡히진 않았다.
우리가 다루는 데이터들 변수, 메모리에 적재되는 그 데이터 위주로 설계하여, 병렬 처리나 데이터 관련된 처리가 원활하도록 하자는 것이다.
아직 그 이상은 잘 이해가 안된다.
'ios개발 > 개념 정리' 카테고리의 다른 글
<스위프트> Custom Operator, Generic, inout parameter (0) | 2020.04.09 |
---|---|
<스위프트> map, reduce, sort, filter (0) | 2020.03.31 |
<ios framework> present 2편 (0) | 2020.03.31 |
<Mac OS> About Multitasking on the Mac OS (0) | 2020.03.29 |
<스위프트> 오퍼레이션과 오퍼레이션큐를 통한 병행성 작업 방식으로 반응형 인터페이스를 구현하자. (0) | 2020.03.25 |