자바스크립트의 this는 '호출자', 실행 문맥' 을 가리킵니다. 7개의 예제를 통해서 this를 뽀개보도록 하겠습니다. 예제 1. console.log(this === window); 그냥 this를 호출하면 이는 window 객체가 됩니다. 예제 2. function test1() { console.log(this === window); } test1(); 함수에서도 this를 호출하면 window 객체입니다. 예제 3. function test1() { 'use strict' console.log(this === undefined); } test1(); strict 모드의 함수에서는 this가 undefined 입니다. 예제 4. function test1() { 'use strict' functi..
배열은 타입이 같은 여러 개의 변수를 관리하기 위해서 사용합니다. 배열의 요소들은 연속된 메모리 값을 가집니다. 배열의 요소는 인덱스를 통해서 접근이 가능합니다. 1. 자바 배열 선언 Person persons[] = new Person[10]; 위와 같이 선언하면 Person 형 변수 10개를 저장할 수 있는 배열 persons가 생성됩니다. 주의! 아직 Person 형 변수는 생성되지 않았습니다. 배열의 각 요소엔 null 값이 들어있습니다. persons 배열을 사용하기 전 각 요소에 Person 형 객체를 생성하여 할당해주어야 합니다. 그냥 사용하시면 NullPointerException을 만나게 됩니다. ( 원시 타입(int, boolean, ..)의 경우 각 요소를 초기화하지 않은 경우 int..
1. 파이썬 작업 실행 시간 측정하기 import time # 1556092098.1627643 과 같이 1970년 1월 1일부터 경과된 시간을 초 단위로 출력합니다. start_time = time.time() ##################### [작업 수행] ##################### time.sleep(3) ##################### [작업 수행] ##################### # 작업 수행된 시간 : 3.003057 초 print('작업 수행된 시간 : %f 초' % (time.time() - start_time)) 2. 데코레이터를 사용하여 함수 실행 시간 측정하기 2.1 리턴값이 없는 데코레이터 import time def time_decorator(nam..
서버 세팅 시 중요한 부분 중 하나가 서버 시간을 동기화시켜주는 것인데요. 우분투에서 서버 시간을 동기화하는 방법을 포스팅하겠습니다. 현재 시간 확인하기 서버 시간 및 타임존 설정하기 필요한 패키지들을 설치합니다. sudo apt install rdate # 서버 시간을 맞추기 위한 패키지 sudo apt install tzdata # 타임존(로케일)을 맞추기 위한 패키지 패키지 설치 후 먼저 서버 시간을 동기화합니다. $ rdate -s time.bora.net 타임존이 맞지 않아서 원하는 시간대가 아닐 경우 타임존을 설정해주셔야 합니다. $ tzselect 위 명령을 이용하여 원하는 타임존 설정을 진행합니다. 위 작업 이후에도 타임존이 변경되지 않는 경우 TZ='Asia/Seoul'; export T..
1. 무선네트워크 패키지 다운로드 $ sudo apt-get install wireless-tools wpasupplicant 2. 무선 네트워크 인터페이스 확인 및 활성화 $ iwconfig wlx88366cf8ba46 이라는 이름의 무선 네트워크 인터페이스를 확인할 수 있습니다. 무선 네트워크 인터페이스를 활성화합니다. $ ifconfig wlx88366cf8ba46 up 3. 무선 네트워크 스캐닝 무선 네트워크 인터페이스를 활성화했으니 이제 연결할 네트워크가 잘 보이는지 확인해봅시다. $ iwlist wlx88366cf8ba46 scan 위 명령을 수행하면 현재 보이는 Wifi의 ESSID와 여러 네트워크 정보를 확인하실 수 있습니다. 4. 네트워크 설정 수정 및 인터페이스 재시작 4.1 DHCP ..
1. 준비 사항 GNU/Linux x86_64 with kernel version > 3.10 Docker >= 1.12 NVIDIA GPU with Architecture > Fermi (2.1) NVIDIA drivers ~= 361.93 (untested on older versions) 드라이버 버전에 따라 사용할 수 있는 CUDA 버전이 있으니 이를 참고하세요. 1.1 레포지토리 구성하기 Debian-based 배포판에서는: curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | \ sudo apt-key add - distribution=$(. /etc/os-release;echo $ID$VERSION_ID) curl -s -L https://..
이 포스트에서는 원격 연결 및 데이터 전송에 사용되는 OpenSSH를 알아보려고 합니다. OpenSSH 서버 설정법과 우분투에서 설정을 변경하는 방법에 대해서 알아보겠습니다. OpenSSH는 보안, 암호화된 원격 제어, 파일 전송을 쉽게 할 수 있게 해주는 서버 데몬(백그라운드에서 항상 실행됨)과 클라이언트 도구를 제공합니다. 설치 OpenSSH 서버 설치: sudo apt install openssh-server OpenSSH 클라이언트 설치: sudo apt install openssh-client 설정 OpenSSH 서버 프로그램 (sshd) 의 설정은 /etc/ssh/sshd_config 에서 편집할 수 있습니다. sshd 설정 파일에는 통신 설정, 인증 모드 등 많은 설정들이 있습니다. 아래 예..
df (disk free) : 현재 사용 중인 파일시스템 용량 확인 명령어 옵션 의미 df -k 용량을 킬로바이트 단위로 표시 df -h 보기 쉬운 용량 단위로 표시 df -T 파일시스템 종류도 표시 df -t ext4 ext4 파일시스템만 표시 du (disk usage) : 현재 디스크 사용량 확인 명령어 옵션 의미 du -s 특정 디렉토리의 디스크 사용량 확인 du -h 보기 쉬운 용량 단위로 표시
자바 랜덤 함수를 사용하는 방법에 대해서 알아보겠습니다. 자바에서 랜덤한 값을 추출해내는 방법으로는 두 가지가 있습니다. Math.random() 함수 사용 java.util.Random 클래스 사용 1. Math.random() 함수 사용 먼저 자바 Docs의 내용을 보겠습니다. public static double random() 0.0보다 크거나 같고 1.0보다 작은 double 형 값을 반환한다. 반환된 값은 해당 범위에서 (거의) 균일한 분포의 의사랜덤으로 선택된다. 이 메서드가 처음 호출되면, 하나의 새로운 의사난수 생성기를 생성한다. 이는 다음 표현식에 의해서 생성된다. new java.util.Random() 이 새로운 의사난수 생성기는 이후 이 메서드에 대한 모든 호출에 사용되며 다른 곳..
파이썬 함수 안에서 yield 키워드를 사용하는 함수를 호출하면, 그 함수는 생성기(Generator) 객체를 반환합니다. yield문을 이해하기 위해 먼저 생성기 객체에 대해서 알아보겠습니다. 생성기(Generator)는 무엇일까요? for문과 같은 반복문에서 사용할 값들을 생성하는 객체입니다. 생성기 객체의 next()를 ( Python3 에서는 _next_() ) 호출하면 yield 문까지 함수가 실행되고 실행이 중단됩니다. 다음에 next()를 다시 호출하면 중단된 지점 다음부터 다시 함수가 실행됩니다. 예제를 통해서 생성기를 이해해 보도록 하겠습니다: def yield_func(): n = 0 while n < 3: print('[yield_func] Start of loop. (n = {})'..
유튜브 채널 '신사임당' 님의 추천으로 이 책을 구매하여 읽게되었습니다. 약 400 페이지 분량의 책인데 2월 23일에 읽기 시작해서 오늘 다 읽었으니 거의 1달 동안 읽었네요! 이 책을 읽고나서 느낀점을 포스팅해보겠습니다!~ 오늘날은 SNS, 뉴스 등의 매스미디어를 통한 프로파간다(Propaganda: 선동)가 완연하고 당연한 시대임을 먼저 알게되었습니다. 이러한 프로파간다 시대에서 자주 사용되는 설득 기법들과 과거 선동 사례들을 이야기하면서 어떻게 하면 선동에 휩쓸리지 않는지, 그리고 어떻게 하면 좀 더 지혜롭고 분별력있게 정보를 취할 수 있는지를 설명하는 책입니다. 더 나아가 목표를 이루기 위해서 상대방을 설득하는 방법(선동이 아닌 진정한 설득의 방법)에 대해서도 이야기하고 있습니다. 책의 내용 중..
파이썬에서는 For 문과 If 문을 한 라인에 작성하여 코드를 직관적으로 만들고, 실행 속도도 높여주는 방법이 있습니다. 리스트 내포(List comprehension)이라는 기법인데요, 그 문법은 다음과 같습니다. iterable_object = [item_expression for item in iterable_list if item_condition] 위 리스트 내포식의 의미는 iterable_list에 있는 요소 하나하나(item)에 대해 item_condition을 만족하는 요소들을 item_expression식을 적용하여 iterable 한 Object (iterable_object)로 만들어서 반환한다는 의미입니다. 구구단 3단을 출력하되 짝수가 아닌 것만 출력해봅시다. gugu_three ..