PHP 애플리케이션의 입력과 출력

<?php
	echo &_GET['id'];
?>
출력 : server
URL : http://server-talk.com/in_put.input.php?id=server

위 코드는 $_GET[] 배열 (Array)라고 한다. 위 출력내용의 URL을 자세히 보면 input.php? id=server 로 되어있다. 

만약 URL 부분을 server-talk.com/in_put.input.php?id=talk

 

server-talk.com

The domain server-talk.com may be for sale. Please send an inquiry to info@first1.com

server-talk.com

로 수정하면 talk 를 출력한다.  input.php 파일이 사용자가 입력한 값에 따라서 다른 출력값을 보내주는것으로 사용자와 서버가 데이터를 주고받는 애플리케이션이 된 것

즉, $_GET[]는 사용자가 입력한 정보를 받는 영역이며, $_GET['id'] 괄호 안에 들어가는 값은 입력한 값의 이름이 된다는 것으로 볼수 있다.

 

PHP 애플리케이션의 폼을 이용한 데이터 입력

URL의 직접 정보를 입력하는 불편함이 있으며 이러한 불편함을 해결하기 위해 만든 것이 Form(폼)입니다.

Form(폼)이란, 사용자가 입력한 데이터를 받아 서버로 전송하는 HTML 태그이며, 사용자가 입력한 정보를 받은 후 입력받은 컨트롤에 포함되어 있는 속성 값의 따라 데이터가 서버로 전송하게 됩니다.

Form 코드 

file : form.html
<html>
<body>
	<form method = "get"  action = "input.php">
    	id : <input type = "text" name = "id" />
        pw : <input type = "text" name ="pw" />
        <input type = "submit" />
    </form>
 </body>
 </html>
 
 File : input.php
 <?php
 	echo $_GET['id'].' : ' .$_GET['pw'];
 ?>

위 코드는 폼의 출력내용의 html 코드입니다. 

'Server > PHP' 카테고리의 다른 글

PHP 변수의 선언, 관계연산자  (0) 2021.01.18
PHP 기본 문법  (0) 2021.01.18
PHP란  (0) 2021.01.18

PHP 변수의 선언

$php = 1 ;
[변수명][등호][변수값]

$(달러)를 입력후 변숩명 입력하고 =(등호)을 입력하고 변수 값을 입력한다.

<?php
$variable=1;
echo $variable;
?>
출력 : 1

위의 출력은 variable라는 변수의 내용이 출력된 것을 확인할수 있습니다.

 

PHP 변수의 응용

<?php
$a=1;
echo $a+1;
?>
출력 : 2
<?php
$variable = "server";
echo $variable."-talk";
?>
출력 : server-talk

.(점)은 문자열을 합쳐줌.

변수사용시 주의사항
1. 변수명에 공백이 있으면 안된다.
2. 변수에 문자열을 넣을시에는 문자열 밖에 (')작은따옴표 또는 (")큰따옴표를 입력해야한다.
3. 변수에 숫자를 넣을시에는 (')작은따옴표 (")큰따옴표를 입력해버리면 문자열로 입력해버린다.

PHP 관계연산자 알아보기

관계연산자란 Boolean 이라는 데이터타입이라고 하며, 숫자, 문자와 다른 타입을 가지고 있다. 프로그래밍을 하면서 비교는 값들이 같은지, 다른지, 큰지, 작은지를 구분하는 경우가 있다. 이 과정에서 연산자의 결과를 참(True)이나 거짓(False)중 하나이다.

 

1.동등 연산자(==)

== 연산자는 좌측과 우측의 값을 비교하여 서로 값이 같다면 참(True) 다르다면 거짓(False) 가된다.

<?php
	echo "0==1 : " ;
    var_dump(0==1);
    echo '<br />' ;
    
    echo "1==1 : " ;
    var_dump(1==1);
?>
출력 : 0 == 1 : bool(false)
	  1 ==1 : bool (true)

출력 내용을 확인하면 코드의 두값이 틀린 구문의 false 같으면 True를 출력한다.

bool 이라는 구문은 데이터타입이 Boolean이라는것을 의미한다.

 

2. !=(부정 연산자)

!= 연산자는 부정을 의미한다.

연산의 결과가 True(참) 일때 거짓이되며, False(거짓)일때 참이 된다. 즉 Boolean의 값을 반대로 만들어 주게 된다.

<?php
	
    echo "0!=1 : ";
    var_dump(0!=1);
    echo '<br />' ;
    
    echo "1 != 1 : " ;
    var_dump(1 != 1);
?>
출력
0!=1 :bool(true);
1!= 1 : bool(false)

위 코드는 var_dump를 이용하여 !=(부정연산자) 의 결과 값을 출력하는 코드이며, 첫번쨰 var_dump는 true  두번째 false 출력한다.

 

3. >,< (부등호 연산자 -1)

>연산자는 좌항의 값이 우항의 값보다 크다면 참이되며, 아니라면 거짓이 되고 같아도 거짓이된다.

 

<?php
	ehco "2>4 : ";
    var_dump(2>4);
    echo '<br />' ;
    
    echo "4>2 : " ;
    var_dump(4>2);
    echo '<br />';
    
    echo "4 > 4 : " ;
    var_dump(4>4);
?>

출력 
2>4 bool(false)
4>2 bool(true)
4>4 bool(false)

<?php
	echo "2>=4 : " ;
    var_dump(2>=4);
    echo '<br /> ';
    
    echo "4>=2:";
    var_dump(4>=2);
    echo '<br /> ;
?>

위 코드와 출력내용을 확인하시면 > 연산자는 좌황의 값이 우항의 값보다 클 경우 True 이며 아닐 경우 False이다.

 

'Server > PHP' 카테고리의 다른 글

PHP 애플리케이션의 입력과 출력  (0) 2021.01.18
PHP 기본 문법  (0) 2021.01.18
PHP란  (0) 2021.01.18

PHP 기본 문법

<?php
		실행코드      
?>

위 코드에서 <?php 구문은 php engine에게 지금부터 php 파일이 시작된다고 알리는 구문이며, ?>구문은 php구문을 닫는 구문 즉 ?> 까지 php를 실행 시킨다는 구문입니다.

 

<?php
echo "Hello world";
?>

 

위 코드의 echo는 특정데이터를 화면에 출력하는 역할을 하며, 해당줄의 구문이 끝났을때에는 반드시 ;(세미콜론)을 입력하여야한다. 

 

 

<?php
echo "10";
?>

위 코드의 숫자 10이라는 출력 내용은 동일하지만 php에서는 문자로 인식하게 됩니다. 

 

<?php
echo var_dump(10);
echo var_dump("10");
?>

출력 : int(10) string(2) "10"

var_dump 함수를 이용하여 출력해보니 첫 번째 10은 숫자이고 두 번째 10은 문자인 것을 확인하실 수 있습니다. 즉 숫자에도 (') 따옴표, (") 쌍 따옴표로 감싸주게 되면 숫자가 문자가 된다는 것 입니다.

 

PHP 문자와 문자 결합

아래의 코드와 출력 내용을 보시면 Hello 라는 문자열과 wolrd 문자열이 떨어졌을 때 결합하는 방법은 .(점) 입니다.

<?php
echo "Hello " . "world" ;
?>

output : Hello world 

 

PHP 숫자 출력하기

<?php
echo 1;
?>

위 코드의 echo 1 ; 이라 입력하면 1이라는 숫자를 화면의 출력하는 것이 됩니다. 웹 브라우저에서 출력하면 1이라는 숫자가 출력되는것을 확인할수 있다.

 

PHP 숫자 연산하기

<?php
echo 10+10;
?>

위 코드는 10+10 이므로 20이라는 출력 결과를 보여준다..

 

PHP 데이터 형 확인

<?php
var_dump(10);
?>
출력 : int(10)

<?php
var_dump(10.1)
?>
출력 : float10.1)

위 코드를 보면 var_dump 라는 함수 안에 10이라는 데이터를 넣었으며, 출력 내용을 확인하면 int(10)이라고 출력되는 것을 확인 가능하다.

tip : ver_dump 함수는 데이터의 타입을 확인할때 사용하는 함수이다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'Server > PHP' 카테고리의 다른 글

PHP 애플리케이션의 입력과 출력  (0) 2021.01.18
PHP 변수의 선언, 관계연산자  (0) 2021.01.18
PHP란  (0) 2021.01.18

개요

php란 HTML을 수 작업으로 작성하는 귀찮음에서 탈피하고자 처음 생겨났다. 운영자는 컨텐츠의 내용을 작성해서 php에 넘기면 php는 HTML을 자동으로 만드는 방식이다.

PHP란

서버 측의 동작하는 기술 또는 언어 입니다. 

 

초창기 인터넷의 규모가 작았을때는 단순한 과정으로도 문제가 없었지만 인터넷의 규모가 폭발적으로 커지면서 사람이 수작업으로 웹페이지를 만드는것이 한계에 도달하기 시작하여 탄생한 것이 CGI 이다.

 

웹서버의 종류

아파치(Apache), IIS, Enginex 이다.

현재 가장 많이 사용하는 웹서버는 Apache이며 리눅스 운영체제에서 Apache(웹서버), MySQL(데이터베이스), PHP로 구성된다.

 

PHP의 특징

PHP언어는 웹 상에서 서버를 연동해서 실행하는 대표적인 언어이다. 인터프리터 방식을 채택하고 있어 편리하다. 

컴파일러 & 인터프리터 
고급언어로 작성된 원시 프로그램(Source Program)을 목적 프로그램(Object Program)으로 번역하는 프로그램이며, 프로그램 번역 방시겡 따라 구분된다.
원시 프로그램 (Source Program) : 고급언어나 어셈블리어로 작성된 프로그램 (C++, Java)
컴파일러 (Compiler) : 고급 언어로 작성된 프로그램 전체를 목적 프로그램으로 번역한 후, 링킹 작업을 통해 컴퓨터에서 실행 가능한 실행 프로그램을 생성., 번역 실행 과정을 거쳐야 하므로 번역 과정이 번거롭고, 번역 시간이 오래걸리지만, 한 번 번역한 후에는 다시 번역하지 않으므로 실행 속도가 빠르다. C언어, Java등 
인터프리터 : 인터프리터는 고급 언어로 작성된 프로그램을 한 줄 단위로 받아들여 번역하고, 번역과 동시에 프로그램을 한 줄 단위로 즉시 실행시키는 프로그램이다. 프로그램이 직접 실행되므로 목적 프로그램이 생성 되지 않는다. 줄 단위로 번역 실행 되기 때문에 시분할 프로그램에 유용하며, 원시 프로그램의 변화에 대한 반응이 빠릅니다. 번역 속도는 빠르지만 프로그램 실행 시 매번 번역해야 하므로 실행 속도는 느립니다. 인터프리터를 사용하는 언어에는 Python, Bisic, Snobol, Lisp등이 있다.

PHP 특징

  • 웹서버서 해석되는 스크립트언어이다.
  • 데이터베이스 연동을 편리하게 할 수 있다.
  • 모든 운영 체제에서 구현가능
  • 코드 작성이 쉽고 문법이 간단하다.
    • PHP문법은 C/C++ 언어의 문법과 비슷하여 클래스를 지원하여 효율적인 코딩이 가능. 스크립트 언어이기 때문에 HTML 문서 내부에 입력하여 실행 할 수 있는 편리한 언어이다.
  • 처리속도가 빠르다.
    • 인터프리터 방식을 채택하여 일반적인 asp, perl 언어보다 처리속도가 월등히 빠르다.
  • JSP처럼 한글 처리를 걱정하지 않아도 된다.

'Server > PHP' 카테고리의 다른 글

PHP 애플리케이션의 입력과 출력  (0) 2021.01.18
PHP 변수의 선언, 관계연산자  (0) 2021.01.18
PHP 기본 문법  (0) 2021.01.18

FTP : 파일 전송만을 위한 인터넷 연결

일반적으로 '인터넷'이라면 웹 브라우저를 이용한 화려한 화면의 WWW(World Wide Web) 방식을 말한다. HTTP 프로토콜(데이터 전송 규약)을 통해 접속되는 WWW는 일반 문자를 비롯, 사진, 음악/동영상 콘텐츠 까지 간편한게 사용할 수 있다는 장점이 있다. 하지만 속도가 느리고 파일제어도 번거롭다. 이렇게 대량의 파일을 네트워크를 통해 쭈고 받을 때 파일 전송 서비스인 FTP(File Transfer Protocol)를 사용하는 것이 훨씬 유리하다.

 

FTP는 인터넷을 통한 파일 송수신만을 위해 고안된 서비스(또는 프로토콜)이기  때문에 동작 방식이 대단히 단순하고 직관적이다.  다만 빠른 파일전송이 주된 목적이기에 보통의 경우 사진 이나 음악, 동영상 등의 멀티미디어 콘텐츠는 내려 받기가 완료된 다음에 확인가능하다.

 

FTP 동작원리 

FTP의 동작원리는 비교적 간단하다. FTP 서비스를 제공하는 서버와 여기에 접속하는 클라이언트 사이에 두개의 연결이 생성되는데 하나는 데이터 전송을 제어하기 위한 신호를 주고 받기 위함이고(네트워크 21번 포트) 다른 하나는 실제 데이터 파일 전송에 사용된다(네트워크 20번 포트). 여기서 네트워크 포트란 네트워크를 통해 데이터가 이동하는 통로를 말한다.

 

수동(Passive) 모드 연결과 SFTP 연결

FTP 서비스는 기본적으로 능동모드와 수동모드 두가지 데이터 접속 방식을 제공한다. 

아울러 SFTP 연결은 보안 강화용 공개 키 또는 개인 인증 키를 등을 사용할 수 있어 보다 안전한 데이터 송수신이 가능하다. 

 

Jenkins란

젠킨스는 소프트웨어 개발 시 지속적으로 통합 서비스를 제공하는 툴이다. CI(Continuous Integriation)툴 이라고 표현한다. 다수의 개발자들이 하나의 프로그램을 개발할 때 버전 충돌을 방지하기 위해 각자 작업한 내용을 공유영역에 있는 저장소에 빈번히 업로드함으로써 지속적 통합 이 가능하도록 해준다. 

젠킨스와 같은 CI툴이 등장하기 전에는 일정시간마다 빌드를 실행하는 방식이 일반적이었다. 특히 개발자들이 당일 작성한 소스들의 커밋이 모든 끝난 심야 시간대에 이러한 빌드가 타이머에 집중적으로 진행되는데, 이를 nightly-bulid라 한다 . 하지만, 젠킨스는 정기적인 빌드에서 한발 나아가 서브버전, git과 같은 버전관리시스템과 연동하여 소스의 커밋을 감지하면 자동적으로 자동화 테스트가 포함된 빌드가 작동되도록 설정할 수 있다. 

 

Jenkins의 이점

개발중인 프로젝트는 빈번하게 커밋이 일어나지만 그 횟수만큼 빌드를 실행하는 것이 아니라 작업이 큐잉되어 자신이 실행될 차례를 기다리게 된다. 코드의 변경과 함께 이뤄지는 이 같은 자동화된 빌드와 테스트 작업은 다음과 같은 이점을 가져다 준다.

  • 프로젝트 표준 컴파일 환경에서의 컴파일 오류 검출
  • 정적 코드 분석에 의한 코딩 규육 준수여부 체크
  • 프로파일링 툴을 이용한 소스 변경에 따른 성능 변화 감시
  • 결합 테스트 환경에 대한 배포작업

각종 배치 작업의 간략화

DB구축, 앱 서버로의 Deploy, 라이브러리 릴리즈와 같이 이전에 CLI로 실행되던 작업들이 젠킨스 덕분에 웹 인터페이스로 손쉽게 가능해졌다.

 

Build 자동화의 확립

빌드 툴의 경우 Java는 Maven과 Gradle이 자리잡고 있으며, 이미 빌드 관리 툴을 이용해 프로젝트를 진행하고 있다면 젠킨스를 사용하지 않을 이유가 없다. 젠킨스와 연동하여 빌드 자동화를 통해 프로젝트 진행의 효율성을 높일 수 있다.

 

자동화 테스트

자동화 테스트는 젠킨스를 사용해야하는 가장 큰 이유 중 하나이며, 사실상 자동화 테스트가 포함되지 않은 빌드는 CI자체가 불가능하다고 봐도 무방하다. 젠킨스는 Subversion이나 Git과 같은 버전관리시스템과 연동하여 코드 변경을 감지하고 자동화 테스트를 수행하기 때문에 만약 개인이 미처 실시하지 못한 테스트가 있다 하여도 든든한 안전망이 되어준다. 제대로 테스트를 거치지 않은 코드를 커밋하게 되면 화난 젠킨스를 만난다.

 

코드 표준 준수여부 검사

자동화 테스트와 마찬가지로 개인이 미처 실시하지 못한 코드 표준 준수 여부의 검사나 정적 분석을 통한 코드 품질 검사를  빌드 내부에서 수행함으로써 기술적 부채의 감소에도 크게 기여한다.

 

빌드 파이프라인 구성

2개 이상의 모듈로 구성되는 레이어드 아키텍처가 적용된 프로젝트에는 그에 따른 빌드 파이프라인이 구성이 필요하다. 

'Git_형상관리' 카테고리의 다른 글

git_config 란  (0) 2021.01.13

Git Config

Git을 설치하고 나면 git의 사용 환경을 적절하게 설정해 주어야한다.

한 번만 설정하면 된다. 설정한 내용은 git을 업그레이드해도 유지된다.

언제든지 다시 바꿀 수 있는 명령어가 있다.

Git config 라는 도구로 설정 내용을 확인하고 변경할 수 있다.

Git은 이 설정에 따라서 동작한다. 이때 사용하는 설정 파일은 세 가지나 된다.

  • \etc\gitconfig 파일 : 시스템의 모든 사용자와 모든 저장소에 적용되는 설정이다. Git config –-system 옵션으로 이 파일을 읽고 쓸 수 있다.
  • -/.gitconfig 파일 : 특정 사용자에게만 적용되는 설정이다. Git config –global 옵션으로 이 파일을 읽고 쓸 수 있다.
  • .git/config: 이 파일은 git 디렉토리에 있고 특정 저장소 (혹은 현재 작업 중인 프로젝트)에만 적용된다. 각 설정은 역순으로 우선시 된다. 그래서 .git/config/etc/gitconfig보다 우선한다
Git Config 등록하기
//각 config가 무엇을 의미하는지는 각자 공부해보도록 하자.
$git config --global core.pager 'less -x5,9'
$git config --global alias.st status
$git config --global alias.ci commit
$git config --global alias.co checkout
$git config --global alias.br branch
$git config --global color.branch auto
$git config --global color.diff auto
$git config --global color.interactive auto
$git config --global color.status auto
$git config --global user.name "본인이름"
$git config --global user.email "본인 이메일주소"
//$cat ~/.gitconfig 로 확인가능

'Git_형상관리' 카테고리의 다른 글

jenkins 란  (0) 2021.01.14
명령어 내용
ls 현재 위치의 파일 목록을 조회하는 명령어
cd  디렉토리를 이동하는 명령어
touch 파일의 용량이 0인 파일을 생성, 날짜 변경하는 명령어
- touch filename : filename의 파일을 생성합니다.
- touch -c filename : filename의 시간을 현재시간으로 변경합니다.
- touch -t 2000020202020 filename : filename의 시간을 날짜정보로 변경합니다.
mkdir (make directory) mkdir은 새로운 디렉토리를 만들 때 사용하는 명령어 입니다.
- mkdir dirname : dirname의 디렉토리를 생성함
cp (copy) cp는 파일을 복사하는 명령어
- cp file cfile : file을 cfile이라는 이름으로 복사합니다.
- cp -f file cfile : 복사할 때 복사대상이 있으면 지우고 강제로 복사합니다.
mv (move) mv는 파일을 이동하는 명령어 입니다. cp와 비슷하지만 다른 점은 cp는 파일을 복사하여 원본 파일이 남아 있지만 mv는 원본 파일이 남지 않는다는 점 입니다.
- mv fname mfname : fname의 파일을 mfname의 이름으로 이동/변경 합니다.
rm (remove) rm은 파일이나 디렉토리를 삭제할 때 사용하는 명령어 입니다.
- rm fname : fname을 삭제합니다.
- rm -f fname : fname을 묻지 않고 삭제합니다.
cat (catenate) cat은 파일이름을 인자로 받아서 그 내용을 출력할 때 사용합니다.
- cat fname : fname의 내용을 출력합니다.
- cat fname1 fname2 : fname1과 fname2의 내용을 이어서 출력합니다.
redirection('>','>>') redirection은 리눅스 스트림의 방향을 조정하는 명령어이다.
명령>파일 : 명령의 결과를 파일로 저장합니다.
명령>>파일 : 명령의 결과를 파일에 추가합니다.
- cat fname4>>fname3 : fname3에 fname4의 내용을 추가합니다.
alias alias는 자주사용하는 명령어를 간단한 명령어로 설정하는 방법이며 해제할 때는 unalias를 사용합니다. 
- alias new = 'command' : command를 실행하는 새 명령어 new를 만듭니다.
ifconfig 리눅스에서 할당받은 IP주소를 확인 하려고 할 때 사용하는 명령어

 

 

'개인공부 > ICT상식' 카테고리의 다른 글

[ICT상식] API 종류  (0) 2020.12.09
[REST] HTTP/HTTPS 와 REST API 개념  (0) 2020.11.29
[멀티 쓰레드(Multi Thread)]  (0) 2020.11.16
[ICT상식] 데이터 베이스 + 기타 IT 상식  (0) 2020.11.07
[ICT 상식 : 운영체제]  (0) 2020.11.06

+ Recent posts