코딩의 발전 과정 - 중복의 제거
1. 유지보수의 편의성
2. 코드의 감소
3. 가독성 향상
소프트웨어에 있어서 코드란?
코드 == 설계도 -> false
코드 == 제품 -> true
곧 중복제거는 생산성의 향상을 뜻하고, 중복을 제거되면 재사용 가능성이 높아지고 이를 통해 또 중복 제거가 용이하게 된다.
라이브러리란? - 집집마다 있는 책장을 합친 공동의 도서관 역할
중복해서 사용하는 로직을 재사용 할 수 있도록 부품화(모듈화) 시킨 것
-> 하나의 프로젝트에서 재사용 -> 자신의 프로젝트에서 재사용 -> 모두의 프로젝트에서 재사용
index.php , write.php, process php 에서 중복되는 코드
$conn = mysqli_connect('localhost', 'root', 'minu1312');
mysqli_select_db($conn, 'opentutorials);
발견, 이를 따로 분리하여 lib/db.php 에 담도록 하고 각 php에는 저 코드를 제거하고
require("lib/db.php"); 을 넣는다.
-> 해당 PHP파일이 구동하기 위해서는 ()의 lib/db.php를 불러와야 한다.
BUT
1) 예제는 2줄이지만 라이브러리 기능을 하는 코드들이 1000줄이라면? -> 한줄로 줄여서 표현 -> 함수에 담는다.
2) localhost, root 등등 고정값은 재사용의 기능을 떨어뜨리기 때문에 고정값을 변수값으로 준다.
function db_init($host, $duser, $dpw, $dname) {
$conn = mysqli_connect($host, $duser, $dpw');
mysqli_select_db($conn, $dname);
return $conn;
}
?>
-> 데이터베이스 호스트이름,유저,비밀번호,데이터베이스이름에 변수를 주고 함수의 디비 접속(커넥션)할 때 받은 정보 $conn을 리턴 값으로 받는다.
index.php , write.php, process php 에
require("lib/db.php");
$conn = db_init() ---> 추가
-> require 함수를 통해 lib/db.php 의 내용 확인을 하여, db_init 함수 존재를 확인하고, 그 함수의 내용을 파악한다.
db_init() 함수를 사용하고 $conn으로 리턴한다.
db_init(); -> 데이터 베이스, 접속 선택하는 작업을 라이브러리화 한 것
$conn = db_init('localhost', 'root', 'minu1312','opentutorials');
-> 3개의 php에 데이터베이스 접속 정보를 모두 써 넣으면 중복이 발생한다! -> 중복을 제거하기 위해 cofing.php에 접속 정보를 따로 분리하는 작업 실시
config -> 어떤 에플리케이션이 동작하는 기본 방법을 바꿀 수 있는 것
config.php 내용
<?php
$config = Array(
'host'=>'localhost',
'duser'=>'root',
'dpw'=>'minu1312';
'dname'=>opentutorials'
)
?>
index.php , write.php, process php 에
require("config/config.php"); -> 추가
require("lib/db.php");
$conn = db_init($config['host'],$config['duser'],$config['dpw'],$config['dname']);
-> 1. 디비 접속 정보를 담고 있는 config.php 파일 요청
2. 디비 접속 선택 라이브러리가 들어 있는 db.php 파일 요청
3. config.php에 있는 디비 접속 정보를 db_init 함수 값의 각 변수에 적용해서 디비에 접속하는 함수 실행하고 그 리턴 값은 $conn에 담는다.
결론
1. 각 작업 파일에서 중복되는 로직을 분리하여 하나의 라이브러리를 만들어 두면 필요할 때마다 라이브러리를 불러다 쓸 수 있다-> 중복의 제거와 재사용성 증가를 통한 효율성 증가
2. config.php에 접속 정보를 따로 담아두면,
다른 호스트, 다른 이름, 패스워드를 가진 데이터베이스 접속이 필요한 경우 config.php 파일 내용만 바꿔서 나머지를 재사용 할 수 있다!