본문 바로가기

#Leni #레니 #♥

(123)
메모리 관리, 동적할당 개발자가 될 때 까지.. Memory management, dynamic allocation 프로그램을 실행하면 변수, 함수 등 동작 되는 모든 아이들은 운영체제에 의해서 메모리 공간이 생긴다.메모리 공간이 생기면 변수, 함수 등은 주소값을 부여받게 되고 그들을 사용할 수 있다. 이 메모리 공간은 "코드 / 데이터 / 힙 / 스택" 4개의 영역으로 구분되어있는데, 어떤 메모리 공간에 할당되는 가에 따라서 주소값이 얼마나 유지되는지, 쓰이는 범위 등이 결정된다. 메모리 공간을 나누는 이유는 효율성 떄문이라고 한다. 관리가 용이해지고 메모리의 접근속도가 좋아진다는.. 그런.. 코드 영역실행할 프로그램의 코드가 저장되는 메모리 공간, CPU는 저장된 명령문들을 하나씩 가져가 실행한다.데이터 영역전역 변수, s..
[ MODULE ] boto3:: aws api PythonBoto3 #Ubuntu 16.04 LTS#Python 3.5.2 #>> 상세 설명, 실행화면 Installation$ pip install boto3 특별한 버전을 지정해서 설치하고 싶으면 아래 처럼 버전을 적어주면 된다.$ pip install boto3==verstion Configuration아마존에서 인증 받은 key id와 access key를 입력해주어야 한다. $ aws configure 명령어를 입력하면 아래 와 같이 key_id 와 access_key를 입력하라는 표시가 하나씩 나타난다. aws_access_key_id = YOUR_ACCESS_KEYaws_secret_access_key = YOUR_SECRET_KEY 키를 입력하고 나면 그냥 enter를 2번 쳐서 넘어가도..
[ DO ] 파이썬 마이크 입력 코드 PythonMic input#Ubuntu 16.04 LTS#Python 3.5.2 코드 해석마이크 관련 코드를 찾다가 어떤 분이 블로그에 주석을 달아서 매우 잘 정리하셨길래, 참고하고자 가져왔다. #!/usr/bin/env python import pyaudiofrom six.moves import queueimport time # 녹음용 값 # 16khzRATE = 16000# 버퍼는 1600CHUNK = int(RATE / 10) # 100ms class MicrophoneStream(object): """마이크 입력 클래스""" def __init__(self, rate, chunk): self._rate = rate self._chunk = chunk # 마이크 입력 버퍼 생성 self._buff..
[ BASIC ] PEP8 - Style Guide for Python Code PythonPEP8 - Python code style 충격적인 사실별 신경 안쓰고 있다가, 유지보수할 때나 나중에 코드볼 때를 생각해서 지켜보자 하고 봤는데.. 나름 충격적이었다.나는.. 대체.. T_T 좀 더 많은 자세한 내용은 참조내용을 보자.. 1. Tab이 아닌 Spcae로 들여쓴다.2. 한 줄의 문자 길이가 79자 이하여야 한다. 3. 함수, 변수, 속성은 lowercase_underscore( 소문자, 연결 되는 단어 언더바 ) 사용4. 보호 인스턴스는 _leading_underscore( 변수명 앞에 _ 한개, 연결 되는 단어 언더바 ) 사용5. 비공개 인스턴스는 __docule_underscore( 변수명 앞에 _ _ 두개, 연결 되는 단어 언더바 ) 사용6. 클래스와 예외는 Capita..
[ Python ] 복사의 늪에서 벗어나자, 얕은 복사 vs 깊은 복사 vs 걍 복사 PythonShallow copy / Deep copy / Copy#Ubuntu 16.04 LTS#Python 3.5.2 #>> 상세 설명, 실행화면코드 동작을 시켜보고 싶으신 분은 아래 참조내용에 1. GitHub에 가셔서 코드를 다운 받아서 "main.py"를 실행 시키세요 :) 1. Copy 단순 복사단순 객체의 복사는 그냥 같은 객체 주소를 가르킨다고 생각하시면 됩니다.둘 중에 하나를 수정하면 원래의 내용도 수정된다고 생각하면 되요. 00. list1을 list2에 복사했을 때- - - - - - - - - - list 1 >[3, 'string', [1, 0, 0, 4], {'b': 'MAMAMO', 'a': 'kitty'}]id > : 3id > : stringid > : [1, 0, 0, 4..
Index 인덱스란 INDEX: RDBMS에서 검색속도를 높이기 위해 사용하는 하나의 기술 - 해당 Table의 칼럼을 색인화(따로 파일로 저장)하여 검색 시 해당 table의 레코드를 full scan 하지 않고 색인화 되어있는 index 파일을 검색하여 검색속도를 빠르게 한다.- Tree 구조로 색인화 하는데 Balance Search Tree를 사용한다.- Oracle이나 MsSQL에서는 여러 종류의 tree를 선택하여 사용가능 하다. 원리- Index를 해당 칼럼에 주게 되면 초기 table 생성 시 만들어진 MYD, MYI, FRM 3개의 파일중에서 MYI에 해당 칼럼을 색인화 하여 저장한다.- Index를 사용하지 않을 경우 MYI파일은 비어 있다.- 사용자가 select 쿼리로 index가 사용하는 쿼리를 사용..
[ C/C++ ] 참조자와 포인터, 첨보면 무지무지 헷갈린다 C/C++Pointer, Reference 그들의 차이점을 파악해보자내용은.. 손으로 섰었는데 너무 개판이라.. 다시 정리해서 올리는 걸로 하자.. 수정중.. 괜찮은 정리 PPT 포인터와 참조자를 구분하자 from 민욱 이 #2018년07월10일참조내용1. 포인터 '*'와'&'의 의미
[ Python ] Thread, 쓰레드 데이터 공유하지 않는 방법 PythonHow doesn't a Data sharing at Threads#Ubuntu 16.04 LTS#Python 3.5.2 ThreadThread 에서는 기본적으로 자원을 공유한다.그래서 딱히 해주는 것 없이도 그냥 자원을 공유하게 된다. 하지만 간혹가다, Thread를 사용하는데 자원 값이 겹치면 안 되는 경우가 생긴다.멀티 프로세스로 만들기는 너무 거창할 때 주로 그런 것 같다. 이 경우 지역 변수, 클래스 생성 등과 같은 방법으로 자원의 공유? 간섭?을 막을 수 있다.솔직히 말로 뭐라고 설명해야 하는지 잘 모르겠다... 그냥.. 자원이 겹치지 않게 하는 방법이라고 해야할 까.. 머리아픔.... 동작 가능한 소스 코드를 참조내용 1.GitHub 에 올려두었으니 해보고 싶은 분들은 ㄱ.ㄱ !!..