컴퓨터 기본 개념
PXE 네트워크 부팅
PXE(Preboot Execution Environment)란 운영체제가 설치되어 있지 않는 원격지의 컴퓨터를 네트워크 도메인에 참가시키는 것만으로도 부팅을 시킬 수 있는 환경을 말한다. 요즘에 출시되는 대부분의 메인보드들은 PXE를 지원한다. BIOS 설정에서 찾아보면 PXE라든지 Network on boot room과 같은 옵션들이 보이는 보드들은 PXE를 지원하는 보드들이다. 이 기능을 활성화 한 다음 부트 오더에 가장 첫 번째에 LAN을 두면 활성화 된다. 보드별로 설정하는 방법이 상이할 수 있으니 보드 메뉴얼을 참조하여 PXE를 활성화 하도록 한다. PXE의 기본 동작을 보면 위와 같은 구성으로 되어있다. 기본적으로 클라이언트이기 때문에 서버가 필요하다. 서버에는 DHCP 서버와 tftp 서버..
HTTPS와 SSL 인증서
SSL 위에서 https 동작 SSL과 TLS는 같은 말이다. 하지만 TLS라는 이름보다 SSL이라는 이름이 훨씬 많이 사용되고 있다. SSL 동작방법 클라이언트가 서버로 데이터를 전송할 때는 서버가 제공한 공개키로 암호화해서 데이터 전송, 서버는 데이터를 받아서 자신이 가지고 있는 개인키로 복호화 하면 됨 공개키 방식은 암호화하고 복호화하는 방식에서 컴퓨팅파워를 많이사용하여 성능상 많은 단점이 있음 결론적으로 두가지 방식을 혼합하여 사용 (공개키 + 대칭키) 실제 데이터 : 대칭키 대칭키의 키 : 공개키 컴퓨터과 컴퓨터가 네트워크를 이용해서 통신을 할 때는 내부적으로 3가지 단계가 있다. 악수 -> 전송 -> 세션 종료 1. 악수(handshake) 사람과 사람이 소통을 할 때를 생각해보자. 인사를 통..
공개키(Public Key)와 개인키(Private Key)
공개키는 은행의 계좌번호화 유사하고, 개인키는 비밀번호 PIN과 유사하다. 대칭키(개인키)와 비대칭키(공개키) 대칭키 암호화 복호화 할 때 사용하는 키가 동일한 경우, 1개의 키 사용 내가 어떤 키로 암호화 했다면 수신자도 같은키를 갖고 있어야 한다. 예) 철수: 평문 -> 대칭키로 암호화 -> 암호문 / 영희 : 암호문 -> 대칭키로 복호화 -> 평문 비대칭키 사용하는 키와 복호화할 때 사용하는 키가 다른 경우 타인에게 절대 노출되어서는 안되는 비밀키(개인키), 비밀키를 토대로 만든 공개키가 쌍을 이룬 형태 2개의 키 사용 공개키 - 사람들에게 공개된 키이며 정보를 암호화할 수 있다. 비밀키 - 사용자만 알고 있는 암호를 풀 수 있는 키 예) 철수: 평문 -> 영희의 Public Key로 암호화 -> ..
[융복합 프로젝트] IOT / 빅데이터 / AI 기본 개념
IOT(Internet Of Things) IOT의 유무선 통신기술 IOT의 센서 기술 IOT엣지 디바이스 아두이노(Uno, 나노, 미니, 릴리패드) 라즈베리파이 대표적인 IOT플랫폼 AWS 마이크로 소프트 애저 구글 클라우드 IBM MQTT특징 publish/subscribe 토픽 QoS(Quality of Service) 0: 메세지는 한번만 전달하며, 전달여부를 확인하지 않는다. 1: 메시지는 반드시 한번 이상 전달된다. 하지만 메시지의 핸드셰이킹 과정을 엄밀하게 추적하지 않기 때문에, 중복전송될 수 있다. 2: 메시지는 한번만 전달된다. 메시지의 핸드 셰이킹 과정을 추적한다. 높은 품질을 보장하지만 성능의 희생이 따른다. IOT프로젝트 소개 스마트 쇼핑 카트 카트에 패드와 카메라 장착 -> 구매한..
자바스크립트 기본 개념 & Auth0 & 교차기원 & CORS
JavaScript 함수 정의 함수 선언문 (function statement) 함수 표현식 (function expression) Function() 생성자 함수 함수 선언문 방식으로 함수를 생성 // 함수 선언 function add (x, y) { return x + y; } ~~~~~~~~ ~~~ ~~~~~~ ~~~~~~~~~~~~~~~~~ 키워드 이름 | 함수 몸체 +-- 인자, 매개변수, 파라미터 // 함수 호출 console.log(add(3, 4)); 함수 표현식 방식으로 함수를 생성 ⇒ 함수 리털러로 함수를 만들고, 생성된 함수를 변수에 할당 JavaScript에서는 함수도 하나의 값으로 취급 var x = 1; // x라는 변수에 1을 할당 var y = 2; // y라는 변수에 2를 ..
배포의 개념과 종류
배포(deploy) 실행가능한 결과물을 운영 환경으로 옮기는 것 유의 사항 : 서비스에 영향을 미치면 안됨. 최초로 구축하는것은 크게 문제 안됨. 기존에 있던 것들을 업그레이드 하게되면 배포전략을 잘 가져가야한다. 대표적인 예 - Rolling Update 문제점1 : 2번, 4번 - 일시적으로 부하가 분산되지 않고 하나로 몰림 → 부하 견딜 수 있는지 예측 문제점2 : Roll Back(v2 → v1)에 많은 시간이 소요될 수 있음. 대표적인 예 - Blue/Green 구버전과 신버전이 동시에 서비스 (주소 또는 포트번호로 구분) 구버전에서 신버전으로 일제히 전환 문제점 : 인스턴스가 많이 필요 (구번전 + 신버전 ) → 많은 비용 예상 대표적인 예 - Canary 위험을 빠르게 감지 금융, 공공기관에..
아파치(apache) VS 엔진엑스(nginx)
아파치(apache) 요청 하나 당 프로세스(또는 스레드)가 처리하는 구조 요청이 많을수록 CPU와 메모리 사용이 증가하기 때문에 성능 저하가 있을 수 있다. Apache서버의 프로세스가 블록킹(blocking)되면 요청을 처리하지 못하고, 처리가 완료 될 때까지 계속 대기 이와같은 문제들은 Keep Alive를 활성화 함으로써 해결이 가능하지만, Keep Alive때문에 대량 접속 시 효율이 급격하게 떨어지는 또 다른 문제점이 발생 Keep Alive HTTP프로토콜의 특성상 한 번 통신이 이루어지면 접속을 끊어버리지만, KeepAlive On 상태에서는 KeepAliveTimeOut 시간동안 접속을 끊지 않고 다음 접속을 기다립니다. 즉, 한번 연결된 클라이언트와 통신을 유지하고 있기 때문에, 다음 ..
웹 서버(WS) VS 웹 어플리케이션 서버(WAS)
웹 서버 정적 페이지(html, css) 처리 클라이언트(웹 브라우저)로 부터 HTTP방식으로 정적인 자원을 요청받아 그에 맞는 응답을 제공해주는 프로그램 자체적으로 처리할 수 없는 동적인 자원(jsp, php, asp.net, db연동 등)을 웹 컨테이너로 넘겨주고 컨테이너에서 처리한 결과를 다시 받아 클라이언트에게 제공해주는 역할 대표적으로 Apache, IIS, WebtoB 등이 있다. 컨테이너 웹서버가 보낸 JSP, PHP, ASP.net등의 파일을 실행하고 수행 결과를 다시 웹 서버로 보내주는 역할을 한다. 대표적으로 자카르타 톰캣, RESINE, 웹로직, 웹투비 등이 있다. 웹 어플리케이션 서버 동적 페이지 처리 웹 서버와 컨테이너가 합쳐진 형태 인터넷 상에서 HTTP를 통해 어플리케이션을 수..