Layer7 49

CPU 동작원리

CPU CPU는 트랜지스터라고 하는 반도체로 이루어져 있는데 트랜지스터가 어떻게 이루어져 있는지 알아보자. 반도체는 주로 실리콘으로 이루어져 있다. 실리콘의 최외각 전자는 4개로 8개가 될 때 가장 안정된 구조를 이루는데 다른 실리콘과 결합 시 8개가 된다. 이렇게 된다면 전류는 흐르지 않게 되는데 다시 전류를 흐르는 방법으론 전자를 빼거나 추가하는 방법이 있다. 전자를 하나 잃은 반도체를 P(Positive)[양성]형 반도체, 하나 얻은 반도체를 N(Negative)[음성]형 반도체라고 한다. CPU 동작원리 CPU에 대한 간단 설명이 끝났으니 동작원리를 알아보자. 일단 동작원리 설명을 위해 코드 하나를 예시로 들겠다. #include int add() { int a = 1, b = 2;// a에 1,..

컴퓨터구조 2023.05.17

웹해킹 3차시 php정리

PHP PHP(PHP: Hypertext Preprocessor)는 C언어를 기반으로 만들어진 서버 측에서 실행되는 서버 사이드 스크립트 언어다. -장점 1. 주요 운영체제와 대부분의 웹 서버에서 지원한다. 2. 다른 프로그래밍 언어보다 직관적으로 코드를 작성할 수 있어서, 작성해야 하는 코드의 양이 적다. 3. 텍스트 처리에 특화되어 있어 HTML 문서 처리에 적합하다. -단점 1. 간단한 사이트를 제작하기 위해 만든 언어라서 복잡한 사이트를 만드는 데는 효율적이지 못하다. 2. 보안에 안전하지 않은 언어 구조를 가진다. 문법 //코드영역 echo() 함수는 C언어의 printf() 함수나 C++의 cout 객체와 같이 HTML 스트림에 문자열을 출력해 준다. $num_01 = 10; //변수 선언은 ..

2023.05.10

웹해킹 2차시 JavaScript 정리

JavaScript는 객체 기반의 스크립트 언어로 웹의 동작을 구현할 수 있다. 주로 웹 브라우저에서 사용되거나 프레임워크를 활용하여 서버 측 프로그래밍도 가능하다. 변수 JavaScript에서는 'var' 또는 'let'으로 변수를 선언할 수 있다. var a = '과제 싫어'; console.log(a); // 과제 싫어 let b = '과제 싫어'; console.log(b); // 과제 싫어 겉보기엔 비슷해 보이지만 둘은 사용법이 조금 다르다. 먼저 var는 선언한 위치에 상관없이 함수나 전역에서 사용 가능하며 중복 선언이 가능하다. 또한 같은 이름의 변수를 다시 선언하면 기존에 선언한 변수 대신 새로운 변수가 생성된다. 반면에 let은 변수를 선언한 블록 안에서만 접근이 가능하다. 또한 var와..

2023.04.26

웹해킹 1차시 정리

HTML HTML은 Hyper Text Markup Language의 약자이다. 이는 Hyper Text 기능을 가진 문서로 웹 페이지를 위한 마크업 언어다. Opening tag는 여는 태그, Closing tag는 닫는 태그로 이 둘을 쓰는 이유는 Contents를 감싸기 위함이다. 흔한 웹사이트에서 개발자 모드로 요소들을 보면 거의 대부분이 이런 형식으로 구성되어 있다. 이러한 것들은 Front-end와 Back-end로 나뉘는데, Front-end는 사용자에게 보여지는 화면이고 Back-end는 사용자가 관리하지 못하는 서버나 데이터베이스를 관리하는 기술이다. HTML, JS, CSS 등이 Front-end에 속한다. php, django, RAILS 등이 Back-end에 속한다. HTTP HT..

2023.04.18

3차시 함수, 재귀함수

함수 프로그래밍에서 함수란 특별한 목적의 작업을 수행하기 위해 독립적으로 설계된 프로그램 코드의 집합으로 정의할 수 있습니다. C 프로그램은 이러한 함수들로 구성되며, 포함된 함수들을 사용하여 목적을 달성하게 됩니다. 함수를 사용하는 이유는 반복적인 프로그래밍을 피하기 위함이며, 필요할 때마다 함수를 호출하여 반복작업을 실행할 수 있습니다. 함수를 선언하는 방법은 다음과 같습니다. 변환자료형 함수이름 (매개변수 목록) { 함수 내용; } 이를 코드로 짜면 다음과 같습니다. #include int func(int a){ if(a>5) printf("%d는(은) 5보다 큽니다",a); else if(a5) printf("%d는(은) 5보다 큽니다",a); else if(a10 10는(은) 5보다 큽니다 >3..

2차시 포인터와 구조체

포인터란? C언어에서 포인터란 메모리의 주소값을 저장하는 변수이며, 포인터 변수라고도 부릅니다. char형 변수가 문자를 저장하고, int형 변수가 정수를 저장하는 것처럼 포인터는 주소값을 저장합니다 포인터 변수를 선언할 때 코드는 아래와 같습니다. a라는 정수형 변수에 10을 넣어주고 포인터에 타입인 int와 변수 이름 앞에 *를 붙입니다. 그리고 &를 통하여 a라는 변수의 주소값을 불러옵니다. 마지막으로 printf를 할 때 포인터 변수 앞에 *을 붙여주면 주소에 지정된 값을 불러줍니다. 그러나 만약 *를 붙이지 않는다면 그저 주소값만 불러오게 됩니다. 실행 결과는 아래와 같습니다. 이처럼 포인터는 *를 붙이는 것에 따라 출력값이 확연히 다를 수 있기에 코드를 짤 때는 상황에 맞게 적절히 사용해야 합..