공부 136

R언어 기본 문법

주피터 노트북으로 가서 자신이 설정해놓은 경로로 가서 NEW 눌러서 R파일 생성한다. ESC를 누르면 위와 같이 파란색이 되는데 그럼 해당 셀에 설정을 할 수 있다. M:마크다운으로 변환 Y:코드로 변환 R언어 기본 문법 기본 연산 c함수 seq함수 수열 연산 변수에 문자 할당 R언어 패키지 다운로드 ggplot2 이렇게 명령어만 해주면 설치가 되는데 설치한 이후에도 어떤 패키지를 쓸 것인지 정확하게 로드해줘야 한다. qplot MPG 데이터 활용 R언어 표 만드는 법 | 를사용해서 이렇게 만들고 :을 가지고 정렬 기준을 둔다 :--는 왼쪽 정렬 --: 오른쪽 정렬 위 마크다운을 실행하면 이렇게 된다. 그럼 위 mpg데이터 예제를 사용해보자 위와 같이 데이터를 용도에 맞는 타입으로 출력을 해야 가독성이 ..

R 2021.09.14

빅데이터란?

빅데이터라는 분야가 너무 방대하다 보니 빅데이터가 뭔지부터 설명하는 포스팅을 해보겠습니다. 빅데이터란? 3V 일반컴퓨터로 더블클릭해서 열기 힘들 정도로 큰 데이터를 음성데이터같은 비 정형 데이터, 자연어 데이터를 다루고, 실시간으로 쌓이는 데이터를 즉각적으로 분석하는 것을 3V라고 한다. 4V 위세개를에 신뢰성 있는 데이터만 골라서 처리하는 것이다. 5V 위 네 개에 추가해서 데이터를 분석을 했을 때 새로운 가치를 창출할 수 있어야 한다라는 뜻이다. 그리고 사람이 엄청나게 큰 데이터를 한눈에 알아보기 위해서 Visualization(시각화)를 하는 것이 좋다.(그래프, 도표) 인공지능이 필요한 이유 -한 분야에 엄청나게 많은 학습이 된 인공지능을 개발하는 시간은 상대적으로 많은 시간이 걸리지 않지만 해당..

R 2021.09.14

SpringbootSecurity/JWT를 위한 Security설정

지금 현제 하고 있는 프로젝트는 Security를 기반으로 만들어졌기 때문에 JWT를 위한 Security설정을 해보겠다. 모델을 하나 만든다. 이제 yml설정에서 create로 바꿔주고 db에 테이블을 하나 만들면 된다. Security설정 기본적으로 Seicurity설정은 다음과 같이 해준다. 그리고 몇가지 설정을 추가적으로 더 해줘야 한다. 서버 설정 추가 corsFilter는 SpringFramwork가 들고 있는 함수를 사용한다. /api/로 들어오는 모든 주소는 이 config설정을 따라라고 설정을 해주고 return 해준다. 그리고 위와 같이 걸기만 하면 의미가 없고 filter에 등록을 해줘야 한다. 다시 SecurityConfig클래스로 가서 Security설정을 만져 준다. 이렇게 시큐..

SpringbootSecurity 2021.09.07

SpringbootSecurity/JWT 프로젝트 세팅 (yml설정포함)

이제 드디어 JWT서버를 만들어보는 프로젝트를 만들어 본다. https://mvnrepository.com/ mvnrepository에서 JWT를 사용하기 편리하게 해주는 라이브러리를 다운로드한다. 이 라이브러리를 쓰면 base64로 인코딩 디코딩 작업과 HS256으로 암호화는 작업을 직접 해야 하는데 아주 간편하게 해 준다. 이 라이브러리까지 porm.xml에 추가해주면 기본적인 프로젝트 수정은 끝났다. yml설정 server: port: 8080 servlet: context-path: / encoding: charset: UTF-8 enabled: true force: true spring: datasource: driver-class-name: org.mariadb.jdbc.Driver url: ..

SpringbootSecurity 2021.09.07

SpringbootSecurity/JWT구조에 대한 이해

https://jwt.io/ JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io 저번 포스팅에선 RFC문서가 뭔지에 대해서 이해를 했으니 이제 JWT가 뭔지 자세히 알아보자. JSON웹 토큰이란?(JWT) JSON웹 토큰은 JSON객체로 안전하게 정보를 전송하기 위한 방식이다. 이 정보는 디지털 서명이 되어 있으므로 신뢰할 수 있다. JWT는 HMAC알고리즘 또는 RSA를 사용한다. JWT를 암호화하여 당사자간에 비밀을 제공 할 수도 있지만 이 JWT의 핵심은 서명된 토큰에 중점을 둔 것이다. 즉 서명의 용도로 사용을 하는 ..

SpringbootSecurity 2021.09.04

SpringbootSecurity/RFC문서에 대한 개념

https://jwt.io/ JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io 이 사이트로 가면 JWT에 대한 설명이 나온다. 어떤 암호화 방식을 쓰는지 어떻게 사용하는지 등등 잘 나와있다.(영어긴 하지만...) 그래서 여기에 적인 문서를 정리를 하기 위해서 포스팅을 한다. 그럼 JWT를 이해하기 전에 RFC문서가 뭔지 알아야 이해할 수 있다. 이 JWT는 RFC7519번 문서에 설명이 나오기 때문이다. RFC문서란? http라는 것은 미국에 벨연구소라는 곳이 있는며 여기서 월드 와이드 웹(WWW)이 나왔다. www가 뭐냐..

SpringbootSecurity 2021.09.04

SpringbootSecurity/JWT/JWT기본개념(CIA와 RSA에 대해 이해하기)

이번 포스팅에서는 보안에 대해 포스팅을 간단하게 해 보겠습니다. CIA C : 기밀성 I : 무결성 A : 가용성 그럼 설명을 좀 더 쉽게 하기위해서 과거에 가서 통신한다는 가정을 해서 얘기를 시작해 본다. 몇백 년 전에 말 타고 다그닥 거리던 시절에 뭐 이런일이 발생한다고 해보자 그럼 여기서 발생할 수 있는 변수가 뭐가 있을까? A나라가 B나라로 통신을 하기 위해 신하에게 문서를 주고 B나라로 보냈는데 C나라가 중간에 이 신하를 죽이고 문서를 바꿔서(C:기밀성) B나라로 위조된 문서(I: 무결성)를 보내면 어떻게 될까? 신뢰성 있는 통신을 할 수 없게 된다.(A :가용성) 위 상황에서는 CIA가 다 깨지게된다. 보안을 하기 위해서는 CIA를 완벽하게 지킨 상태로 통신을 이뤄야 한다 CIA를 완벽하게 지..

SpringbootSecurity 2021.09.02

SpringbootSecurity/JWT/JWT기본개념(TCP에 대해 이해하기)

저번 포스팅에서 Session에 대한 이해와 더해서 JWT를 이해하기 위해선 TCP도 알고 있어야 한다. 어떤 새로운 기술을 배울 때 그 기술이 원초적으로 이해가 되지 않는다면 그 기술에 대한 배경지식이 많이 부족하다는 것이다. 그래서 그 기술을 기술적으로 사용할 수 있게 된다고 해도 이해를 하지 않았기 때문에 금방 까먹고 새로운 기술이 나오면 처음부터 다시 배우는 느낌이 들 수밖에 없다. 그렇기 때문에 이런 배경지식을 먼저 이해하는 것이 중요한 것 같다 osi 7 계층에 대한 자세한 내용은 따로 포스팅이 되어있습니다! 웹에는 OSI 7 계층이라는 것이 있다. 이걸이해해야 TCP/IP를 알게되고 그래야 보안을 이해하면서 왜 JWT가 나오는지 알수 있게되는 것이다. OSI 7계층 1. 응용계층 : 응용프로..

SpringbootSecurity 2021.09.02

SpringbootSecurity/JWT기본개념(세션에 고질적인 문제)

JWT JWT는 json web token이 라고 한다. 그럼 이 JWT가 왜 사용되고 어디에 사용되는지 먼저 알아보자 JWT를 이해하기위해선 session의 단점이 뭔지부터 알아야 한다. Session 기본적으로 사용자가 웹에서 서버로 최초 요청을 한다고 하면 서버가 응답을 할 때 해더에 쿠키를 담아서 세션 id를 넘겨주고 사용자의 웹에 자동으로 쿠키를 저장하는 것이 기본전략이다. 그래서 다음에 같은 사용자가 다시 요청을 한다고하면 쿠키에 있는 세션id를 보고 사용자의 요청을 효율적으로 응답할 수 있게 되는 것이다. 그럼 이 session은 언제 사라지냐? 1. 서버 쪽에서 session값을 날렸을 때 2. 사용자가 브라우저를 전부 종료했을 때 3. 특정 시간이 지나면 자동 삭제 이때 서버가 알아야 하..

SpringbootSecurity 2021.09.02

SpringbootSecurity/Springboot로 네이버 로그인 해보기 (yml에서 provider 설정하기)

저번 포스팅에서 이어갑니다. provider OAuth2-Client라는 라이브러리를 사용하고 있는데 OAuthClient를 재공해 주는 provider 있는데 Spring은 구글, 페이스북, 트위터 등등을 제공해준다. 그럼 당연히 네이버나 카카오같은 각 나라마다의 포털사이트를 Spring을 다 제공해주기엔 너무 많기 때문에 대표적인 것만 있는 것이다. 그럼 이런 각 나라마다 포털사이트의 api를 사용하려면 그 포털사이트의 문서를 봐야 사용할 수 있다. 그럼 naverAPI를 받아오기 전에 yml설정부터 하면서 이해해야할 개념이 있다. 기본적으로 스프링 시큐리티가 OAuth2로그인을 사용할 때 OAuth2를 사용하기 위한 여러 가지 방식이 있다. Code방식 Client CredentialGrantTyp..

SpringbootSecurity 2021.09.01