반응형
반응형

2019년과 이후 JavaScript의 동향 - JavaScript(ECMAScript)

https://d2.naver.com/helloworld/4007447

반응형
반응형

ECMA Script 6? 버전 특징

 

ES 2015 (ES 6)


1. let, const 키워드 추가
기존의 변수는 함수 scope를 가진 var 키워드를 이용하여 선언하였다. 때문에 block scope 를 가진 let과 const 키워드를 추가하였다. 기존에는 상수형 키워드가 없어 CONST_TEST와 같이 대문자로 상수임을 표시했다면, ES 6부터 const 키워드가 추가되어 값의 변경을 통제한다.

2. arrow 문법 지원
arror 문법은 두 가지의 장점을 제공한다. 첫 번째는 익숙하면 편하고 간결해진 코드를 작성할 수 있다. 두 번째는 this 를 바인딩하지 않는다. (다르게 말하면, this는 해당 scope의 this와 같다.)
두 번째 this를 바인딩 하지 않는다는 코드로 설명하겠다. 우선 아래 코드를 보자. test 객체에 name변수와 fn이라는 메소드를 두었다. 아래 test.fun으로 메소드를 실행한다.

3. iterator / generator 추가
위 arrorw에서 샛길로 빠져서 더 새진 않겠습니다. 이 둘은 따로 공부해서 글을 쓸 정도로 내용이 깊고 많습니다.

4. module import / export 추가
사실 저는 익숙하고 당연하게 import / export를 써 왔는데 도입된 시점이 그리 오래되지 않았다는 것에 잠깐 놀라네요.

5. Promise 도입
자바스크립트의 비 동기 callback hell을 해결해 줄 기법이 추가 되었습니다.

ECMA 2017 (ES 8)

사실 ECMA 2017 까진 정리하지 않으려 했는데, 보던 중 반가운 기능이 추가되어 소개 합니다.
async — await
위에서 ES6에서 callback hell을 해결하기 위해 Promise가 도입되었다고 했는데 async-await도 Promise처럼 callback 을 해결할 뿐만 아니라 좀 더 직관적이고 단순하게 코드를 만들 수 있습니다.
반응형
반응형
반응형
반응형

자바 명명 규칙 - 클래스 / 메서드 / 변수

 

주로 쓰는 반의어 

get / set
add / remove
create / destroy
start / stop
insert delete
increment / decrement
old / new
begin / end
girst / last
up / down
min / max
next / previous
open /close
show /hide
suspend /resume
parent / child

받다/ 받다
추가/제거
창조/파괴하다
시동/정지
삽입/삭제
증가/감소
구/신
시작/끝
긴/마지막
위/아래
최소/최대
다음/이전
열다/ 닫다
보이다/ 숨기다
일시 정지/재개하다
부모/아이

 0. 공통 명명 규칙

대소문자가 구분되며 길이에 제한이 없다.
예약어를 사용해서는 안 된다.
숫자로 시작해서는 안 된다.
특수문자는 '_' 와 '$'만을 허용한다.
파스칼 표기법 (PascalCase)과 카멜 표기법(camelCase)를 사용한다.
      PascalCase : 모든 단어에서 첫 번째 문자는 대문자이며 나머지는 소문자이다.
      camelCase : 최초에 사용된 단어를 제외한 첫 번째 문자가 대문자이며 나머지는 소문자이다.
반의어는 반드시 대응하는 개념으로 사용해야 한다.

1. 패키지(Package) 명명 규칙

패키지명은 표준 패턴을 따라야 한다.
Ex) [com].[Company].[Project].[TopPackage].[LowerPackage]

패키지명은 가급적 한 단어의 명사를 사용한다.
Ex) 좋은 예 : com.nexon.sudden.member.object
Ex)  나쁜 예 : sudden.memberObject


2. 클래스(Class) 명명 규칙

클래스명에는 파스칼을 사용한다.
Ex) public class HelloWorld {}

인터페이스에는 특별한 접두사나 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) public interface Animal {}

인터페이스를 구현한 클래스에는 특별한 접두사나 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) public class Tiger implements animal{}

추상 클래스에는 특별한 접두사 접미사를 사용하지 않고 파스칼을 사용한다.
Ex) public abstract class Animal {}


3. 메소드(Method) 명명 규칙

메소드명에는 파스칼 표기법을 사용한다.
Ex) public void SendMessage(String message) {}

속성에 접근하는 메소드명의 접두사는 'get','set'을 사용한다.
Ex) public void setDisplayName
Ex) public void getDisplayName

데이터를 조회하는 메소드명의 접두사는 find를 사용한다.
Ex) public void findData(String data){}

데이터를 입력하는 메소드명의 접두사는 input을 사용한다.
Ex) public void inputData(HashMap data){}

데이터를 변경하는 메소드명의 접두사는 modify를 사용한다.
Ex) public void modifyData(HashMap data){}

데이터를 삭제하는 메소드명의 접두사는 delete를 사용한다.
Ex) public void deleteData(String data){}

데이터를 초기화 하는 메소드명의 접두사는 initialize을 사용한다.
Ex) public void initData(String data){}

반환값의 타입이 boolean인 메소드는 접두사로 is를 사용한다.
Ex) public void isData(String Data){}

데이터를 불러오는 메소드명의 접두사는 load를 사용한다.
Ex) public void loadData(){}

데이터가 있는지 확인하는 메소드명의 접두사는 has를 사용한다.
Ex) public void hasData(){}

보다 지능적인 set이 요구될때 사용하는 메소드명의 접두사는 register를 사용한다.
Ex) public void registerAccount(){}

새로운 객체를 만든뒤 해당 객체를 리턴해주는 메소드명의 접두사는 create를 사용한다.
Ex) public void createAccount(){}

해당 객체를 다른 형태의 객체로 변환해주는 메소드명의 접두사는 to를 사용한다.
Ex) public void toString(){}

해당 객체가 복수인지 단일인지 구분하는 메서드명의 접미사는 s를 사용한다.
Ex) public void getMembers(){}

B를 기준으로 A를 하겠다는 메소드명의 전치사는 By를 사용한다.
Ex) public void getUserByName(String name){}

반환값의 타입이 boolean인 메소드는 접두사로 is를 사용한다.
Ex) public void isData(String Data){}

데이터를 불러오는 메소드명의 접두사는 load를 사용한다.
Ex) public void loadData(){}

데이터가 있는지 확인하는 메소드명의 접두사는 has를 사용한다.
Ex) public void hasData(){}

보다 지능적인 set이 요구될때 사용하는 메소드명의 접두사는 register를 사용한다.
Ex) public void registerAccount(){}

새로운 객체를 만든뒤 해당 객체를 리턴해주는 메소드명의 접두사는 create를 사용한다.
Ex) public void createAccount(){}

해당 객체를 다른 형태의 객체로 변환해주는 메소드명의 접두사는 to를 사용한다.
Ex) public void toString(){}

해당 객체가 복수인지 단일인지 구분하는 메서드명의 접미사는 s를 사용한다.
Ex) public void getMembers(){}

B를 기준으로 A를 하겠다는 메소드명의 전치사는 By를 사용한다.
Ex) public void getUserByName(String name){}

4. 변수(Variable) 명명 규칙

변수와 메소드의 파라미터에는 카멜표기법을 사용한다.
변수에 약어를 사용하지 않고 모든 의미를 충분히 담는다.
한 글자로 된 이름을 사용하지 않는다.
선언된 지점에서 초기화하며, 가능한 사용범위를 최소화 한다. 숫자 0 레퍼런스 null
반복문에서 인덱스로 사용할 변수는 i,j,k 등으로 사용한다.
Ex) for(int i = 0; i < 10; i++){}

지역변수와 멤버변수(전역변수)는 변수명 앞에 밑줄(_)을 사용하여 구별한다.
boolean타입의 변수는 접두사로 is를 사용한다 Ex) isCheck

반응형
반응형

1. 카멜 표기법(camelCase) 
    "camelCase"
    "단봉낙타" 표기법[1][2]
    각 단어의 첫문자를 대문자로 표기하고 붙여쓰되, 맨처음 문자는 소문자로 표기함
    띄어쓰기 대신 대문자로 단어를 구분하는 표기 방식
    예시: backgroundColor, typeName, iPhone


2. 파스칼 표기법(PascalCase)
    "PascalCase"
    첫 단어를 대문자로 시작하는 표기법
    예시: BackgroundColor, TypeName, PowerPoint

 


* 각종 네이밍 룰(Naming Rule)



1. 카멜 케이스 (Camel Case)

 - 흔히 접하는 표기법. 가장 처음에 오는 문자는 소문자로 표기하고, 각 단어의 첫글자는 대문자로 표기

 - 예) deleteNumber, insertNumer





2. 파스칼 케이스 (Pascal Case)

 - 쌍봉낙타 표기법. 각 단어의 첫글자를 대문자로 표기

 - 가장 처음에 오는 문자도 대문자로 표기하는 점에서 카멜 케이스와 차이점

 - 예) DeleteNumber, InsertNumber





3. 스네이크 케이스 (Snake Case)

 - 각 단어의 사이에 언더바를 삽입

 - 예) delete_number, insert_number





4. 헝가리언 표기법 (Hungarian notation)

 - 데이터의 타입을 의미하는 접두어를 붙이는 표기법

 - 마이크로소프트의 찰스 시모니가 제안했으나 현재는 MS조차 공식 가이드라인에서 사용하지 말라고 권고하는 비운의 표기법

 - 예) nCnt, m_empName

반응형
반응형

1. SSO(Single Sign-On)이란?

하나의 아이디 및 패스워드를 통해 여러 시스템에 접근할 수 있는 통합 로그인(인증) 솔루션
2. SSO의 등장배경

- 기술적 측면 : 기업 내 다양한 정보시스템의 구축에 따른 복잡성 증가

                     PKI, 생체인식 등 다양한 인증 기술의 활성화

- 관리적 측면 : 중앙 관리를 통한 업무 단순화 및 표준화 실현

                     중앙 집중적인 사용자 관리를 통한 보안 기능 강화

 

3. SSO의 구성요소

- 사용자 통합 로그인

- 인증 서버

- 통합 에이전트 : 각 정보시스템에 대한 인증 정보 관리

- LDAP : 네트워크 상의 자원을 식별하고, 인가된 사용자만  접근할 수 있도록 하는

             네트워크 디렉토리 서비스(Lightweight Directory Access Protocol)

 

4. SSO의 기술요소

- 인증 : PKI(Public Key Infrastructure), 생체인식, OTP(One Time Password)

- 관리 : LDAP(Lightweight Directory Access Protocol), 쿠키(Cookie)

- 암호화 통신 : SSL(Secure Socket Layer), IPSec(IP Security Protocol)

 

5. SSO 구축 유형

① 인증 대행 모델(Delegation)

 

- 인증 방식을 변경하기 어려울 경우, 많이 사용

- 시스템 접근 시, 통합 Agent가 인증 작업을 대행

 

② 인증 정보 전달 모델(Propagation)

  

- 웹 기반의 시스템에서 주로 사용

- 미리 인증된 토큰(Cookie 기능 이용)을 받아서 각 시스템 접근 시, 자동으로 전달

 

6. Cookie를 이용한 SSO구현 시, Cookie 보안 방법

- Data Confidentiality : 토큰은 주요 암호 알고리즘(AES, SEED)과 128bit 이상의 키로 암호화 되어야 함

- Data Integrity : 토큰은 MAC 등을 포함해 데이터의 무결성을 보장해야 함

- Replay Attack Protection : 사용자 주소 제한이나 유효시간 제한 같은 보안 기술을 사용하여, 토큰을

  네트워크에 노출시키지 않아야 함 

반응형

+ Recent posts