happy cat image

everdevel

우리 모두의 웹 입문, 에버디벨

에버디벨이 책을 냈어요.!!
눌러주세요.

지은이 : 에버디벨 운영자

UI 변경

연산자

이번시간에는 연산자에 대해서 알아아봅시다.
연산자라고 하면 뭔가 어려워보이지만 산수를 하는것입니다.

덧셈은 +

뺄셈은 -

곱셈은 *

나눗셈은 /

나머지는 %

활용법은 아래와 같습니다.

<?php
 echo "연산자 사용 예제<br />";

 $a = 8;
 $b = 5;

 $value = $a + $b;
 echo "$a + $b = $value 
"; $value = $a - $b; echo "$a - $b = $value
"; $value = $a * $b; echo "$a * $b = $value
"; $value = $a / $b; echo "$a / $b = $value
"; $value = $a % $b; echo "$a % $b = $value
"; ?>
php image

증가 연산자, 감소연산자

++,-- 라는 것이 있습니다. 이것들을 사용하면 ++는 1을 증가하며, --는 1을 감소합니다.

증가(++)

$a++ : 변수 $a의 값을 먼저 반환하고,1을 증가한다.

$++a : 먼저 1을 증가시키고, 변수 $a를 반환한다.

감소(--)

$a-- : 변수 $a의 값을 먼저 반환하고, 1을 감소시킨다.

$--a : 먼저 1을 감소시키고, $a를 반환한다.

그럼 증감연산자를 이해해보자!

$a = 5 라고 할때 $b = $a++ 의 값은 무엇일까?

$a++는 값을 먼저 반환하고 1을 증가시킵니다. 그러므로 일단 자신의 값인 5를 반환합니다. 그러면 $b 는 5가 됩니다. 그후 1을 증가시킵니다. 그러므로 a의 값은 6이 됩니다.

즉 $a = 6, $b = 5이다.

그렇다면 이번엔 $a = 5 일때 $b = ++$a 는 무엇이 될까...

a는 5인데 ++$a이므로 우선 1을 증가시킵니다. 그후에 반환을 한다. 그러므로 a = 6이고 그후에 반환하므로 b 도 6이 된다.

그럼 소스로 이해를 해보면

<?

 echo " a = 5 일때, b = a ++ 의 연산결과값 계산 <br />";
 echo " ============================================== ";

 $a = 5;
 $b = $a++;

 echo "\$a=$a... 변수 \$a에 1이 증가된 값이 출력<br />";
 echo "\$b=$b... 변수 \$a의 값이 1증가되기 전 값이 \$b에 대입<br />";

 echo "\$a=5 일 때, \$b= ++\$a의 연산결과 \$a와 \$b의 값? <br />";

 $a = 5 ;
 $b = ++$a;

 echo "\$a=$a... 변수 \$a의 값이 1이 증가된 값이 출력 <br />";
 echo "\$b=$b... 변수 \$a의 값이 먼저 1 증가되어 \$b에 대입 <br />";
?>

결과는 아래와 같다.

php image

대입 연산자

$var =123 과 같이 선언할때에는 var 과 123이 같다는 뜻이라기 보다는 123이 var에 대입된다라고 이해를 해야 합니다.

대입연산자는 = 기호를 사용합니다. 그렇다면 $a = $a + 5는 복합연산자를 사용하여 $a += 5 로 줄일수 있습니다.

또 문자열을 대입할때는 .= 를 사용합니다.

php image

대입자 연산자 활용

<?
 echo "대입 연산자의 사용 <br />";

 $a = 3;
 $a += 5;

 echo "\$a = 3<br />";
 echo "\$a += 5<br /> 연산결과 $a <br />";

 $a = 7;
 $a %= 5;
 echo "\$a = 7<br />";
 echo "\$a %= 5<br /> 나머지 연산결과... <b>$a</b><br />";

 $a = "대한";
 $a .= "민국";
 echo "\$a = \"대한\" <br />";
 echo "\$a .= \"민국\" <br />";
 echo "결과..-->  $a <br />";
?>

결과는 아래와같다. 소스에서 \" < -- 는 " 를 뜻함.

php image

비교 연산자

비교연산자는 제어문과 반복문등의 조건식에서 많이 사용됩니다.

두가지 조건을 비교하여 참일 경우 명령을 수행하며 거짓일 경우 명령을 수행하지 않습니다.

php image

논리 연산자

논리연산자도 참과 거짓을 반환하는 연산자입니다.

비교 연산자들을 여러개 조합시킬 수 있습니다.

php image

위의 표에서 보듯이 and 와 &&는 같고

or 와 ||도 같습니다.

비트 연산자

비트단위연산자는 0 과 1로 조합된 2진수의 형태로 연산을 수행한다.

php image

혹시 공대생이 아니신 분이 이걸 보신다면 비트열 이동이란게 무슨말인가 하실수도 있으실것 같습니다.

5를 이진수로 나타낸다면 0101 입니다. 오른쪽끝에서부터 왼쪽 방향으로 1 2 4 8 16 32 64 128 256 512 1024 2048 이런 순으로 나아가는데요.

보시면

0 1 0 1

8 4 2 1

위의 숫자는 2진수이고 아래는 각 자리가 뜻하는 값입니다.

즉 101 에서 1이 4와 1 자리에 표시가 되어있는것이죠 그러므로 5를 뜻합니다.

서로의 변환방식을 보시려면 네이버에서 쉽게 방법을 보실수가 있으십니다.

그럼 비트 이동이란것은요..

5의 이진수 0101 에서 2비트 오른쪽이동이라고 한다면 2비트 오른쪽이동이므로 0001 이 됩니다. 이동된 2비트는 사라지게 되고 새로온 자리는 0으로 채워지게 됩니다. 그러므로 값이 0001 이고 값은 1입니다.

다시 강좌로

비트연산자의 활용을 소스로 본다면...

 <?
 echo " \$a = 5, \$b = 8 일 때, 비트연산자 활용 <br />";

 $a = 5;
 $b = 8;

 //5 는 이진수로 0101
 //8 은 이진수로 1000

 $c = $a & $b;
 $d = $a | $b;
 $e = $a << 3;
 $f = $b >> 2;

 echo "\$a & \$b = $c";
 echo ".... 0101 * 1000 = <b>0000</b> <br /><br />";

 echo "\$a | \$b = $d";
 echo ".... 0101 + 1000 = 1101 <br /><br />";

 echo "\$a << 3 = $e <br />";
 echo ".... 0101 왼쪽으로 3비트 이동 후 101000 <br /><br />";

 echo "\$b >> 2 = $f <br />";
 echo ".... 1000 오른쪽으로2비트 이동 후 0010 <br />";
?>

이며 결과는 다음과 같다.

php image

비트연산자에 대해서 잘 모르시는 분들은 좀 이해가 안가시는게 있을실것 같습니다.

a 가 5이고 b가 8이며

각 수의 이진수는 0101 ,1000 이다.

이것이 왜 &으로 곱을 하는데 답이 0일까 하는 것입니다.

&에서는 각 자리수가 1로 겹쳐야 1이 됩니다.

5 = 0101

8 = 1000

보면 각 자리수가 1로 겹쳐지는 것이 하나도 없으므로 0 이되는 것입니다.

에버디벨의 완성 :: 웹코딩 시작하기

안녕하세요.
에버디벨 운영자입니다.
여러분이 늘 이용해 주셔서 하루 5명 오는 사이트가 1000명이 오는 사이트가 되었고,
또 그 이유로 사이트를 운영을 멈추지 않아 저같은 평범한 사람이 책까지 쓸 수 있게 되었습니다.
여러분이 찾지 않았다면 진작 사이트 접었습니다.
저의 웹개발 경력 2년을 쏟아내어서 6개월의 집필, 8개월의 교정기간을 거쳐 [웹코딩 시작하기]가 출간했습니다.
웹코딩 시작하기는 HTML5를 시작으로 CSS3 -> jQuery를 학습합니다.
그리고 앞에서 배운 내용으로 간단한 소통사이트를 반응형으로 제작합니다.
보통의 책은 HTML5 + CSS3로 끝나고 혹은 HTML5 + CSS3 + jQery로 끝나지만 웹코딩 시작하기는 여기서 끝내지 않았습니다.
그 다음 바로 데이터베이스중 하나인 MySQL를 학습하고, 그 이후 PHP를 학습니다. 그리고 앞에서 만든 소통사이트에 회원가입, 로그인 기능은 기본으로 진행하며, 스크롤이벤트를 이용하여 스크롤을 내리면 AJAX를 작동시켜 게시물을 더 불러오는 기능을 구현하고 자기의 로그기록을 파일에 쓰기, 그 밖에 자신의 프로필사진, 커버사진 등록, 댓글 쓰기등의 기능을 적용합니다.
본서는 웹코딩을 처음하는 사람이 하나에서 끝나지 않고 처음부터 시작해 프로젝트까지 완성해가며 전체적으로 시스템이 어떻게 작동하는지 전반적으로 알게하기 위해 태어났습니다.
적어도 지구에서 가장 친절한 웹 입문서라고 생각하는 책입니다.
에버디벨로 부족하셨다면 웹코딩 시작하기를 추천합니다.

어제보다 나은 나, 오늘 보다 나을 내일의 나를 만드는 :: 웹코딩 시작하기

목차보기

종이책 구입하기

전자책 구입하기

PART 1. 프론트엔드 HTML5 + CSS3 + jQuery

CHAPTER 1. HTML5

1. HTML5 소개

2. 메타 태그

3. 텍스트 태그

4. 이미지 태그

5. 하이퍼링크 태그(a 태그)

6. 리스트 태그

7. form 태그

8. 공간 태그

9. video 태그

11. svg와 canvas

12. table 태그

CHAPTER 2. CSS3

1. CSS 소개

2. CSS를 적용하는 세 가지 방법

3. 선택자(selector)

4. 텍스트를 꾸미는 CSS 요소

5. 가로 길이와 세로 길이 조정하기

6. 텍스트가 영역을 벗어날 때

7. HTML 엘리먼트의 위치 변경하기

8. 배경 꾸미기

9. 외곽선 긋기

10. float와 clear

11. 박스의 바깥 여백 설정하기

12. 박스의 안쪽 여백 설정하기

13. CSS 리셋

14. 애니메이션

15. transform

16. transition

17. display

18. 반응형 웹

19. 반응형으로 간단한 레이아웃 만들기

20. SVG 태그

CHAPTER 3. jQuery

1. jQuery 시작하기

2. 셀렉터

3. 엘리먼트 보이기와 숨기기

4. 클릭했을 때 무언가 하기

5. 마우스 포인터를 요소 위에 올릴 때 무언가 하기

6. 제이쿼리로 CSS 적용하기

7. 변수 사용하기

8. HTML 엘리먼트에 있는 텍스트 변경하기

9. HTML 태그 제어하기

10. 애니메이션 기능

11. 엘리먼트에 클래스 추가, 삭제하기

12. 엘리먼트의 이동

13. 폼 태그의 값 조정

14. 포커스

15. this 사용하기

16. 연산자

17. 함수 만들기

18. 변수에 대해서

19. 글로벌 변수와 로컬 변수

20. 조건문

21. 반복문

22. 스크롤 이벤트

23. AJAX

24. canvas 태그(HTML5)

project 나의 첫 웹서비스 만들기

CHAPTER 1. 나의 첫 웹서비스 프로젝트 소개

CHAPTER 2. 나의 첫 웹서비스 만들기 프로젝트 - front end

1. 메인 페이지 만들기(index.html)

2. 나의 페이지 만들기(me.html)

3. 모두의 페이지 만들기(all.html)

PART 2. 백엔드 MySQL + PHP

CHAPTER 1. MySQL

1. 데이터베이스란?

2. MySQL 시작하기

3. 데이터베이스 만들기

4. 테이블

5. 필드의 데이터 크기와 데이터형 지정하기

6. 테이블 생성하기

7. 필드의 추가, 수정, 삭제

8. 테이블 삭제하기

9. 테이블에 데이터 입력하기

10. 데이터 불러오기

11. 데이터의 값을 변경, 삭제하기

12. 테이블 초기화

13. 2개 이상의 테이블 사용하기(JOIN)

14. 집계함수

15. 그룹별 집계

16. 출력 결과의 정렬

17. 불러올 레코드 수 지정하기

18. 2개 이상의 테이블을 묶어 사용하기

19. 쿼리문 안의 쿼리문 서브쿼리

20. 특정 필드에 같은 값을 넣지 않는 방법

21. 서로 다른 필드의 값을 합쳐서 출력하기

22. 검색을 더욱 빠르게 하는 인덱스

CHAPTER 2. PHP

1. PHP 소개

2. 출력문

3. 주석

4. 변수

5. 연산자

6. 배열>

7. 데이터형

8. 조건문

9. 반복문

10. 함수

11. 함수 만들기

12. POST와 GET

13. 기능의 사물화

14. 코드의 재활용

15. PHP와 MySQL의 연동

16. 상수

17. 정규 표현식

18. 파일 업로드

19. 디렉터리 함수

20. 파일 함수

21. Anchor 태그의 ping 속성과 AJAX

22. 쿠키와 세션

23. 객체지향 프로그래밍

project 나의 첫 웹서비스 만들기

CHAPTER 3. 나의 첫 웹서비스 만들기 프로젝트 - back end

3-1. 회원가입 기능

3-2. 로그인, 로그아웃 기능

3-3. 게시물 등록하기

3-4. 게시물 불러오기

3-5. 댓글 등록하기

3-6. 댓글 불러오기

3-7. 게시물 공감하기

3-8. 모두의 페이지

3-9. 포토 업로드 기능

3-10. 나의 로그 만들기

강좌로 돌아가기