본문 바로가기

Project

SOA Programming ?

 얼마전 회사 시스템부의 어떤분의 발표자료에 SOA Programming이라는 생소한 단어를 보았습니다.

대충 프레젠 내용은 프로그래밍의 발전단계를 설명하였는데,
구조적 프로그래밍 -> 오브젝트지향 프로그래밍 ->  SOA프로그래밍

이라는 말과 함께 SOA프로그래밍은 서비스단위로 프로그래밍을 한다고 짧게 언급하였습니다.
(전체 PPT 5페이지정도로 짧은내용이었습니다.)

그때는 내가 알고 있는 SOA와 프로그래밍과 전혀 연관되어 이해할수 없었기에 그냥 넘어갔었는데
오늘 제가 알고있는 OOP와 연관하여 조금 생각해보았습니다. 

나에게 SOA가 OOP와 같은 새로운 패러다임으로 생각하냐고 묻는다면 아니라고 대답하겠습니다.
개발방법론에서 고려할수 있는 발전된 새로운 안이 아닐까 생각되는 입장입니다. 즉 OOAD(Object Oriented Analysis&development) , DDD(Domain-driven design) 등등과 같이 제품을 개발할때 고려할 수 있는 일종의 접근 모델이 아닐까요?


SOA Programming을 OOP에 연상하여 좀더 깊이 생각해본다면 ,

OOP로 프로그래밍을 한다는것은 2가지를 의미합니다.

1. OOP를 구현할수 있는 언어를 사용함
-이것은 상속, 캡슐화,다형성을 지원하는 언어를 의미합니다.

2. OOP의 철학 및 원칙에 맞게 구현함
-class-instance,design pattern 등을 이용하는 것을 의미합니다.


SOA Programming을 한다고 한다면

1.SOA를 구현할수 있는 도구를 사용한다.
-REST , SOAP , WSDL 등을 이용.

2. SOA의 철학 및 원칙에 맞는 구현.
-service Interface, service implement , soa best practice -pattern or anti-pattern 등등.


이 정도를 생각해볼수 있을듯하네요.

SOA철학에 맞는 새로운 도구를 사용하지 않고 현재의 OOP도구를 사용하고 있는 이상 ,
OOP와 SOA에 대한 애매한 위치는 바뀌지 않을듯 생각됩니다.

p.s 테클 환영합니다. 모르는게 많아 공부할게 많네요.