2019의 게시물 표시

[컴퓨터네트워크] TCP의 흐름제어, 혼합제어

이미지
[컴퓨터네트워크] TCP의 흐름제어, 혼합제어 TCP 통신은 네트워크 통신에서 신뢰적인 연결방식입니다. TCP 통신을 할 때, 네트워크 트래픽에 대한 흐름제어와 혼합제어를 정리하겠습니다. 흐름제어 : 송신측과 수신측의 데이터 처리 속도 차이를 해결 하기 위한 기법 -> End to End 혼합제어 : 송신층의 데이터 전달과 네트워크의 데이터 처리 속도 차이를 해결 하기 위한 기법 - > 송신측의 데이터는 지역망이나 인터넷으로 연결된 대형 네트워크를 통해 전달된다. 하지만 이러한 네트워크 상의 라우터가 항상 한가로운 상황은 아니다. Flow Control(흐름제어) 수신측이 송신측보다 빠르면 문제없지만, 송신측의 속도가 빠를 경우 문제가 생깁니다. 수신측에서 제한된 저장옹량을 초과한 이후에 도착하는 데이터는 손실 될 수 있으며 만약 손실 된다면 불필요하게 응답과 데이터 전송이 송/수신 측 간에 빈번히 발생합니다. 따라서 이러한 위험을 줄이기 위해 송신 측의 데이터 전송량을 수신측에 따라 조절해야 합니다. 내부 방식으로 Stop and Wait 방식, Sliding Window 방식이 있습니다. Stop and Wait : 매번 전송한 패킷에 대한 확인응답을 받아야만 그 다음 패킷을 전송하는 방법 Sliding Window : 수신측에서 설정한 윈도우 크기만큼 송신측에서 확인응답 없이 세그먼트를 전송할 수 있게 하여 데이터 흐름을 동적으로 조절하는 제어 기법 동작 방식 : 먼저 윈도우에 포함되는 모든 패킷을 전송하고, 그 패킷들의 전달이 확인되는대로 이 윈도우를 옆으로 옮김(Slide)으로써 그 다음 패킷들을 전송 Window : TCP/IP를 사용하는 모든 호스트들은 보내기 위한것과 받기 위한 2개의 Window를 가지고 있습니다. 호스트들은 실제 데이터를 보내기 전에 먼저 앞에서 포스팅했던 "TCP-3-way-handshaking"을 통해 수신컴퓨터의 rece

[정보보안] 제로데이 공격(Zero Day Attack)이란?

[정보보안] 제로데이 공격(Zero Day Attack)이란? 운영체제(OS)나 네트워크 장비 등 핵심 시스템의 보안 취약점이 발견된 뒤 이를 막을 수 있는 패치가 발표되기도 전에 , 그 취약점을 이용한 악성코드나 바이러스 프로그램을 제작하여 공격을 감행하는 수법이다. 취약점 공격의 신속성을 의미하기도 하며, 대응책이 공식 발표되기도 전에 공격이 이루어지기 때문에 대처 방법이 없다는 위험성을 표현하기도 한다. 이 공격은 바이러스나 스팸의 최초 발생 보고 후 보안업체들의 대응 패치가 나오기까지 시간을 이요한 공격방식으로, 그 과정은 다음과 같다. 새로운 위협이나 바이러스 출현  발생한 위험이나 바이러스에 대한 보고, 분석 새로운 솔루션 개발 새로운 패치와 업데이트된 시그네쳐 배포 유저 시스템에 패치 배포 및 설치 또는 바이러스 데이터베이스 업데이트의 과정 실제 통계 결과에 따르면 제로데이 공격의 지속시간은 300일이 넘고, 전 세계를 상대로 공격하기도 한다. 가장 많이 취약점이 보고되는 소프트웨어는 자바(Java)인데, 자바는 솔직히 지금까지 어떤 버전을 사용하더라도 최약점이 존재한다고 한다. 불안정한게 아니라, 그 많큼 많은 해커들이 노리고 있기 때문이다. 문제는 자바가 설치된 PC는 11억 대가 넘는데 최신 자바를 사용하는 PC는 겨우 17%밖에 안된다고 한다. 출처 https://manimani95.tistory.com/15

[용어 정리] SOLID란?

[용어 정리] SOLID란? 아무리 객체 지향 4대 특성인 캡슐화, 상속, 추상화, 다형성을 잘 한다고 해서 설계를 잘 하는것은 아니다. 물론 4대 특성의 묘미를 잘 살릴수록 설계가 좋다. 하지만 설계 원칙이라는게 엄연히 존재하고, 또 나름 중요하기 때문에 각 원칙의 맨 앞 알파벳만 따와 'SOLID'라고까지 했을까.. SOLID원칙들은 결국 자신 클래스 안에 응집도는 내부적으로 높이고 , 타 클래스들 간 결합도는 낮추는 High Cohesion - Loose Coupling원칙을 객체 지향의 관점에서 도입한 것이다. 결국 모듈 또는 클래스 당 하나의 책임을 주어 더욱더 독립된 모듈(클래스)를 만들기 위함이다. 이렇게 설계된 소프트웨어는 재 사용성이 높아지고, 수정을 최소화 해도 되기 때문에 결국 유지 보수가 용이해진다. 자 그럼 객체 지향 설계 5대 원칙이 각각 무엇인지 알아보자 SRP(Single Responsibility Principle) 단일 책임 원칙 OCP(Open Closed Principle) 개방 폐쇄 원칙 LSP(Liskov Substitution Principle) 리스코프 치환 원칙 ISP(Interface Segregation Principle) 인터페이스 분리 원칙 DIP(Dependency Inversion Principle) 의존 역전 원칙 SRP(단일 책임 원칙) 클래스의 역할과 책임을 너무 많이 주지 마라 즉, 클래스를 설계할 때 어플리케이션의 경계를 정하고, 추상화를 통해 어플리케이션 경계 안에서 필요한 속성과 메서드를 선택 해야 한다. OCP(개방 폐쇄 원칙) 자신의 확장에는 열려 있고, 주변의 변화에 대해서는 닫혀 있어야 한다. LSP(리스코프 치환 원칙) 하위 클래스의 인스턴스는 상위형 객체 참조 변수에 대입해 상위 클래스의 인스턴스 역할을 하는데 문제가 없어야 한다. LSP는 인터페이스와 클래스 관계, 상위 클래스와

[정보보안] PGP(Pretty Good Privacy)란?

이미지
[정보보안] PGP(Pretty Good Privacy)란? 온라인 통신 시스템의 개인 정보 보호, 보안 및 인증 서비스를 제공하도록 설계된 암호화 소프트웨어 PGP는 공개 키 암호 방식 을 구현하기 위해 널리 사용되는 최초의 소프트웨어 중 하나입니다. 이 시스템은 대칭 암호화 와 비대칭 암호화 를 모두 사용해 높은 수준의 보안을 가능하게 하는 하이브리드 암호화 시스템입니다. 문자 암호화의 기본 과정에서, 평문(분명하게 이해될 수 있는 데이터)은 암호화(읽을 수 없는 데이터)로 전환됩니다. 그러나 암호화 과정 이전에, 대부분의 PGP 시스템은 데이터 압축 을 진행합니다. PGP는 평문 파일을 전송하기 전에 압축함으로써, 저장 공간과 전송 시간을 절약하는 동시에 보안을 강화합니다. 파일을 압축한 다음에는, 실제 암호화 과정이 진행 됩니다. 이 단계에서 압축된 평문 파일은 단일 사용키로 암호화되며, 이는 세션 키로 알려져 있습니다. 해당 키는 대칭 암호 방식을 통해 임의로 생성되며, 각 PGP 통신 세션은 고유한 세션 키를 갖고 있습니다. 다음으로 세션 키(1)는 비대칭 암호화 를 통해 자체 암호화됩니다. 예정된 수신자(밥)는 그의 공개 키(2) 를 메시지의 전송자(엘리스)에게 제공하고, 이를 통해 그녀는 세션 키 를 암호화 할 수 있습니다. 이 과정은 보안 환경에 상관없이 인터넷을 통해 앨리스가 안전하게 밥과 세션 키 를 공유할 수 있게 합니다. 세션 키의 비대칭 암호화는 보통 RSA 알고리즘을 통해 이뤄집니다. 인터넷 보안의 많은 부분을 차지하고 있는 TLS(Transport Layer Security) 프로토콜을 포함해서 많은 암호화 시스템이 RSA를 사용합니다. 메시지의 암호문과 암호화된 세션키가 전송된 다음, 밥은 자신의 개인 키(3) 를 사용해 세션 키를 해독할 수 있으며, 이는 암호문을 본래의 평문으로 해독하는데 사용됩니다. PGP는 암호화와 해독이라는 기본적인 처리 외에도 디지털 서명도 지원하고 있으며, 이

[컴퓨터네트워크] SNMP(Simple Network Management Protocol)란?

이미지
[컴퓨터네트워크] SNMP(Simple Network Management Protocol)란? 네트워크 관리를 위한 규약 SNMP가 쓰이기 전에는 ICMP에 의존했었다. ICMP  Network계층의 프로토콜, 운영체제에 관계 없이 상용할 수 있는 간단한 프로토콜 네트워크로 연결된 각각의 호스트가 작동되고 있는지, 작동한다면 어느정도의 응답시간을 가지고 동작중인지 체크 가능. 초기에는 이정도로도 필요한 네트워크 관리가 가능했었다. ICMP를 이용한 대표 도구 -> ping but)인터넷 사용이 보편화되고 네트워크에 연결된 호스트의 수가 증가하고 네트워크 구성 또한 복잡해지면서, ICMP만으로는 네트워크 관리를 효율적으로 할 수 없게 됨. 그래서 몇가지 프로토콜에 대한 연구가 진행 -> SGMP, HIMS, CMIP/CMIS 등이 제안 => 이 중 SGMP를 발전시킨 SNMP가 사실상 네트워크 관리를 위한 표준적인 프로토콜로 자리잡음 현재 SNMP는 거의 대부분 운영체제에서 사용되고 있다. 리눅스/유닉스/윈도우계열 OS는 기본적으로 SNMP 프로토콜을 사용하는 도구를 제공하고 있다. SNMP는 OSI 7계층의 Application 계층 프로토콜 이며, 메시지는 단순히 요쳥과 응답 형식의 프로토콜에 의해 교환되기 때문에 전송계층 프로토콜로 UDP 프로토콜을 사용한다. SNMP의 기능 네트워크 구성관리 네트워크 상의 호스트들이 어떠한 구조를 이루고 있는지 지도를 그릴 수 있다. 성능관리 각 네트워크 세그먼트(소규모 네트워크)간의 네트워크 사용량/에러량/처리속도/응답시간 등 성능분석에 필요한 통계정보를 얻을 수 있다. 장비관리 SNMP의 주 목적이 네트워크관리이지만, 특유의 유연한 확장성으로 시스템정보(CPU/Memory/disk 사용량)를 얻을 수 있도록 확장되었다. 이 정보는 네트워크 문제를 해결하는데 큰 도움이 된다. ex) 세그먼트의 네트워크 사용량이 급증했는데, 특정 호스트의

[전자계산기구조] 연관메모리

[전자계산기구조] 연관메모리 =연관 기억장치(Associative Memory) CPU가 찾고자하는 주기억장치 메모리가 캐시 메모리 어디에 있는지 빠르게 검색할 수 있게 사용하는 메모리 CAM(Content Addressable Memory)라고 부릅니다. 매핑 테이블을 사용합니다. 외부 인자와 내용을 비교하기 위한 병렬 판독 회로가 필요 하여 추가적인 비용을 요구합니다. 연관기억장치는 기억장치에서 자료를 찾을 때 주소에 의해 접근하지 않고, 기억된 내용의 일부를 이용하여 Access할 수 있는 기억장치 특징 주소에 의해서만 접근이 가능한 기억장치보다 정보 검색이 신속하다. 캐시 메모리나 가상 메모리 관리 기법에서 사용하는 Mapping Table에 사용된다. 외부의 인자와 내용을 비교하기 위한 병렬 판독 논리회로를 갖고 있기 때문에 하드웨어 비용이 증가한다. 출처 http://ehpub.co.kr/tag/%EC%97%B0%EA%B4%80-%EB%A9%94%EB%AA%A8%EB%A6%AC/ https://devkim93.tistory.com/entry/%EC%97%B0%EA%B4%80%EA%B8%B0%EC%96%B5%EC%9E%A5%EC%B9%98-%EB%B3%B5%EC%88%98-%EB%AA%A8%EB%93%88-%EA%B8%B0%EC%96%B5%EC%9E%A5%EC%B9%98

[Database] OLAP란?

[Database] OLAP란? OLAP(Online Analytical Processing)은 대용량 업무 데이터베이스를 구성하고 BI(Business Intelligence)를 지원하기 위해 사용되는 기술 데이터 웨어하우스나 데이터 마트와 같은 대규모 데이터에 대해 최종 사용자 가 정보에 직접 접근하여 대화식으로 정보를 분석 하고 의사결정에 활용할 수 있는 실시간 분석 처리 OLAP 특징 다차원성 사용자들이 실제적인 차원에서 정보를 분석 직접 접근 최종사용자들이 전산부서와 같은 정보 매개자를 거치지 않고 자신이 원하는 정보에 직접 접근 대화식 분석 시스템과 상호작용을 통해 정보를 분석하고 원하는 정보를 얻을 때까지 계속해서 분석을 수행함(Drilling) 의사 결정용 기업의 전략적 방향설정 및 의사결정에 활용 OLAP 분석 방법 여러 차원들을 따라 측정치들에 대한 빠른 접근과 강력한 계산 기능 필요 Drill Down 큰(요약된) 범위 -> 작은(상세) 범위 광역 -> 시도 -> 구 -> 동 -> 번지 Roll Up 작은(상세) 범위 -> 큰(요약된) 범위 번지 -> 동 -> 구 -> 시도 -> 광역 Pivot/Rotating 보고서의 행, 열, 페이지 차원을 무작위로 바꾸어 볼 수 있는 기능 분석 데이터의 축을 바꾸는 것 Slicing 한 차원의 멤버나 그 이상의 멤버를 가지고 한 값을 선택했을 때 나타나는 그 부분의 집합을 말한다. 큐브 자르기 Dice 특정 항목에 대해 Rotation, Drill Down, Roll Up 등을 이용하여 대화식으로 화면을 디스플레이 해가며 분석하는 프로세스 큐브 잘라서 서브 큐브 만들기 출처 https://goodgid.github.io/What-is-OLAP/

[전자계산기구조] 마이크로오퍼레이션

이미지
[전자계산기구조] 마이크로오퍼레이션 마이크로 오퍼레이션(Micro Operation) Instruction을 수행하기 위해 CPU내의 레지스터와 플래그가 의미 있는 상태 변환을 하도록 하는 동작 CPU의 하나의 Clock Pulse동안 실행되는 레지스터에 저장된 데이터에 의한 기본 동작 시프트(Shift), 로드(load) 등이 있다. 한 개의 마이크로 연산 수행시간을 마이크로 사이클 타임이라 부르며 CPU 속도를 나타내는 척도로 사용된다. 제어장치에서 발생하는 제어신호에 의해 Micro Operation의 순서가 결정 여러 단계의 Micro Operation을 통해 하나의 Instruction(마이크로 명령)을 수행 마이크로 사이클 타임 동기 고정식 제어기 구현이 단순함 동기 가변식 제어기 구현이 복잡함 CPU의 시간 낭비 보완 동작 시간이 유사한 Micro Operation들 끼리 그룹을 만들어 그룹별 Micro Cycle Time 정의 각 그룹간 Micro Cycle Time의 동기를 맞추기 위해 Micro Cycle Time을 정수배가 되게 함 비동기식 제어기 매우 복잡(거의 사용되지 않음) CPU의 시간 낭비가 거의 없음 모든 Micro Operation에 대하여 서로 다른 Micro Cycle Time을 설정 마이크로프로세서 = CPU 하나의 프로그램은 여러개의 마이크로오퍼레이션(OP)로 구성된다. 마이크로 오퍼레이션이 모여서 사이클을 만든다. 여러 클럭 펄스동안 하나의 명령어가 처리 됨. 3GHz = 1초에 30억번 진동을 함 출처 https://www.youtube.com/watch?v=EpycIp-R7CU https://m.blog.naver.com/PostView.nhn?blogId=fishmanys&logNo=220372746372&proxyReferer=https%3A%2F%2Fwww.google.com%2F

[금융지식] 금리 인상 & 금리 인하

[금융지식] 금리 인상 & 금리 인하 금리(Interest rate) = 돈의 가치 금리 인상 -> 돈의 가치를 올린다. 금리 인하 -> 돈의 가치를 내린다. 환율 -> 그 돈의 가치 달러 환율 -> 달러의 가치 달러의 환율이 올랐다 -> 활러의 가치가 올랐다. 원달러환율 -> 원화 대비 달러의 가치 원달러환율이 내려갔다 -> 원화 대비 달러의 가치가 내려갔다. 미국 금리 인상 -> 미국달러의 가치 상승 -> 출처 https://www.youtube.com/watch?v=pn3wQg3BwP0 https://www.youtube.com/watch?v=HaA5dRIO2YI

[금융지식] 증권 & 주식 & 채권 & 어음 & ELS & 신탁 & 랩 & P2P 대출

이미지
[금융지식] 증권 & 주식 & 채권 & 어음 & ELS & 신탁 & 랩 & P2P 대출 증권 소유자나 채권자의 소유권을 나타내는 '증서' 재산권을 표시하는 증서 대부분은 종이로 되어 있고, 요즘은 전자 증권도 있습니다. 예전에는 '장롱에서 증권을 발견했는데, 주식이 크게 올라 떼부자가 되었다'라는 신문 기사도 이따금씩 볼 수 있었습니다. 반대로 주식이 휴지조각이 되었다는 표현도 많이 사용합니다. 증권 자체가 재산권으로 인식되고 주식이나 채권 뿐만 아니라 상품권이나 기업의 어음, 보험증서, 수표 등을 포함하는 큰 범위입니다. 주식 증권의 일종 입니다. 즉 증권이 주식을 포함하는 개념으로 생각하면 좋은데, 주식은 주식회사가 자금을 조달할 때 발행하는 증서 이고, 주권이라고 부르기도 합니다. 쉽게 말해 내가 번 돈을 내고 받는 증서로, 이 증서는 전자증권 형태로 눈에 보이지는 않습니다. 주식을 보유하고 있다면 회사에 경영권을 행사할 수 있고, 배당을 받을 권리가 생기며, 회사가 파산했을 때 남은 재산을 분배받을 수 있는 권리도 있습니다. 이 외에도 대표의 소송 제기권이나 불법행위를 중지할 수 있는 유지 청구권, 주주총회 소집권 등을 가질 수 있습니다. 정리하자면 증권은 주식의 상위 개념이고 조금 더 포괄적인 의미 를 가진다고 볼 수 있습니다. 주식은 증권의 한 종류로, 증권의 하위개념입니다. 채권 정부, 특수법인, 공공기관, 은행 등과 같은 기업 이 거액의 자금을 일시에 대어주기 위해 발행하는 차용증서입니다. 제가 A에게 돈을 빌려줄 때 차용증을 쓰는 것처럼 정부, 기업 등이 돈을 빌릴 때 쓴느것이 채권입니다. 구성 액면 가격(빌려준 가격) ex) 100만원 채권 이자(빌려준 대가)  ex) 연 5% 채권 가격(거래 가격) ex) 10300 채권 = 빚문서 이자율과 기존 채권가격은 반대이

[전자계산기구조] 주소지정방식

이미지
[전자계산기구조] 주소지정방식 유효주소 (Effective Address) 데이터가 저장된 기억장치의 실제주를 유효주소라 한다. 주어진 주소지정방식에 의해 얻어진 데이터의 기억장치 주소를 가르킨다. 직접 주소 지정 방식 (Direct Address Mode) 명령어의 주소 필드의 내용이 유효 주소가 되는 방식이다. 데이터의 인출을 위해 기억장치를 한번만 접근 하나, 지정할 수 있는 기억장치 주소 공간이 제한적이다. 단, 레지스터 접근 방식보다는 느리다. 간접 주소 지정 방식 (Indirect Address Mode) 명령어의 주소 필드에 유효주소의 주소가 저장되어 있는 방식이다. 두 번의 기억장치 접근이 필요 하며 기억장치를 임의로 사용한다거나 프로그램상의 융통성을 발휘할 수 있다. 실제 데이터를 가져오기 위해서는 메모리를 2번 이상 참조해야 한다. 명령어의 주소(operand) 부분에 레지스터의 주소가 들어 있다. 직접 주소 방식보다 속도가 느리다. 명령어 내의 오퍼랜드부에 실제 데이터가 저장된 장소의 번지를 가진 기억장소의 번지를 표현함으로써, 명령의 주소필드 길이가 짧고 제한되어 있어도 긴 주소에 접근 가능한 방식이다. 주소지정 방식 중 데이터를 읽어올 때 참조횟수가 가장 많은 방법이다. 묵시적 주소 지정 방식 (Implied Mode) 명령어를 실행하는데 필요한 데이터의 위치가 지정되어 있지 않고, 명령어의 정의에 의해 정해져 있는 방식 이다. 누산기를 사용하는 1 주소 명령이나, 스택 구조의 컴퓨터에서의 무주소 명령어도 묵시적 주소 방식에 해당한다. 즉시 주소 지정 방식 (Immediate Mode) 명령어의 주소 필드에 데이터가 들어있으며, 상수의 정의나 변수 값의 초기화에 편리하다. 데이터를 얻기 위한 기억장치 접근이 필요 없으므로  명령어 사이클에서 한 개의 기억장치 접근 사이클을 줄일 수 있으나, 사용할 수 있는 수의 크기가 주소 필

[전자계산기구조] 플립플롭이란?

이미지
[전자계산기구조] 플립플롭이란? 플립플롭 회로 기억 소자 = 플립플롭 플립플롭은 전원이 공급되고 있는 한, 상태의 변화를 위한 신호가 발생할 때까지 현재의 상태를 그대로 유지하는 논리회로 => 기억 기능 을 가지고  있다. 한(1) 비트를 기억하는 메모리 소자 이며 레지스터 구성회로로 널리 사용되고 있다. 플립플롭에 전류가 부가되면 현재의 반대 상태로 변하며 (0에서 1로 or 1에서 0으로), 그 상태를 계속 유지하므로 한 비트의 정보를 저장할 수 있는 능력을 가지고 있다. 여러개의 트랜지스터로 만들어지며, SRAM이나 하드웨어 레지스터 등을 구성하는데 사용한다. 종류는 RS플립플롭, D플립플롭, JK플립플롭, T플립플롭 등 여러 종류가 있다. RS 플립플롭(NOR 게이트)<- 사실은 래치 R에 1을 넣으면 -> Q(출력) 0 S에 1을 넣으면 -> Q(출력) 1 RS 플립플롭(NAND 게이트) <- 사실은 래치 R에 1을 넣으면 -> Q는 1 S에 1을 넣으면 -> Q는 0 클럭형 RS 플립플롭 <- 진짜 플립플롭 JK 플립플롭 RS 플립플롭에서 S=R=1일때 동작되지 않는 결점을 보완한 플립플롭 RS의 플립플롭 입력선 S와 R을 J와 K의 입력선으로 사용 SR 플립플롭의 단점을 보완하기 위해서 Q, Q'를 입력으로 피드백 시킴 D 플립플롭 JK 플립플롭에서 J값을 그대로 가져옴 T 플립플롭 JK 플립플롭에서 00과 11을 가져옴 마스터 슬레이브 플립플롭 출력 측의 일부 신호가 입력 측에 궤환되어 유발되는 레이스 현상 을 방지하기 위하여 고안된 플립플롭 레이스 현상 : 신호가 늘어지는 경우. 오동작이 발생가능  마스터 FF -> 상승엣지에서 발동 슬레브 FF -> 하강엣지에서

[용어 정리] 하드링크 & 심볼릭링크 차이

이미지
[용어 정리] 하드 링크 & 심볼릭 링크 차이 원본 파일로 하드 링크 를 만들면, 하드 링크는 원본 파일과 동일한 inode를 직접적으로 가리킨다. 따라서 원본 파일이 사라지더라도 데이터만 살아 있으면 원본 파일에 접근이 가능하다. 하지만 심볼릭 링크(소프트 링크) 의 경우는 만들게 되면 또 다른 inode를 생성해서 이를 바라본다. 복사 생성된 inode는 포인터를 가리키고, 포인터는 다시 원본 파일을 가리킨다. 따라서 특정 데이터에 접근할 때, 심볼릭 링크를 통해 접근할 경우 다시 원본 파일을 거치게 된다. 때문에 원본 파일이 사라질 경우 해당 데이터에 접근할 수 없다. 리눅스 inode 리눅스에는 inode라는 개념이 있다. 이는 리눅스(유닉스) 파일 시스템에서 사용되는 자료 구조이다. inode 파일 혹은 디렉터리의 각종 정보들을 담고 있다. 모든 파일과 디렉터리는 한개씩 inode를 가지고 있으며 여기에는 해당 파일의 허가권, 소유권, 파일의 실제 위치 등 중요한 정보들이 들어있다. inode가 모여 있는 공간을 inode block이라고 한다. inode block이 차지하는 공간은 매우 작으며, 실제 데이터가 저장되는 block이 디스크의 대부분을 차지한다.  inode는 우편번호 역할을 한다고 볼 수 있다. 리눅스 링크 명령어 ln 링크를 생성하는 명령어는 ln이다. 기본적으로 ln 명령어만 사용할 경우, 하드링크를 생성한다. 심볼릭 링크(소프트링크)를 생성하기 위해서는 -s 옵션을 줘서 "ln -s 대상파일"과 같은 식으로 실행한다. 출처 https://www.leafcats.com/141

[C언어] 댕글링 포인터(dangling pointer)

[C언어] 댕글링 포인터(dangling pointer) 댕글링 포인터 (dangling pointer) 현수 포인터, 고아 포인터 등 동적 할당(힙 할당)에서 메모리가 해제 된 곳을 가리키고 있는 포인터 댕글링 포인터란, 이미 메모리에서 해제된 대상을 가리키고 있는 포인터를 말함 발생되는 원인은 동적으로 할당 받은 메모리가 해제되었는데도 포인터 변수가 해제된 메모리 주소를 가지고 있기 때문이다. 이를 방지하기 위해서는 메모리 해제 이후에 반드시 포인터 변수에 NULL값으로 초기화 해준다. 동적 할당 : 힙 영역에 변수를 할당하는 일 힙 영역 : c언어의 메모리 분할 영역 중 하나로 사용자가 직접 변수를 할당/삭제를 관리하는 영역 발생하는 이유   동적 할당된 포인터를 free함수로 해제한 후에도 포인터는 삭제되지 않고 계속 남아있기 때문에 ex)  char* ptr = (char*)malloc(sizeof(char)*5); //힙 할당 ... //ptr 포인터의 사용 free(ptr); //메모리 해제 위의 예에서 free함수에 의해 ptr이 가리키는 메모리는 해제되었지만, ptr은 삭제되지 않고 그대로 메모리가 해제된 지역을 가리킨다. 여기서 ptr은 댕글링 포인터가 된다. 발생하는 문제 만약 실수로 댕글링 포인터를 사용하면 심각한 오류가 발생해 전체적인 프로그래밍 진행에 오류가 남 해결법 동적할당된 포인터 ptr을 매개변수로 받는다. ptr이 NULL 포인터인지 아닌지 검사한다. ptr이 가리키는 힙 메모리를 해제한다. ptr에 NULL을 대입한다. #define FREE(ptr) if(ptr) { free(ptr); ptr =NULL;} // 안전한 메모리 해제를 위한 매크로 함수 출처 https://m.blog.naver.com/PostView.nhn?blogId=ws6263&logNo=100198933152&proxy

[AI] 퍼셉트론이란?

이미지
[AI] 퍼셉트론이란? 퍼셉트론은 신경망(딥러닝)의 기원이 되는 알고리즘이다. 퍼셉트론은 다수의 신호(흐름이 있는)를 입력받아 하나의 신호를 출력한다. 퍼셉트론은 이 신호를 입력받아 '흐른다/안 흐른다'(1 or 0)이라는 정보를 앞으로 전달한다. x1과 x2는 입력 신호, y는 출력 신호, w1과 w2는 가중치(weight)를 의미한다. 원을 뉴런 or 노드라고 부른다. 입력 신호가 뉴런에 보내질 때는 각각 고유한 가중치가 곱해진다(w1x1, w2x2) 뉴런에서 전달받은 신호의 총합이 임계값(세타)를 넘을 때만 1을 출력한다. 퍼셉트론은 복수의 입력 신호 각각에 고유한 가중치를 부여한다. 가중치는 각 신호가 결과에 주는 영향력을 조절하는 요소로 작용하며, 가중치가 클수록 해당 신호가 그만큼 더 중요함을 뜻한다. 퍼셉트론의 한계 단층 퍼셉트론은 AND, NAND, OR 게이트는 구현 가능하지만, XOR 게이트는 구현할 수 없다. 퍼셉트론은 아래와 같이 직선으로 나뉜 두 영역을 만든다. 하지만 XOR은 직선으로 두 영역을 나눌 수 없다. 다층 퍼셉트론 단층 퍼셉트론으로는 XOR을 구현할 수 없지만, 다층 퍼셉트론으로는 XOR 게이트를 구현할 수 있다. 먼저, 아래의 그림처럼 입력값 x1, x2를 각각 NAND와 OR 게이트에 보낸다음, 그 결과 값들을 AND 게이트에 보내면 XOR 게이트를 구현할 수 있다. 출처 https://excelsior-cjh.tistory.com/169

[용어 정리] HTML5란?

[용어 정리] HTML5란? 대부분 알고 있듯이 웹을 지탱하는 핵심 기술은 HTML 입니다. 그리고 모바일 웹에서 핵심 기술을 뽑으라면 단연 HTML5 입니다. 흔히 HTML5에 폭발적인 관심을 불러일으킨 데에는 플래시(Flash)와 관련된 스티브 잡스의 발언이 그 출발이라는 것에 공통된 의견을 모읍니다. HTML5 는 HTML의 새로운 버전으로 Client Side Technology 기술의 중심이 되는 마크업 언어입니다. 가장 특징적인 것은 기존의 웹 문서에서는 HTML만으로 웹 서비스를 구성하는 것이 불가능하였지만 HTML5로 넘어오면서 클라이언트와 서버와의 통신이 가능하며 이에 대한 부가 기능을 제공함으로써 다른 외부 Active-X와 같은 플러그인을 사용하지 않고도 웹 서비스를 제공 할 수 있을 정도로 많은 기농이 추가되었습니다. HTML5는 Client Side Technology를 강력하게 지원하는 단순 표현 HTML을 그 이상의 의미를 가지도록 더 높은 차원으로 발전시킨 기술입니다. 즉, 기존의 HTML은 HTML 4.0이후에도 W3C에 의해서 HTML 4.01, XHTML 1.0, 1.1, 2.0 등으로 발전해 왔지만 이런 그동안의 HTML에서의 한계를 극복하기 위해서 HTML5가 탄생하게 된 것입니다. HTML5의 등장으로 CSS3, 자바스크립트 API를 통한 기능의 확장과 결합을 통해 기존의 HTML 이상의 의미를 부여하게 되었고, 기존의 Active-X와 같은 플러그인인 외부 기술에 의존했던 것을 걷어냄으로서 웹표준, 웹접근성을 한층 높여놓고 있습니다. 그리고 국내에서도 최근에 정부나 대기업에서도 액티브엑스의 과도한 사용을 자제하고 웹 표준을 권장하는 움직임을 보이고 있습니다. 특히 은행에서는 액티브엑스의 설치 없이 다른 웹브라우저에서도 인터넷 금융 서비스를 사용할 수 있는 이른바 '오픈뱅킹'을 적극적으로 도입하는 추세입니다. 새

[용어 정리] MPEG란?

[용어 정리] MPEG란? 초고속 통신망을 통한 멀티미디어 사용이 급증함에 따라 초미의 관심이 대상되고 있는것이 바로 멀티미디어를 압축하는 것, 그리고 이를 효과적으로 End User까지 전하는 것 이다. 이 가운데 멀티미디어 관련 표준의 대명사로 불리우는 MPEG를 살펴보자 MPEG란? MPEG는 Moving Picture Experts Group의 약자로 원래 국제 표준화기구(ISO)와 국제 전기기술 위원회(IEC)가 정보 표현 표준화를 위해 구성한 공동위원회 산하 워킹그룹의 별칭이었는데 이것이 마치 하나의 일반 명사처럼 인식되고 있기도 하다. MPEG 현황 MPEG 1 저장기술 CD-ROM과 같은 디지털 저장 매체에 동영상 및 오디오를 저장하는 고압축 기술 1.5Mbps 이 규격으로 상품화된 것이 비디오 CD와 CD-I/FMV이다. MPEG 2 압축기술 DTV, HDTV등과 같이 방송용으로 사용하기 위한 고화질 동영상 및 오디오 압축 기술 3~10Mbps MPEG 3 MPEG 2에 흡수 통합되어 규격으로는 존재하지 않는다. MPEG 4 압축기술 Low Bit Rate인 PSTN이나 이동통신 전화에 응용하기 위한 압축으로 멀티미디어 응용제품 전반에 걸쳐 사용 가능한 압축 기술 ~64Kbps MPEG 7 멀티미디어 정보 검색기능 차세대 인터넷 언어인 XML을 이용하여 컨텐츠를 구현하며, BiM이라 명명된 압축방법을 제공 색상이나 물체의 모양에 관한 정보를 입력하는 것만으로 웹에서 필요로 하는 멀티미디어 자료를 찾을 수 있는 기술이다. MPEG 21 멀티미디어 프레임 워크 중심 디지털 콘텐츠의 제작 및 유통, 보안 등의 모든 과정을 관리하는 기술 출처 https://m.blog.naver.com/PostView.nhn?blogId=jangsame18&logNo=50012197194&proxyReferer=https%3A%2F%2Fwww.google.co

[용어 정리] 클러스터링 컴퓨팅 & 그리드 컴퓨팅

[용어 정리] 클러스터링 컴퓨팅 & 그리드 컴퓨팅 클러스터링 컴퓨팅 LAN 으로 연결된 고속의 근거리 통신망으로 연결된 여러개의 컴퓨터를 이용하여 하나의 컴퓨터처럼 동작하는 시스템 여러개의 컴퓨터를 이용해 하나의 고사양 시스템을 이룸 그리드 컴퓨팅 WAN 으로 연결된 원거리 컴퓨터들을 하나의 시스템으로 묶어 고도의 연산처리 작업등을 처리하는 컴퓨팅 기술 인터넷상에서 사용하지 않은 시간대의 연결된 수많은 컴퓨터를 하나의 고성능 컴퓨터처럼 활용할 수 있는 기술 분산 컴퓨팅이라고도 한다. 고도의 연산처리를 위해 네트워크로 여러개의 컴퓨터를 연결하는 기술 인터넷상 ex) peer to peer PC, 워크스테이션, 서버 등과 같은 다양한 컴퓨터들의 네트워크  문제를 여러 조각으로 나누어 개별 컴퓨터에 분할하여 처리하도록 해준다. 크고 복잡한 계산을 할 수 있게 해준다. 컴퓨터를 추가하거나 제거하여 쉽게 규모를 조절할 수 있다. 유비쿼터스 컴퓨팅 신은 어디에나 널리 존재한다는 의미인 유비쿼터스 언제 어디서든 어떤 기기를 통해서도 컴퓨팅 할 수 있다는 것을 의미 ex) 세탁기, 귀걸이, 가스, 조명, 손목시계 등등 출처 https://galid1.tistory.com/187 https://www.sciencetimes.co.kr/?news=%EC%9C%A0%EB%B9%84%EC%BF%BC%ED%84%B0%EC%8A%A4-%EC%BB%B4%ED%93%A8%ED%84%B0-%ED%98%81%EB%AA%85-%EC%9C%A0%EB%B9%84%EC%BF%BC%ED%84%B0%EC%8A%A4-%EC%BB%B4%ED%93%A8%ED%8C%85%EC%9D%98-%EC%96%B4%EC%A0%9C

[전자계산기구조] VLIW(Very Long Instruction Word)

이미지
[전자계산기구조] VLIW(Very Long Instruction Word) 프로세서 내에 파이프라인된 기능 유니트를 여러 개 포함시켜 매 사이클마다 한 개 이상 명령어를 동시에 처리할 수 있다. 하나의 명령어 형식에 다수의 연산코드를 포함시켜 여러 개의 기능 유니트에서 연산들을 동시에 실행한다. 여러 opcode 필드가 있는 긴 명령어 하나에 독립적인 연산 여러개를 정의하고 이들을 한꺼번에 내보내는 명령어이다. VLIW는 컴파일러 단에서 명령어의 배치가 이루어지는 방식이기 때문에, 슈퍼 스칼라 등의 다른 병렬연산을 위한 방식과는 달리 하드웨어 단에서 명령어 스케줄링을 하지 않는다. 때문에 회로를 단순하게 개발 하는 것이 가능해지며, 프로세서에서 해당 분야를 처리하지 않아도 되므로 회로 활용 효율이 상승한다. 또한 지정된 하드웨어 내에서 컴파일 시 하드웨어의 잔여부분을 최대한 추적하여 명령어 워드를 만들기 때문에 휴지 상태로 전력을 소모하는 잉여 회로가 감소하게 되어 회로 전체적 활용도가 높아지게 된다. 때문에 VLIW 구조의 프로세서는 대체적으로 프로세서 크기가 상대적으로 작으며 작동시 잉여 유니트가 거의 없는것 이 특색이다. 출처 https://blog.naver.com/PostView.nhn?blogId=padagi20&logNo=220964454857&parentCategoryNo=&categoryNo=22&viewDate=&isShowPopularPosts=true&from=search

[전자계산기구조] Flynn의 병렬컴퓨터 분류방식(SISD ,SIMD, MISD, MIMD)

이미지
[전자계산기구조] Flynn의 병렬컴퓨터 분류방식(SISD ,SIMD, MISD, MIMD) SSID(Single Instruction Single Data Stream) 단일 제어장치(Single Instruction) + 한 CPU가 처리(Single Data Stream) 제어장치(명령어를 주는 신호)와 프로세서를 각각 하나씩 갖는 구조 한 번에 한 개씩의 명령어와 데이터를 처리하는 단일 프로세서 시스템 명령어가 순서대로 실행 되지만 실행과정은 여러 개의 단계들로 나누어 중첩시켜 실행 속도를 높이도록 파이프라인으로 되어있는것이 보통 파이프라인 기법(시간적 병렬 프로세서 구조) 에 응용된다. =수직적 SIMD(Single Instruction Multiple Data Stream) 단일 제어장치 (Single Instruction) + 여러개의 CPU가 처리(Multiple Data Stream) 배열 프로세서 와 파이프라인이 이 분류에 속함 여러개의 프로세서들이 구성되고, 프로세서들의 동작은 모두 하나의 제어장치에 의해 제어 모든 프로세서들은 제어장치로부터 동일한 명령어를 받지만 명령어 실행 과정에서 서로 다른 데이터들을 사용 모든 프로세서들이 기억장치를 공유하는 경우도 있고, 각 프로세서가 기억 장치 모듈을 따로 가지고 분산 기억장치 구조도 있음 MISD(Multiple Instruction Single Data Stream) 다중  제어장치 (Multiple Instruction) + 하나의 CPU가 처리(Single Data Stream) 여러 개의 제어장치와 프로세서를 갖는 구조 각 프로세서들은 서로 다른 명령어들을 실행하지만 처리하는 데이터는 하나의 스트림 MIMD(Multiple Instruction Multiple Data Stream) 다중  제어장치 (Multiple Instruction) + 여러개 CPU가 처리(Multiple Data Stream) 대부분

[전자계산기구조] 명령어 파이프라인

이미지
[전자계산기구조] 명령어 파이프라인 컴퓨터에 있어서 파이프라인(pipeline)구조는 CPU의 처리속도를 향상시키기 위한 방법 중의 하나로서, CPU의 내부 하드웨어를 여러 단계로 나누어 처리하는 기술이다.  벡터 프로세싱을 공간적인 병렬성이라 하면, 파이프라인은 시간적인 병렬성을 추구 한 번에 하나의 명령어만 실행하는 것이 아니라 하나의 명령어가 실행되는 도중에 다른 명령어의 실행을 시작하는 방법 으로 동시에 여러 개의 명령어를 실행한다. 프로세서 하나를 서로 다른 기능을 가진 여러 개의 서브 프로세서로 나누어, 각 서브 프로세서가 동시에 서로 다른 데이터를 처리하는 과정이다. 명령어당 수행 사이클(CPI)를 1에 가깝도록 하여, CPU의 성능을 향상시키는 기법 파이프라이닝을 사용하는 CPU의 각 파이프라인 단계는 서로 다른 하드웨어 자원을 사용한다. 각 서브 프로세서의 작업을 단계(stage)라 하며 단계 수 만큼의 속도 향상을 목표로 하지만 파이프라인 해저드로 인해 실제는 단계 수 만큼의 속도 향상은 불가능하다. ex) 4개의 파이프라인 스테이지를 갖는 CPU의 성능 향상은 최대 4배이다. 전체 워크로드(workload)에 대해 일정시간에 처리할 수 있는 처리량(throughput)을 향상시킬 수 있다. 가장 느린 파이프라이닝 단계에 의해 전체 시스템 성능 향상이 제약을 받는다. 하나의 명령어를 수행하는 데 여러 클럭(clock) 사이클이 필요하다. 명령어 파이프라이닝 4단계 명령어 인출(IF : Instruction Fetch) 명령어 해독(ID : Instruction Decode) 주소부 인출(OF : Operand Fetch) 실행(EX : Execute) 명령어 파이프라인의 최대 효율 저하 원인 오퍼랜드를 인출할 필요가 없는 명령어도 파이프라인의 모든 단계를 거쳐야 한다. 4단계 파이프라이닝에서, 다른 명령어의 IF(명령 인출) 단계와 OF(주소부 인출) 단