JSTL

자바서버 페이지 표준 태그 라이브러리(JavaServer Page Standard Tag Library)의 약칭이며, 자바EE 기반의 웹 어플리케이션 개발을 위한 컴포넌트 모음이다. JSTL은 조건문, 반복문, XML 데이터 처리와 같은 일을 처리하기 위해 JSP 태그 라이브러리를 추가하였으며 JSP 페이지내에서 자바코드를 바로 사용하지 않고 표준화된 태그셋을 이용한다.


반복문

<c:forEach>


    인덱스: ${status.count}
    이름: ${item.name}
    나이: ${item.age}


속성값


 항목

설명 

기타 

var 

사용할 변수명

필수 

items 

반복할 리스트

필수 

begin

시작 인덱스 기본0 

 

end 

종료 인덱스 기본은 items크기 -1 

 

step 

반복할 때 이동할 인덱스 개수 

 

varStatus 

반복 상태를 가지고 있는 변수

 

varStatus 값

 항목

리턴

설명

index 

int 

items의 항목을 가리키는 인덱스 번호. 

count

int 

몇번 째 반복인지 가리킴. 시작은 1 

first 

boolean 

첫번 째 반복인지 나타냄 

end 

boolean 

마지막 반복인지 나타냄. 



<c:forTokens>

문자열을 특정 기호로 잘라내어 반복할 수 있는 태그.


    숫자: ${item}


참고: http://fruitdev.tistory.com/132

'웹 개발' 카테고리의 다른 글

부트스트랩(Bootstrap) 이란  (0) 2019.03.11
jsonp  (0) 2017.02.09
OAuth 2.0 ( RFC 6749)  (0) 2017.01.19
JSP 와 Servlet의 한글처리.  (0) 2016.10.06
Apache 와 Tomcat  (0) 2016.07.26

먼저 Parameter와 Arguments의 차이를 알아보자면 Parameter는 함수 선언부에서, Arguments는 함수 호출부에서 사용된다.

var a = 1;
function test(b) {  // Parameter
    b = b+1;
}
test(a);  // Arguments


CallByValue

: Arguments의 값을 복사하여 함수로 전달한다.
var a = 10;
function add(b) {
    b = b + 10;
    console.log(b); // 20
}
add(a); 
console.log(a); // 10

마지막 log에서 10이 출력되는 이유는 무엇일까? 


 그것은 add함수를 호출할 때 a의 값을 "복사"하여 전달하기 때문이다. add함수의 b는 a의 복사된 값이기 때문에 b에 10을 더하더라도 a에게는 영향을 미치지 않기때문에 10이 출력되는 것이다. 


 기본적으로 자바스크립트에서는 함수를 호출할 때 기본형(number, string, boolean, null, undefined)을 Arguments로 사용하면 CallByValue방식으로 함수가 호출된다. 


CallByReference

: Arguments의 참조값을 함수로 전달한다.
var a = { };
function add(b) {
    b.test = 1;
} 
add(a);
console.log(a.test); // 1

add함수를 호출할 때 a의 참조값을 전달하였기 때문에 add함수에서 새로운 프로퍼티를 추가하면 a에도 적용되는 것을 확인해 볼 수 있다. 정확히 말하자면 a의 참조값을 전달하는 것이 아니라 a의 참조값을 복사한 뒤 전달한다. 


var a = {};
function change(b) {
    b = 1;
    console.log(b); // 1
}
change(a);
console.log(a); // {}

위의 예제를 하나씩 분석해보자.


[ 1 ]. a에는 {} 를 가리키는 0x12라는 참조값을 저장하고 있다.

[ 5 ]. change 함수를 호출하는데 a를 전달하는 것이 아니라 a가 저장하고 있는 0x12라는 참조값을 복사하여 arguments로 사용한다.

[ 2~4 ]. a의 참조값을 복사한값을 저장하는 새로운 변수 b에는 b=1를 실행하기 이전에는 a와 b모두 {} 를 가리키고 있다. 하지만 b = 1을 실행하면서 b에는 1을 가리키는 참조값 0x13이 저장된다.

[ 6 ]. 즉, change 함수에서는 0x12를 1로 가리키도록 바꾼 것이 아니라, b라는 변수에 1을 가리키는 참조값을 저장한 것이다. 따라서 a에는 변화가 없다.


자바 기본서나 여러책에서도 위와 같은 내용이 많이 나오니 참고바란다.












'웹 개발 > 자바스크립트' 카테고리의 다른 글

정규식 (작성중)  (0) 2018.04.25

정규식이란 특정한 규칙을 가지는 문자열을 표현하는 언어이다. 


정규표현식이라는 문구는 문자열이 준수해야하는 패턴을 표현하기위한 텍스트 표현식이다. 정규표현식의 각 문자는 메타문자(특별한 의미로 해석되는 문자)와 정규 문자(리터럴 문자)로 구성된다. 


아래는 간단한 정규표현식 예시이다.

    // 문자열에서 "abc"와 패턴이 일치하는지 검사하는 정규표현식.
    var regex = /abc/;
    regex.test("abc");// true
    regex.test("abcd");// true
    regex.test("abd");//  false

    // 문자열에서 "a와c사이에 b가 0개이상 존재"와 패턴이 일치하는지 검사하는 정규표현식.
    regex = /ab*c/;
    regex.test("abc");// true
    regex.test("ab");// true
    regex.test("adc")// false
    regex.test("abdc")// false


다양한 메타문자.

 \ ( 역슬래시 )

        
    

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


'웹 개발 > 자바스크립트' 카테고리의 다른 글

CallByValue 와 CallByReference  (0) 2018.04.26

안드로이드에서 서버와 통신하기 위한 방법으로는 HTTP통신과 Socket통신 방법이 있다. 우리는 주로 DB에 저장되어 있는 데이터를 이용하기 위해 서버통신을 한다. 하지만 안드로이드 특성상 외부DB에 직접적으로 접할 수 없기 때문에 중간 매체인 WEB을 이용한다.

[안드로이드와 WEB, DB 연결방식] - 출처 : http://mailmail.tistory.com/13



안드로이드에서 네트워크 처리

안드로이드에서는 UI에 관련된 모든 작업은 메인스레드(UI스레드)에서 처리된다. 특별한 스레드처리를 하지않는 액티비티에서 발생하는 모든 작업은 메인스레드에서 담당하게 된다는 것이다. onCreate()에서 다운로드와 같은 오랜시간이 걸리는 작업을 하게되면 작업을 완료하기 전까지 UI스레드가 묶여있기 때문에 다운로드동안 UI가 먹통이 되어버린다. 이러한 문제를 해결하기 위해 비동기처리를 해야하며 AsyncTask를 이용한다.



'웹 개발 > 안드로이드' 카테고리의 다른 글

안드로이드 타이틀바 없애기  (0) 2017.05.11
RecyclerView란?  (0) 2017.05.10
가변 비트레이트 스트리밍(Adaptive Bitrate Streaming)  (0) 2017.04.11
GCM( Google Cloud Messaging ) 이란?  (0) 2017.04.10
Parcelable  (0) 2017.04.08

Node.js Application 만들기


필요한 모듈 import

어플리케이션에 필요한 모듈을 불러올 땐 require 명령을 사용한다. 다음 코드는 HTTP 모듈을 불러오고 반환되는 HTTP 인스턴스를 http변수에 저장한다.



서버 생성하기



'웹 개발 > Node.js' 카테고리의 다른 글

Node.js 로컬 작업환경 설정  (0) 2017.05.11
[Node.JS]소개  (0) 2017.05.11

로컬 작업환경 설정

윈도우 계열 PC를 사용하고 있다면 아래의 URL에서 Node.js를 설치하면 된다.


본 블로그에서는 WebStorm을 사용하려고 함.  WebStorm은 유료이기 때문에 알아서들 구하셔야 합니다

WebStorm 설정

  • 웹스톰 실행 후 프로젝트 새로실행(Node.js)
  • File > Setting으로 설정창을 열기
  • Languages and Frameworks > Node.js and NPM 을 선택
  • Node Interpreter에 설치한 node.exe의 위치를 입력
  • Node.js Core Modules의 소스코드 위치에는 Node.js의 Source를 다운받은 root 디렉토리를 설정
  • Languages and Frameworks > Javascript > Libraries 에서 node.js 관련된 항목이 모두 check되었는지 확인
test.js 파일 생성 후 테스트 로그 작성.
node test.js 로 정상 작동되는지 확인.




출처 : https://velopert.com/195
출처 : http://dakoostech.blogspot.kr/2015/03/windows-81-webstorm-nodejs.html


'웹 개발 > Node.js' 카테고리의 다른 글

Node.js 맛보기  (0) 2017.05.11
[Node.JS]소개  (0) 2017.05.11

Node.js 란?

Node.js는 구글 크롬의 자바스크립트 엔진 (V8 Engine)에 기반해 만들어진 서버 사이드 플랫폼 이다. Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임이다. Node.js는 이벤트 기반, 논 블로킹 I/O 모델을 사용해 가볍고 효율적이다. nODE.JS의 패키지 생테계인 npm은 세계에서 가장 큰 오픈 소스 라이브러리 이기도 하다.

 Node.js는 웹서버가 아니다. Node 자체로는 아무것도 하지 않는다. 아파치 웹서버처럼 HTML 파일 경로를 지정해주고 서버를 열고 그런 설정이 없다. 단, http서버를 직접 작성해야 한다(일부 라이브러리의 도움을 받아서). Node.js는 그저 코드를 실행할 수 있는 하나의 방법에 불과한 그저 Javascript 런타임이다. 

 Node.js의 특징
  • 비동기 I/O 처리, 이벤트 위즈 : Node.js 라이브러리의 모든 API는 비동기식이다. Node.js 기반 서버는 API가 실행되었을 때, 데이터를 반환할때까지 기다리지 않고 다음 API를 실행한다. 그리고 이전에 실행하였던 API가 결과값을 반환할 시, NodeJS의 이벤트 알림 메커니즘을 통해 결과값을 받아온다
  • 빠른 속도 : 구글 크롬의 V8 자바스크립트 엔진을 사용하여 빠른 코드 실행을 제공한다.
  • 단일 스레드/ 뛰어난 확장성 : Node.js는 이벤트 루프와 함께 단일 스레드 모델을 사용한다. 이벤트 메커니즘은 서버가 멈추지않고 반응하도록 해주어 서버의 확장성을 키워준다. 반면, 일반적인 웹서버는 요청을 처리하기 위하여 제한된 쓰레드를 생성한다. 
  • 노 버퍼링 : Node.js 어플리케이션엔 데이터 버퍼링이 없고, 데이터를 큰 덩어리로 출력한다

Node.js를 쓰기 좋은 곳은?

  • 입출력이 잦은 어플리케이션
  • 데이터 스트리밍 어플리케이션
  • 데이터를 실시간으로 다루는 어플리케이션
  • JSON API 기반 어플리케이션
  • 싱글페이지 어플리케이션

Node.js가 적합하지 않은 곳은?

CPU 사용률이 높은 어플리케이션에선 Node.js 사용을 권장하지 않는다. 



출처 : https://velopert.com/133

'웹 개발 > Node.js' 카테고리의 다른 글

Node.js 맛보기  (0) 2017.05.11
Node.js 로컬 작업환경 설정  (0) 2017.05.11

기본적으로 프로젝트를 생성하고 실행시키면 아래와 같은 모습으로 실행된다. 



 TrohPlayer라고 적혀있는 영역이 타이틀바이며, 그 위의 시간 배터리 등등 표시되는 곳이 상태바이다. 이번 포스팅에서는 타이틀바의 제거와 , 풀스크린 즉 앱이 전체화면을 차지하도록 하는 방법에 대해 알아보려고 한다.


타이틀바 없애기

안드로이드 프로젝트의 Manifest.xml 파일을 열어보면 아래와 같은 코드가 보일 것인데, 이중에 theme부분을 보면 "@style/AppTheme " 이라는 부분에 주목해야 한다.



Ctrl키를 누른상태로 AppTheme부분을 클릭해보면 아래와 같이 되어 있을 것인데, 여기에 타이틀바에 대한 설정을 추가해줘야 한다. 아래와 같이 타이틀바와 풀스크린에 대한 정보를 추가해주면 설정이 완료된다.



<타이틀바 제거만 추가한 경우>


<풀스크린으로 실행한 경우>






'웹 개발 > 안드로이드' 카테고리의 다른 글

Android Clinet와 Web통신(작성중)  (0) 2017.06.18
RecyclerView란?  (0) 2017.05.10
가변 비트레이트 스트리밍(Adaptive Bitrate Streaming)  (0) 2017.04.11
GCM( Google Cloud Messaging ) 이란?  (0) 2017.04.10
Parcelable  (0) 2017.04.08

+ Recent posts