자바스크립트 예제: 특정 주파수의 소리 재생 + 음악 평균율 주파수 테이블

  자바에서 주파수를 재생하는 글 자바 예제: 특정 주파수의 소리 재생 을 자바스크립트로 바꾼 예제입니다. 외부 온라인 소스나 라이브러리 필요 없이 자바스크립트 자체 엔진으로 소리를 재생합니다.   1) AudioContext 인스턴스 생성 var audioCtx = new(window.AudioContext || window.webkitAudioContext)(); var osc, gn; 사파리 등 모바일 브라우저에서는 웹킷 접두어가 붙은 webkitAudioContext만 인식하므로 이 부분도 추가합니다. 더보기…

자바 예제: 특정 주파수의 소리 재생

특정 주파수의 음을 사인파(Sine Wave)로 재생하고 싶다면, javax.sound.sampled.* 라이브러리를 사용합니다. javax 시리즈는 자바에서 기본 제공됩니다.   1) new AudioFormat으로 새로운 오디오 형식 생성 public AudioFormat(float sampleRate:샘플수, int sampleSizeInBits:비트당샘플사이즈, int channels:채널수, boolean signed:부호여부, boolean bigEndian:빅엔디안여부)   2) 생성한 AudioFormat에서 소스 데이터 라인(Source Data Line)을 추출 후 SourceDataLine 자료형 변수에 저장 AudioFormat 더보기…

자바: Enum (예제 – 모스 부호)

Enum 클래스는 고유 타입으로 상수를 이용할 수 있게 하는 특수한 클래스입니다. (자세한 내용) 다음은 가장 기초적 형태의 Enum 선언입니다. public enum FourDevas { 백호, 주작, 청룡, 현무; } 이렇게 하면 백호, 주작, 청룡, 현무의 4개의 상수가 지정되며 FourDevas 자료형을 통해 해당 상수들을 사용할 수 있습니다.   아래 코드에서 변수fd에는 FourDevas 더보기…

PHP: FTP 내의 디렉토리 및 파일 탐색하기(재귀호출)

PHP 계정에서 다음과 같은 구조로 파일이 존재하고 있습니다. 목표는 files 디렉토리(폴더) 내에 있는 파일들을 탐색하고, 파일들의 정보(이름, 확장자, 크기 등)를 표시 및 데이터베이스 테이블에 입력하는 것입니다. 핵심 코드는 아래와 같습니다. $dir = ‘./files’; $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($dir)); $dir은 탐색 대상 디렉토리의 루트 경로를 입력합니다. 현재 작성중인 php 파일과 files 더보기…

JQuery: 선택자 최적화 (Optimize Selectors)

선택자 최적화 (Optimize Selectors) 더욱 많은 브라우저에서 document.querySelectorAll()을 구현하고 있고 요소 선택에 대한 부담이 jQuery에서 브라우저로 바뀌고 있기 때문에 선택자 최적화는 예전보다 중요하지 않습니다. 그러나 선택자 성능에 병목 현상이 발생하면 명심해야 할 몇 가지 팁이 있습니다.   JQuery 확장 (jQuery Extensions) 가능하면 jQuery 확장이 포함된 선택자를 사용하지 마십시오. 이러한 확장은 더보기…

자바스크립트: 객체지향 3 – class (ES6 이상)

자바스크립트: 객체지향 1 – new 키워드를 이용해 객체 생성 (ES5 이하) 자바스크립트: 객체지향 2 – 상속 구현 (ES5 이하) 자바스크립트: 객체지향 3 – class (ES6 이상)   기존 ES5 이하 환경의 자바스크립트에서 장황하고 불편했던 클래스 생성 등의 과정이 ES6 이후에 class 문법이 생겨서 한결 편하게 클래스를 만들고 관리할 수 있게 더보기…

자바스크립트: 객체지향 2 – 상속 구현 (ES5 이하)

자바스크립트: 객체지향 1 – new 키워드를 이용해 객체 생성 (ES5 이하) 자바스크립트: 객체지향 2 – 상속 구현 (ES5 이하) 자바스크립트: 객체지향 3 – class (ES6 이상)   상속에 대한 예제로 악기에 대한 추상 클래스(완벽하게 동일한 개념은 아니나 편의상 이하 객체지향 용어들을 사용합니다.) 를 작성해 보겠습니다. function MusicalInstrument(){ this.material = “추상적 더보기…

자바스크립트: 객체지향 1 – new 키워드를 이용해 객체 생성 (ES5 이하)

자바스크립트: 객체지향 1 – new 키워드를 이용해 객체 생성 (ES5 이하) 자바스크립트: 객체지향 2 – 상속 구현 (ES5 이하) 자바스크립트: 객체지향 3 – class (ES6 이상)   new 키워드를 이용해 각종 정보를 담고 특정 기능을 수행하는 인스턴스를 만드는 기능입니다. 먼저 컨테이너 함수를 만들어야 합니다. 객체지향 언어의 클래스와 같은 역할입니다. 컨테이너 더보기…

자바스크립트: 배열 map, filter, apply + 예제: ABC(알파벳) 내비게이터

이하 내용들은 ES6 이상을 지원하지 않는 브라우저에서는 작동되지 않을 수도 있습니다. Array.prototype.map 배열을 순회합니다. var numbers = [1, 4, 9]; var roots = numbers.map(function(num) { return Math.sqrt(num) }); // roots is now [1, 2, 3] // numbers is still [1, 4, 9] Array.prototype.filter 특정 조건을 만족하는 배열만 솎아냅니다. var words 더보기…