검색결과 리스트
알기에 해당되는 글 2건
- 2014.04.24 이고잉의 생활코딩 #1~#2 1
- 2014.04.09 직장인의 효율적인 시간관리 1
글
이고잉의 생활코딩 #1~#2
<이고잉의 생활코딩 1>
* 4월 24일 오전 9시~ 오후 1시
* 강사: 이고잉 (예전에 티스토리 개발을 했다고 함!)
왜 난 IT기업에 4년째 다니면서 이런 공부를 처음했을까.
상품기획을 하며 무수히 썼던 HTML 이니 CSS니... 처음 제대로 이해한 시간이었다.
이 수업이 끝나면 "작심 40시간 라이브"를 꼭 완주하겠다.
* 참고: 이고잉의 생활코딩: https://opentutorials.org/course/1
웹의 기본개념
시작은 웹과 인터넷은 같은가?에 대한 질문으로 시작
1) 웹: 1990년 탄생, 팀버너스리가 웹의 창시자
=> ftp/ : 웹과 이메일은 형제
=> 웹이나 이메일같은 아이들이 동작할 수 있도록 하는 플랫폼이 인터넷
=> 웹은 점점더 방대하고 거대해짐(수많은 기술의 집합, 가장많이 활용되고, 가장많은 개발자가 웹개발)
=> 팀버너스리: 최초의 웹브라우저를 만들고, 웹서비스를 제공하는 웹서버를 만들고, 프로토콜(http)고안, 웹문서(html)도 만듬 "혼자서"/ 그리고 퍼블릭 도메인으로 오픈/ 그담 IE, 모질라 등이 생겨나며 폭발적으로 성장
=> 즉 웹의 핵심: (웹이라는 테두리 안의 핵심구성요소)
(초창기): 매우 간결 => 웹 뿐아니라 앱등 모든 서비스(통신)의 기본개념
1. 클라이언트=웹브라우저 (갑)
2. 서버 (을)
그리고, HTML
*갑이 을에게 url로 정보를 요청(request)하면, 을은 정보를 찾아서 응답(response)
*서버에는 웹브라우저의 카운터파트너로서 설치된 소프트웨어인 '웹서버'가 있음
*즉 웹브라우저와 웹서버는 서로가 파트너
*daum.net/main.html => 서버가 위치하고 있는 곳의 위치=> 즉 url을 치면 해당 주소의 웹서버로 찾아감=> main.html 파일을 찾아서 다시 쏴줌=> 그러면 웹브라우저에 그려줌
(폭발적성장을 통해):
* 웹브라우저에 표시해야 하는 다양한 콘텐츠가 생겨나고, 엄청난 트레픽이 생겨나고, HTML와 링크만으로는 감당할 수 없는 상황이 생김
=> 그래서 생겨난게, PSP, SP, 파이선, 자바 등의 개념이 생겨남
=> 그 뒤에 데이터 베이스 등... 생겨남
2) 인터넷: 인터넷이 웹을 포괄함 (1970년 탄생)
=> 모든 서비스와 하드웨어의 네트워크, 전세계에서 가장 큰 네트워크
=> 이중 하나가 이메일(이메일이 웹보다 훨씬 앞선 서비스)
코딩실습
1. 웹서버 설치하기
실습 https://bitnami.com/stack/wamp 다운로드
* bitnami를 깔면? => 아래의 것들을 한방에 설치 할 수 있도록 도와주는 프로그램
1) 웹서버가 깔린것(아파치)
2) PHP가 깔림
3) MySQL이 깔림
=> 즉, 내 컴퓨터가 서버가 된것임
(웹브라우저는 이미 깔려있고, 내 컴퓨터가 서버, 웹서버가 설치, 실행되는 것!)
1) http://localhost/ (혹은 117.0.0.1) => "웹브라우저가 설치된 현재 내컴퓨터 자체"
2) C:\Bitnami\wampstack-5.4.26-2\apache2\htdocs >index.html ===> 이걸 읽어서 웹브라우저에 그려줌 => 그게 localhost로 표시된 첫 페이지의 html === http://localhost/(index.html 생략된거임)
3) 만약 열어서 Edit 하면 화면이 바뀜> 다른 사람 IP로 접속하면 또 그 사람 화면나옴
2. HTML(웹페이지의 정보를 담당)
* HTML 편집위해 sublime text 설치 (개발도구 중 하나, 예를 들면 git(버전관리도구)과 같은)
*HTML? Hypertext(문서와 문서가 링크로 연결되는 속성) Markup Language
<html>=> 이런거가 "태그"
<body>
Here <b열리는태그>is</b닫히는태그> <a 부가정보(링크주소)href="http://www.daum.net" (새탭)target="_blank">daum</a>.
<a href="http://www.daum.net"><img src="http://icon.daumcdn.net/w/icon/1404/23/160346244.jpg"/></a> 이미지 삽입> 거기에 링크추가
<ul 그룹>
<li 리스트>tistory</li>
<li>miznet</li>
<li>story ball</li>
<li>miznet</li>
</ul>
<ol 숫자로그룹>
<li>html</li>
<li>css</li>
<li>javascript</li>
</ol>
</body>
</html>
*href같이 데이터를 설명하는 데이터를 메타데이터라고 함
*body 안에 있는 정보들이 웹페이지에 설명되는 데이터
3. CSS (웹페이지의 외모를 담당) 시각적인 것을 표현하는 별도의 언어, html보다 복잡/ 배우는것 쉽지만 잘하는건 어려움;;
<li style="color:red;text-decoration:underline">tistory</li>
여기서 style=html/ "color:red;text-decoration:underline"=css 언어
<html>
<head>
body {
color:blue;
}
<style>
body {
color:blue;
}
ul { => 주어역할 , 즉 "ul태그안의 정보는"
color:red; => 서술서역할 "빨간색" effect를 준다.
} *** 바디에서 블루를 적용했지만, 세부가 더 우선 적용 됨
ol {
color:blue;
}
</style>
<body>
<b>I Love <a href="http://www.daum.net" target="_blank">daum</a></b>.
<a href="http://www.daum.net"><img src="http://icon.daumcdn.net/w/icon/1404/23/160346244.jpg"/></a>
<ul>
<li style="color:red;text-decoration:underline">tistory</li>
<li>miznet</li>
<li>story ball</li>
<li>miznet</li>
</ul>
<ol>
<li>html</li>
<li>css</li>
<li>javascript</li>
</ol>
</body>
</html>
4. PHP
Hello world
<?php
echo"hello world";
?>
=> http://localhost/index.php 들어가믄 hello world hello world
=> php는 웹서버가 처리할 수 없다고 받아들임
=> 웹서버 설정에 php는 처리를 못하니, php 엔진으로 넘겨라는 정보가 있음
=> 웹서버가 직접 처리 하지 않고 php프로그램이 해당문서를 찾고 읽어내고, 일반적인 텍스트 파일의 형식으로 다시 웹서버로 넘겨주고, 웹서버가 브라우저로 넘겨줌
=> 웹브라우저 입장에서는 php는 transparent 즉, 해석할 수 없음(웹브라우저는 html, css 밖에 못읽음)
Hello world => 일반적인 텍스트로 생각하고 출력
<?php => php코드 시작/ php언어의 문법에 맞게 php엔진이 해석하여 텍스트만 웹서버로 전달
echo"hello world";
?>
즉, 브라우저에서 소스를 까보면 단순텍스트로 나옴
Hello world
hello world
그럼 PHP는 왜 생겨났나? 언제쓰나?
- 만약 같은 글자를 수만번 똑같이 써야한다면? 배수를 천번까지 써야 한다면? 사람이 하기 힘듬
- 그래서 생겨난 것이 php
<?php
for($i=0;$i<1000;$i++)
echo"hello world".($i*2)."\n"
?>이런식으로 씀 ㅋㅋ
5. 프로그래밍
1) 데이터 타입: "string", "number", "bool(true) 같은 boolean//조건문에서 출력//4)번에서 설명
<?php
echo화면에 출력하라 "DAUM" (" 혹은 ' 따옴표 사이만 문자. 따옴표 없으면 화면에 출력이 안됨/에러);
?>
<?php
echo 12345;(숫자는 따옴표 없음);
?>
<?php
echo "12345";(이건 문자);
?>
<?php
echo 1+1; (화면에 2출력, "1+1" 하면 그대로 1+1이 출력)
?>
2) 변수와 산술연산자
<?php
$a = 1;
$b = 2;
echo $a + $b;
$b = 3;
echo $a + $b;
?> => 화면에는 3,4가 출력
<?php
$a = 2;
$a = $a + 2;
$a = $a * 2; //8 (//주석)
$a = $a / 2;
echo $a
?> => 화면에는 4가 출력 (즉 a값만 바꾸면 아래 값들은 수정할 필요 없이 다 바뀜/ 즉 변수에만 관심을 가지면 함수에 다라 결과는 알아서 바뀜)
3) 비교연산자
<?php
$a = 5;
$b = 2;
var_dump($a == $b) // 좌항과 우항이 같은지비교(==) 주의: 우항에 있는 값을 좌항에 대입하는 것 (=)
?>
=> 화면에 bool(false) 출력
<?php
$a = 2;
$b = 2;
var_dump($a <= $b)
?>
=> 화면에 bool(true) 출력
4) 조건문
<?php
if(true) {echo'True';
}
?>
=>화면에 True 출력/ if(false)면 출력안됨 => But 아무 쓰잘데기 없음(변수로 바꿔야함)
<?php
$a = 2;
$b = 3;
if($a == $b) {
echo'True';
} else{
echo 'False'; // 만약 if가 아니면 else 이하를 출력
}
?>
=> 사용자입력한 패스워드랑 서버에 저장된 패스워드가 같으면 로긴/ 아니면 얼럿 이러한 로직에 수없이 구현
5) 반복문
<?php
while(true) {
echo 'loop';
}
?> // 의미없는 코드, 이렇게 하면? 무한루프ㅋㅋㅋㅋ (키보드가 안움직여 ㅋㅋㅋㅋ)
<?php
$i = 0;
while($i <10) {
echo "loop\n"; (\n 줄바꿈)
$i = $i + 1;
}
?> // 이렇게 하면? 10번만 루프가 돌거임
-----------
<html>
<body>
<ul>
<?php
$i = 0;
while($i <10) {
echo "<li>loop</li>\n";
$i = $i + 1;
}
?>
</ul>
</body>
</html>
// 이렇게 하면 html의 바디 내에 php 결과들이 출력
----------------------------------
내일 배울 함수까지 하면, 프로그래밍의 기본개념은 대략 이해할 수 있음
그리고 데이터베이스/ PHP와 데이터 베이스 연결해서 서비스 만드는 방식 설명 예정
화이팅!
* 4월 25일 오전 9시~ 오후 1시
* 강사: 이고잉
전날에 이어 프로그래밍의 마지막인 함수와 배열/ 그리고 데이타베이스
6)함수
6-1) 함수기본
<?php
function func() {
echo "<li>daum</li>";
}
?>
<html>
<body>
<ul>
<?php
func();
func();
func();
?>
</ul>
</body>
</html>
=> 화면에는 daum,daum,daum 세번 출력됨,
=> 함수를 쓰게되면 유지보수의 용이성이 현저히 증가 (즉, 변경사항을 일일이 바꿀필요 없음)
=> 소프트웨어에서의 재사용성
6-2) 입력 (입력과 출력 input과 output =IO라고 흔희함)
<?php
function($item) {
echo "<li>{$item}</li>";
}
?>
<html>
<body>
<ul>
<?php
func('html');=> item이라는 변수는 html이라는 값이 들어감/ 즉, echo "<li>html</li>"; 의 과정을 통해 화면에 html이 출력됨 즉, html을 '입력'
func('css');
func('php');
func('mysql');
?>
</ul>
</body>
</html>
** 이 함수를 2개의 입력값을 받을 수 있는 형태로 바꾸면??
<?php
function func($item, $hour) {
echo "<li>{$item},{$hour} hour</li>";
}
?>
<html>
<body>
<ul>
<?php
func('html', 1); =>2개의 입력값이 들어가서, 화면에 html, 1hour가 출력이 됨
func('css', 2);
func('php', 4);
func('mysql', 3);
?>
</ul>
</body>
</html>
6-3) 출력
=>echo를 return으로 바꿔주면
echo func('html', 1); 가 실은 echo "html, 1hour"로 바꿔 준것임???
<?php
function func($item, $hour) {
return "<li>{$item},{$hour} hour</li>";
}
?>
<html>
<body>
<ul>
<?php
echo func('html', 1);
func('css', 2);
func('php', 4);
func('mysql', 3);
?>
</ul>
</body>
</html>
=> 다시한번 쉽게 설명
<?php
function func() {
return 1;
}
echo func();
echo func();
echo func();
echo func();
echo func();
echo func();
?>
=> 왜 꼭 return을 쓸까?
위에서 echo 즉 출력으로 설정하면 출력값으로 밖에 못쓰지만
return을 하면 echo 뿐 아니라 email 발송, 저장 등등등 다양한 용도로 func 값을 활용할 수 있음
=> 소프트웨어의 재사용성이 더 높아짐!
7)배열
<?php
$client = array('html','css','js');
$server = array('php','mysql');
echo $client[0];
?>
=> 1반 학생들 그룹핑, 2반 학생들 그룹핑해놓고, 1반 집합 하면 전부 모을 수 있음
=> 좌측부터 숫자부여, 읽어옴 (1반에 27번 나와봐) echo하면 0이 첫번째 => html 출력
<?php
$client = array('html','css','js');
$server = array('php','mysql');
echo count($client);
?>
=> client 안에 배열되어 있는 구성의 총 수는? 3
=> count는 함수 (built-in 함수, 정의하지 않아도 되는 함수, php.net에 들어가면 빌트인 함수 알수 있음)
<?php
$client = array('html','css','js');
$server = array('php','mysql');
array_push($client, 'tb'); => clinent에 값 입력
var_dump($client); => array 안의 내용 모두 출력
echo count($client);
?>
** 배열의 효용은 반복문과 합쳐질때 더욱 힘을 효율적
<?php
$client = array('html','css','js');
$server = array('php','mysql');
array_push($client, 'tb');
$i = 0;
while($i < 3){
echo $client[$i];
$i = $i + 1;
}
?>
=> 반복문이 호출될때 마다 호출되는 값= client 내의 인덱스
=> 즉 3이하로 출력이 되는 3번을 client 내에서 3번 불러옴
<?php
$client = array('html','css');
$i = 0;
while($i < 3){
echo $client[$i];
$i = $i + 1;
}
?>
=> 만약 이렇게 되면 3개가 없어서 ERROR/ 이상함;;
<?php
$client = array('html','css');
$i = 0;
while($i < count($client)){ =>이렇게 바꿔주면 안에 있는 숫자만큼
echo $client[$i];
$i = $i + 1;
}
?>
=>DB안에 글목록 혹은 회원 정보를 배열로 가져와 반복문과 결합하여
while을 통해 html 코드를 만들어서 화면에 리스트를 뿌려줌
데이터베이스
* 엑셀처럼 정보를 구조화/저장하는 도구
* 둘의 차이는 구조화 되어 있으냐? 구조화 되어 있지 않느냐? 의 차이
- 워드에서는 서술하지만, 엑셀에서는 틀을 짬
- 워드: 나는 제주에 사는 꼬꼬마이고 여자이다.
- 엑셀: no/이름/사는 곳/ 이런식으로 "구조화"
=구좌화를 통해 일목요연하게 데이터를 정렬하고, 기준에 따라 정열도 하고 필터를 통해 기준에 대항하는 데이터만 출력도 가능
=> 하지만 데이터베이스에서는 SQL을 씀
-Strectuered 구좌화된 정보를
-Query 질의하는(조회, 추가, 삭제 등등)
-Language 언어
** bitnami> myadmin >root/111111
#데이터베이스 기초 (https://opentutorials.org/course/488/2611)
- 클라이언트: SQL이라는 언어(매개체)를 통해 서버에 전달
* 클라이언트의 종류: phpMyadmin 등... 웹브라우저 처럼 서버에 접근하기 위한 개념
- 서버: SQL을 해석해서 명령하는 작업을 처리 (마치 웹서버처럼)
데이터를 관리하기 위한 전문적인 시스템
(컴퓨터에서는 파일과 같은 개념/ BUT 개인이 활용할 수 있는 아주 간단한 개념)
"웹서버에 온 명령 안에 PHP가 있으면 PHP엔진으로 넘김 (이때는 PHP엔진이 서버, 웹서버가 클라이언트)
이때 안에 DB접속해야 하는 명령이 있으면
PHP 엔진이 mySql(데이터 베이스)에 요청 후 응담 받아서 (이때는 PHP에진이 클라이언트, DB가 서버)
다시 웨서버로 던지고, 웹브라우저로 나옴
** 그래서 PHP엔진이나, mySql 같은 아이를 '미들웨어'라고도 함
** 서버와 클라이언트는 가변적/ 웹과 DB들이 서로 협력하여 동작"
tip)우리가 쓸 phpMySql은 웹기반이고, php와의 혼용 사용에 편리하여, 콘솔 띄우는 방식 보다 편리함~
데이터베이스는 기본적으로 인증시스템을 거침(아무나 접근X)
- root/111111 로 들어왔다 = 서버로 일단 진입
- 서버안에 들어오면 각각의 데이터베이스가 존재 (디렉토리와 같은 개념/카테고라이징)
- 그리고 그 안에는 테이블이 존재 (마치 엑셀문서처럼 구좌화)
** 데이터베이스 구조: 서버> 데이터베이스>테이블>데이터(열과 행)
#데이터베이스 실습
1) 데이터베이스 생성 (https://opentutorials.org/course/488/2611)
CREATE DATABASE opentutorials CHARACTER SET utf8 COLLATE utf8_general_ci;
SQL에 넣고 새로고침 해보면/ 서버에 opentutorials 테이블이 생성되었음
2) 명령어
>데이터베이스 만들기
CREATE DATABASE opentutorials CHARACTER SET utf8 COLLATE utf8_general_ci;
>특정 데이터베이스로 작업시작하기
use opentutorials;
>테이블 생성
CREATE TABLE topic (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(255) NOT NULL ,
description text NULL ,
created datetime NOT NULL ,
PRIMARY KEY (id)
);
>데이터 입력 (topic 열에 데이터 입력)
INSERT INTO `topic` (title,description,created) VALUES ('JavaScript란', '<h2>\r\n 자바스크립트는</h2>\r\n<ul>\r\n <li>\r\n 브라우저에서 실행되는 언어</li>\r\n <li>\r\n 가장 많이 사용되는 언어</li>\r\n <li>\r\n 주로 html을 프로그래밍적으로 조작하기 위해서 사용됨</li>\r\n</ul>\r\n<h2>\r\n 예제</h2>\r\n<ul>\r\n <li>\r\n 자바스크립트는 3가지 방식으로 사용됨</li>\r\n <li>\r\n 외부의 파일을 로드</li>\r\n <li>\r\n <script>태그 사이에 기술</li>\r\n <li>\r\n 태그에 직접 기술</li>\r\n</ul>\r\n<h2>\r\n 참고링크</h2>\r\n<ul>\r\n <li>\r\n <a href=\"http://www.maroon.pe.kr/webmaster/java/java_study.html\" target=\"_blank\">스크립트 세상</a></li>\r\n <li> \r\n</ul>\r\n', now());
INSERT INTO `topic` (title,description,created) VALUES ('변수와 상수', '<p>\r\n 변수란</p>\r\n<ul>\r\n <li>\r\n 변하는 값</li>\r\n <li>\r\n x = 10 일 때 왼쪽항인 x는 오른쪽 항인 10에 따라 다른 값이 지정된다.</li>\r\n</ul>\r\n<p>\r\n 상수란</p>\r\n<ul>\r\n <li>\r\n 변하지 않는 값</li>\r\n <li>\r\n x = 10 일 때 오른쪽항인 10이 상수가 된다.</li>\r\n</ul>\r\n<pre class=\"brush: xml\">\r\n<script type="text/javascript">\r\n // x의 값이 오른쪽 항에 따라서 변한다.\r\n // x가 변수라는 명시적인 의미\r\n var x = 10;\r\n alert(x);\r\n var x = 20;\r\n alert(x);\r\n</script></pre>\r\n<p>\r\n </p>\r\n', now());
INSERT INTO `topic` (title,description,created) VALUES ('연산자', '<p>\r\n 연산에 사용되는 기호들. (y = 5 일 때)</p>\r\n<table class=\"table\">\r\n <tbody>\r\n <tr>\r\n <th align=\"left\" width=\"15%\">\r\n Operator</th>\r\n <th align=\"left\" width=\"40%\">\r\n Description</th>\r\n <th align=\"left\" width=\"25%\">\r\n Example</th>\r\n <th align=\"left\" width=\"20%\">\r\n Result</th>\r\n </tr>\r\n <tr>\r\n <td valign=\"top\">\r\n +</td>\r\n <td valign=\"top\">\r\n 더하기</td>\r\n <td valign=\"top\">\r\n x=y+2</td>\r\n <td valign=\"top\">\r\n x=7</td>\r\n </tr>\r\n <tr>\r\n <td valign=\"top\">\r\n -</td>\r\n <td valign=\"top\">\r\n 빼기</td>\r\n <td valign=\"top\">\r\n x=y-2</td>\r\n <td valign=\"top\">\r\n x=3</td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n', now());
INSERT INTO `topic` (title,description,created) VALUES ('JSON', '<h2>JSON이란?</h2>\r\n\r\n<p>서로 다른 언어들간에 데이터를 주고 받는 여러 방법이 있다. 대표적인 것이 XML인데, XML은 문법이 복잡하고, 엄격한 표현규칙으로 인해서 json 대비 데이터의 용량이 커진다는 단점이 있다.</p>\r\n\r\n<p>JSON은 경량의 데이터 교환 형식으로 JavaScript에서 숫자와 배열등을 만드는 형식을 차용해서 이것을 다른 언어에서도 사용할 수 있도록 한 텍스트 형식이다. </p>\r\n\r\n<p>아래 예제는 위의 예제에서 전송한 데이터를 받아서 몇가지 부가정보를 추가해서 json으로 인코드한 후에 다시 반환하는 PHP 코드다. </p>\r\n\r\n<p>json.php - (<a href=\"https://github.com/egoing/codingeverybody_javascript/blob/master/JSON/json.php\" target=\"_blank\">github</a>)</p>\r\n\r\n<pre class=\"brush: php\">\r\n<?php\r\n$userinfo = json_decode($_GET['data']);\r\n$userinfo->address = 'seoul';\r\n$userinfo->phonenumber = '01023456789';\r\necho json_encode($userinfo);\r\n?></pre>\r\n\r\n<h2>json의 형식</h2>\r\n\r\n<h3>object</h3>\r\n\r\n<p>객체는 아래와 같은 문법을 가지고 있다.</p>\r\n\r\n<p>예제</p>\r\n\r\n<p>{"userid":"egoing","pwd":"12345567"}</p>\r\n\r\n<p><img height=\"113\" src=\"http://www.json.org/object.gif\" width=\"598\" /></p>\r\n\r\n<h3>array</h3>\r\n\r\n<p>배열은 아래와 같은 문법을 가지고 있다. </p>\r\n\r\n<p>예제</p>\r\n\r\n<p>[1,2,3,4]</p>\r\n\r\n<p><img height=\"113\" src=\"http://www.json.org/array.gif\" style=\"line-height: 1.8em;\" width=\"598\" /></p>\r\n\r\n<h3>Value</h3>\r\n\r\n<p>위에서 사용된 Value는 값을 의미하는데 큰 따옴표로 묶인 문자나 숫자, 불린 값이 사용된다.</p>\r\n\r\n<p>예제</p>\r\n\r\n<ul>\r\n <li>문자 : "헬로우 월드"</li>\r\n <li>숫자 : 1</li>\r\n <li>불린 : true</li>\r\n</ul>\r\n\r\n<p><img height=\"278\" src=\"http://www.json.org/value.gif\" width=\"598\" /></p>\r\n', now());
>데이터베이스 클라이언트에서 질의해서 데이터 불러오기
SELECT * FROM topic
: topic 테이블 안에 있는 id, title, decription 표가 나옴
> 이중 필요한 데이터만 보기
SELECT id, title, created FROM topic
> 조건검색하여 보기
SELECT id, title, created FROM topic WHERE id=1; //id가 1인 데이터만 출력
앗, 그런데 id는 정해주지 않았는데 어떻게 데이터가 있지? (AUTO_INCREMENT 명령어를 입력했기 때문임, 1씩 자동으로 증가해줌)
수업의 완성: 데이터를 잘 버물려서 사용자에게 전달하기!
<?php
mysql_connect('localhost', 'root','111111'); // 서버까지 들어가기
mysql_select_db('opentutorials'); //데이터베이스까지 들어가기
$result = mysql_query("SELECT * FROM topic"); //결과를 얻을 테이블까지 들어가기
$row = mysql_fetch_array($result); // 그리고 배열로 row라는 변수로 가져오기
var_dump($row); // 화면에 표시
$row = mysql_fetch_array($result);//한번실행하면 1행출력, 두번실행하면 2행출력
var_dump($row);
?>
<html>
<body>
<ul>
</ul>
</body>
</html>
* 반복문과 결합! (모든 row 를 매번 불러올 수 없으니)
<?php
mysql_connect('localhost', 'root','111111');
mysql_select_db('opentutorials');
$result = mysql_query("SELECT id, title FROM topic");
while($row = mysql_fetch_array($result)){
echo $row['id'],',',$row['title'];
}
?>
<html>
<body>
<ul>
</ul>
</body>
</html>
=> 화면에 1,JavaScript란2,변수와 상수3,연산자4,JSON 출력
(최종)
<?php
mysql_connect('localhost', 'root','111111');
mysql_select_db('opentutorials');
$result = mysql_query("SELECT id, title FROM topic");
?>
<html>
<body>
<ul>
<?php
while($row = mysql_fetch_array($result)){
echo'<li><a href="view.php?id='.$row['id'].'">' . $row['title'] . '</li>'; // 페이지 url에 id 대로 쭉~ 나열되는 형태, 흔희 웹에서 보는
}
?>
</ul>
</body>
</html>
=> 자... 이제 기억을 더듬어 잘 생각해보세~
veiw.php 생성해서 view링크에 해당하는 페이지 생성 (빌트인 기능)
<?php
$_GET['id']
?>
그런다음 페이지에 내용을 넣으면? 링크세부 페이지 생성! 신기방기
* 이렇게 해서 우리는?
@데이터는 안전하게 저장
@php코드만 바꾸면 수많은 데이터의 디자인을 한꺼번에 변경
@Html과 CSS를 통해 페이지에 이쁘게 표현
<여기서 밝혀지는 진실하나>
* 웹브라우저는 실은 네트워크 통신을 못함
* 유저 요청(url)이 오면 웹브라우저는 OS(운영체제)에 요청하고, LAN카드 등을 통해서 인터넷에 접속 함
* 그리고 DNS(도메인 네임 서버)에 요청을 전달함 (DNS서버는 전세계 모든 클라이언트 및 서버의 IP를 알 수 있음)
* 유저가 원하는 도메인의 서버를 OS에게 알려줌
* 그럼 OS가 라우터에게 물어보고, 그 라우터에게 물어보고, 물어물어 진짜 서버의 IP를 찾아감
* 서버의 LAN카드로 요청이 가면 또 OS로 가게 되고, 접속한 유저의 접속 형태에 따라 적절한 프로그램을 호출함
* 운영체계에 깔려있는 수많은 웹서버들(예, 아파치 같은)이 리스닝하고 있다가, 웹서버 활성화 되며 우리가 배운 프로세스대로 처리
=>전세계의 모든 라우터가 서로 엄청난 네트워킹을 통해 거대한 시스템이 생겨난 거임...이것도 감동
=>라우터가 많아야 속도가 빠름(미국은 라우터가 많이 없어서 느리다함...)
잊지말고 디벨롭-
우선은 소프트웨어 공학책부터 공부!
'알기' 카테고리의 다른 글
직장인의 효율적인 시간관리 (1) | 2014.04.09 |
---|
글
직장인의 효율적인 시간관리
수홍님은 하루 4시간잠을 자고 효율적인 시간관리를 통해서 AICPA, CFA 자격증을 취득.
그의 장기목표인 "인터넷 비즈니스 전문가 + 재무전문가"를 향해 나가가고 있는 대다나신 분.
<강의제목: 바쁘다는 건 다 핑계다.>
* 스페이스닷원/ 4.9 오전 11시, 강사 박수홍님
Chapter 1. 목표설정
1. 장기목표 : 60세에 난 OO의 전문가가 될것이다 등
2. 중단기목표: 장기목표를 이루기 위해 중간중간 체크할 수 있는 짧은 기간의 목표
3. 성향파악: 아무리 멋진 목표라도 나에게 맞는 목표인지.
(앞으로 술을 먹지 않고 3년간 4시간만 자고 영어공부할거야 X => 나를 잘 모르는 목표)
4. 다중목표: 하나의 성과가 다양한 목적을 이룰 수 있다면 금상첨화
Chapter 2. 동기부여
우리는 왜 영어공부를 못하는가?
잠>> 영어<<사교 (공감 백퍼!)
작심삼일이 되는 것은 의지가 약한 것이 아니라, 동기부여가 덜되었기 때문.
지속적인 동기부여, 스스로가 공감할 수 있는 동기부여를 통해 목표를 지속적으로 실천할 수있다.
Chapter 3. 시간관리
1. 내 시간 알기: 나는 어떻게 시간을 활용하고 있는가?
이를 알기위해 수홍님은 5분단위로 자신이 한 일을 체크/ 7년간 지속하며 / 통계로 관리를 하고 있다함
=> 즉 내가 회의에 너무 많은 시간을 쓰는 것으로 나오면 회의 시간을 줄임
2. 선택과 집중: 핵심과제에 집중
핵심과제 와 보조과제로 업무를 양분화
* 핵심과제: 집중적 시간투자
* 보조과제: 잊어버리기 (스케줄러 혹은 알람이용하여 일정맞게 처리만/ 머리속에서 지워버리기)
3. 할수 있는 일은 미리하기
어차피 내가 해야 할 일은 알고 있고, 추후시간 활용을 위해 미리할 수 있는 일은 미리한다
4. 같은 맥락에서 자투리 시간활용하기
5. 후회 최소화하기
Regret for wasted time is more wasted time. -(Mason Cooley)
6. 건강과 휴식
수홍님처럼 5분단위로 시간을 쪼개서 계획하고 분석할 자신은 없다.
하지만 중장기 목표수립/ 나에게 맞는 시간활용계획
무엇보다 이러한 것들을 염두에 두고 생활하는 사람과 그렇지 않고 하루하루 흘려 보내는 사람은
하루 24시간으로 해낼 수 있는 퍼포먼스가 상당히 다를 거라는 것에는 공감.
나의 목표, 나만의 시간관리 노하우를 생각하고 정리하는 중요한'시간'을 가져야 겠다.
'알기' 카테고리의 다른 글
이고잉의 생활코딩 #1~#2 (1) | 2014.04.24 |
---|