tag:blogger.com,1999:blog-42598213626686082892024-03-13T11:18:34.927+09:00코드 보관함Unknownnoreply@blogger.comBlogger55125tag:blogger.com,1999:blog-4259821362668608289.post-29666878217007879442017-07-07T01:22:00.001+09:002017-07-07T01:22:15.980+09:00[Java] enum(Enumeration) 클래스비교를 위한 상수가 필요하다면 어떻게 할까, 예를들어 옷집의 옷사이즈 small, medium, large 사이즈가 있다고 하자. small = 1, medium = 2, large = 3 이런식으로 정수형 상수로 대체하는것도 한가지 방편이다. 하지만 이런 방식은 상수(Constant)가 많아지면 많아질수록 사용자의 실수로 인해 에러를 만들 가능성이 존재한다. 또 코드를 수정하게 되면 엄청 골치아플것이다. 그래서 Java SE 1.5버젼부터 더 좋은 enum 클래스가 만들어졌다.
만약 무언가를 비교하기 위한 상수가 필요하다면 enum 클래스를 이용해 상수를 생성할 수 있다.
public enum Size {
SMALL, MEDIUM, LARGE;
}
간단하게 Small 사이즈, Medium Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-81438575652211475122017-07-06T20:49:00.000+09:002017-07-06T20:49:03.097+09:00[Java] 추상 클래스(Abstract Class)와 추상 메소드(Abstract Method)상속(Inheritance)이란 개념에 대해 조금 더 이야기해보자. 클래스가 클래스를 상속할때, 상위클래스로 올라가면 올라갈수록 클래스가 보편적(General)이게 되고 그렇기 때문에 더 추상적(Abstract)이게 된다. 어떠한 한 지점에 도달하게되면, 상위 클래스는 너무 보편적인 클래스가 되어버려 어떤 객체가 상속해도 될정도로 보편적인 기능들을 가지게 된다. 만일 우리가 회사 인사업무 프로그램을 설계한다면 Person 클래스는 매우 보편적인 객체가 되어버려, Employee, Manager, Executive, Boss, Intern 등의 어떤 클래스든 상속할수 있는 그런 객체가 될것이다. 자바 프로그램에서는 Object라는 클래스가 모든 클래스의 상위 클래스가 된다.
이런 상위클래스의 추상성과 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-23216900470615341892017-07-06T03:06:00.001+09:002017-07-06T03:06:26.942+09:00[Java] 메소드 호출(Method Call)과 다이나믹 바인딩(Dynamic Binding)우리가 메소드를 호출할 때 어떤 일이 일어날까, 왜 수퍼클래스의 메소드를 호출했는데 상속받은 객체의 메소드가 호출되는지를 알려면 자바(Java)에서의 메소드 호출법을 이해해야한다. 예를들어 우리가 클래스 c의 인스턴스인 x 객체의 f(y)라는 함수를 호출한다 가정할 때, x.f(y)이런식으로 호출할것이다. 이때 우리눈에 보이지 않는 컴퓨터세상에서는 어떤일이 일어나는지를 알아보자.
컴파일러가 선언된 객체의 형(type)과 메소드 이름을 찾아본다. 아마 파라미터만 다르고 f 라는 이름을 가진 메소드들이 많을것이다. 컴파일러는 클래스 c와 c의 수퍼클래스의 모든 메소드f 를 종합한다. 이제 컴파일러가 호출 대상 메소드들을 모두 종합했다.
컴파일러가 메소드 호출시 제공된 아규먼트(argument)들의 형(Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-40103070133161955312017-07-05T23:17:00.002+09:002017-07-06T03:36:07.607+09:00[Java] 상속(Inheritance)과 다형성(Polymorphism)상속(Inheritance)
객체지향프로그래밍(Object Oriented Programming)에서 중요한 개념인 상속(Inheritance)은 말그대로 객체가 다른 객체를 상속하는 개념이다. 객체가 다른 객체를 상속함으로써, 상속받는 객체는 상속하는 객체의 데이터필드, 메소드에 접근해 사용할 수 있다. 자바도 객체지향 프로그래밍 언어인만큼 상속(Inheritance)이라는 컨셉을 적용한 언어이다. 차량 관리 프로그램에서 차량 객체를 만드는 클래스를 생각해보자. 아마 대부분 차량 객체 하나로 다 잘 만들 수 있을것이다. 하지만, 특수 차량이 존재하고, 특수 차량은 그냥 차량과 달리 특수한 관리가 필요하다고 할때, 아마도 대부분의 경우에는 차량용 객체뿐만 아니라 특수차량용 객체가 별도로 필요하게된다. 이 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-28516085876459318322017-07-04T00:23:00.001+09:002017-07-04T00:23:37.173+09:00[Java] 패키지(Package)의 개념자바에서 패키지(Package)란 클래스들의 모음이다. 패키지를 통해 편리하게 프로젝트를 관리할 수 있고 내 코드들을 다른 라이브러리로부터, 또 다른 라이브러리들끼리 서로 구분가능하다. 기본적인 자바 라이브러리 또한 java.lang, java.util. java.net java.awt와 같은 다양한 패키지들를 통해 분류된다. 자바 라이브러리는 우리가 일반 폴더 구조에서 볼수있는 계층적 패키지구조를 가지고 있다. 상위 패키지에 하위패키지가 종속되는 형식이다. 그래서 모든 자바 패키지들은 가장 상위 패키지인 java와 javax 패키지에 종속되어 있다.
패키지(Package)를 사용하는 가장 큰 이유는 클래스명의 고유성을 보장하기 위해서이다. 만약 다른 두 프로그래머가 서로 다른 목적을 가진 클래스를 Unknownnoreply@blogger.com3tag:blogger.com,1999:blog-4259821362668608289.post-71592377857791608292017-07-03T16:32:00.001+09:002017-07-03T16:34:51.477+09:00[Java] 메소드 파라미터(Paratmeter) 전달, call by Reference vs Value메소드를 호출할 때 우리는 파라미터를 전달 할 수 있다. 예를들어, 우리가 자주 쓰는 메소드인 "System.out.println(파라미터)" 도 파라미터를 받아 실행된다. 이런 파라미터를 전달하는 박식은 "call by reference", "call by value"라는 2가지 방식으로 나뉜다.
Call by Value 방식은 간단하다. 단순히 메소드를 호출하는 호출문(caller)이 전달하는 값(value)의 복사값이 메소드에 전달된다. 그러므로 호출된 메소드는 전달받은 변수 값을 변경해도 원래 변수에는 적용되지 않는다. 그에비해 Call by Reference 방식에서는, 메소드가 호출문에서 제공된 변수가 저장된 메모리 참조(Reference)값을 전달받는다. 그러므로 메소드에서 파라미터값을 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-30031869924038200342017-07-03T02:17:00.002+09:002017-07-03T02:17:27.785+09:00[Java] static 키워드자바는 메소드나 데이터를 static 키워드르 붙여 static으로 정의할 수 있다. static은 기본적으로 변수나 메소드가 인스턴스가 아닌 클래스에 속하게 한다.
즉, 인스턴스를 통해 변수에 접근하는게 아니라, 클래스를 통해 접근하고, 이때문에 여러개의 인스턴스에 서로 달리 존재하는 일반적인 변수,메소드와 달리 한개의 클래스에 존재하기 때문에 한개밖에 존재하지 않는다.
위 한문장만 읽으면 조금 헷갈리는데, static 변수와 static 메소드를 각각보면 좀 이해하기 쉽다.
private static int staticVariable;
public static void staticMethod(){
}
일반적인 변수가 객체(인스턴스)당 1개씩 존재하는 반면 static으로 정의된 변수는 클래스당Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-36434684580648836842017-07-02T21:34:00.001+09:002017-07-02T22:29:36.435+09:00[Java] 객체 생성과 캡슐화(Encapsulation)앞서 말했듯이 객체는 클래스에서 생성된다. 기본적으로 클래스는 아래 형식으로 이루어져있다.
class 클래스이름
{
field1,field2,field3...
constructor1
constructor2
...
method1
method2
...
}
field는 객체가 저장하는 데이터
constructor는 객체를 생성하는 생성자 함수이다.
위의 형식에 따라서 간단하게 중고 자동차 판매 관리 프로그램에 사용될 자동차(vehicle) 객체의 클래스를 만들어보자
간단하게 설계할때, vehicle 객체는 자동차의 브랜드, 모델, 엔진, 사고횟수, 가격등을 저장하게 된다.
생성될때 위 값을 가지고 생성되고, 그 값에 접근하기 위한 accessor 메소드들이 존재한다.
그리고 추후 사고기록을 추가할 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-80130507006274787442017-06-27T15:35:00.000+09:002017-06-27T15:36:24.273+09:00Object Oriented Programming(객체지향프로그래밍) 소개객체지향프로그래밍(Object Oriented Programming), 줄여서 OOP는 전세대(1970년)의 절차지향프로그래밍(Procedural Programming)과 구조적프로그래밍(Structured Programming)을 갈아치우고 현세대를 지배하는 프로그래밍 패러다임이다. 대부분의 프로그래밍 언어들은 객체 지향적(Object Oriented)이므로 Java, C#, Python 등을 사용한다면 이 컨셉에 익숙해질 필요가 있다.
흔히 객체 지향적이라 말해지는 프로그램들은 객체(Object)들로 이루어진다. 각 객체들은 목적에 맞는 특별한 기능들을 가지고 있고, 사용자들은 그런 기능들을 사용할수 있다. 물론 객체 디자이너가 몇몇 기능들을 사용자들에게서 숨길수도 있다. 과거의 절차지향적Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-45033746086595223562017-06-27T12:46:00.002+09:002017-06-27T12:46:32.022+09:00[Java] 배열(Array)자바에서 배열(Array)는 같은 형(type)의 값들을 저장하는 자료구조이다. index 값을 통해 각 값에 접근이 가능하다. 예를들어, 배열 a 가 존재할 때 a[i]는 a 배열의 i번째 값이다. 배열의 선언은 어떤 형의 배열인지를 표기하고, 초기화시는 배열의 길이를 정해주면 된다. 그리고 바로 값을 어싸인하여 배열을 생성할수도 있다
double[] a = new double[3]; //double 3개를 저장할 수 있는 배열
int b[] = new int[10]; //인터져 10개를 저장할 수 있는 배열
b[0] = 113; //배열 b의 첫번째 값에 113을 저장
System.out.println(a[0]); //0.0
System.out.println(b.length); //10
int[] Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-37199132190385948812017-06-27T00:55:00.001+09:002017-06-27T00:55:25.391+09:00[Java] String(문자열)char형이 문자 1개밖에 저장하지 못하기 때문에 탄생한 String형, 유니코드 문자열을 저장하며 Java의 빌트인 자료형이 아니라, Java 라이브러리에서 지원되는 자료형이다. 큰따옴표("") 사이에 들어가는 문자는 모두 String 클래스의 인스턴스이다. 예를들자면 "Java\u2122"는 유니코드 문자, J, a, v, a, ™으로 이루져있다.
String emptyOne = "";
String javaTM = "Java\u2122";
System.out.println(emptyOne); //
System.out.println(javaTM); //Java™
String형은 저장된 자료를 변경하는게 불가능한다. 객체형 자료이기 때문인데, 우리가 e 라는 String 객체를 생성하고 "Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-41746939341783848742017-06-26T01:17:00.001+09:002017-06-27T01:19:42.431+09:00[Java] 자료형(Data Type)과 변수자바에서 모든 변수(Variable)는 그에 맞는 Type(형태)를 가지고 있다. 자바에는 총 8개의 원시형(Primitive Type)이 있으며, 정수(Integer)형 4개[int, short, long, byte], 소수(Floating-point)형 2개[float, double], 문자(Character)형 1개[char], Boolean형 1개로 이루어져 있다. 그리고 문자열 형식(String)은 String 객체를 통해 표현한다.
모든 자바의 변수들은 그에 맞는 type(형)을 가진다. 변수의 이름은 언제나 문자로 시작해야하며 문자 1개만 사용해서는 안된다. 다만 '$' 문자는 자바 컴파일러에 의해 사용되기도 하니 사용을 피하도록 하자. 또한 Java reserved word 들은 사용하면 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-13150914938696844492017-06-16T01:48:00.000+09:002017-07-03T22:37:23.777+09:00아파치 메이븐(Apache Maven) 시작하기Apache Maven 프로젝트는 Java 어플리케이션의 빌드 과정을 간략화하기 위해 시작된 프로젝트이다. 그 전까지는 Apache Ant 를 이용해서 빌드 했는데, 이 경우에 여러개의 섭프로젝트로 이뤄진 하나의 프로젝트를 진행할 때 각 섭프로젝트가 서로 다른 Ant 빌드 파일을 가지고, 빌드된 JAR 파일들이 만들어지게 된다. Apache 개발팀은 프로젝트를 빌드하는데 있어 프로젝트의 구성 정보를 확실하게 전달하고, 여러 프로젝트에서 쉽게 JAR 파일을 공유할 수 있는 방식의 필요성을 느꼈고, 그에 대한 결과물로 Maven 이 탄생하게 된다. 그러니까 Maven은 기존의 "Ant + @기능들" 이라 생각하면 된다.
Maven을 우선 설치해야 공부하니까 설치하자. 가장 최신버젼은 3.5 버젼이고Unknownnoreply@blogger.com1tag:blogger.com,1999:blog-4259821362668608289.post-58438479270807391482017-06-15T19:41:00.000+09:002017-06-16T10:16:30.826+09:00[Ubuntu] 우분투 데스크탑 아이콘 만들기우분투 데스크탑 환경인 UNITY에서 프로그램을 실행하기 위해서는, 설치한 어플리케이션을 .desktop 파일인 desktop entry를 데스크탑 메뉴에 추가해줘야 한다. 참고로 이는 freedesktop.org의 기준을 따르는 모든 데스크탑 환경에서 동일하다. 데스크탑 환경은 .desktop 파일에서 정보를 읽어, 아이콘을 만들어준다.
아래는 간략한 desktop 파일의 양식과 설명이다
[Desktop Entry]
# 모든 desktop 파일의 첫줄이다. 데스크탑 환경이 파일을 바르게 인식하려면 필수적으로 첫줄에 들어가야 한다.
Type =
# 데스크탑 환경에 이 파일이 어떤것과 관련되었는지를 알려준다. 값으로는 Application, Link, Directory가 있다.
Version =
#Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-5608653632288273132017-01-30T23:48:00.004+09:002017-06-25T13:38:42.162+09:00[JavaScript] 자바스크립트 이벤트 핸들링(Event Handling)Events란 사용자, 또는 브라우저에 의해 실행되는 행위들을 말한다. 이러한 event들에는 click, load, mouseover, focus 등이 있다. Event가 있으면 이들을 사용하는 것도 있는데, event에 반응하는 함수(function)들을 event handler, 또는 event listener라 부른다. event listener 들의 이름은 간단하다. Onclick, onload, onmouseover, onfocus처럼 원하는 event에 on을 붙이면 된다.
이러한 Event Handler들을 등록하는데 3가지 방법이 있다
HTML Event Handler
<div clicked="" onclick="(function(){alert(onmouseover=alertUnknownnoreply@blogger.com3tag:blogger.com,1999:blog-4259821362668608289.post-86570397122488594922016-12-10T14:51:00.003+09:002016-12-10T14:51:37.917+09:00[Java] 자바 시작하기(개발 환경 구성)자바(Java)프로그래밍을 시작하기위해 가장 선행되어야 할 것은, JRE(Java Runtime Environment, 자바 실행 환경) 설치, 즉 JVM(Java Virtual Machine, 자바 가상 머신)라 불리는 가상머신과 각종 Java API들을 포함하고 있는 JDK(Java Development Kit, 자바 개발 키트)의 설치이다. Java API는 각종 기능의 자바 클래스들이 포함된 자바 라이브러리이고 JVM은 컴파일된 자바 클래스파일들을 실행하는 가상 머신이다. 단순한 자바 프로그램 이용자라면 JVM만이 포함된 JRE를 설치하면 되겠지만 자바 개발자들은 이 2개가 모두 필요하기 때문에 Oracle에서는 JDK에 이 2가지를 포함하여 쉽게 설치할 수 있도록 하고 있다.
Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-46389549933108088112016-09-17T13:52:00.000+09:002016-09-17T13:54:26.898+09:00[Linux] chown(소유권 변경) vs chmod(파일권한 변경) 명령어Linux 기반 OS를 사용면서, 특히 Software Center에 없는 어플리케이션들을 설치할 때 자주 사용하게 되는 명령어가 있다. 주로 폴더, 또는 파일 이동 후 소유권과 파일권한을 변경할 때 사용하게 되는 명령어인 chown과 chmod이다.
우선 두 명령어의 차이부터 말하자면, chown은 "change owner", 즉 파일, 또는 폴더의 소유권을 변경하는 명령어이고, chmod는 "change mode", 파일이나 폴더의 권한(읽기, 쓰기, 실행)를 변경한다. "change mode"인 이유는 UNIX 시스템에서 이러한 권한들을 mode라 부르기 때문이다.
파일, 폴더(디렉토리)의 권한과 소유권 보기
간단하다. ls 명령어에 1개의 flag만 추가해주면 된다.
user@Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-953520685139120792015-10-09T18:24:00.002+09:002015-10-11T01:55:43.907+09:00우분투(Ubuntu) 마우스 커서 이동 속도 조절하기
Ubuntu System Setting - Mouse & Touchpad 창
우분투만 쓸때는 몰랐는데 윈도우를 깔고 듀얼부트 상태로 쓰니 마우스 속도가 다른게 확 느껴진다. 윈도우에서는 적당히 빨랐는데 우분투에서는 너무 답답하다. System Setting 에서 바꾸려 했는데 마우스 이동속도 설정은 찾아볼수가 없다.
더블클릭 속도, 주-사용버튼 밖에 수정이 불가능하다. 그래서 찾아보니 command-line 에서 1가지 프로퍼티 수정만하면 쉽게 속도를 조정할수가 있었다.
우선 "xinput" 명령을 이용해 모든 input 장차의 리스트를 가져오자.
user@desktop:~$ xinput --list --short
⎡ Virtual core pointerUnknownnoreply@blogger.com3tag:blogger.com,1999:blog-4259821362668608289.post-29791857183087794502015-10-06T02:21:00.001+09:002017-06-25T13:39:12.201+09:00[JavaScript] 문서 객체 모델(DOM, Document Object Model)문서 객체 모델(DOM, Document Object Model)은 HTML과 XML 문서에 사용되는 API(Application Programming Interface)이다. DOM은 주어진 문서를 노드(node)를로 이루어진 계층구조의 트리(hierarchical tree)로 나타내며, 원하는 노드를 추가, 제거, 그리고 수정할 수 있게 한다. 이런 DOM의 가장 초기 버젼인 DOM Level 1은 1998년 W3C에 처음 표준으로 도입되었으며 현재 거의 모든 웹브라우져들, Chrome, Firefox, Safari, Internet Explorer, Microsoft Edge, Opera 등에 사용된다.
DOM Tree의 Node
각각의 태그들로 구성된 HTML 문서와 XML 문서를 Tree Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-3283532600450913842015-09-29T03:20:00.002+09:002017-06-25T13:39:06.323+09:00[JavaScript] 브라우져 객체 모델(BOM, Browser Object Model) - history 객체history 객체는 현재 웹페이지를 표시하는 브라우져 윈도우의 방문기록을 저장하는 객체이다. history 객체는 window 객체의 프로퍼티 중 하나이기 때문에 다른 윈도우의 방문기록에는 접근하지 못한다. 또한 보안상의 이유로 history 객체에 저장된 url들에도 접근이 불가능하기 때문에, 오직 웹페이지 이동만이 가능하다.
history 객체는 length 프로퍼티를 가지는데 length 값은 history 스택의 길이이다. 즉 history.length 가 0이라면 이는 history 스택이 empty 상태란것을 말하게 된다.
history 객체의 go 메소드를 이용해 방문기록으로 이동이 가능하다.
go 메소드는 1개의 argument 를 받는다. 해당 argument 는 숫자 또는 문자열이 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-35125226392318423592015-09-29T01:30:00.000+09:002017-06-25T13:39:06.328+09:00[JavaScript] 브라우져 객체 모델(BOM, Browser Object Model) - location 객체브라우져 객체 모델을 구성하는 객체중 하나인 location 객체, location 객체는 현재 윈도우에 로드된 웹문서에 대한 정보를 제공한다. location 객체는 window.location, 또는 document.location으로 접근 가능하다. location 객체는 JavaScript 에서 유일무희하게 현재 웹페이지의 url에 접근 가능한 객체이다. location 객체의 property 들은 아래와 같다.
Property설명예) "http://muckycode.blogspot.kr/2015/05/javascript-prototype.html#tableContent" 기준
hashurl hash, # 문자가 없을경우에는 """#tableContent"
hostserver 이름과 port"Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-9843064889644252642015-09-24T01:04:00.000+09:002017-06-25T13:39:06.331+09:00[JavaScript] 브라우져 객체 모델(BOM, Browser Object Model) - window 객체Browser Object Model, BOM은 ECMAScript, DOM(Document Object Model)와 함께 JavaScript를 구성하는 3가지 요소 중 하나이다. BOM은 웹페이지의 컨텐츠에 관계없이 브
라우져에 대한 정보를 제공해주는 객체이다.
window 객체와 global 스코프
이런 BOM의 중심에는 window 객체가 함께하고 있는데, 이 window 객체는 브라우져 윈도우의 정보를 저장함과 동시에 ECMAScript의 Global 객체의 역할을 수행하기도 한다. 즉, 우리가 작성하는 스크립트 내에서 선언되는 모든 객체, 변수, 함수들이 global 객체인 window 객체 내의 프로퍼티(property)로써 선언된다는 뜻이며, window 객체가 global scope의 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-21750501425399405462015-05-17T04:21:00.001+09:002017-06-25T13:38:15.256+09:00[JavaScript] Closure(클로져)
Closure(클로져) 란 무엇인가?
자바스크립트에서 클로져란(Closure) 다른 함수의 스코프(Scope)내에 있는 변수들에 접근할 수 있는 함수를 뜻한다. 아래 코드를 보자.
function closureExample(exVar){
return function(){
return exVar;
};
}
var foo = closureExample("foo");
var bar = closureExample("bar");
console.log(foo());
console.log(bar());
closureExample이라는 함수는 매개변수로 exVar를 받으며, 내부에서 anonymous function(익명 함수, 람다 함수)을 선언 후 반환한다. 반환되는 함수 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-49262651788241193142015-05-13T00:53:00.000+09:002017-06-25T13:36:47.954+09:00[JavaScript] Regular Expression(정규표현식)과 RegExp 객체정규표현식이란 특정 패턴의 문자열을 의미하며, 이를 통해 이 문자열에서 특정 단어나, 특정 패턴을 가진 문자열을 찾아낼 수 있다.
자바스크립트는 기본 내장(Built-in)객체로 RegExp 객체를 탑재하며, RegExp 객체의 test 또는 exec 메소드를 이용해 정규표현식을 이용한 패턴 매칭이 가능하다.
정규 표현식 패턴(Regular Expression Pattern)생성하기
정규 표현식의 패턴 여러 문자들로 이루어지며 사용자는 원하는 패턴을 두개의 /(Slash)사이에 적게된다. /(Slash)는 delimiter로써 프로그래밍 언어에서 해당 패턴의 시작과 끝을 알린다. 또한 / 뒤에 정규 표현식 검색 옵션을 적을 수도 있다.
var expression = /abc/; //abc문자열을 Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4259821362668608289.post-90476665713076088142015-05-06T00:16:00.002+09:002017-06-25T13:37:59.541+09:00[JavaScript] 자바스크립트 프로토타입(Prototype) 객체 이해하기
프로토타입(Prototype)이란?
프로토타입(Prototype), 이름에서 알 수 있듯 프로토타입이란 객체의 기본형인 객체를 뜻한다. 모든 객체는 프로토타입 객체를 가지며 프로토타입의 프로퍼티에 접근이 가능하다. 또한 이 프로토타입 객체도 객체인만큼 포로토타입 객체를 가진다. 즉 가기장 기본 Object 객체를 제외한 모든 객체들은 프로토타입 객체를 가지며 모든 객체의 최상위 프로토타입은 기본 Object.prototype 객체가 된다. 즉, 모든 객체들은 1개의 객체 인스턴스와 해당 인스턴스의 속성들을 공유하며 상속한다는 말이 된다.
이 프로토타입(Prototype)이 중요한 이유는 OOP의 상속 컨셉을 자바스크립트에서 구현할 수 있게하기 때문이다. 만약 객체가 뭔지 모른다면, 우선 이 글(Unknownnoreply@blogger.com0