본문 바로가기

전체 글386

[javascript] 자바스크립트 audio 사용방법 참고: https://www.developerdrive.com/manipulating-html5s-native-audio-with-javascript/ 타사 플러그인을 사용하지 않고 음원을 재생하려면 HTML5의 기본 오디오 요소를 사용하면 됩니다. Chrome 10+ 및 Firefox 3.6+와 같은 최신 웹 브라우저에는 이미 요소와 이를 조작할 메소드, 속성이 라이브러리 형태로 내장되어 있습니다. 여기서는 몇 가지 사용법을 알아보고 javascript를 사용하여 오디오 파일을 실행하는 방법을 알아보겠습니다. AUDIO METHOD .load() 재생을 위해 오디오 요소를 로드하거나 리로드합니다. audioElement.load(); .play() 오디오 파일의 재생을 시작합니다. audioElemen.. 2022. 4. 12.
[linux] 리눅스 ifconfig 명령어 사용법 참고: https://www.tecmint.com/ifconfig-command-examples/ ifconfig는 리눅스 운영체제의 커맨드라인 인터페이스나 시스템 구성 스크립트를 통해 네트워크 인터페이스의 매개변수를 구성, 관리 및 쿼리하기 위한 간단한 인터페이스 설정 유틸리티입니다. ifconfig 명령어는 현재 네트워크 구성 정보를 표시하고, 네트워크 인터페이스에 대한 IP 주소, 넷마스크 또는 브로드캐스트 주소를 설정하고, 네트워크 인터페이스에 대한 별칭을 만들고, 하드웨어 주소를 설정하고, 네트워크 인터페이스를 활성화 또는 비활성화하는데 사용합니다. 1. 모든 네트워크 인터페이스 설정 보기 인수 없이 ifconfig 명령어를 사용하면 모든 활성 인터페이스 세부 정보를 표시합니다. 또한 ifcon.. 2022. 1. 18.
[linux] 리눅스 CMD에서 OS 버전 확인하는 방법 참고: https://www.cyberciti.biz/faq/how-to-check-os-version-in-linux-command-line/ 참고: https://sisiblog.tistory.com/277 리눅스는 자유오픈소스 운영체제입니다. 이는 다양한 변종이 있는데 일반적으로 리눅스 배포판으로 부릅니다. Suse, OpenSUSE, Debian, Ubuntu, CentOS, Arch, Fedora, RHEL 모두 일반적인 리눅스 배포판 이름입니다. 이 리눅스 서버를 운영할 때 운영체제 버전을 알면 보안패치에 아주 유용하게 쓸 수 있습니다. 운영체제 버전 확인 일반적인 리눅스의 버전을 확인하는 과정은 다음과 같습니다. 터미널 프로그램을 실행 (bash shell) 원격 서버인 경우 ssh 로그인 .. 2022. 1. 13.
[linux] 리눅스 10가지 wget 명령어 사용법 참고: https://www.fastwebhost.in/blog/10-examples-of-linux-wget-command/ wget 명령어는 웹에서 파일 다운로드를 도와주는 리눅스 커맨드라인 유틸리티입니다. 이 명령어는 HTTP, HTTPS, FTP 프로토콜을 이용해 웹서버에서 파일을 다운로드 받습니다. 그리고 스크립트나 cronjob에서도 실행시킬 수 있습니다. wget은 백그라운드에서 실행되는 비인터랙티브 프로그램으로서 쓸만한 기능으로는 미러링이 있습니다. 이 기능으로 웹에서 전체 웹 사이트를 다운로드 할 수 있습니다. wget 명령어의 몇 가지 예를 살펴보겠습니다. 1. 웹페이지 다운로드 다음은 웹에서 파일을 다운로드하는 기본 형식입니다. $ wget http://example.org/file... 2022. 1. 13.
[python] 파이썬 디지털 숫자 그리기 파이썬 콘솔에 디지털 숫자를 출력하기 - 7 Segment Display 스타일의 숫자 출력 - 출력할 영역의 크기 조절 가능 - 숫자의 크기 조절 가능 - 숫자의 모양에 대한 정의는 코드 주석에 설명 import math # # # --- # a # | | # f b # --- # g # | | # e c # --- # d # # numbers = [ # [a, b, c, d, e, f, g] [1, 1, 1, 1, 1, 1, 0], # 0 [0, 1, 1, 0, 0, 0, 0], # 1 [1, 1, 0, 1, 1, 0, 1], # 2 [1, 1, 1, 1, 0, 0, 1], # 3 [0, 1, 1, 0, 0, 1, 1], # 4 [1, 0, 1, 1, 0, 1, 1], # 5 [1, 0, 1, 1, .. 2020. 12. 10.
[python] 파이썬 구구단 간단 버전 2차원 배열을 이용해 단순 곱셈 출력 1 2 3 4 for i in range(2, 10): for j in range(1, 10): print(f'{i} x {j} = {i * j}') print() cs 화면가득 채우기 버전 각각의 구구단을 화면에 꽉 채우기 위해 화면 크기와 구구단 크기를 계산, 위에서 아래로 한꺼번에 출력하도록 작성 Python 3은 변수명을 유니코드로도 작성할 수 있음 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 import math def print_elem.. 2020. 12. 4.
[python] 파이썬 랜덤함수 사용하기 (randrange, choice, shuffle) 더 자세한 내용은 문서에 있습니다. 특정 범위의 랜덤 숫자 뽑기 1 부터 45 까지 숫자 중 아무거나 하나 뽑으려면 랜덤함수 randrange(1, 46)으로 얻을 수 있습니다. randrange 함수는 첫번째 파라미터 이상이고 두번째 파라미터 미만인 숫자를 리턴해줍니다. 간단히 등호로 표시하면 다음과 같습니다. (1 > import random >>> random.randrange(1, 46) >>> random.randrange(1, 101) 목록 중에서 하나 뽑기 이미 정해놓은 목록이 있고 그 중에서 하나를 뽑으려면 choice() 함수를 사용합니다. 예를 들어 여러 친구들 중 한명을 뽑으려면 random.choice(['철수', '영희', '길동', '둘리'])와 같이 입력하면 됩니다. 만일 둘중.. 2020. 12. 4.
[python] 파이썬 자판기 (Vending Machine) C언어 자판기 v1.3 파이썬으로 자판기 만들기 import time import json from typing import Dict config_item_list = [ { 'id': 1, 'name': '참깨라면', 'price': 1000 }, { 'id': 2, 'name': '햄버거', 'price': 1500 }, { 'id': 3, 'name': '콜라', 'price': 800 }, { 'id': 4, 'name': '핫바', 'price': 1200 }, { 'id': 5, 'name': '초코우유', 'price': 1500 }, { 'id': 0, 'name': '종료' } ] class VendingMachine: def __init__(self): self.items = json... 2020. 12. 4.
[python] 파이썬 파일 존재여부 확인 (exists, isfile, isdir) >>> from os import path >>> path.exists('/bin') True >>> path.exists('/bin/cat') True >>> path.isfile('/bin') False >>> path.isfile('/bin/cat') True >>> path.isdir('/bin') True >>> path.isdir('/bin/cat') False os.path.exists(path) 파일이나 경로가 존재하는지 확인하고 존재한다면 결과 값으로 True를 그렇지 않다면 False를 리턴한다 심볼릭 링크가 깨진 경우, 접근 권한이 없는 경우에도 False를 리턴한다 os.path.isfile(path) path가 파일인 경우 True를 리턴하고 디렉토리이거나 파일이 존재하지 않으면 .. 2020. 12. 1.
[python] 파이썬 날짜/시간 형식 맞춰 출력하기 (date, time) 날짜와 시간을 일정한 포맷의 문자열로 변환하려면 strftime 함수를 사용하면 됩니다. date, datetime 및 time 객체는 모두 strftime(format) 메서드를 지원합니다. >>> date.today().strftime('%Y%m%d') '20201130' >>> date.today().strftime('%y-%m-%d %H:%M:%S') '20-11-30 00:00:00' >>> time.strftime('%c', time.localtime(time.time())) 'Mon Nov 30 14:59:35 2020' time.localtime 함수는 에포크(epoch)시간을 반환합니다. 에포크(epoch)시간은 시간이 시작되는 시점을 말하며 플랫폼에 따라 다릅니다. 유닉스의 에포크는 1.. 2020. 11. 30.
[linux] 리눅스 tail 명령어 사용 예제 (실시간 로그 보기) 참고: https://shapeshed.com/unix-tail/ 리눅스 같은 시스템에서는 cat 명령어로 파일 내용을 볼 때 유용하게 사용할 수 있습니다. 그런데 어떨 때는 파일의 일부분만 보고 싶을 때가 있습니다. 이 때 tail 명령어를 사용하면 됩니다. tail 명령어란 tail 명령어는 리눅스 계열 시스템의 유틸리티로 입력받은 파일의 마지막 부분을 출력하는 프로그램입니다. 기본적으로 tail은 입력파일의 마지막 10줄을 출력하는데 로그파일의 모니터링 용도로 사용할 수도 있습니다. 파일의 마지막 10줄 보는 방법 파일의 마지막 10줄을 보기 위해선 tail 명령어에 읽고 싶은 파일의 이름을 입력하면 됩니다. 그러면 표준 출력으로 파일의 마지막 10줄을 출력합니다. $ tail [파일 명] 2020.. 2019. 12. 10.
[javascript] 자바스크립트 forEach, map, filter, find 배열 메소드 사용 예제 자바스크립트에는 배열을 돌며 값을 처리할 수 있도록 도와주는 기능이 있습니다. 단순히 for 루프를 사용하여 각각의 배열 값을 처리할 수도 있지만 사용 목적에 따라 적절한 배열 메소드를 사용하는게 좋습니다. [].forEach() 가장 기본적인 배열 메소드로써 for 루프와 동일한 기능을 합니다. 파라미터로 현재 배열값과 인덱스를 받을 수 있습니다. const numberList = [1, 2, 3, 4, 5, 6, 7, 8, 9]; numberList.forEach((item, index) => { console.log(item, index); }); for 루프보다 깔끔하게 배열 값을 처리할 수 있습니다. [].map() map 메소드는 모든 요소를 돌며 일괄적으로 요소들을 변경하는 기능을 합니다. .. 2019. 12. 6.
[javascript] 자바스크립트 JSON.parse() JSON.stringify() 사용 예제 요즘 브라우저들은 JSON 오브젝트를 만지기 위해 parse와 stringify 같은 매우 유용한 메소드를 제공하고 있습니다. JSON.parse()는 JSON 문자열을 받아 자바스크립트 객체로 변환해 주고, JSON.stringify()는 자바스크립트 객체를 JSON 형식의 문자열로 바꿔줍니다. 상호 변환을 통해 쉽게 JSON 객체를 다룰 수 있습니다. JSON.stringify() const myObject = { name: 'dog', age: 2 }; const myString = JSON.stringify(myObject); myObject는 자바스크립트 객체입니다. 이를 JSON.stringify()를 통해 문자열로 바꾸는 코드 예제입니다. 위의 그림에서 보이는 것 처럼 myObject를 ty.. 2019. 12. 5.
[javascript] 자바스크립트 타이머 (setTimeout, setInterval) 자바스크립트를 짜다보면 함수를 바로 실행하지 않고 일정시간 뒤에 실행하도록 하고싶을 때가 있습니다. 이런 기능을 구현할 수 있도록 자바스크립트에서는 setTimeout과 setInterval 함수를 지원합니다. setTimeout 일정 시간(밀리세컨드) 이후 함수 실행 setTimeout(() => { // do something console.log('javascript'); }, 1000); 위 코드는 첫번째 인자의 함수를 1000 밀리세컨드 이후에 실행하도록 하는 코드입니다. 1000 밀리세컨드는 1초 입니다. 만약 주어진 시간이 지나기 전에 타이머를 취소하고 싶으면 clearTimeout을 사용합니다. const timer = setTimeout(() => { // do something cons.. 2019. 12. 5.
[javascript] 자바스크립트 ES6 (ECMAScript 2015) 원문: https://www.w3schools.com/js/js_es6.asp JavaScript let let은 블록 스코프 내에서 변수를 선언할 수 있게 해줍니다. var x = 10; // Here x is 10 { let x = 2; // Here x is 2 } // Here x is 10 JavaScript const const로는 상수를 선언할 수 있습니다. (상수 값을 가지는 자바스크립트 변수) const는 let과 비슷하지만 값을 수정할 수 없습니다. var x = 10; // Here x is 10 { const x = 2; // Here x is 2 } // Here x is 10 Arrow Functions 함수를 작성할 화살표 함수로 좀더 짧은 문법을 사용할 수 있습니다. func.. 2019. 11. 22.
[javascript] 자바스크립트 랜덤숫자 사용하기(Math.random) 자바스크립트에서 Math.random() 함수를 사용하면 0에서 1 사이의 숫자를 리턴합니다. (0포함 1제외) // Math.random() console.log(Math.randon()); 0에서 10 사이의 랜덤 값을 얻고 싶다면 Math.random() 함수에 10을 곱하면 0 2019. 11. 22.
[objective-c] iOS 탈옥 탐지 방법 참고: How to check your app is installed on a jailbroken device 참고: https://github.com/thii/DTTJailbreakDetection iOS 탈옥은 애플의 보안규약을 뚫는 과정입니다. 그래서 iOS에 대한 root 접근을 허용하고 공식 애플 앱스토어에서 제공하지 않는 추가 앱, 확장 및 테마를 다운로드하여 설치할 수 있게 해줍니다. 만약 보안기능에 충실한 앱을 만들어야 한다면 탈옥하지 않은 순정폰에서만 실행되도록 해야합니다. 모든 경우에 대해서 탈옥을 탐지하기는 힘듭니다. 왜냐하면 탈옥 탐지 코드를 속이도록 하는 탈옥 방법도 있기 때문입니다. 하지만 보안 체크를 늘림으로서 앱 해킹을 더욱더 어렵게 만든다면 충분히 해볼만한 가치가 있을 것 .. 2019. 2. 19.
[시큐어 코딩/Secure Coding] API 악용 - equals()와 hashCode() 하나만 정의 참고: 안드로이드 시큐어코딩 가이드 참고: CWE-581 Object Model Violation: Just One of Equals and Hashcode Defined 참고: Seven pernicious kingdoms 설명 Java 표준에 따르면 Java의 같은 객체는 같은 해시코드를 가져야합니다. 즉 "a.equals(b) == true" 이면 "a.hashCode() == b.hashCode()” 이어야 합니다. 따라서 한 클래스 내에 equals()와 hashCode()를 구현할 때 둘 다 구현하거나 둘 다 구현하지 않아야 합니다. 안전한 코딩 한 클래스 내에 equals()를 정의했으면 hashCode()도 정의해야 하고 hashCode()를 정의했으면 equals()도 정의해야 합니다. .. 2019. 2. 14.
[시큐어 코딩/Secure Coding] API 악용 - null 파라미터 미검사 참고: 안드로이드 시큐어코딩 가이드 참고: Seven pernicious kingdoms 설명 Java 표준에 따르면 Object.equals(), Comparable.compareTo(), Comparator.compare()의 구현시 파라미터로 null이 넘어와도 특정한 값을 리턴해야 합니다. 이 규칙을 따르지 않으면 예기치 못한 동작이 발생할 수 있습니다. 안전한 코딩 모든 메소드의 구현에서 파라미터를 참조하는 구문을 사용한다면 그 넘겨받은 파라미터가 null 인지 비교해야 합니다. 예제 (Java) // Unsafe class TestApp { public static void main(String[] args) { TestApp object = new TestApp(); boolean test .. 2019. 2. 14.
[linux] 리눅스 kill 명령어 사용법 (프로세스 죽이기) 참고: https://www.howtoforge.com/linux-kill-command/ 리눅스에서 작업을 할 때 응용프로그램이나 프로세스가 멈추는 것을 볼 수 있습니다. 이 때의 유일한 해결책은 그 프로세스를 종료하는 것입니다. 리눅스는 이러한 시나리오에서 사용할 수 있는 kill 유틸리티를 제공합니다. kill 명령어 kill 명령어는 대개 프로세스를 죽일 때 사용합니다. 하지만 내부적으로는 프로세스에 시그널을 보내 원하는 작업을 하게 하는 명령어입니다. 이 툴을 사용하려면 다음 구문을 사용합니다. $ kill [options] [...] 프로세스 죽이는 방법 죽이려는 프로세스의 pid를 얻은 다음 kill 명령어의 인자로 넘기면 됩니다. $ kill [pid] 예를들어 node.js로 실행 중인 .. 2019. 2. 13.