생활코딩 | include와 namespace namespace
본문
※ 영상을 선명하게 보기 안내
- 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
- 팝업목록에서 "품질" 선택하세요.
- 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
생활코딩님의 PHP강의 청각장애인을 위한 자막
이번 시간에는 네임스페이스 라고 하는 거에 대해서 알아보겠습니다
네임스페이스는 이름의 공간 이란 뜻이죠자 여기서 얘기하는 데 임은 예
함수
상수 클래스 와 같은 것들에 이름이라고 생각하시면 됩니다
그래서 같은 이름을 갖고 있는 함수나 상수 나 클래스가
어 서로 같은 이름을 가지고 있는 것들이 가 특이 같은 이름을 가지고
있는 것들 끼리 이 충돌하는 것을 방지하기 위한 수단 으로서 사용되는
것이 바로 네임스페이스 라고 하는건데요
우리가 네임 스페이스 가 무엇인가를 살펴보기 전에
am 스페이스 가 좀 비슷한 것에 대한 비율을 좀 들어보면
자 파일이 있습니다 파일
자 파일은 정보를 저장하기 위하여 어떤 가장 작은 단위 줘
그런데 이 컴퓨터를 사용하다보면 여러가지 소프트웨어를 설치 하기도 하고
또 여러가지 형태의 여러가지 데이터를 저장하기도 하고 그런 과정에서
파일의 수가 기하급수적으로 늘어나게 됩니다
자 그럼 과정에서 만약에 디렉토리가 없다면
또는 이 디렉토리가 없는 상태에서 파일을 사용했을때 파일이 뭐 10개
있을 때는 별로 문제가 없는데
100 개 1000개 만개 뭐 10만 개 이렇게 되고 그리고 프로그램도
12345 이렇게 계속 프로그램이 늘어나는 과정에서
점점 다양한 주체들이 이 파일을 만들기 만들기 시작하고 또 수정 하기
시작하고 또
뭐 그렇다 보니까 이제 파일의 이름이 중복되고 이런 문제가 생기기 시작이
되는 거죠
중복이 일어 난다는 겁니다 자 바로 이런 중복으로 있는 충돌 그런 것들을
완화시키고 그런 것들을 극복하기 위해서 채택된 방법이 바로
디렉터리 잉 거죠
윈도우에서는 폴더 라고 부르는 것이
예 그런 개념이 거죠 그래서 이 디렉토리와 폴더는 이 파일들에 공간이죠
파일의 공간
그래서 그 곽가 게 0 공간들을 만들어 놓고 그 공간에 파일을 고립시키는
걸 통해서 다른 같은 이름을 가지고 있는 파일 듣기 리서 충돌이 나지
않도록 하는 것
예 그것이 바로 디렉토리나 폴더를 우리가 사용하는 이유 중의 하나라고 할
수가 있겠죠 자 마찬가지로 여러분이 php 애플리케이션을 만들다 보면 이
똑같은 이름의 함수 또는 상수 또는 클래스를 사용하는 경우가 생깁니다
물론 여러분 혼자서 php 애플리케이션을 만든다고 하면
예 그런 것들을 좀 조심 할 수 있는 여지가 있긴 하겠지만 이 프로그래밍
이라는 것은 혼자 하는 것니죠
혼자 개발을 안 할뿐더러 혹시 나 혼자 개발한다.고 해도 여러 가지 형태의
라이브러리
자 여기서 에겐 라이브러리는 아직 우리 순서 상으로 하지만 배웠는데 다음
시간에 배우게 됩니다 다른 사람이 만든 재활용 가능할 오직 들을 라이브로
려 합니다
자 그럴 라이브러리들을 사용하게 되면 그 사람이 똑같은 이름을 쓰지 않을
거라는 보장이 없죠
예 특히나 어떤 유명한 형식의 어떤 유명한 작업등 말이 좀 이상한데
아무튼
자주 사용하는 작업들은 같은 이음을 쓸 가능성이 크다는 거죠 자 그렇게
되면 같은 1위 인해서 충돌이 일어나게 되는데 이 php 에서는
같은 이름의
함수나 상수 나 클래스가 정의가 되면 에러를 발생시킵니다
이 그래서 같은 이름이라는 사실을 경고를 보내 주죠
그리고 또 어떤 언어들은 에러를 발생시키지 않고 마지막에 작성한 것이
우선 순위를 갖게 되는데 그것 역시도 큰 문제라는 거죠
왜냐 예 의도를 의도가 외국 짤 가능성이 있기 때문에
자 바로 이런 때 사용할 수 있는 것이 바로 네임스페이스 라고 하는
겁니다
그럼 지금부터 네임 스페이스 를 어떻게 사용하는지에 대해서 살펴보도록
하죠
그런데 우리 수 없자 수업은 네임스페이스 에 대해서 심도있게 들어갈 수
없 니기 때문에 뒤에서 제가 어 소개해드리는 자료들을 보면서
네임스페이스 에 대해서 좀 더 많은 어떤 지식 백날 이런 것들을 익혀
보시길 바랍니다
자 그러면 우선 네임 스페이스 가 없을 때 어떤 충돌이 발생할 수
있는가를 먼저 살펴보는게 순서일 것 같아요
자 저는 두 개의 파일을 만들었습니다 자요 것과 요 건데요
하나는 그리팅 언더바 en 잉글리시 줘
그리고 그리팅 언더바 ko 코리안 입니다
이렇게 두개의 파일을 만들었구요 자 프리티 원더바 이해는 웰컴 이란
함수를 만들었습니다 그리고 헬로 월드 를 리턴합니다
자 그리팅 언더바 k5 도 똑같이 웰컴 이라는 함수를 만들었는데 얕은
경우는 안녕 3개 를 리턴합니다
자 어때요 두 개가 다른 파일이 지만
서로 같은 이름의 함수를 정의하고 있습니다
이런 경우는 자주 일어날 수 있는 일이에요
자 이런 경우에 어떻게 해결할 수 있느냐가 바로 우리가 알 알아보려고
하는 겁니다 자 여기 보시면
자 리카 의원 쓰리 용해서 그리팅 언더바 k 어쩜 php 그리팅 언더바
en 전 php 를 똑같이 인클루드 했고 우리가 에코 웰컴 을 했고 에코
웰컴 을 했습니다
자 이거 자체가 좀 이상하죠 자의 코웰 컴을 두 번 한 건은 한번은
여기 있는 첫 번째 이행의 해당되는
요 파일 안에 들어가 있는 웰컴 이라고 하는 함수로 추출한 것이고요
자 두 번째는 자 여기에 있는 요 파일에 들어가 있는 웰컴 노출한 것인데
9분이 안되죠
똑같은 이름의 웰컴 이잖아요 그럼 도대체 여기에 있는 웰컴 2
예 안에 들어가 있는 웰컴 인지 예 안에 들어있는 웰컴 인지 컴퓨터가
알아낼 수 있는 방법이 없잖아요 그래서 php 에서는
예 켄 날 레이티 클레어 웰컴 이라고 되어 있죠
즉 웰컴 이라는 함수를
중복적으로 선언할 수 없다 라고 하면서 페이 털 에러가 발생을 합니다
심각한 에런 뜻이죠
자 그럼 요걸 어떻게 해결할 수 있냐 바로 그 때 사용하는 것이
네임스페이스 입니다
자 두개의 파일이 있는데요 자 이 파일의 초입에 네임스페이스
랭 기지 그리고 역시 / 이 애니 라고 적었습니다
그리고 그리팅 koons 의 마찬가지로 똑같은데 에
얘는 ko 얘는 이해를 한 겁니다 자 여기 있는 네임스페이스 라는 것은
무엇이냐면 지금부터 네임스페이스를 선언하게 따
그리고 현재 이 파일 그리팅 언더와 en.wikipedia.org 한
겁니다 자 그러면 요 파일의
네임스페이스는 랭 기지 라고 하는 것
아래에 있는 이 애니 라고 생각하시면 됩니다 제거는 디렉토리 처럼
계층적인 구조에요 랭 기지 아래의 이 애니 되는 겁니다 자 우리 현저히
파일의 네임스페이스는
자 랭 기 지 역 쓰레쉬 ko 가 됩니다
그래서 여기 있는 요 파일의 네임 스페이스 와 여기 이뇨 파일의 네임
스페이스가 렝 기지
는 공유하지만 역시 알레시 하나는
2n 이고요 또 하나는
k5 가 되서 이 두 개의 로직이 2개의 php 애플리케이션이 30 서로
다른 네임 스페이스 공간에 들어가 있는 겁니다 자 요건 어떤 마리가
비슷한 뭐냐면 서로 다른 디렉토리에 들어가 있는 것과 다름 없다는 겁니다
근데 그 디렉토리는 렝 기지 라고 하는 부모 디렉토리를 똑같이 사용하지만
이 자신이 속해있는 최종적으로 말 단 디렉터는 얘는 이해는 k5 가 되는
겁니다 자 그럼 이렇게 내일 스페이스 를 선언했을 때 그것을 어떻게 쓰면
되는 지를 살펴 보면 자 보시는 것처럼 요렇게 네임 스페이스 를 선언한
이 두 개의 php 애플리케이션을 로드 했습니다
자 그 다음에 에코 하고서 웰컴 을 두개 다 똑 2번 똑같이 호출 했는데
차이가 있다면 앞에다가
네임스페이스에 이름을 적어 졌다는 것이죠 즉 랭 기지 koo 라는
네임스페이스에 속해 있는 웰컴 이라고 하는 함수를 호출한 겁니다 자 그럼
누가 우주 된걸까요
바로 얘는 u 안에 들어가 있는 웰컴 노출 된거구요
렝 기 gen 이라는 네임스페이스 안에 있는 왜 컴으로 추출한 것이기
때문에 이것은 자유 두번째 있는 요 파일의 안에 들어가 있는데 임
스페이스 예 있는 웰컴 을 호출한 겁니다 자 이렇게 해서 실행한 결과는
예 하나는 헬로 월드 가 출력이 될 거구요
하나는 안녕하세요 가 출력이 될 겁니다 즉 똑같은 왜 컴 이란 암수를
썼지만 이 네임스페이스 덕분에 마치 다른 디렉토리에 있는 것처럼 예
이름이 충돌하지 않게 된 것이죠 자 네임스페이스는 하나의 단일 파일
안에서 복수의 네임 스페이스 가 존재할 수 있습니다
자 그럼 어떻게 하면 되냐면 이번엔 그리팅 랭 점 png 라는 파일을
만들었구요
이 파일은 우리가 테스트 r 이 파일에서 이렇게 잉 클로드 를 할
예정입니다
요렇게 요렇게 올꺼 줘 자 그런데 이 그리팅 언더 발행 이라고 하는 저
파일 안에는 좀 파일 안에는 네임 색의 네임 스페이스 가 보시는 것처럼
두 번 선언되어 있습니다
자 그것은 무슨 뜻이냐면 이 밑에 있는 요 웰컴 이라고 하는 요
네임스페이스는
바로 그 위에 있는 랭 에 랜디 이지의 en 에 속해있는 네임 스페이스
라는 뜻이고요
자 밑에 있는 요 웰컴 이라고 하는 요 함수는
자 그 위에 있는 랭 기지 kona m 스페이스 에 속해있다 라는
뜻입니다
작은걸 실행시키면 자 보시는 것처럼
예 우리가 이전에 살펴보았던 것과 똑같은 명령을 이용해서 냉기 지 koo
라는 네임스페이스에 있는 웰컴 벵기 gene 라인 네임스페이스에 있는
웰컴 이라고 하는 함수를 호출하는 것을 통해서 서로 다른 이름을 갖고
있는 함수들이 사이좋게 공존할 수 있는 방법을 찾은 거죠 자 이렇게 해서
제가 네임 스페이스 가 무엇인가에 대해서 소개를 드렸는데요
네임스페이스에 대해 좀 더 자세히 알고 싶으신 분들은 여기 있는 php
메뉴얼을 참고 하시거나 아님 여기 있는 링크를 클릭해서 들어가보시면
한글로 네임스페이스에 의미 네임스페이스를 사용하는 방법
그런 것들에 대해 소개되어 있는 블로그가 있으니까요 그거 참조하시면
도움이 될겁니다
댓글 0개
등록된 댓글이 없습니다.