본문 바로가기

전체 글

[JavaScript] AES128 암호화/복호화 자바스크립트에서 AES128를 이용하여 양방향 암호화 및 복호화를 하는 예제입니다. Hash 암호화와는 다르게 양방향이므로 대칭키를 가지고 있으며, AES128, AES192, AES256 등 키의 bit수의 따라 나뉘게 됩니다. AES128 은 16byte로써 키의 길이가 16자리인 암호 방식입니다. 키의 길이에 따라 라운드의 수가 다르며 AES 암호 알고리즘에서 마지막 라운드에서는 MixColumn 단계가 없다. AES 이론적인 내용을 참고하시려면 https://www.crocus.co.kr/1230 등을 참고해주시기 바랍니다. # Contents 전체 코드 # 전체 코드 AES128 암호화 및 복호화 코드 예제입니다. const Crypto = require("crypto"); var key = ".. 더보기
[JAVA] AES128 암호화/복호화 자바에서 AES128를 이용하여 양방향 암호화 및 복호화를 하는 예제입니다. Hash 암호화와는 다르게 양방향이므로 대칭키를 가지고 있으며, AES128, AES192, AES256 등 키의 bit수의 따라 나뉘게 됩니다. AES128 은 16byte로써 키의 길이가 16자리인 암호 방식입니다. 키의 길이에 따라 라운드의 수가 다르며 AES 암호 알고리즘에서 마지막 라운드에서는 MixColumn 단계가 없다. AES 이론적인 내용을 참고하시려면 https://www.crocus.co.kr/1230 등을 참고해주시기 바랍니다. # Contents 암호화 복호화 전체 코드 # 암호화 AES128 암호화 코드 예제입니다. iv는 설정하지 않고 암호화를 하였습니다. private static String key.. 더보기
객체에서 배열, 배열에서 객체 자바스크립트에서 배열과 객체는 많이 다르다고 생각합니다. 객체는 Key와 Value로 이루어진 형태의 타입이며, 배열은 스택과 같은 느낌의 형태 타입으로 이루어졌다고 생각합니다. 코딩을 많이 하다 보면 객체에서 배열로 타입을 변환하여 사용하는 경우도 있고, 배열에서 객체로 타입을 변환하여 사용하는 경우도 있다고 생각합니다. 오늘은 이 안건에 대해 알아보는 시간을 가지려고 합니다. # Contents 객체에서 배열 배열에서 객체 # 객체에서 배열 객체에서 배열로 만드는 방법은 아주 다양합니다. 다양한 방안들 중 기초적인 핵심과 어렵지 않는 부분만 다룰 예정입니다. 한번 보시죠. 1. Object.keys() var object = Object.keys(target) Object.keys() 메소드는 tar.. 더보기
자바스크립트 객체 복사 자바스크립트는 객체기반의 스크립트 언어이다. 객체란 여러 속성들을 하나의 변수에 저장하는 타입으로 Object 타입이라고도 한다. 이러한 객체를 복사할 때에는 얕은 복사와 깊은 복사 두 가지로 나뉘게 되는데, 각각을 살펴보고 상황에 맞춰서 사용하는 개발자가 되도록 노력하자 # Contents 얕은 복사 깊은 복사 지금부터 얕은 복사와 깊은 복사를 통해 과제를 처리하도록 하겠습니다. # 과제 객체 A를 통해 객체 B를 생성하고, 객체 B의 내용을 수정하겠습니다. # 얕은 복사 1. Object.Assign() Object.assign(target, ...sources) Object.Assign() 메소드는 두번째 인자 값으로 들어온 객체의 값을 첫번째에 값으로 저장합니다. 해당 구문을 통해 객체 A를 생성.. 더보기
[Node] 02. 모듈 시스템 본 문서는 Node.js 디자인 패턴 바이블을 읽고 리뷰를 남기고 있습니다. 문고들은 이 책의 일부분을 인용한 것임을 밝힙니다. Node.js의 모듈 시스템은 CommonJS와 ESM을 사용하고 있습니다. 두 가지의 형태가 왜 존재하는지 얘기하고, 각각의 장점과 단점을 알아볼 예정입니다. # Contents 모듈의 필요성 JavaScript와 Node.js에서의 모듈 시스템 Node.js에서의 JavaScript # 모듈의 필요성 좋은 모듈 시스템은 소프트웨어 엔지니어링의 몇 가지 기본적인 필요성을 마주할 때 도움을 줍니다. 코드베이스를 나누어 여러 파일로 분할하는 방법 : 코드를 좀 더 구조적으로 관리 할 수 있게 해주고, 각각의 독립적인 기능의 조각들을 개발 및 테스트하는 데에 도움을 주며 이해하기 .. 더보기
[Node] 01. Node.js 플랫폼 본 문서는 Node.js 디자인 패턴 바이블을 읽고 리뷰를 남기고 있습니다. 문고들은 이 책의 일부분을 인용한 것임을 밝힙니다. # Contents Node.js 철학 Node.js 는 어떻게 작동하는가 Node.js에서의 JavaScript # Node.js 철학 모든 프로그래밍 플랫폼은 자신들만의 철학, 커뮤니티에서 따르게 되는 일련의 원칙들과 지침, 플랫폼의 진화와 애플리케이션 개발 및 디자인에 영향을 주는 이데올로기를 가지고 있습니다. 이러한 원칙들 중 몇가지는 기술 자체에서 발생하고, 일부는 그것의 생태계에 의해서 발생하고, 일부는 커뮤니티 내에서의 트렌드이며, 일부는 다른 플랫폼에 있던 이데올로기의 진화에 의해서 발생한 것입니다. Node.js에서는 이러한 원칙들 중 일부가 제작자인 Ryan .. 더보기
[설치] Asterisk 설치 본 문서는 여기를 참고하여 게시물을 작성하였습니다. 설치 중 발생하신 에러는 댓글에 달아주시면 아는 범위 한에서 답변해드리겠습니다. 본 문서에서는 Asterisk 16버전을 설치합니다. 최신 버전으로 설치하려면 Asterisk의 압축 파일을 확인하세요. # Prerequisites 운영체제 : Ubuntu 20.04 IP : 고정 IP 사용자 : root # Getting Started 아스터리스크를 root 계정으로 설치하도록 하겠습니다. su - 첫째, 시스템을 업데이트 합니다 apt update && sudo apt -y upgrade 둘째, 시스템을 업데이트 했으면, 종속성을 설치해야 합니다. 아래 명령어로 전부 설치할 수 있습니다. apt-get install gnupg2 software-pro.. 더보기
[이론] Asterisk 저는 VoIP 분야에서 일한 적이 있습니다. 회사에서는 주로 RESTFUL API를 구현하여 IP PBX에 들어오는 호를 어떠한 서비스에 연결하는 작업을 하였습니다. IP PBX 장비의 가격이 비쌀 뿐 더러 Open Source로 현재 진행중이며 발전 가능성이 많은 Asterisk를 택했었고, 그래서 이러한 Asterisk에 대하여 공부한 적이 있습니다. 어떠한 전체적인 시스템을 이해하진 않고 있지만, 제가 아는 범위 한에서 표현해보고자 합니다. # IP-PBX 먼저 PBX와 IP-PBX의 차이점에 대해 알아야 합니다. PBX란 Private Branch eXchange [사설 교환기]의 약자로 회사에서 사용된 일정 수의 외부 전화회선을 모든 직원이 공유하고, 내선에 연결되어 있는 내부사용자들간 전화를 .. 더보기