데이터 통신 구성요소 (용어정리)

1. 메시지 : 통신의 대상으로 데이터를 뜻함(텍스트, 숫자, 그림, 소리 등)


2. 송신자 : 메시지를 보내는 장치 (컴퓨터, 전화기, 비디오 등)


3. 수신자 : 메시지를 수신하는 장치 (전화기, tv, 컴퓨터)


4. 전송매체 : medium으로 메시지가 송신자로부터 수신자까지 이동하는 물리적 경로


5. 프로토콜 : 데이터 통신을 통제하는 규칙의 집합, 통신하고 있는 장치들 사이의 상호합의


      통신절차 : syntax(구문), semantics(의미), timing


      통신규약 : event, action, format(양식)

'SW > 데이터통신' 카테고리의 다른 글

네트워크 물리적 구조  (0) 2017.09.05
data flow (데이터 흐름방향)  (0) 2017.09.05
DHCP(Dynamic Host Configuration Protocol)  (0) 2017.09.05
TCP/UDP  (0) 2017.09.05
IP (Internet Protocol)  (0) 2017.09.05

NETWORK (네트워크)

네트워크


프로토콜이란 컴퓨터와 컴퓨터 사이에서 데이터를 어떻게 주고받을 것인지를 정의한 통신규약


컴퓨터의 주소는 MAC, IP, 호스트 명 이 있다


MAC주소 : 6개의 16진수 (48비트) 제조사번호, 일련번호로 구성


IP주소 : 네트워크부분(네트워크 구분), 호스트 부분(해당 네트워크에서 컴퓨터 식별)으로 구성


호스트 명 : www(호스트 부분) naver.com(네트워크 부분)


포트번호 : 각 서비스를 구분하는 번호



Netstat : 네트워크 상태 정보 출력하기


o -a : 모든 소켓 정보를 출력한다.


o -r : 라우팅 정보를 출력한다.


o -n : 호스트 명 대신에 IP 주소를 출력한다.


o -i : 모든 네트워크 인터페이스 정보를 출력한다.


o -s : 프로토콜별로 네트워크 통계 정보를 출력한다.


o -p : 해당 소켓과 관련된 프로세스의 이름과 PID를 출력한다


 

호스트 이름 확인하기 : hostname, uname -n



Uname : 시스템 정보 출력


o -m : 하드웨어 종류를 출력한다.


o -n : 호스트 이름을 출력한다.


o -r : 운영체제의 릴리즈 정보를 출력한다


o -s : 운영체제의 이름을 출력한다.


o -v : 운영체제의 버전을 출력한다.


o -a : 위의 모든 정보를 출력한다.

 


 

원격 접속하여 파일 송수신 하는 서버 : 텔넷, SSH, FTP


텔넷 : 원격에서 리눅스에 접속하는 프로그램의 이름(서버와 클라이언트 필요) -> xinetd에 의해 동작(open 접속 quit 종료)


SSH : 텔넷과는 달리 모든 통신을 암호화한다 (SSH 데몬 필요)


FTP => vsFTPD(리눅스 FTP 서버)


Get : 파일 하나를 호스트로 가져온다. Mget : 여러 개의 파일을 가져온다


Put : 파일 한 개를 호스트로 보낸다. Mput : 여러 개의 파일을 보낸다.


Hash : 송수신이 진행되고 있는지 표시 bye : 접속 종료

'SW > LINUX' 카테고리의 다른 글

Server & Client  (0) 2017.09.05
IPC (Inter Process Communication)  (0) 2017.09.05
GDB  (0) 2017.09.05
버전관리, SVN  (0) 2017.09.05
GCC compiler (내부 매크로, Makefile)  (0) 2017.09.05

GDB

Bug : 컴퓨터 프로그램의 결함


Logic error : 제어문이나 데이터 형의 잘못된 사용 -> 비정상적인 결과


Compile error : 문법 오류


Runtime error : 프로그램의 실행 도중 발생하는 오류


Link error : 전역변수 정의 및 함수 선언 및 정의가 잘못된 경우


Debugging : 버그를 발견하여 수정하는 것





GDB : 프로그램이 실행될 때 내부에서 어떻게 작동되는지를 확인


           -g 옵션 : 컴파일 되는 실행 파일에 디버깅 정보 삽입



o 사용법


l ß 소문자 L 을 뜻한다.


l 메인 함수를 기점으로 소스 출력


l [행번호] 해당 행 주위의 소스를 보여준다


l [파일명]:[함수명] 특정 파일의 소스를 보여준다


l [함수명] 해당 함수의 소스를 보여준다


l - 출력된 행의 이전 행을 출력


l file.c:func file.c 파일의 func 함수 부분 출력


l file.c:10 file.c 파일의 10행을 기준으로 출력

 

브레이크포인트 : 실행 도중 프로그램에 대한 추가적인 정보를 알아내기 위한 수단


b func func 함수의 시작 부분에 브레이크 포인트 설정


b 10 10행에 브레이크 포인트 설정


b file.c:func file.c 파일의 func 함수에 브레이크 포인트 설정


b file.c:10 file.c 파일의 10 행에 브레이크 포인트 설정


b +2 현재 행에서 2개 행 이후 지점에 브레이크 포인트 설정


b -2 현재 행에서 2개 행 이전 지점에 브레이크 포인트 설정


b *0x8049000 0x8049000 주소에 브레이크 포인터 설정(어셈블리로 디버깅 시 사용)


b 10 if var = 0 10행에 브레이크 포인트를 설정하는데 var 변수 값이 0일때 작동


tb b 명령어로 브레이크를 걸면 gdb가 종료할때 까지 유용하므로 임시로 한번

만 브레이크 포인트를 걸고 싶을때 사용


d : 모든 브레이크포인트를 지움


s : 현재 행 수행 후 정지 함수 호출 시 내부로 들어감


s 5: s5번 입력


n : 형재 행 수행 후 정지, 함수 호출시 함수 수행 후 다음 행으로 감


c : 다음 브레이크포인트를 만날 때까지 계속 진행


u : 현재 루프를 빠져나감


finish : 현재 함수를 수행하고 빠져나감


return : 현재 함수를 수행하지 않고 빠져나감


return123 : 현재 함수를 수행하지 않고 빠져나감, 리턴값은 123


와치포인트 : 어떤 변수 값이 바뀔 때마다 브레이크를 걸 때 사용


- i locals 현재 상태에서의 지역변수와 값 출력


- p : 개별 변수의 출력


- p $[register] 레지스트 값 확인


- i registers 레지스트 값 전체를 출력



n 출력 형식의 지정


o 사용법


p/[출력형식] [변수]


출력형식


t : 2진수


o: 8진수


d:부호있는 10진수


u:부호없는 10진수


x:16진수


f:부동 소수점


c:최초 1바이트의 문자형

'SW > LINUX' 카테고리의 다른 글

IPC (Inter Process Communication)  (0) 2017.09.05
NETWORK (네트워크)  (0) 2017.09.05
버전관리, SVN  (0) 2017.09.05
GCC compiler (내부 매크로, Makefile)  (0) 2017.09.05
리눅스 명령어 - PROCESS  (0) 2017.09.05

버전관리, SVN

버전 관리 : 소스 코드 관리 (동일한 정보에 대하 여러 버전을 관리)


->공동 프로젝트 관리, 프로젝트 백업, 데이터 동기화를 위함


체크 아웃 : 저장소에서 파일을 가져옴


체크인 : 체크아웃한 파일의 수정이 끝나서 저장소에 새로운 버전으로 갱신


가져오기 : 처음으로 저장소에 파일을 복사


저장소 : 파일의 현재 버전과 변경 이력 정보를 저장하는 저장소


CVS : 공동 버전 시스템


Import : 프로젝트 파일 등록


Checkout : 프로젝트 파일 가져오기


Commit : 프로젝트 파일 수정 후 cvs서버에 반영


Update : cvs 서버의 최신 버전을 작업 디렉토리에 반영


Diff : 파일 버전에 따른 차이점 비교


Log : 파일 로그 보기


Annotate : 행별 정보 출력


Tag : 프로젝트 파일에 태깅하기


Rtag : 저장소 디렉토리에 태깅하기


Release : 모듈 release




 

SVN : Cvs 단점 개선(원자적 commit, 빠른 속도, 웹 인터페이스, 디렉토리 버전, 파일이름 변경)


Import : 프로젝트 서버 설정 후 디렉토리 안에 있는 파일을 처음 등록


Checkout : 서버에 있는 파일을 받아오는 명령


Ci : commit(comment를 달아 서버로 업로드)


Up : update(내 폴더에 있는 파일들을 현재 서버에 있는 최신 버전으로 업데이트)


Tag : trunk branches의 특정 시간을 가리키는 포인터


Branch : 새로운 기능을 추가하고 싶을경우! 테스트가 끝나면 merge

'SW > LINUX' 카테고리의 다른 글

NETWORK (네트워크)  (0) 2017.09.05
GDB  (0) 2017.09.05
GCC compiler (내부 매크로, Makefile)  (0) 2017.09.05
리눅스 명령어 - PROCESS  (0) 2017.09.05
리눅스 명령어 - INFO  (0) 2017.09.05

GCC compiler (내부 매크로, Makefile)

GCC

Gnu compiler collection C, C++, objective C, portlan, Java 등 컴파일러를 포함하는 의미

소스파일을 이용해 실행파일을 만들 때까지 필요한 프로그램을 차례로 실행시키는 툴



과정

*.c -> (전처리 ccp) -> *.i -> (컴파일 cc1) -> *.s -> (어셈블 as) -> *.o -> (링크id) -> a.out

소스파일->전처리된 파일->어셈블리어 파일->오브젝트 파일->실행 파일



Option

( -c ) : 오브젝트파일까지만 컴파일 하고 링크하는 과정 생략 (gcc -c c.c ) => c.o


( -o ) : 바이너리 형식의 출력 파일 이름 지정, 없을시 a.out (gcc -o file file.c)


( -I ) : 헤더 파일을 검색하는 디렉토리 목록을 추가(이 옵션이 없으면 해당 파일에서 헤더파일을 검색하지만 있다면,

gcc age -c -l /root 와 같이 경로를 설정함 (대문자 아이)



분리 컴파일

소스가 길 경우 나눠서 코딩한 후 묶어서 컴파일


(gcc main.c hi.c -o test)


Gcc -c main.c// gcc -c hi.c// gcc main.o hi.o -otest          


Make : gcc는 여러 파일중 어떤 파일이 수정된다면, 모든 파일을 다시 컴파일 하고 링크해야 하지만

make는 수정된 파일을 자동으로 알아내 컴파일 하고 수정하지 않은 파일은 기존 오브젝트파일 이용한다.


( , ) 같은 건 사용하지 않고 공백으로 한다. 명령을 시작하기 전에는 TAB, 다른 곳에선 TAB 불가, 순서는 중요하지 않다.



Makefile

test: test1.o test2.o test3.o

gcc -o test test1.o test2.o test3.o

test1.o: test1.c a.h

gcc -c test1.c

test2.o: test2.c a.h b.h

gcc -c test2.c

test3.o: test3.c b.h c.h

gcc -c test3.c




'SW > LINUX' 카테고리의 다른 글

GDB  (0) 2017.09.05
버전관리, SVN  (0) 2017.09.05
리눅스 명령어 - PROCESS  (0) 2017.09.05
리눅스 명령어 - INFO  (0) 2017.09.05
리눅스 명령어 - USER  (0) 2017.09.05

Lambda Expression (람다식)

Lambda Expression


무명함수를 표현할 때 사용되는 식




진행 순서 (소스코드)

1. 기본



2. invoke


3. 무명메소드


4. 명시적 형변환


5. method invoker

TIP)

this.Invoke(delegate {button1.Text = s;} ); //컴파일 에러 발생

MethodInvoker mi = new MethodInvoker(delegate() { button1.Text = s; });

this.Invoke(mi);

//맞는표현

this.Invoke((MethodInvoker) delegate { button1.Text = s; }); //축약된 표현


6. 정리


7. 최종


Lambda : 무명메소드를 더 간결하게 표현, 파라미터가 존재한다면 자료형을 생략 가능


Delegate chain : 연쇄적으로 명시한 method 실행


'SW > C#' 카테고리의 다른 글

Collection method (콜렉션 메소드)  (0) 2017.09.05
LINQ  (0) 2017.09.05
Collection  (0) 2017.09.05

Collection method (콜렉션 메소드)

Collection method


Action<T> : T형태의 파라미터를 받고 리턴 값이 없는 함수에 사용되는 delegate


Func<T, Tresult> : T형태의 파라미터를 받아들이고 리턴타입이 TResult형태로 존재


Predicate<T> : T형태의 파라미터를 받고 리턴타입이 반드시 bool형태



소스코드


1. func


2.변수 선언 생략


3. 람다식 적용


4. 큰 숫자부터 정렬



'SW > C#' 카테고리의 다른 글

Lambda Expression (람다식)  (0) 2017.09.05
LINQ  (0) 2017.09.05
Collection  (0) 2017.09.05

LINQ

LINQ : c# 3.0에서 추가 된 통합 쿼리 언어 (주로 collection을 대상으로 쿼리를 수행)


Foreach와 Linq의 차이점Linq는 실제로 데이터를 저장하지 않는다.


Var 예약어로 타입추론 기능을 사용하여 변수의 타입을 지정하지 않아두 된다.


LINQ to DataSet : 개체에 캐시된 데이터를 쉽고 빠르게 쿼리



'SW > C#' 카테고리의 다른 글

Lambda Expression (람다식)  (0) 2017.09.05
Collection method (콜렉션 메소드)  (0) 2017.09.05
Collection  (0) 2017.09.05

Collection

콜렉션

하나의 단위로 참조될 수 있는 정렬된 항목 집합


1.     배열 : 고정된 개수의 형식 개체


2.     배열과 달리, APP의 요구에 따라 작업하는 개체 그룹이 동적으로 확장되거나 축소


3.     일부는 개체에 신속하게 접근할 수 있도록 컬렉션에 추가하는 모든 개체에 키를 할당할 수 있다.


4.     정확한 형태가 아닌 object 형으로 항상 boxing(값형식 -> Object, Stack -> Heap), unboxing(반대)이 일어난다.



System.collections : 구체적으로 형식화된 객체가 아니라 Object형식의 객체로 요소를 저장


1.     ArrayList : 필요에 따라 크기가 동적으로 증가하는 개체 배열, 변수형을 지정하지 않고 데이터를 넣어둔다.

(Object)형으로 알아서 저장이 된다. 다형성(IEnumerable을 구현하기 때문에 IEnumerable 변수에 넣을 수 있다.

IEnumerable 형으로 자료를 받았다면 ArrayList의 기능을 모두 사용할 수는 없고, IEnumerable에서 사용할 수 있는기능만 사용한다.

->명시적 형변환으로 ArrayList로 변환을 하면 다시 이용할 수 있다.)


2.     Hashtable : 키의 해시코드에 따라 구성된 키/값 쌍의 컬렉션을 나타낸다.

키와 값을 가진 데이터를 저장하는 자료구조 배열에서는 Arr[0]이런 식으로 접근하는데 해쉬 테이블은 Ht[“Apple”] = 이런식으로 접근한다.

인덱스가 아닌 키를 가지고 값에 접근(빠름)


3.     Queue : FIFO방식으 개체 컬렉션


4.     Stack : LIFO방식의 개체 컬렉션


System.collections.Generic


1.     코드의 재사용성을 높이고 타입에 대한 안정성을 높일 수 있는 장점이 있지만, 코드의 크기가 커지고 가독성이 떨어진다.


2.     Object형이 아닌 정확한 자료형을 넣기 때문에 boxing/unboxing을 하지 않는다.

그렇기 때문에 성능이 좋다.


3.     클래스를 사용할 때 타입을 지정

List<T> = index로 접근할 수 있는 강력한 형식, 검색, 정렬, 조작, 데이터 중복 가능

Dictionary<Tkey, Tvalue> : TKey에 대응되는 TvalueKeyValuePair<Tkey, Tvalue> 형태로 저장

'SW > C#' 카테고리의 다른 글

Lambda Expression (람다식)  (0) 2017.09.05
Collection method (콜렉션 메소드)  (0) 2017.09.05
LINQ  (0) 2017.09.05

Computer architecture (용어, 상식)

Computer architecture



Compute : datapath + control + memory + input + output


Spatial locality(공간 구역성) : 하나의 기억 장소가 참조되면 그 근처의 기억 장소가 계속 참조되는 경향이 있는 성질


Temporal locality(잠정 구역성) : 최초 참조된 기억 장소가 가까운 미래에도 계속 참조될 가능성이 높음

메모리의 레벨이 높아질수록 프로세서와의 거리는 증가하고 속도는 감소한다.


FLASH : 비휘발성 반도체 저장소, 디스크 보다 빠르다, 작고 저전력, 튼튼하다 비싸다.


Disk Latency = seek time + rotation time + transfer time + controller overhead


Access time = hit time + miss rate x miss penalty


Processormiss가 나면 파이프라인은 중단시킨다.


Replacement policy = 캐쉬는 사이즈 작기 때문에 miss가 많이 발생하기에 사용빈도가 높은 것을 우선순위에 둠


Write policy = cash memory를 조절


Capacity misses : 용량이 작아서 생기는 miss (용량을 키우면 됨)


Associative cashes : miss rate를 줄이는 효과(장점), 오버헤드, 지연(단점)


Block : direct mapped, set associative, fully associative


Block finding : indexing, limited search, full search, separate lookup table


RAID : 하드에 장애 발생시 실시간으로 데이터를 복구0~7레벨

'SW > Computer Architecture' 카테고리의 다른 글

Computer architecture (용어, 상식) 3  (0) 2017.09.05
Computer architecture (용어, 상식) 2  (0) 2017.09.05

'분류 전체보기'에 해당되는 글 125건

1 ··· 7 8 9 10 11 12 13 →