본문 바로가기

공부기록용

php 관련 study 기록

html, css는 프로그래밍 언어이긴 하지만 문서를 만드는데 적합한 언어다. 

php, javascript는 일반적인 프로그래밍 언어를 떠올릴 때 해당하는 언어들이다.

조건문은 다양한 상황에 대응할 수 있는, 경우의 수에 따라 다르게 동작하게 만들어

스마트한 컴퓨터를 구현했다면, 반복문은 동일한 작업을 정확하고 빠르게 여러 번

수행할 수 있도록 하여 효율적인 처리를 가능하게 한다.

 

- 동일한 웹 문서 요청이 들어와도 상황에 따라 다른 내용의 html 웹 문서를

동적으로 생성하는 방법이 필요한데, 이를 위해 만들어진 기술이 웹 서버 프로그램이다.

 

- 웹 서버 소프트웨어(ex. Apache)는 웹 브라우저가 요청한 웹 페이지를 전송해주는 소프트웨어다.

php엔진은 php 프로그램을 실행해주는 소프트웨어다. 확장자가 php인 파일을 웹 서버 소프트웨어가

php 엔진에게 위임하면 php 엔진은 php 코드가 담긴 php 파일을 파싱하고, 처리한 후에 html 문서로

변환하여 웹 서버 소프트웨어에 전달하고, 웹 서버 소프트웨어는 해당 문서를 클라이언트에게 응답한다.

 

- php 파일에서 <br> 태그와 \n의 차이

<br>태그는 html에서 줄바꿈을 위한 태그로, 웹 브라우저에서 <br>태그를 만나면 해당 위치에서 줄바꿈을 수행한다.

\n은 줄바꿈문자로 소스코드나 텍스트 파일에서 줄바꿈을 수행한다. 브라우저에서는 한 줄로 표시된다.

 

- php 프로그램의 파일 확장자는 ".php"이다.

하지만 파일의 내용을 보면 전체적으로는 html 파일의 형태를 하고 있으며

필요한 부분에 php 코드가 삽입되는 방식으로 구성된다.

php 코드의 시작을 "<?php", php 코드의 끝을 알리는 표시는 "?>"다.

echo는 웹 브라우저의 화면에 출력할 때 사용하는 명령어다.

 

- php 프로그램의 의미는 일반적으로 확장자가 .php인 파일에

php 언어로 작성된 코드가 포함되어 있으며, 웹 서버가 php 파일을

php 엔진에 처리를 위임하여 php 엔진에 의해 실행되는 파일을 말한다.

php 엔진에 의해 php 프로그램이 실행되면 html 문서로 변환된다.

 

- php문법에서 큰 따옴표와 작은 따옴표로 만든 문자열의 차이

큰 따옴표로 싸인 문자열안에 변수명이 들어있다면 변수명 자리에 그 변수의 값이 치환된 문자열이 만들어진다.

하지만 작은 따옴표로 만든 문자열은 그런작업을 하지 않는다.

$a = 5;
$b = "값은 $a 입니다."; // 또는 "값은 {$a}입니다." ;
echo $b; // 값은 5 입니다.
// {}중괄호로 변수명을 둘러싸지 않는다면 변수명과 다른 문자열 사이에 공백을 둘 것.

$a = 5;
$b = '값은 $a 입니다.';
echo $b; // 값은 $a 입니다.

 

- php 프로그램은 php 엔진이 실행한다.

순수하게 html로만 구성된 파일은 웹 브라우저가 모두 해석해서 화면에 표시할 수 있지만,

php 프로그램 코드는 웹 서버와 php 엔진을 거쳐야만 실행 결과를 얻을 수 있다.

 

- php(personal home page → hypertext preprocessor)와 javascript의 차이php는 서버측(server-side) 프로그래밍 언어다.javascript는 웹 브라우저 위에서 실행되는 클라이언트측 프로그래밍 언어다.php 코드는 서버에서 실행되고, javascript 코드는 웹 브라우저에서 실행된다.ex. php 코드는 서버에서 실행되어 html 문서로 변환되어 웹 브라우저에게 전달되고,자바스크립트는 코드 웹 브라우저에서 실행되기 때문에php 코드는 웹 브라우저에서 소스코드를 보면 보이지 않고,자바스크립트 코드는 웹 브라우저에서 소스코드를 볼 때 볼 수 있다.

 

- url(위치 지정자)과 uri(식별자)의 차이

 

- 웹 브라우저 주소창에 http://a.com/a.php를 입력하고 엔터를 누르면 

url 요소를 분석하고, 호스트에 해당하는 a.com의 ip를 알아내기 위해 dns를 조회한다.

처음엔 각 컴퓨터마다 존재하는 hosts 파일을 조회하고(windows 운영체제의 경우,

시스템 시작 또는 hosts 파일 변경시 dns 클라이언트 서비스에 의해 hosts 파일의 내용이 캐시에 미리 로드된다.

결국 dns 캐시를 먼저 조회하긴 하나 dns 캐시의 정보는 hosts 파일에 기반한다는 것)

로컬 dns 캐시에도 없다면, 네트워크를 통해 dns에 해당 도메인에 대한 ip 주소가 무엇인지 질의한다.

ip주소를 응답받으면, http는 tcp 연결을 기반으로 하기 때문에 tcp 연결을 시도하고,

tcp 연결이 성공하면 클라이언트가 서버로 요청을 하고, 서버는 클라이언트로 응답한다.

 

- cdn(contents delivery network service)

접속자의 ip주소 정보를 통해 cdn은 db에 저장된 정보를 통해 접속자의 위치를 파악할 수 있다.

어떤 도메인에 해당하는 웹 서버는 여러 개가 있고(요청하는 서비스를 제공하는 서버가 여러 개가 있을 수 있다)

접속자의 요청 위치에 따라 원활한 서비스를 제공하는 웹 서버의 ip주소를 제공한다.

cdn은 지속적인 헬스 체크를 통해(웹 서버가 다운되지는 않았는지 상태 체크 등) 현재 접속한 위치에 따라

장애가 있는 서버는 제외하고, 정상 서버중 최적의 서버 ip 주소를 제공한다.

 

- 함수는 별도의 이름을 가지는 코드블록{}을 의미하며, 함수의 종류는 사용자 정의 함수와 내장 함수가 있다.

사용자 정의 함수는(user defined function) 프로그래머가 내장함수를 사용해서 어떤 기능을 직접 정의한 것을 의미한다.

내장 함수(build-in function)는 php 엔진에 처음부터 만들어져 있는 함수를 의미한다.

 

참고

1. 웹 브라우저에 URL 입력하면 일어나는 일 - 인프라 위주

2. <핵심만 배우는 php 프로그래밍>

 
반응형