기타 유용한 팁을 공유하는 곳입니다.
  • 웹미니 한줄 전광판 영역 입니다.
글 수 57

0

조회 수 : 5438 신고 : 0

작성자 : 컴센스
포인트 : 511 | 레벨 : 2

1. 프로그램과 프로그래머


- 프로그램 : 사건이나 상황을 기술한거나, 계획한것
- 프로그래머 : 사건이나 상황을 기술하거나, 계획하는 사람
  tv프로그램을 만드는 사람 -pd(?), 전시회를 기획하는 사람(큐레이터),영화제를 기획하는사람-이사람도 프로그래머라고 하네요. 등등 역할에 따라 조금씩 다르게 표현하는 것 같네요
- 컴퓨터프로그램 : 컴퓨터가 표현해야 할 사건이나 상황을 기술한거나 계획한것(처음에는 주로 계산을 자동으로 해라 이런용도를 전부 프로그램)
- 컴퓨터프로그래머 : 컴퓨터프로그램을 만드는 사람, 즉 컴퓨터가 표현해야 할 사건이나 상황을 기술하거나 계획하는 사람

2. 프로그램과 솔류션
- 솔류션은 특정목적을 달성하기 위해서 만들어진 복수의 s/w와 h/w를 총 아우리는 말.
 
  솔류션은 여러개의 s/w나 h/w가 혼재 있는 경우
  예) 방화벽솔류션(h/w,s/w), 쇼핑몰 솔류션(쇼핑몰s/w,블로그s/w,sms s/w)
 프로그램은 단수의 s/w, 즉 워드프로그램, 엑셀프로그램입니다.


3. 순서지향, 절차지향(procedure oriented=구조적인 프로그래밍), 객체지향

-순서지향(flow oriented(???))  : 컴퓨터가 기술해야 할것을 순서위주로만 표현합니다
  명령문, 조건문, 반복문, 분기문(그 유명한 goto), 또는 include나 require(=>포함하는 문서가 함수나 객체가 포함안 되어 있으면, goto와 동일합니다)
 
-절차지향(precedure oriented) : 컴퓨터가 기술해야 할것을 동작이라고 생각하고 동작을 정의하고, 사용하는데 중점을 맞춥니다.
  비로써 함수라는 것이 등장합니다(c언어 대단했지요), 내장함수, udf(사용자 정의함수)
  누가 내장함수나, udf를 잘 정의하고 사용하는냐가 관건입니다.(절차지향이라 하더라도, 순서지향코드는 사용합니다)

여기서 절차(procedure)는 순서(flow)라기 보다는, function으로 보시면 무난하고요.
procedure 는  단순히 복수의 일( 함수나 클래스를 포함하지 않는 include 유사)(return 값이 없는것)
function 복수의 일을 지시하고, 결과값을 알수 있는 형태(return 값이 있는 것)
절차지향이란 용어대신 보통 구조적인(structed programming) 프로그래밍이라고도 합니다.

정리하면 function(함수)는 크게 선언(php는 자동선언?),정의, 사용(호출)  3가지로 구분되며, 구조적인 프로그래밍목적은 function(함수)의 사용(호출)이며, 선언, 정의는 목적을 위한 과정이라고 보시면 됩니다.

 
-객체지향 : 컴퓨터가 기술해야 할것이 객체라고 봅니다.
    아파트를 표현할려고 하는것이 아니라,  특정아파트들 대치동 은마아파트, 삼성동 타워펠리스를 표현할려고 합니다.
    이런 존재하는 아파트(객체)를 표현할려고 보니깐,  아파트의 공통된 특징이나 일반적인 것을 정보를 미리정의해야 하는 상황발생
    즉 객체지향을 할려고 클래스 정의를 합니다.

4. 객체와 클래스
- 클래스는 집합명사, 복수명사, 추상적이고 존재하지 않는 개념
- 객체는 단수명사, 구체적이고 존재하는 무언가(거시기)


보통 집항명사를 단수명사처럼 혼용하기 때문에 관계가 클래스와 객체가 동일하게 취급되는 경향이 있는것 같네요..
동일하게 취급한다고 해도, 표현상 어색하지 않습니다.
만일 어색하다면, 그 관계는 객체와 클래스의 비유로 적절하지 않습니다.

에) 사람 왜 이래 => 여기서 사람은 객체입니다. 특정한 누군가를 지칭하고(구체적이고), 존재하는 한사람을 가르키는 겁니다. 보통 $this라고 보시면됩니다.
예) 사람은 동물이다 => 여기서 사람은 클래스입니다. 집합명사로 사용하고 있지요, 존재하지 않고 추상적인 겁니다.

코딩후, 동일(=)관계가 성립하면, 잘 표현한겁니다. 그렇지 않으면, 프로그램 잘못 짠겁니다.
자동차 = new 설계도 ;  //(x) => 잘못 표현한겁니다.자동차는 설계도로 만들지만 설계도를 자동차라 하지 않습니다.
은마아파트 = new 아파트 (0) => 맞는 표현입니다.


5. 상속받은 클래스에서  매소드 오버라이딩과 오버로딩의 차이
클래스정의를 재사용하는것을 상속한다고 합니다.

상속받은 하위클래스에서 재정의 하는 메소드가 상위 메소드의 이름과, 인수리스트, 리턴값이 동일한 경우를 오버라이딩 이라고 하고요
상속받은 하위클래스에서 재정의 하는 메소드가 상위 메소드의 이름만 같고, 인수리스트, 리턴값이 동일하지 않는 경우를 오버로딩이라고 합니다.

예) 팀장 작업코드를 이용안할수는 없어서, 팀장의 클래스를 사용하지만,  완전히 무시하는 것은 오버라이딩한다고 합니다.
하위클래스를 사용할때(즉 객체참조)에서는 팀장 코드(부모코드)의 메소드는 전혀 사용못합니다.
완전히 무시하지는 않고, 조금만 수정해서, 같이 사용하는 것은 오버로딩 입니다. (이름은 같지만, 메소드선언형태가 다릅니다)

=> php는 오버로딩 지원못합니다. ==>  "송효진님 언급하신 문제"

php에서는 위의 오버로딩은 지원안하고, 클래스내에 없는 멤버나 매소드를 동적으로
정의하거나 호출할때, 사용합니다.


6. 추상클래스(abstracet class)와 인터페이스(interface)의 차이

정의해야 할  메소드를 하위클래스에게 맡긴다는 측면에서 전부 추상클래스입니다.
단지 전부를 위임하는 것은 인터페이스이고요,  전체, 또는 일부만 위임하는 것은 추상클래스입니다.

추상클래스의 용도는 메소드를 정의하고 싶은데,
어떤 특정상황이 확정되지 않으면, 정의하기가 어려운 경우에 사용하고요

인터페이스는, 모든 정의를 하위로 위임하거나, 가이드라인을 지키라고 명령을 내릴때 사용합니다.
또한 이런 가이드라인은, 다른 객체와의 통신에 있어서 형이나 메소드가 명확하기 때문에,
오류방지에도 도움을 줍니다.

7.  개발방법론과 디자인 패턴의 차이
프로그램 개발방법론은 순서지향, 절차지향, 객체지향 이런것입니다. 프로그램 만들때,이렇게 만들게 만들자.
(전후의 문제점에 대해 언급하는 것이 아니라, 시스템 전체지칭합니다)

디자인 패턴은 사건이나,객체간의 전후문제가 발생하는 경우, 이에 대한 해결책입니다.
코딩은 그냥 예시일뿐이고, 이런경우에는 이렇게 해라라는 겁니다.
예) 미팅시 폭탄대처요령, 애인과 무드잡는법(특정상황이나, 문제점에 대한 해결책입니다),  언어(한국어,영어)가 달라도, 말만 틀리지, 거의 같은 상황과 대처요령입니다.
간혹 일부 디자인패턴이 개발방법론처럼 보이는 경우도 있습니다.
또한 디자인패턴은 보통 객체지향 설계에서 나오는 문제에 대한 해결책이라서,
개발방법론과 밀접한 관련있습니다. (크게보면 개발방법론 이라도 상관없을듯 합니다)

8. 클래스랑 디자인패턴의 차이
클래스 정의가 디자인패턴처럼 보입니다. 클래스 잘 만들어 놓고, 디자인패턴이라고 하는 사람도 있습니다.
하지만 클래스는 객체의 상태, 동작을 정의해놓은것이지,
클래스간의 선후에 발생하는 문제나,  해결방법을 제시하는 것은 아닙니다.
(디자인 패턴은 복수의 클래스와객체 정의가 있어야 되겟죠, 그래야 관계나 전후 사건이 발생합니다)


9. 디자인패턴과 프레임워크
프레임워크는 특정목적을 달성하기 위해, 사용하는 s/w 나 클래스의 모음입니다.
코딩의 재사용을 목적으로 있는 것이 아니라, 설계의 재사용을 위해 있다고 보시면 됩니다.
포토샵의 경우, 디자인 할려고 하는 툴입니다. 여기서 포토샵은 프레임워크라고 할 수 있습니다.
페이지제어 프레임워크는 페이지제어를 잘 하기위한 클래스의 모음입니다.
프레임워크는 특정목적을 쉽고, 편하고, 효율적으로 하기 위해,
미리 제공받은 s/w 기본위에서 작업하는 거라 생각하면됩니다.

보통의 프레임워크 설계방법들이 디자인 패턴을 적용한 사레가 많기 때문에 혼용되어 사용하기도 합니다.
프레임워크를 사용하기 위해 사용하는 개념이 디자인 패턴이다. 라거나,
다지인패턴으로 프레임워크를 만든다. 라는 것은 안맞는 표현인것 같습니다.

10. 웹서비스와 일반 www 통신(웹브라우저와 웹서버)

웹서비스는 소켓통신을 함에 있어서 http로 하자. 이런 http프로토콜 기반 서비스를 웹서비스로 하자
왜요? 아무리 간단한 소켓통신이라도, 프로토콜 정의가 어렵기 때문입니다.
요구사항이 데이타 뿐만 아니라, 파일을 주고 받을수도 있고요,
단순 텍스트라도, 문자set이라든지, encoding, mine 등등 많은 문제가 있습니다.
그런것은 전문가라도 다시 만드는 것은 쉽지 않습니다. 그냥 http이용하면 쉽다는 겁니다.
그래서, http 프로토콜 기반위에서, http통신이 지원하는 프로토콜 정의를 충분히 이용 할려고 하는겁니다.

www는 http프로토콜 이용하기 때문에 웹서비스의 일종인것 같은데요..
하지만 웹서비스 이라고는 안하는 것 같습니다.  조금 애매 합니다.

"SOAP은 HTTP, FTP, SMTP 등의 프로토콜을 전부 지원하지만,
보통 SOAP(소프)는 http 프로토콜 통해 xml를 주고 받는 소켓 프로그램이라고
보면 무난 할듯 합니다.  => 수정된 부분

soap는 사용법은 간단하지만, wsdl 로 xml를 제어할려면 엄청 복잡해지며,
그래서, 심플하지도 않고, 속도도 httprequest보다 더  느립니다.
하지만, 압축지원등 유용할때도 많습니다.  => "송효진님 언급"

위키피디아에서는 아래와 같이 웹서비스를 설명하고 있네요 참고바랍니다.
http://ko.wikipedia.org/wiki/%EC%9B%B9%EC%84%9C%EB%B9%84%EC%8A%A4

ps  : 단순문제제기(포럼글)로 발생된 토론의 정답은 없다고 봅니다.
단지, 서로 다름을 인정하면,  그 속에 귀중한 가치를 발견하고 선택할수 있을겁니다.
불편함을 느낀분들이 있었다면 사과의 말씀을 드립니다.(DarkLittleSoldier)
소중한 댓글 부탁드립니다.
추천수 10단위당 메달이 1개씩 노출되고, 추천수에 따라 배경색이 변하며, 일정수의 추천수를 받을시 BEST 아이콘이 붙게됩니다.
추천수에 따른 배경색 보기 본문으로 바로가기
  • 추천수 50개이상
  • 추천수 30개이상
  • 추천수 20개이상
  • 추천수 10개이상
  • 추천수 3개이상
닫기

첫번째 댓글을 남겨주세요!

List of Articles
번호 제목 글쓴이 날짜 추천 수 조회 수
57 배경 지워주는 사이트 title: [ani]깜빡이는 표정빽짱구 2018-12-23   474
56 좀비 pc 확인하는 방법 (악성봇 감염확인) file title: [ani]방울UI 2013-08-01   2366
55 사이트 속도 비교해주는곳 title: 새싹사뎅이 2012-06-30 1 2806
54 폴더 및 파일 숨기기 [1] 춘삼사마 2012-06-22   3409
53 페이지 로딩바 이미지를 만들어주는 사이트 file [2] title: [ani]Good luck 문구킬러 2012-05-02   4865
52 독립도메인을 구글메일과 연동했을때 안드로이드... title: [ani]깜빡이는 표정빽짱구 2011-12-21   3974
51 아이폰에서 itunes(아이튠즈) 어플이 보이지 않을때 title: [ani]깜빡이는 표정빽짱구 2011-10-17   4236
50 hit 민원24 - 주민등록등본(초본) 프린트가 안될때 title: [ani]깜빡이는 표정빽짱구 2011-08-12 1 14112
49 아이패드 무료어플 중 -_- PC원격제어 가능한 어... 코엘스브롸져 2011-01-07   7324
48 사이트의 DNS주소 정확히 조회할떄 유용한사이트.. 늘푸른 2010-07-23   5296
47 [php]validatePhoneNumber() , 전화번호 체크 컴센스 2010-05-29   6169
46 혼용하기 쉬운 10가지 용어 정리 컴센스 2010-05-29   5438
45 세탁기 청소하는 법 컴센스 2010-05-28   7226
44 오랜만에 무료문자사이트 총정리~ [2] 컴센스 2010-05-28   6649
43 [php]특정요일 빼고 날짜구하기 이병준 2010-05-28   5972
42 택배 싸게 보내는 법 컴센스 2010-05-27   7050
41 모바일용 웹페이지를 만들때 필요한 User-Agent ... 컴센스 2010-05-27   5996
40 Adobe CS3 와 CS4 에서 cooltype.dll 에러가 날때... 컴센스 2010-05-27   9727
39 네이버 자료실 액티브엑스 없이 자료받기 컴센스 2010-05-27   5550
38 [개인 무료배포] 혜움서체 세톨박이 2010-05-27   9210