2011년7월18일_JAVA를 배우기 전에 언어와 H/W에 관한 이야기
이 때까지 배운 것들,
1. C – Array, funtion, malloc
2. TCP/IP – linux
3. cp, mv명령 제작(?)
4. UART – serial (ATmega)
이 보다 더 많이 배웠으나 잘 기억이 안 난다. ㅎㅎ
● 옛날 컴퓨터는 천공카드를 사용해 프로그래밍 –> 실행
그러나 Tape에 프로그램을 넣어 실행하다가,
FDD와 HDD에 넣어 실행함.
● 선풍기의 약풍, 중풍, 강풍, 정지의 4가지 상태를 출력하려면 스위치 4개로 충분.
약풍스위치는 저항을 크게하고, 강풍은 저항을 작게함. 정지는 전력공급차단.
● 하드웨어발전은 점점 가속화되나 그에 따른 프로그램에 대한 기술은 크게 좋아지지 않는다.
32biCPU가 나오면서 부터 S/W가 크게 발전했다.
586부터 window가 나와 OS가 크게 발전 486이 가장 인기있었음.
● 이벤트드리븐(?) : 이벤트가 발생하면 해당 코드시작
● 전산처리하는 학과가 88년도에 많이 만들어짐.
전자 H/W
전자 계측
전산처리 DB
과거엔 상기의 3분야의 인력 중 H/W쪽의 인력이 대우받았고 소프트웨어인력은 많이 필요하지 않았다.
● 그에 비해 window95는 S/W인력이 많이 필요
모든 유저에 맞추기 위해 많은 시간, 노력이 필요하고 기초기술이 필요했다. 노하우(?)
● Internet이 보급되며 많은 중소기업이 생겼으나 망했다.
그 이유는 기초기술이 없었기 때문이다. -> web –> Component –> OOP기반 –> JAVA
● 반도체 – 회로 – S/W를 F/W라고 하고 전화기는 할 일이 많아 F/W만 가지고 불가능하다.
그래서 운영체제가 필요한데 wince는 로열티를 받아 x,
linux - luvian은 한창 뜨다가 망함. (GUI QT가 지저분하다.)
안드로이드는?
● JAVA는 기존기술이 쌓여 있는 상태에서 짜는 거라 개발기간이 짧고,
C언어는 처음부터 시작하니 채팅프로그램을 짜는데 1년정도 걸릴 수 있다.
● S/W는 쉽게 바뀌는게 아니다.
● H/W는 모듈화, 부품화되어 있어 각 모듈의 성능이 향상되면 자동차 전체의 성능이 향상되나,
S/W는 일부 모듈의 성능이 향상된다고 결합하면 다른 문제가 발생한다.
(Ripple effect(?))
● OOP는 생산량증가
● S/W는 신기술이 좋아도 리스크가 있다.
그것은 기존에 있는 것을 버려야 한다는 것이다. 버려야 새로운 것을 얻을 수 있다.
지금은 OOP를 모르면 협업이 불가능하니 꼭 배워야 함.
● 결론: JAVA는 C언어와는 전혀 다른 언어라는 것을 알고 배우자!
● C언어는 #ifndef문을 사용해 하드웨어에 맞춘다.
코드가 누더기가 되어 보기 흉하다. 그리고 모듈에 문제가 발생시 전체적인 동작에 영향을 크게 준다.
SE는 개인용이고,
EE는 기업용,
ME는 잘 쓰지 않음.
● JAVA는 JVM(자바가상머신), 자바API 플랫폼 위에서 동작한다.
JVM만 잘 알면 어떤 H/W, 어떤 운영체제 위에서도 잘 동작함.
● 미들웨어는 S/W이나 H/W역활을 한다.
예를 들어 그래픽카드가 없을 때도 CPU의 자원을 사용해 있는 것처럼 할 수 있다.
● 자바API: 자바라이브러리를 배울 것임