모던 웹을 위한 JavaScript + jQuery 입문 3판 43강 - 캡슐화 > javascript

무료강좌-디비라

javascript

자바스크립트 강의 리스트

※ 가장 하단이 첫강좌입니다

윤인성 | 모던 웹을 위한 JavaScript + jQuery 입문 3판 43강 - 캡슐화

본문

※ 영상을 선명하게 보기 안내
  1. 유튜브 영상에서 오른쪽하단에 톱니바퀴를 클릭합니다.
  2. 팝업목록에서 "품질" 선택하세요.
  3. 원하는 해상도를 선택해주세요.
※ 모바일에서 Wifi가 아니라면 데이타가 소진될 수 있으니 주의바랍니다.
윤인성님의 javascript강의 청각장애인을 위한 자막
15444120472479.jpg

 안녕하세요 모던 웹을 위한 자바스크립트 제이쿼리 입문 3판 자 13강

되겠구요
이번 강의에서는 실점 자 절에 있는 캡슐화 에 대해서 살펴보도록
하겠습니다
일단 책의 코드 7 다시 시비를 보면 생성자 함수를 액팅 글이라는 것이
나오게 됩니다
지금 화면과 같은 코드라고 할 수 있겠는데요 성 천으로 렉 탱크를 선언을
했는데 렉 갱들의 첫 번째 글자가 대문자 젊
따라서 이 녀석은 생성자 함수를 생성할 것을 목적으로 생성한 녀석 이라고
볼 수 있습니다
내부에는 디스 점 너비 디스 짬 너비 를 사용해서 두가지 속성을 가지고
있고요
메서드로 는 개네 리얼을 만들어서 개 내리어 하나를 가지고 와이드 와
하이스 곱해서
넓이를 구하는 코드라고 할 수 있습니다
이걸 생성을 할 때는 이전에 배웠던 것처럼 뉴 키워드를 사용해서 생성자
함수를 호출한 뒤 각각의 매개 변수를 집어넣고 이렇게 만들어진 인스턴스
를 활용을 해서 우리가 원하는 코드를 작성을 하게 됩니다
그럼 책에 나오는 개울을 한번 보도록 할게요 세상에는 정말 다양한 사람이
있고 그로 인해 특정한 목적과 규칙을 갖고 만들어진 무언가가 목적과
규칙이 상관없이 사용하는 사람들이 굉장히 많습니다
예를 들어서 아이스크림이 경우 더운날 시원하다고 먹고 그렇게 만들어진
녀석인데
저같은 경우는 겨울에 아이스크림 먹는 걸 굉장히 좋아하거든요 왜냐하면 안
높지 않아요 그래서 그렇게 다양한 사람들이 많기 때문에 목적을 어기고
만드는 경우가 굉장히 많습니다 목적을 어기고 그 대상을 사용하는 거죠
그래서 그러한 것을 막기 위해 만들어진 기술이 바로 캡슐 하라고 할 수
있습니다
일단 현재 코드를 한번 살펴보도록 할게요 현재 코드를 보게 되면 너비로
5와 7이 라는걸 넣게 되는데 만약에
렉 탱글 점
모하 2세 높이를
어떤 사람이 만약에 0으로 넣었다 이런 경우가 있다고 생각을 해보면 사실
말이 안 되는 거거든요 왜냐하면 현실 세계의 길이는 분명히 0보다 큰
수로 밖에 존재할 수 없습니다
음 수로도 당연히 존재할 수 없고 0으로 독일이라는 건 존재를 알 수가
없습니다
따라서 이렇게 넣는거 자체가 코드가 말이 안 되는 거죠 그래서 이렇게
사용을 하게되면 코드에 문제가 발생할 수 밖에 없습니다
편저 코드에서는 큰 문제가 발생하지 않지만 많은게 내 탱글한 렉 탱글
생성자 함수를 확장을 해서 화면에 실제로 무언가를 그리는 걸 만들었을 땐
하이 시나 위스 에 0이나 또는 음수를 넣는 거 자체가 프로그램의 문제를
일으킬 수 있는 원인이 됩니다
그래서 일반적으로 개발자들이 생각을 해보니까 이걸 막아야 겐 는 거죠
그래서 개발자들이 요걸 고안한 첫 번째 방법은 앞에다가 밑줄이 를 붙여
주는 것입니다
뭐 파이썬 같은 프로그래밍 언어는 앞에 밑줄 2개를 붙이면 이녀석은
외부에서 아예 접근이 불가능 해 주게 됩니다
하지만 자바스크립트 같은 경우에는 사실 그런 목적으로 만들어진 프로그래밍
언어가 아니라서 그냥 밑줄 및 써 위치를 한씨 보이고 이 녀석의 다 그냥
0 을 넣는 것이 가능해요
근데 자바스크립트 개발자 들끼리 약속을 한 것처럼 밑줄로 시작하는 변수는
절대 우리끼리 건드리지 말자
이 녀석을 그냥 건드리게 되면 위험한 녀석이다 라고 스타 개발자 들 기린
그냥 약속을 한 겁니다 이게 일단 첫번째 방법이라고 할 수 있어요
요게 가장 안정적인 방법이고 사실 가장 많이 사용되는 방법입니다
하지만 모르는 개발자라면 점을 찍고 음 그냥 미스 에다가 - 10 을
넣거나
밑줄 하이 센 뭐 영과 같은 값을 넣어서 프로그램의 문제를 일으킬 수
있습니다
그래서 개발자들이 조금 더 생각을 해 보게 된 것이죠
아이의 외부에서 접근을 막는 방법은 없을까 라구요 그래서 클로저 를
활용을 하게 됐습니다
현재 이렇게 함수가 있을 때 이 녀석을 그냥 변수로 선언 을 하고
앞에다가 밑줄을 붙여 주는 형식으로 라던지 해서 이 녀석은 외부에서
공개되지 않는 변수라는 것을 선언을 하고
디스 점 캔 위스 라는 이름으로
함수를 선언 을 해주고 이 함수를 호출하게 되면
위에 있는 변수를 리턴하게 하는 형식으로 코드를 작성하게 된 겁니다
마찬가지로
켓 하이 c 라는 것도 만들어서
이하이 시 라는 변수를 리턴을 하게 만들고
dc 점 3 us 라는
함수도 만들고 이 녀석 같은 경우에는 매개변수 롬 1 줬을 때
밑줄 위 세다가 lu 를 집어넣고
마찬가지로 3 하이 시라는 함수도 만들게 되고
이 녀석에게는 요 밑줄 하이쎌 벨류 로 선언을 하게 되는 칼 당하게 되는
코드를 작성을 하게 된 겁니다
이렇게 만들게 되면 다양한 2.2 생기게 되는데요
예를 들어서
함수를 사용하기 때문에 앞뒤로 다양한 코드를 추가를 할 수 있게 됩니다
예를 들어 섬 세리스 를 선언 신 호출을 했을 때
만약에 벨류 강 0보다 작은 값을 하면 작거나 같으면 경고를 줄 수
있겠죠
저럴 뚜루 0 보담
작은 값은 넣을 수 없습니다
해 섬 그냥 바로 리턴을 먹여서
값이 할당 되는 것을 막을 수도 있습니다
그리고 하이 또 마찬가지 점 0보다 작은 값을 넣을 수 없습니다 등으로
값을 입력을 해서 아예 요러한 형태로 코드가 작성되는 걸 막아 버릴 수
있습니다
위와 같이 코드를 작성하게 되면
위스 와 하이 3 곧바로 접근을 할 수가 없게 되어 무조건 재 뿅 병과
3평 병을 활용하게 되는 데요
예를 들어서 쎄타 이슬 사용을 해서 내부의 다가 - 10 을 전달을 해서
하 이슬 10 으로 초기화를 하려면 - 10 으로 초기화를 흐르게 되면
우리가 조건문을 걸어서 해당이 안 되게 구현을 해 놨기 때문에 이전과
같은 문제가 발생하지 않습니다
어쨌거나 이렇게 만들게 되면 아래쪽에 있는 갯 에리어 라는 녀석도 자기
자신의 직접적으로 간섭을 할 수가 없기 때문에
쟨 윌스 와
갯 하 이슬 명시적으로 호출해서 자신의 값을 사용해서 활용을 해야 합니다
어쨌거나 이렇게 코드를 만들게 되면 우리가 이전에 프로토 타입을 사용하는
이유 감 객체를 효율적으로 메모리를 효율적으로 사용하기 위해서 라고
했는데 m
그것에는 위배가 됩니다 여기 갤에 리어 같은 경우에는 프로토타입의 선원이
됐기 때문에 모든 4 탱 글이라는 인스턴스가 공유를 하게 되지만 이 위에
있는 개 2일 3개사 잎새 도 있으 센 하이 같은 녀석들은 각 개체마다
선언이 되기 때문에 약간의 메모리 낭비가 발생할 준다고 볼 수 있는데요
그 메모리 낭비 되는 것보다 이 변수들을 보호하는 것 캡슐 안에 넣어서
보호하는 것이 훨씬 더 중요하다고 판단이 되는 경우에 요란 코드를
사용하게 됩니다
이렇게 변수를 보호하는 것 자체를 우리가 이번 짤에 제목인 캡슐 하라고
부르게 되고요
그 변수를 보호하려고 선언을 하게 되면 필요 안쪽으로 만들 수 밖에 없는
녀석들이 바로 갯수로 시작하는 이름을 가진 함 주 이고 셀 스스로
시작하는 이름을 가진 함수입니다 그래서 이 녀석을 재 터 라고 부르게
되고요
아래쪽에 있는 쎄 스루 시작하는 녀석을 세터 라고 부르게 됩니다
그건 그렇고 조건문을 조금 떼다가 선언을 했는데 요 녀석을 아래로
옮기도록 하겠습니다
어쨌거나 게 터와 세터를 만든다는 것 자체를 캡슐 하로 이해하시는 분이
많아요
일반적으로 자바 프로그래밍을 대충 하다 오신분은 자바에서는 캐릭터와
세터를 자동으로 만들어주는 기능이 있고 그냥 만들면 땡 이라고 생각하는
경우가 있거든요
하지만 이 녀석을 활용하는 여서 이유는 내부의 다가 이런 식의 코드를
작성해서 원래 변수를 보호하기 위함입니다 따라서 변수를 보호하기 위한
목적이라면 개의 털을 생략하는 경우도 있고 세터를 생략하는 경우도 있기
때문에 기억을 해 2시면 좋겠습니다
어쨌거나 요게 가장 완벽한 방법이라고 할 수 있겠는데요 개발자들의 생각을
해보니까 이녀석이 프로토타입의 외부의 선언이 되어 있으니까 메모리 적으로
좋지 않겠다 라고 판단을 해서 그냥 이전에 있던 두 가지 방법을 조합을
해서
디스 짬 밑줄로 선언을 해서 여건 밑줄로 되어있으니까 절대 사용하지
말아달라고 부탁을 하고
6 에 터와 세터를 렉 탱글 점 프로토타입 에다가 예 선언을 해 버려서
메모리를 절약하는 방법도 많이 사용되기 때문에
기억을 해 주시면 좋겠습니다 뭐 이렇게 되면 내부에서 그냥 z 있을
사용하지 않고
밑줄 미스 왕
밑줄 하 있을 사용해서 활용할 수 있게 돼 점
어쨌거나 이번 강의에서 꼭 기억을 해 주셨으면 하는 것은 사실 요거 를
만드는 것보다 도움
우리가 개발을 하다보면 다른 사람이 만든 라이브러리를 활용할 때가
많거든요
그때 점을 찍었는데 밑줄로 시작하는 녀석의 나온다면 이건 자바스크립트
개발자 들끼리 절대 사용하지 말아달라고 약속을 한 녀석이 때문에 절대
사용하지 않아야 된다고 기억을 해 주시면 좋겠습니다
어쨌거나 난 지금까지 간단하게 3가지 방법으로 변수를 보호하는 방법을
살펴 보았는데요
가장 첫번째는 그냥 개발자 들끼리 약속으로 밑줄로 시작하는 변수는 절대
검 드렸지만 알라 달라고 부탁하는 것이 되게 구요 두번째는 확실하게
클로저 를 사용해서 활용하는 방법
세번째는 두가지를 좀 조합을 해서 사용하는 방법이라고 할 수 있겠습니다
어쨌거나 지난번 부터 이야기를 하지만 생성자 함수나 클래스 라는 녀석들은
모두 객체를 조금 더 효율적으로 선언하기 위한 방법입니다
변수를 보호하는 것 자체가 조금 더 객체를 효율적으로 생성을 하고
활용하고 드리고 재사용할 수 있게 만드는 힘이 되기 때문에 이러한 형태로
캡슐화 를 사용을 한다고 기억을 해 주시면 좋겠고요
오늘 강의는 여기까지 되게끔 다음 강의에서 뵙도록 하겠습니다 감사합니다.

댓글 0개

등록된 댓글이 없습니다.

 
Total 83건 1 페이지
썸네일
제목

Menu