본문 바로가기
코스웨어/16년 스마트컨트롤러

20160329_김도관_업무일지_유닉스및네트워크_C언어기초

by 알 수 없는 사용자 2016. 3. 30.
728x90
반응형

Unix의 역사


당시 AT&T 와 General Electric 사, Honeywell 사, MIT 공과대학에서 MULTICS 라는 프로젝트를 미 국방성(ARPA)으로부터 자금 지원을 받아서 수행함

목적은 멀틱스 프로젝트의 목적은 끊이지 않고 돌아갈 수 있는 다중 사용자, 다중 프로세서, 다중 프로세스 기반의 시스템을 만드는 것

1969년), 켄 톰슨(Ken Thompson) 이라는 사람이 당시 그는 AT&T 사의 연구원으로 있으면서, 멀틱스 프로젝트에 참가하고 있었는데, 사무실에 안쓰는 PDP-7 컴퓨터가 있는 것을 보고는, 이 컴퓨터에다가 멀틱스와 비슷한 개념을 가진 운영체제를 한번 구현해 보게되었다. 

여기에 재미를 느끼게 된 동료들 중 함께 멀틱스 프로젝트에서 일했던 데니스 리치(Dennis Ritchie)와 피터 뉴만(Peter Neumann) 이라는 사람도 같이 켄의 프로젝트에 동참하게 되고, 장난삼아 그 운영체제의 이름을 유닉스(Unix) 라고 지었다

멀틱스 프로젝트에서는 너무 많은 것을 구현하려고 했던 반면, 켄의 유닉스 시스템에서는 단지, 프로그램을 실행시키는 데만 중점을 두었었다. 처음부터 강력한 보안 시스템등은 유닉스의 목표가 아니었던 것이다.


BSD

1970년대 말, 그때 당시의 많은 대학들에서 그랬던 것처럼 캘리포니아 주립대학( 현재:버클리대 )에서도 유닉스 소스코드가 담겨 있는 테이프를 400달러에 구입하게 된다

그런데, 빌 조이(Bill Joy) 라는 학생과 척 핼리(Chuck Haley)라는 학생이 그 소스 코드에 조금씩 수정을 가하기 시작했다. 1978년에 자기들이 수정한 코드로 만든 유닉스와 유틸리티들을 포함하는 배포판(?)을

    만들어서 50$의 가격으로 30장(?)을 출판하게 된다. 이것이 최초의 BSD 버젼의 유닉스 시스템이라고 할 수 있다.

BSD 에서 만든 (BSD : Berkeley Software Distribution) 유닉스의 네트워킹 프로그램들로 인해 유닉스를 사용하여 근거리 통신망(LAN)을 구축하는 것이 매우 수월해 졌으며, 급기야는 요즘에 이르러서는 '컴퓨터는 네트워크다' 라는 말까지 나오게 되었으며, 네트워크에 연결되지 않은 컴퓨터는 상상도 못할 정도까지 이르게 되었다. 어쨌든, 이러한 이유로 인해서, 버클리에서 개발된 유닉스의 버젼은 각종 연구소라든지 대학들에서 매우 광범위하게 사용되게 되었다.





WEB


Server

소프트웨어적 의미 : 웹 브라우저와 같은 클라이언트로부터 HTTP 요청을 받아들이고, HTML 문서와 같은 웹 페이지를 반환하는 컴퓨터 프로그램

하드웨어적 의미 : 위에 언급한 기능을 제공하는 컴퓨터 프로그램을 실행하는 컴퓨터


목적

웹 서버의 주된 기능은 웹 페이지를 클라이언트로 전달하는 것이다

그림, CSS, 자바스크립트를 포함한 HTML 문서가 클라이언트로 전달됨


Client

사용자 또는 고객등이 사용하는 컴퓨터로써 주로 서버에 연결되는 일반컴퓨터를 의미함


서버사이드 스크립트 언어

ASP : MS에서 만든 스크립트 언어

PHP : C언어기반으로 만들어진 서버에서 동작하는 스크립트 언어

JSP (Java Server Pages) : HTML내에 Java code를 삽입하여, 웹서버에서 동적으로 웹브라우저를 관리하는 언어


DB (DataBase)

여러 가지 업무에 공동으로 필요한 데이터를 유기적으로 결합하여 저장한 집합체. 

데이터를 효율적으로 처리하기 위하여 개발된 것으로, 같은 데이터가 중복되는 문제를 없앨 수 있으며 업무가 확대되어도 새로 파일을 준비할 필요가 없다는 장점이 있다.


ID나 Password및 각종 데이터가 저장됨

DB에 password등을 암호화해서 저장하는것은 서버단에서 프로그래밍으로 암호화해서 저장함


종류 

Oracle,MS-SQL,My-SQL 등등


TCP/IP 프로토콜


    정의

          네트워크와 네트워크를 연결하기 위한 포로토콜.

       여러 개의 네트웍을 연결해서 데이터를 서로 주고 받기위해서로 상호연결하기위한 프로토콜이다

                   컴퓨터 네트워크에서 사용되는 메시지 교환규칙 프로토콜.

          다양한 형태의 물리적 네트워크에 연결된 컴퓨터를 통해 네트워크 상의 다른 컴퓨터와 통신을 하기 위한 절차를 정의.


 역사

  ARPANET(Advanced Research Project Agency Network) 미국방성 프로젝트 수행 목적으로 구축.

           NSFNET(the US National Science Foundation Network)

           Internet = ARPANET + NSFNET : 1980년대 중반




프로그래밍

Debug

프로그램에서 발생하는 오류를 부를 때 버그라고 함. 이때 발생하는 오류를 수정하는 것을 디버깅한다고 부름


반복문이나 기타 오류 발생시 모니터링 하기 좋음


비주얼 스튜디오

F9 :중단점 설정(브레이크 포인트)

F5 : 디버그 시작

Shift +F5 : 디버그 중지(탈출)

F10 : 프로시저 단위 실행 ( 다음줄 코드를 실행하지만 함수를 통한 실행은 제외됨

F11 : 코드를 한단계씩 실행



C언어 컴파일러 연산자 우선순위

순위

종류

연산자

 연산 방향  

1

 괄호, 배열, 구조체 ( )  .  [ ]  ->  ::

좌→우

2

 단항 연산자

 *(간접)  &(주소)  !  -  ++  --  +(부호)  -(부호)  sizeof  new  delete  ~(비트연산NOT)

우→좌

3

 구조체 결합연산자 .*  ->*

좌→우

4

 승제 연산자 *  /  %

좌→우

5

 가감 연산자 +  -

좌→우

6

 시프트(Shift) 연산자   <<  >>

좌→우

7

 비교 연산자 <  <=  >  >=

좌→우

8

 등가 연산자 ==  !=

좌→우

9

 비트 연산자 AND &

좌→우

10

 비트 연산자 XOR ^

좌→우

11

 비트 연산자 OR |

좌→우

12

 논리 연산자 AND &&

좌→우

13

 논리 연산자 OR ||

좌→우

14

 조건 연산자 ?:

우→좌

15

 대입 연산자 =  *=  /=  +=  -=  %=  <<=  >>=  &=  ^=  |=

우→좌

16

 나열 연산자 ,

좌→우


cpu는 +연산을 가장 우선적으로 처리하므로 코드상에서 +같이 연산사 우선순위에 든것을 먼저 처리하는게

 속도 향상에 좋음


C언어 

제 4장


5장


7~8장


728x90