펭귄집

배열


배열은 자바스크립트 객체의 특별한 형태이다.

-> 즉, 굳이 크기를 지정하지 않아도 되며, 어떤 위치에 어느 타입의 데이터를 저장하더라도 에러가 발생하지 않는다.



배열 리터럴

배열리터럴은 자바스크립트에서 새로운 배열을 만드는데 사용하는 표기법이다.
객체리터럴 표기법 : ({ }) -> 중괄호
배열리터럴 표기법 : ([ ]) -> 대괄호


//배열 리터럴을 통한 5개 원소를 가진 배열생성

var colorArr = ['orange', 'yellow', 'blue', 'green', 'red'];


console.log([0]);  
console.log([1]);  
console.log([4]);  


출력

(출력값) orange

(출력값) yellow

(출력값) red



객체 리터럴에서는 프로퍼티 이름과 프로퍼티값을 모두 표기해야 하지만,
배열리터럴에서는 각 요소의 값만 포함한다. 

객체가 프로퍼티의 이름으로 대괄호나 마침표표기법을 이용해 해당 프로퍼티에 접근했다면,
배열의 경우는 접근하고자 한느 원소에 배열 내 위치 인덱스 값을 넣어서 접근한다.

배열 내의 첫 번째 원소는 인덱스0부터 시작한다.



<참고문헌 : 인사이드자바스크립트>


'전공서적 > 인사이드자바스크립트' 카테고리의 다른 글

Array() 생성자 함수  (0) 2017.11.16
Javscript배열 리터럴  (0) 2017.11.13
객체비교  (0) 2017.10.25
함수 호이스팅  (1) 2017.08.31
자바스크립트 참조타입(객체타입)  (0) 2017.08.30

객체비교


동등연산자(==)를 사용하여 두 객체를 비교할 때도 객체의 프로퍼티 값이 아닌 참조값을 비교한다는 것을 알아야 한다.


var a = 100;
var b = 100;

var objA = { value : 100 };
var objB = { value : 100 };

var objC = objB;

1번
console.log(a == b);       
2번
console.log(objA == objB);  
3번
console.log(objB == objC); 


출력값

1번

console.log(a == b);        //(출력값) true
2번
console.log(objA == objB);  //(출력값) false
3번
console.log(objB == objC);  //(출력값) true


1번
a와 b는 숫자100을 저장하고 있는 기본타입의 변수
기본타입으 경우 동등 연산자(==)를 이용해서 비교할때 값을비교
두 변수 모두 100이라는 동일한 값을 가지고 있으므로 a==b의 결과가 true

2번
아래그림처럼 objA와 objB는 다른객체지만 같은 형태의 프로퍼티값을 갖고있음
하지만 동등연산자(==)로 두 객체를 비교하면 1번과 다르게 결과가 false
-> 이유는 1번처럼 기본타입의 경우는 값 자체를 비교해서 일치여부를 판단하지만, 객체와 같은 참조타입의 경우는 참조값이 같아야 true


objA ->    value : 100

objB ->
               value : 100

objC -> 


참고문헌 : <인사이트자바스크립트>


'전공서적 > 인사이드자바스크립트' 카테고리의 다른 글

Javscript배열 리터럴  (0) 2017.11.13
배열  (0) 2017.10.26
함수 호이스팅  (1) 2017.08.31
자바스크립트 참조타입(객체타입)  (0) 2017.08.30
null 과 undefined  (0) 2017.08.30

모델2에서 Front Controller패턴으로


Front Controller 적용원인

1. 각 컨트롤러 사이의 중복적인 코드의 문제

2. 개발자의 개발패턴의 차이

=> 이로인해 모델2방식은 좀 더 강제적인 형태인 Front Controller방식을 적용


Front Controller패턴의 가장 중요한 변화는 전체 로직의 일부만을 컨트롤러가 처리하도록 변경 == '위임' (Delegation)

전체로직의 일부를 컨트롤러에게 위임하고 모든 흐름의 제어는 앞쪽의 Fornt Controller가 담당
-> 이런 구조를 사용하게 될 경우
     1. 개발자가 작성하는 컨트롤러는 전체 로직의 일부분만을 처리 => 개발자가 작성해야 하는 전체코드가 줄어듬
     2. 모든 컨트롤러는 Front Controller의 일부분을 구현한느 형태이므로, 좀 더 규격화된 코드 구현 가능




<참고문헌 : 코드로 배우는 Spring 웹 프로젝트>

'전공서적 > 코드로 배우는 Spring 웹 프로젝트' 카테고리의 다른 글

모델2패턴의 이해  (0) 2017.10.24

델2패턴의 이해


스프링 MVC는 모델2방식 구조르 이요하기 때문에 이론적으로 모델2방식에 대한 이해가 필요하다


최근의 모든 웹 개발은 거의 모델2방식을 사용한다.


모델2방식은 흔히 MVC구조를 응용하는 것이라고 생각하는데 가장중요한것 

 -> 화면과 데이터 처리를 분해해서 재사용이 가능하도록 하는 구조


모델2구조에서는 다음과 같은 용어들이 사용된다

 모델(Model)

데이터 혹은 데이터를 처리하는 영역을 의미한다 

뷰(View) 

결과 하면을 만들어 내는 데 사용하는 자원이다 

컨트롤러(Controller) 

웹의 요청(request)을 처리하는 존재로 뷰와 모델사이의 중간 통신 역할을 한다   


컨트롤러는 모델계층과 연동해서 필요한 데이터를 처리하고, 결과를 뷰로 전송하게 된다.


모델2에서 모든 요청은 기본적으로 컨트롤러를 호출한다.
각 컨트롤러는 자신을 호출하는 특정한 URL경로를 가지고 있다.


  모델2방식의 장점

 개발자와 웹 퍼블리셔의 영역을 분리할 수 있다 

 컨트롤러의 URL을 통해서 뷰를 제어하기 때문에, 뷰의 교체나 변경과 같은 유지보스에 유용 




<참고문헌 : 코드로 배우는 Spring 웹 프로젝트>