프로그래밍 언어

>기계어 (0,1)

>어셈블리어 (니모닉 기호(mnemonic symbol))

> 고급언어 (C,JAVA) (절차 지향 언어, 객체 지향 언어)


JAVA <플랫폼 독립성이다>

> 제임스 고슬링 (James Gosling)

> 플랫폼 호환성 문제 해결 : C언어같이 플랫폼이 종속되어 있었는데 자바의 JVM(자바가상머신)을 통해 WORA(Write Once Run Anywhere) 실현

단, JAVA언어는 플랫폼 종속적인것이 아니지만 JVM은 플랫폼 종속적이다. 

WORA를 가능하게 하기 위한 특징은 아래와 같다.

> 바이트 코드 (Byte Code)

> JVM (Java Virtual Machine)


바이트 코드

> 플랫폼 종속성이 없이 자바 가상 기계인 JVM에 동작하는 바이너리 코드

> 클래스 파일에 저장

> 컴퓨터 CPU에 의해 직접 실행되지 않는다. (JVM이 인터프리터 방식으로 바이트 코드 해석, 해당 플랫폼에서 실행시킴)


자바 가상 기계

> 각기 다른 플랫폼에서 동일한 자바 실행 환경 제공

> 자바 가상 기계는 플랫폼에 종속적이다.

> 자바 가상 기계가 class(클래스) 파일을 실행한다.


JAVA의 특성

> 객체지향 (클래스 계층구조, 상속성, 다형성, 캡슐화)

> 멀티스레드 

> 소스(.java) 와 클래스(.class) 파일

클래스 파일에는 단 하나 만의 클래스만 존재.

하나의 소스파일에 여러 클래스를 작성 가능 (단, public 클래스는 하나만 가능하다.)

소스 파일의 이름과 public 으로 선언된 클래스 이름은 같아야 한다.






  



'2017 > JAVA' 카테고리의 다른 글

Class 이용연습 (Animal Class)  (0) 2017.07.04
주사위 놀이(java.util.Random)  (0) 2017.07.04
기말대비정리  (0) 2017.06.01

로그인 --> 내가 사용자라는 것을 인증한다. 

쿠키를 헤더에 넣어서 보낸다. 세션을 위한 쿠키를 세션 쿠키라고 한다. (의미를 가지고있지는 않다.)


1970년1월1일 0시가 기준이다. (타임스태프) (유닉스시간) (Y2K버그)



타임스태프는 int 형이다.  


(자료형참고)

자료형크기저장 값의 범위
unsigned char1byte0 ~ 255
unsigned short2byte0 ~ 65,535
unsigned int4byte0 ~ 4,294,967,295
unsigned long4byte0 ~ 4,294,967,295



쿠키와 세션의 차이 


쿠키 : 클라이언트 --> 세션쿠키가 세션에 대응되는 값 이 저장되어있다. 

세션 : 서버 --> 


쿠키 탈취로 치명적인 것은 개인정보 탈취이다. 따라서 개인정보 확인시에 비밀번호를 한번더 입력해서 방지할 수 있다. 


쿠키로 인증하는 것 뿐만 아니라 쿠키 + ip를 통해서 인증을 요구하는 곳도 있다. 



인증 & 인가 (Authentication & Authorization)


인증 : 클라이언트가 자신이 주장하는 사용자와 같은 사용자인지를 확인하는 과정 ( ID & PASSWORD )

인가 : 권한부여, 클라이언트가 하고자 하는 작업이 해당 클라이언트에게 허가된 작업인지를 확인 ( 글쓰기, 글삭제, )


인증 : 알고있는 것( ID & PASSWORD, PIN<비밀번호와 다른> ), 가지고있는거( 보안카드, OTP, 민증 ),  나 그 자체( 지문, 홍채 ) 


#주민증이 나와서 인증을 할 수는 있지만 인가가 없기 때문에 술 담배를 살 수 없다. 


오탐과 정탐에 대해 알아보자


서비스가 민감 할 수록 다양한 인증을 필요로한다. ( 은행 공인인증서 비밀번호로 공인인증서를 복호화 하는 과정에 속하게 된다. 한번더 할때 - 서명한다.)



OTP ( one time password )


서버가 클라한테 임의의 숫자를 주고 클라가 그거 인증해서 인증을 성립시킨다. 

-> 둘이 알고리즘 하나를 공유한다. (ex *10 /3이라는 알고리즘) 시간을 가지고 임의의 값을 나타내 줄 수 있다. 

-> 시간은 알고 있을 수 있지만 알고리즘은 알 수 가 없다. 


*쿠키는 시간이 알려지면 취약하지만 OTP는 알고리즘이 알려지면 취약하다고 말할 수 있다. (알고리즘을 알아내는 것은 알아내기가 더 어렵다.)



전신기(모스) -> 전화기(무선으로 보낸다.)


0,1로 된 아름다운 직선은 없다. 실제로는 노이즈가 섞인 데이터들이 전송, 전달된다. 

역치값을 설정해서 어느정도 이상이면 높다고 생각해 줄 수 있다.


패리티검사(패리티비트) // 확장 아스키코드 char = 1바이트 = 2^8 = 256가지  => 총 256가지 

  // 기존 아스키코드 127가지 

한비트가 비어있는 것은 패리티 비트로 사용하기 위해 남겨 졌다. 홀수짝수를 확인해서 맨 앞에 홀수패리티 짝수 패리티를 적어서 보내준다. 

> 현재는 거의 안한다. 교과서적으로는 다른 레이어에서 검사를 해줄 수 있는데  팩트로 기술이 좋아져서 필요성을 느끼지 못한다. 


카이사르 ,시져암호(알파벳 자리이동) < 율리우스 카이사르 (가이어스 쥴리어스 시져) > 

비즈네르 암호 < 빈도수 > 


RSA


굴리엘모 마르코니 



HASH암호(16진수로 나타냄, 2^4승)

해쉬암호화라고 하지말자


md5 sha-1



BASE64 알고리즘 찾아보고 특징 알아보기

강한 충돌 회피, 약한 충돌 회피 

RSA

해시 테이블 



















'WEB (Feat.FOO) > 강의노트' 카테고리의 다른 글

6. FOO의 똥꼬쇼  (0) 2017.01.23
5. FOO의 똥꼬쇼 정리  (0) 2017.01.16
4. Foo의 똥꼬쇼 4번째  (0) 2017.01.11
3. FOO의 3번째 똥꼬쇼  (0) 2017.01.09
2. FOO의 똥꼬쇼 2번째  (0) 2017.01.04

라우터에 연결되어있는 mysql 연결 라우팅 하기


반복된걸을 모듈단위로 묶는다 재사용한다. 

묶을수 있으면 어지간하면 묶는다. 


exports로 connection을 빼준다.



mysql잘라내기해서 app.js같은곳에 db-con.js 새로 만들어 준다.

> 그곳에 넣어주고

> module.exports = connection; require했을때 connection 튀어나옴

> 소스코드 자체를 가져옴


const connection =require('./db-conn'); -> conncetion을 가져온다. 


---


따로 가져오면 

exports.connection = connection;

>const connection = require(./db-conn).connection


-----------------------------------------------------------------------


const connection = require(;./mysql;).connection

두번 다 해서




AJAX

새로고침 안되고 받아와서 뽑아내준다.  --> 자동완성(ajax)으로 구현했다.  // 젤 중요한거 : 새로고침을 하지 않아도 데이터를 받을수 있다. 

ajax로 요청한 데이터를 뒤로가기로하면 다없어지고 홈페이지 들어오기 전에 상태로 들어옴.(push state로 한다. PJAX<explorer사용불가>)


쿠키랑 세션이랑 사용하는게 HTML에서 연결을 끊어내기 때문이다. (요청하고 응답하고 나면 끝이기 때문이다.)


iframe 은 창 안에 새롭게 또 띄워주는 것 

'WEB (Feat.FOO) > 강의노트' 카테고리의 다른 글

7. 강의노트  (0) 2017.02.01
5. FOO의 똥꼬쇼 정리  (0) 2017.01.16
4. Foo의 똥꼬쇼 4번째  (0) 2017.01.11
3. FOO의 3번째 똥꼬쇼  (0) 2017.01.09
2. FOO의 똥꼬쇼 2번째  (0) 2017.01.04

+ Recent posts