컴퓨터
08/03/05 11:53(년/월/일 시:분)
민덕기 교수님 - 웹 기술 응용 설계
C, C++로 개발된 Application과 웹을 비교해보자.
C, C++ 빠르다(efficient)
Web 느리다(slow)
이렇게 느린데 왜 웹으로 가는 걸까?
- easy to deploy
- common platform
1. Client-side: web browser 전쟁
Communications of the ACM이라는 저널의 1990년 1월호에서, 1990년대는 네트워크의 시대가 될 것으로 예상했다.
사실 인터넷은 예전부터 있었다. 뉴스그룹, FTP등을 예전에도 썼다. 하지만 웹이 나오면서 폭발하기 시작했다. 사용자는 사용하기 쉬운 기술에 반응한다.
1993년에 Mosaic이 나왔고, 1994년에 Netscape가 나왔다. 넷스케이프의 가장 큰 특징은 Stop 버튼이 있었다는 것. 모자익만 해도 전송이 지연되면 다운되버린다. 그래서 컴퓨터를 재시작해야 한다. 하지만 넷스케이프는 multi-threading이 되서 중간에 정지할 수 있었다.
그러다가 1995년에 explorer가 나왔는데, 이것의 가장 큰 특징은 ActiveX가 돌아간다는 것이었다. 물론 이 기술이 MS의 독창적인 기술은 아니었다. 넷스케이프에도 plug-in 형태로 있었고, Java Applet도 있었고, Remote Execution 하는 기술은 있었지만. MS가 항상 그렇듯 좋은 기술이 있으면 돈으로 사거나, 자기네 기술자 시켜서 더 뛰어나게 개발하거나 한다.
2. Server-side: middleware 전쟁
MS에서는 Fundamental Class Library를 제공했다.
COM 기반의 컴포넌트 -> DCOM(Distributed COM)
C++ 기반으로는 ATL 제공
그런데 C++은 완전한 객체지향이 아니었다. 이 작은 차이가 갈수록 커짐.
MS에서 모방했던 것은 CORBA(Common Object Resource Broker Architecture).
Java에서는 EJB, J2EE (Sun, IBM)
* Sun은 자바를 개발했지만 재미를 못 봄. 반면 IBM은 자바에서 전체 매출의 25~50%가 나옴.
이 3가지: .NET, CORBA, J2EE
하드웨어는 점점 싸고 빨라진다. 이제는 Application 개발하는 속도가 매우 중요. 이를 위해 Middleware가 필요.
OS는 Open하는 방향으로 가고 있지만, Middleware는 그렇지 않다.
- Component Framework
1. Linux: 주력 언어가 없다.
2. Java -> COP
3. .NET: C++을 포기하고 C#으로(완전한 객체지향) -> CP
4. CORBA: 자체 언어가 없다(약점) ->
CCMX
네트워킹 할때도
Java: RMI
.NET: Routing/RPC
가 깔려 있어야 함.
상호 호환이 안됨. 회사가 서로 싸우기 때문에 통일이 안됨.
-> 그런데 다른 건 안 깔려있어도 Web은 다 깔려있음. Firewall도 80번 포트는 열어놓음.
-> 자바가 깔려있던, 닷넷이 깔려있던, 코바가 깔려있던 상관없음
왜 웹을 쓰는가?
다른건 몰라도 웹서버는 깔려있으니까.
3. Web 2.0
- Symantic web (의미론적) 웹을 처음 만든 사람이 말했다.
- RIA, AJAX, silverlight
- 로봇이 기계와 다른 점
1. decision making (autonomous)
2. mobility
이 두가지만 있으면 형태가 humanoid가 아니더라도 로봇이라고 부를 수 있다.
로봇이 정보를 얻는데도 웹서비스 사용
4. 웹 최고의 기술: OS를 웹 기반으로 다시 만드는 것.
비효율적. 느리다. XML 파싱은 기존의 파싱보다 10~20배 느리다.
하지만 매년 컴퓨터의 성능이 2배씩 성장한다면 3~4년 안에 따라잡을 수 있음. (2^3~2^4) 앞으로는 성능보다 Application 개발속도가 중요해질 것.
Application 개발 속도가 빨라진다면 OS의 성능이 10~20배 느려져도 상관없다.
5. 정리
사용자는 사용하기 쉬운 기술에 반응한다 -> 웹은 사용하기 쉽다
개발자는 개발 속도가 중요하다 -> 웹은 개발속도가 빠르다
웹서버는 OS, 미들웨어와 상관없이 어디나 다 깔려있다 -> 호환성