Windows = OS, Win32 = Platform
여기서 플랫폼이란 무엇일까?
-> Platform = A set of APIs(Application Programming Interface)
cf. wineHQ(LinuxOS + Win32) : Linux에서 Win32 플랫폼을 제공해주는 플랫폼
-------------------------------------------------------------------------
Win32 vs .NET
[Managed] vs [UnManaged]
-------------------------------------------------------------------------
Hacking 대응방안
1. bug patch : 버그가 발견되면 버그리포팅을 통해 고쳐나가는 식
2. secure coding : 처음 코딩할 때 부터 보안을 고려해 보안을 강화한다.
3. 언어 / 플랫폼 교체
-> C, Cpp의 언어적 문제 : buffer overrun / boundary check :: cf. int a[5]; a[7]=10; non error!!
언어 자체의 문제로 MS사에서는 Win32를 버리고 .NET플랫폼을 새롭게 내옴.
-------------------------------------------------------------------------
MS CLR (Common Language Runtime) = Java JVM (Java Virtual Machine)
1. Platform Independent (CLR은 사실상 완벽하지 않다. 닷넷이 윈도우에만 깔린다..)
2. "Security" -> Sandbox model
(외부로부터 들어온 프로그램이 보호된 영역에서 동작해 시스템이 부정하게 조작되는것을 막는다.)
-------------------------------------------------------------------------
1. 장점 : 보안이 좋다. 사용자가 관리하는 영역이 적어져 개발이 쉽다.
2. 단점 : 성능이 Win32에 비해 떨어진다.
-------------------------------------------------------------------------
3-tier/N-tier
C(Web Browser)-S/C(Web Server)-"S/C(Middleware)"-S(DBMS)
<-FE(Front End)-><- BE(Back End) ->
Middleware / WAS(Web Application Server)
WAS : 웹 기반 분산 시스템 개발을 쉽게 도와주고 안정적인 트랜잭션 처리를 보장해 주는 일종의 미들웨어 소프트웨어 서버. 3계층 웹 컴퓨팅 환경에서 기존 클라이언트/서버 환경의 애플리케이션 서버와 같은 역할을 하며, 클라이언트와 서버 환경에서 트랜잭션 처리 및 관리와 다른 기종 시스템 간의 애플리케이션 연동 등을 주된 기능으로 하고 있다.
-------------------------------------------------------------------------
DBMS
1. Transaction : All or Nothing, 논리적 작업 단위, 한 트랜잭션이 끝나면 모든일이 완료되고 중간에 취소가 되면 다시 처음으로 돌아가야 한다.
2. Stored Procedure : 데이터베이스 안에서 함수를 정의해놓고 반복해서 사용할 수 있는 쿼리.
3. Trigger : 테이블에 대한 이벤트에 반응해 자동으로 수행하는 사용자가 정의하는 쿼리.
-------------------------------------------------------------------------
commit / rollback
줄단위 commit 모드(auto commit)
cf. try / catch
cf. A(atomicity) C(Consistency) I(Isolation) D(Durability) [https://ko.wikipedia.org/wiki/ACID]
-------------------------------------------------------------------------
DynamicSQL vs StaticSQL
SQL Interpreter vs Precompile
-------------------------------------------------------------------------
Middleware(Engine, Framework, WAS)
-> Transaction관리 / Thread 관리 등을 한다.
-------------------------------------------------------------------------
3계층 + MVC
View : Presentation Layer(ASP.NET, HTML)
Controller : Business Logic Layer -> WAS/ Middleware
Model : Data Access Layer (RDBMS -> Object Mapping)
-------------------------------------------------------------------------
Responsive Web(반응형 웹) : 주로 HTML5, 화면 사이즈에 자동적으로 반응한다. 모바일과 PC버전을 따로 만들 필요가 없음. WebApp / Hybrid Web이라고 한다.
-------------------------------------------------------------------------
OOP -> Component -> MVC(ORM/SQL Mapper) -> IoC/DI
cf. BEA Tuxedo -> Weblogic
-------------------------------------------------------------------------
Object - Relation Mapping
Object 조작(CRUD) -> SQL 생성
Java Hibernate
-------------------------------------------------------------------------
SQL Mapper : MyBatis ( iBatis )
-------------------------------------------------------------------------
Inversion Of Control / DI (Dependency Injection)
cf. loosely coupled vs tightly coupled <- (engine / framework)
cf. Killer application
-------------------------------------------------------------------------
OOP의 4단계
1. class define
2. object declare
3. object instantiate
=============== 준비
4. method invoke
-------------------------------------------------------------------------
Object-Oriented(위주, based) vs Function-Oriented
cf. connection-oriented vs connectionless
-------------------------------------------------------------------------
resource pooling(thread, process, connection, ...)
cf. 인력풀제
-------------------------------------------------------------------------
Asynchronous
1. 호출한 뒤 결과가 나올 때까지 기다리지 않음 ( 비동기 )
2. 실시간의 의미 (cf. getKeyState() vs getAsyncKeyState())
cf. Redundancy(fail over, hot swap), load balancing
Synchronous
1. 한번에 하나의 결과만 수행하고 수행한 결과를 다른 곳에서 참조를 하기도 함 ( 동기 )
-------------------------------------------------------------------------
'개발 노트 > 닷넷 프레임워크 수업 (2015-04 ~ 2015-08)' 카테고리의 다른 글
.NET Enterprise Architecture 2일 (0) | 2015.07.03 |
---|---|
ADO.NET 데이터베이스 연동 (0) | 2015.07.03 |