[목차]
1. PHP
2. 명령형 언어 / 선언형 언어
3. 기출 및 기출 예상 문제 풀이
[PHP]
* 문법이 필기에서 출제되고 있음!
1. PHP 기초
: PHP는 서버용 스크립트 언어
1-1) 변수 선언
[형식] $변수이름
1-2) 출력 함수: echo()
<?php
$str="takudaddy";
echo "hero = {$str} \n";
?>
================================
>> hero = takudaddy
1-3) 데이터 타입
ㄱ. Boolean (논리값)
: true / false
ㄴ. 정수 (Integer)
: 100, -44
ㄷ. 실수 (Float)
: 3.14, -0.4
ㄹ. 문자열 (String)
: "takudaddy", 'master'
ㅁ. 배열 (Array)
: 한 쌍의 키(key)와 값(value)로 이루어진 맵(map)으로
구성되는 순서가 있는 집합
ㅂ. 객체 (Object)
: 클래스의 인스턴스(Instance)를 저장하기 위한 타입
1 <? php
2 class Hero {
3 function Member() {
4 echo "Takudaddy";
5 }
6 }
7 $var = new Hero;
8 $var-> Member();
9 ?>
====================================
>> Takudaddy
*실행 순서
7. $var = new Hero;
: Hero 클래스의 객체 생성 후 var 변수에 저장
8. $var-> Id();
: Hero 클래스의 Member 함수 호출
3~5.
: Hero 클래스의 Member 함수 실행
>> 화면에 Takudaddy 출력
ㅅ. 리소스 (Resource)
: PHP 외부에 존재하는 외부 자원
>> 파일, 데이터베이스 연결 등을 반환할 때 사용
$fp = fopen('file.txt','r'); // fopen() : 파일 열기 함수, r은 읽기 전용
ㅇ. NULL
: 아직 어떤한 값도 대입되지 않은 변수
>> 초기화하지 않은 변수는 NULL로 자동 초기화
<?php
$var; // <- NULL로 자동 초기화
?>
2. PHP 연산자 (20년 4회 필기 기출)
2-1) 증가/감소 연산자
: ++A, A++, --A, A--
2-2) 산술 연산자
: 사칙 연산자 (*, / , +, -)
: 나머지 연산자 (%)
: 제곱 연산자 (**)
2-3) 논리 연산자
: 2개의 논리 값을 연산하여 True(1), False(0) 결과 반환
2-4) 관계 연산자
2-5) 할당(대입) 연산자
: +=, -=, *=, /=
(+, - , *, /, %, <<, >> 등 산술, 관계, 논리, 비트 연산자 모두 사용 가능)
2-6) 비트 연산자
: &, |, ^, ~, <<, >>
2-7) 삼항 연산자
: 조건 ? 수식1 : 수식2;
조건이 참이면 수식1, 거짓이면 수식2 실행
2-8) 문자열 연산자
. (점) 기호를 사용해 문자열을 연결한다.
$var_1 = "taku";
$var_2 = "daddy";
$var_3 = $var_1.$var_2
echo $var_3;
>> takudaddy
===========================
echo $var_1, $var2 // echo() 함수에서는 ,(쉼표)를 이용해 문자열 연결이 가능
2-9) 오류 제어 연산자
: @
ex) @foo() = 만약 함수 foo() 코드 실행 중 에러가 나도 무시한다.
2-10) 배열 합집합 연산자
3. PHP 제어문
* 문제 출제 예시
다음 PHP 제어문 중 반복문이 아닌것은?
4. PHP 배열
: key와 value를 한 쌍으로 저장할 수 있는 자료형 (python의 딕셔너리)
(형식) $배열이름 = array(키1=> 값1, 키2=> 값2, ...)
$arr1 = array("타쿠"=> "010-0101-0101", "대디"=> "101-0101-1010");
echo $arr1["타쿠"];
>> 010-0101-0101
* 키 값이 0인 배열 요소는 없으므로 아무것도 출력되지 않는다. (키 값은 1부터)
---------------------------------
echo $arr1[0]
>> 출력 값 없음
* 연관 배열 (Associative Array)
: PHP에서는 숫자뿐 아니라 문자열도 배열의 키(index)로 사용할 수 있다.
배열의 인덱스(키)를 정수가 아닌 다양한 타입으로 설정한 배열을 연관 배열이라 한다.
연관 배열을 사용하면 키 값에 좀 더 명확한 의미 부여가 가능하다.
* 배열에 값만 넣는 경우
: Key 값을 따로 지정하지 않을 경우 자동으로 키 값은 0부터 1씩 증가하여 순서대로 저장됨
$arr2 = array("taku", "daddy"); // 값만 있는 경우 키 값은 0부터 시작
echo $arr2[0];
>> taku
4-1) 배열 요소 추가
$arr = array();
$arr[0] = "taku";
$arr[1] = 'daddy';
echo $arr[0];
>> taku
=================================
$arr = array();
$arr[] = "taku"; //인덱스 값을 생략할 경우 자동으로 0부터 시작, 1씩 증가하여 저장
$arr[] = 'daddy';
echo $arr[0];
>> taku
* 배열의 홀(Hole)
: 특정 인덱스에만 배열 요소를 추가할 경우,
배열 요소가 존재하지 않는 부분을 배열의 홀 이라고 한다.
: PHP 에서 이러한 배열의 홀을 참조하게 되면,
초기화 되지 않은 변수를 참조할 때처럼 NULL을 반환한다.
$arr = array();
#arr[10] = "takudaddy";
>> 배열의 홀: 인덱스 0~9 번째
[명령형 언어]
: 알고리즘 O, 목표 X
: 순차적인 명령 수행을 기본으로 하는 언어로,
"어떤 방법으로" 문제를 처리할 것인지에 초점을 둠
1. 특징
: 알고리즘을 명시하고 목표는 명시하지 않는다. (과정에 의해 결과는 만들어진다)
: 특정 구문의 연산을 이용하여 상태를 변경시키고 프로그램을 동작시킨다.
: 절차적 언어와 객체지향 언어가 있다.
[선언형 언어]
: 알고리즘 X, 목표 O
: 프로그램을 어떤 방법으로 해야 하는지를 나타내기보다
"무엇"과 같은지를 설명하는 경우를 선언형 언어라 한다.
1. 특징
: 명령형 언어와 반대되는 개념의 언어
: 목표를 명시하고 알고리즘은 명시하지 않음
: 함수형 언어와 논리형 언어 등이 있음
: 가독성이나 재사용성이 좋은
: 직동 순서를 구체적으로 작성하지 않기 때문에 오류가 적음
2. 선언형 언어 종류
2-1) HTML (Hyper Text Markup Language)
: 인터넷 웹 페이지를 만들 때 사용하는 표준 마크업 언어
: 특별한 데이터 타입이 없는 단순한 텍스트이므로 호환성이 좋고 사용이 편리함
2-2) LISP (리스프)
: 인공지능 분야에 사용되는 언어
2-3) PROLOG (프롤로그)
: 논리식을 토대로 한 언어로, 인공지능 분야에서의 논리적인 추론이나
패턴 매칭 등에 적합하다.
2-4) XML
: 기존 HTML의 단점을 보완하여 웹에서 구조회된 다양한 문서들을
상호 교환할 수 있도록 설계된 언어
: 인터넷 환경에 적합하도록 간결성, 보편성, 활용성에 중점을 두고 설계됨
2-5) Haskell(하스켈, 해스켈)
: 함수형 프로그래밍 언어
: 코드가 간결하고 에러 발생 가능성이 낮음
2-6) SQL
: 관계형 데이터베이스 관리시스템(RDBMS)의 데이터를 관리하기 위한 언어
[명령형 / 선언형 예제]
1. 회사에서 집까지 가는 길 찾기
1-1) 명령형 방식 (How)
: 회사 정문 출구를 나와 오른쪽으로 간다 > 직진하다가 마지막 신호등에서 좌회전 한다 > 77번지에 들어간다
1-2) 선언형 방식 (What)
: 내 주소는 서울시 성동구 서울숲길77로 44호다.
2. C 언어와 SQL
[기출 및 기출 예상 문제 풀이]
'정보보안공부 > 정보처리기사' 카테고리의 다른 글
8. 프로그래밍 언어 활용 - 운영체제 기초활용(OS) (0) | 2022.01.17 |
---|---|
7. 프로그래밍 언어 활용 - 라이브러리 특성 활용&기출풀이 (0) | 2022.01.17 |
5. 프로그래밍 언어 활용 - 언어 특성 활용 (0) | 2022.01.13 |
4. 프로그래밍 언어 활용 - 기본 문법 활용 & 기출풀이 (0) | 2022.01.12 |
3. 프로그래밍 언어 활용 - Python (0) | 2022.01.12 |