본문 바로가기

전체 글

(34)
[C언어] Tetris(테트리스) 게임 구현 C언어기반의 Tetris 게임을 구현했습니다. 기초 명세부터 잡기보다는 https://blog.naver.com/azure0777/220295388741([출처] [C언어 게임 만들기] 테트리스 게임 (Tetris)|작성자 azure0777) 참고해 부분 수정했습니다. JAVA로 공부하다 업무상 C언어를 주언어로 해 테스트겸 구현해 보았습니다. 포인터가 익숙하지 않아 구조체 반환형식으로 했는데 효율성 좋은 코드인지는 잘 모르겠네요,, 사진 코드 #include//표준 입출력 함수 헤더 #include//표준 유틸리티 함수 헤더 #include//윈도우 응용프로그램 헤더 #include//시간 관련 함수 헤더 #include//콘솔 입출력 함수 헤더 #define SIZE_X 11//게임 창 가로 크기 #..
하둡(Hadoop) Hadoop(High-Availability Distributed Object-Oriented Platfrom) 도입 배경 - 대용량 데이터의 관리 및 분석에 적합한 시스템 - 적은 초기 구축비용으로 도입 가능 - 데이터 증가에 따른 확장 용이 정의 - PC급 컴퓨터들로 가상화된 대형 스토리지를 형성하고 그 안에 보관된 거대한 데이터 세트를 병렬로 처리할 수 있도록 개발된 자바 소프트웨어 프레임워크 - 오픈 소스 기반 분산 컴퓨팅 플랫폼으로, 라이선스 비용이 불필요하고, 초기에 작은 클러스터를 구성하여 운영 가능 - 수천대의 분산된 장비에 대용량 파일을 저장할 수 있는 기능을 제공하는 분산파일 시스템(HDFS)과, 저장된 파일을 분산된 서버의 CPU와 메모리 자원을 이용하여 빠르게 분석하는 맵리듀스(Ma..
OWASP Top 10 2017 OWASP(The Open Web Application Security Project) OWASP는 오픈소스 웹 어플리케이션 보안 프로젝트이다. 웹에 관한 정보노출, 악성 파일 및 스크립트, 보안 취약점 등을 연구하며, 10대 웹 어플리케이션 취약점(OWASP TOP 10)을 발표한다. A1. Injection (인젝션) SQL, OS, XXE, LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 발생한다. 공격자의 악의적인 데이터는 예기치 않은 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있다. 공격 시나리오 시나리오 #1 애플리케이션은 다음과 같은 취약한 SQL 호출구조에서 신뢰되지 않은 데이터를 사용합니다. Str..
통신 방식과 이더넷(Ethernet) 단방향 통신(Simplex) - 데이터를 한쪽 방향으로만 전송이 가능한 방식 - 송신측과 수신측이 미리 고정되어 있음 ex) 라디오, TV 반이중 통신(Half-Duplex) - 양방향 전송이 가능하지만 동시에 양쪽 방향에서 전송할 수 없는 방식 - 하나의 통신 채널을 이용하여 교대로 데이터 송수신 - CSMA / CD 프로토콜을 사용하여 충돌을 방지하고 충돌이 발생할 경우 재전송 ex) 무전기, 모뎀을 이용한 데이터 통신 전이중 통신(Full-Duplex) - 두 개의 통신 채널을 이용하여 양방향으로 동시에 송수신 - 전송량이 많고 전송 매체의 용량이 클 때 사용 - 프레임을 전송하기를 기다리는 대기 시간이 없음 ex) 전화, 전용선을 이용한 통신 이더넷(Ethernet) - 컴퓨터 네트워크 기술 중 ..
ARP와 RARP ARP(Address Resolution Protocol, 주소 결정 프로토콜) - 네트워크상에서 IP 주소를 물리적 네트워크 주소(MAC address)로 대응시키기 위해 사용되는 프로토콜 - 즉, IP주소와 MAC 주소 사이를 연결해주는 역할 동작원리 - ARP request : 송신자는 목적지의 물리적인 주소가 필요하므로, 물리주소 요청을 위한 ARP 요청 패킷을 브로드캐스트로 전송(목적지의 물리 주소를 모르기 때문에) - ARP reply : 모든 호스트와 라우터는 송신자가 보낸 ARP 요청 패킷을 수신하고 해당되는 수신자는 자신의 IP와 MAC 주소를 넣어 응답패킷을 유니캐스트로 전송 RARP(Reverse ARP) - ARP와 반대되는 기능을 수행 - 물리적인 주소(MAC)에 해당하는 논리적인..
IP 클래스와 서브넷 IP(Internet Protocol) - 통신망에서 패킷이 목적지까지 찾아갈 수 있도록 데이터그램을 기반으로 비신뢰성, 비연결성 서비스를 제공하며 OSI모델의 네트워크 계층에 해당한다. - 패킷의 분해, 조립, 주소지정, 경로선택 기능을 제공한다. - 망 연결이 IP Address에 의해 이루어지므로 목적지 IP Address를 반드시 알아야한다. IPv4 - IP 패킷(데이터그램)은 크게 헤더 필드와 데이터 필드로 나누고, 옵션을 사용하지 않은 일반적인 IP 헤더의 크기는 20바이트로 가변적이다. - IP 주소는 총 32bit를 8비트 단위(Octet)으로 나누어 각 부분을 점(.)으로 구분된 4개의 필드를 10진수로 나타낸다. (1 Octet = 8 bit) - IP 주소는 해당 네트워크를 구분하기..
가상화란? (VM, 컨테이너, 도커, 쿠버네티스) 애플리케이션의 서비스를 저렴한 비용으로 안정적이고 빠르게 제공하기 위한 인프라이다. 물리적인 컴퓨팅 자원(CPU, Disk, Network 등)을 가상화하여 여러 개의 실행환경(테넌트)이 공유하여 자원을 효율적으로 사용할 수 있게 해주는 것이다. 물리적인 컴퓨팅 자원을 가상화한다는 것은 각 테넌트들이 서로의 존재를 모르도록 격리되어야 함을 의미한다. 1) 호스트 가상화 - Base가 되는 Host OS위에 Guest OS가 구동되는 방식 장점 - 가상의 하드웨어를 에뮬레이팅하기 때문에 호스트 운영체제에 크게 제약사항이 없음 - 논리적으로 분리되어 있어서 한 VM에 오류가 발생해도 다른 VM으로 확산되지 않음 단점 - OS위에 OS가 얹히는 방식이기 때문에 오버헤드가 클 수 있음 종류 : VM Workst..
교착상태(Deadlock) - 다중 프로그래밍 시스템에서 아무리 기다려도 결코 일어나지 않을 사건을 기다리고 있는 하나 또는 그 이상의 프로세스들이 있는 상태 - 자원이 다수의 사용자 프로세스에 의해 공유되고 이들 각 프로세스가 자신에게 할당된 자원에 대해 독점적인 통제권을 가지고 있을 때 발생 - 둘 이상의 서로 다른 프로세스가 자신이 요구한 자원을 할당받아 점유하고 있으면서 상호간에 상대방 프로세스에 할당되어 있는 자원을 요구하는 경우에 발생 - 상호배제, 점유와 대기, 비선점, 환형대기의 조건을 모두 만족했을 경우 교착상태가 발생 4가지 필요조건 상호 배제(Mutual Exclusion) – 한 번에 하나의 프로세스만이 자원을 사용 점유와 대기(Hold and Wait) – 최소한 하나의 자원을 점유하는 프로세스가 존재하면서..