SOLID, 디자인 패턴 등 이러한 용어가 나오는 이유는 객체지향 프로그래밍을 위한 하나의 방법론으로 나오고 있다.
이러한 디자인패턴을 알아야할 이유가 있을까??
요즘은 함수형 프로그래밍이 대두 되고 있다.
함수형 프로그래밍이란 말그대로 함수자체를 하나의 값으로 보고 (생각하고) 프로그래밍하는 사고이다.
머 정해져있는건 아니고 개발 방법론중 하나
객체지향 프로그래밍의 차이점을 본다면 객체지향 프로그래밍은 하나의 객체의 여러 메소드들이 있고 객체안의 data를 공유하거나 바꿔가면서 프로그램을 하는 반면
함수형 프로그래밍은 특정 조건에서는 특정한 답이 나오는 함수처럼 외부의 요인에 정해지지 않는 순수함수로 이루어저있다.
이게 잘 개발이 돼??? 라고 생각할수도 있지만 실제로 함수형 프로그래밍은 객체지향보다 더 오류를 발생하지않고 만족도 높은 방식이라고한다.
스칼라 같은 언어로 개발을 해보신 분들은 알겠지만 언어자체에서 함수형 프로그래밍을 할수 있도록 생산적인 코드들을 많이 지원한다.
실제 객체지향 할때보다 코드 수도 줄어들고 이해하기도 쉽다.
사실 객체지향 프로그래밍에 노예가 된 나에게 함수형프로그래밍의 깊이를 이해할수 있을지 의문이지만 열심히 공부해야겠다.
객체지향도 IoC같은거에다가 마구담아서 써버릇해서 객체간의 관계를 알아버릴 수 없으면 쓰는 의미가 있는가?
그러기 위해서 디자인패턴을 사용해서 최대한 그렇게 안될려고하죠 ㅜ 완벽한 객체지향 설계는 사람이 하는건지라 어려울듯... 그냥 우리가 말하는 디자인패턴에 잘적용하는것뿐이지
완벽한 객체지향 설계는 1년, 2년.. 아니 수십년이 걸리지 않을까 생각하고 있음 약간 최적화와 비슷하게 만들 수 없다고 생각
객체가 유리할 수도 있고 함수형이 유리할수도 있고 그런거 아닐까?
방법론이기때문에 뭐가 정답이다라고 할수없을것 같아요
함수가 값인거보다 불변성이 더 중요한데
맞습니다 ㅎㅎ 불변성
객져 패러다임 자체는 함수형으로도 할 수 있음. 많이들 쓰는 객체지향 언어가 구조적 프로그래밍 위에 객체지향 하는 꼴이라 둘이 상반되는 것 같이 느껴지는 것
마치 절차지향의 반대가 객체지향이라고 착각하는것과 비슷한거네요
근데 이건 킹론적인 이야기고 현실은 객체지향의 반대가 함수형이라고 말해도 틀린건 아닌 듯 ㅋ