php 생활코딩 강의 - 2
3. JavaScript와 PHP
본 수업의 하위 수업에서는 JavaScript와 PHP라는 두 언어를 동시에 학습합니다.
프로그래밍 언어의 기본적인 기능은 거의 동일하기 때문입니다. 이 과정에서 프로그래밍 언어에 대한 기본적이고 본질적인 이해를 하셨으면 좋겠습니다. 서버 쪽 언어와 클라이언트 쪽 언어의 차이점과 관계를 파악할 수 있다면 더욱 좋겠죠! 후반부에는 프로그래밍을 어떻게 공부해야 할 것인가에 대한 저의 사견도 담았습니다.
3.2 복습과 수업 예고
2챕터에서는 client 쪽에서 동작하는 언어(html, css)를 배웠다면
지금부터는 server 쪽에서 동작하는 언어(javascript, php, 데이터베이스)를 배울 것.
이들이 어떻게 상호작용하면서 동작할까?
웹서버가 웹브라우저에게 요청을 받고, 확장자를 들여다보는데 .php 요청이 들어왔으면
웹서버는 php 엔진에게 이 일을 처리하라고 명령함.
php 엔진은 이 서버 컴퓨터의 저장장치에서 해당하는 a.php 파일을 읽어서 <?php ... ?> 부분을 해석함
php 문법에 따라서 해석함.
그리고 그 내용에 따라 데이터베이스에게 필요한 데이터들을 요청함
데이터베이스는 해당 내용을 찾아서 php 엔진에게 돌려주고,
php 엔진은 해당 <?php ... ?> php 구간에다가 받아온 데이터들을 결합시켜서 HTML로 완성을 함
이런 식으로 하나의 HTML을 만들어서 웹서버에게 전달함.
그러면 이제 웹서버는 이 완성된 HTML을 웹브라우저에게 전달하고,
웹브라우저는 이 HTML 코드를 해석해서 화면에 출력함
~이게 바로 서버쪽에서 동작하는 추상적인 흐름~
3.3 JavaScript vs PHP
웹브라우저에게 명령할 수 있는 언어 JavaScript
하나의 HTML 파일로 여러 정보들을 표현할 수 있는 언어 PHP
3.4 웹페이지에 코드 삽입하기
웹페이지라는 HTML 안에 JavaScript와 PHP가 공존하는 방법
1. PHP를 웹페이지에 삽입하는 방법
<?php ... ?> 이 부분을 PHP 엔진이 해석해서 웹페이지에 포함시키도록 동작함.
echo 부분을 PHP 엔진의 PHP인터프리터가 해석해서 웹서버에게 전달하고, 웹브라우저가 그걸 받아서 웹페이지에 나타냄. 그래서 개발자도구를 켜서 확인하면 php 코드는 없고, PHP엔진이 해석한 결과물이 보이는 것.
2. JavaScript를 웹페이지에 삽입하는 방법
<script></script>
PHP는 서버 사이드 언어라서 PHP 구문이 실행된 결과가 만들어져서 웹브라우저에게 전송된다.
그러나 JavaScript는 웹브라우저가 해석해서 처리하는 언어라서, 서버에서는 JavaScript에 손을 대지 않는다.
웹브라우저가 JavaScript 코드를 해석해서 화면에 반영하기 때문에
개발자도구를 열어보면 JavaScript 코드가 그대로 출력되는 것.
따라서 PHP는 서버쪽에서 처리하니까 서버 사이드 언어,
JavaScript는 클라이언트쪽에서 처리하니까 클라이언트 사이드 언어라고 한다.
3.5 데이터타입과 연산자
JavaScript와 PHP의 차이
PHP에서 +를 사용하면 알아서 숫자 10으로 변환해서 20을 출력한다.
자스처럼 문자형태 그대로 더하고 싶으면 . 을 사용한다.
3.6 디버깅
PHP의 에러를 확인하려면 wampstack/apache2/logs/error.log 파일을 열어보면 확인할 수 있다.
혹은, wampstack/php/php.ini 파일이 있는데 기본적인 설정 파일이다.
이 파일을 열고 display_errors = On으로 수정해준다.
그 다음 bitnami wamp stack manager 를 열고 Apache Web Server를 Restart를 클릭.
그러면 이제 에러가 화면에 표시됨
3.7 변수
PHP는 $를 붙여서 변수를 생성함
$name = 'mina';
3.8 비교
==, !=, >, < 등 JavaScript와 PHP 동일
3.9 조건문
조건문도 거의 동일하다.
3.10 로그인 기능 만들기
3.10.1 JavaScript로 로그인 기능 구현하기
prompt
3.10.2 PHP로 로그인 기능 구현하기
8.php?password=1111
이 url에 전달된 값을 알고 싶다면 PHP에서 기본으로 제공하는 $_GET
$_GET['password']
이렇게 8.php의 바깥쪽에서 입력된 값을 가져올 수 있다.
8.php?name=mina&age=25
만약 이렇게 여러 입력값을 받으면
echo $_GET['name'].$_GET['age'];
이렇게 하면 받은 입력값을 화면에 나타낼 수 있다.
mina25
3.12 배열 + 반복문
생략...
4. php 실습
4.1
각 txt 파일들이 php에 의해 읽혀서 index.php 파일에 위치하게 되는 것
이렇게 각 파일들에 데이터를 담고 분리된 파일들을 index.php에서 가져와서 화면에 그려내는 것..
즉 index.php 파일 안에서 html 파일들들 관리하는 방법.
그러나 이 방법보다는 데이터베이스에 데이터들을 저장해서 가져오는 방법이 더 효율적이라고 함.
웹브라우저가 정보를 입력하면 데이터베이스가 데이터를 응답해주는 관계.
4.2
일단은 첫 번째 방법(파일에 데이터를 저장해서 불러오기)으로 만들어보자.
PHP 내장함수 중에 file_get_contents('1.txt'); 을 사용하면 1.txt 파일을 읽어올 수 있음
이걸 활용해서 1.txt 파일을 생성하고, 2.txt 파일을 생성해서
id 값에 따라서 다른 파일을 불러올 수 있다.
4.4
이렇게 네비게이션바에 링크를 걸 때, url에 id 값을 추가해놓으면
클릭한 곳으로 이동하면서 해당하는 id 해당 url의 이름을 가진 txt 파일이 화면에 그려진다.
만약 id 값이 없을 수도 있기 때문에 empty() 함수를 활용한다.
빈 값이 아닐 때 해당 파일을 불러오도록 하기
이제 데이터베이스에 저장된 데이터를 불러오는 방법을 사용해보자