분류 전체보기
자료 구조 선택 가이드
자료 구조 선택 가이드
2018.12.20Java에서 `` Vector``는 `` ArrayList``다. `` Vector``가 있기는 하지만 사용할 필요가 없다. `` Vector``와 `` ArrayList``의 차이점은 동기화 처리에 있는데, `` Vector``는 무조건 동기화이기 때문에 단일 쓰레드에서 성능이 떨어지며 멀티 스레드 모델에서도 Collection, Map, synchronizedCollection, synchronizedList을 쓰는게 더 낫기 때문이다. deque? (발음은 deck) 양쪽에서 삽입/삭제가 가능한 원통형 구조를 생각하면 됨. C++에서 vector와 map 키-벨류 구조이긴 한데 컨테이너의 사이즈가 작아서 둘 중 뭘쓸까 애매한 경우가 있다. vector를 사용하는 경우라면, obj의 어떤 항목을 ke..
[jQuery] checkbox의 check all 기능 구현하기
[jQuery] checkbox의 check all 기능 구현하기
2018.11.30```js```페이지에 체크박스 폼이 하나만 있는 경우에는 그냥 모든 체크박스 선택해서 처리해도 되지만form wizard같은거 쓰는 경우나, 체크박스 영역이 여러개 있는 경우 그 영역에 해당하는 체크박스들만 체크처리 해야 하므로 이런 식으로 처리하게 된다.
HTML5 data-* attribute
HTML5 data-* attribute
2018.11.23HTML5 data-* attribute```htmlOwl```Global attribute다.페이지 혹은 앱 내에서만 사용할 데이터에 지정한다. 이렇게 지정한 데이터 ``c "bird"``는 JS에서 불러와 사용할 수 있다. CSS에서도 불러와 사용할 수 있다는게 큰 특징!!```js// getAttribute()를 사용하기var test = document.getElementById('test');console.log(test.getAttribute("data-animal-type")); // .으로 접근하기 (IE 11 이상, 표준)var test = document.getElementById('test');console.log(test.dataset.animalType); // 자동으로 camel..
[python] pdb : 디버깅
[python] pdb : 디버깅
2018.11.12gdb처럼 쓰면 된다. ```python(Pdb) n # 함수 진입 안하고 한줄 실행(Pdb) s # 함수 진입 하면서 한줄 실행(Pdb) l 10 def mkList2(): 11 result = [value for value in range(1000)] 12 return result 13 14 15 -> print("mkList1 : ", timeit(mkList1, number=1000), "s") 16 print("mkList2 : ", timeit(mkList2, number=1000), "s") 17 [EOF] (Pdb) b 16 Breakpoint 1 at d:\source\rapts\test.py:16 (Pdb) c mkList1 : 2.6512367244046393 s > d:\source..
[python] 성능 측정, 프로파일링(profiling)
[python] 성능 측정, 프로파일링(profiling)
2018.11.12PyCharm같은 IDE에서도 지원하기 때문에, 굳이 직접 돌리지 않아도 된다. 상단에 Run, Debug 아이콘 옆에 보면 프로파일링 다양하게 지원함. python 기본 내장 라이브러리 benchmarking 목적 : timeit profiling 목적 : cProfile 근데, 시스템 함수까지 다 출력되어 보기 불편하고 복잡하다. ``bash python -m cProfile -s cumulative file.py`` 진짜 간단하게 함수의 수행 시간을 측정하고 싶을 때 : timeit ```python from timeit import timeit def mkList1(): result = [] for value in range(1000): result.append(value) return resul..
[python] socket
[python] socket
2018.11.102017/08/25 - [Coding Syntax/etc] - Socket programming Tips socket 객체에서 로컬 (주소, 포트) 리모트 (주소, 포트) 가져오기accept 할 때 addr을 별도로 저장할 필요가 없다. ``py class SocketType`` 에 정의되어 있다.```pythonsock.getsockname() -- return local address('192.168.0.2', 31234)sock.getpeername() -- return remote address [*]('192.168.110.131', 6627)``` 그냥 socket.connect() 보다 socket.create_connection()https://docs.python.org/3/library..
[python] Flask
[python] Flask
2018.11.05http://flask.pocoo.org/docs/1.0/quickstart/#variable-rules http://jinja.pocoo.org/docs/2.10/templates/ 컨텍스트 전역 변수 수신한 HTTP request 정보에 접근하기 위해서 컨텍스트 전역 변수를 사용한다. 이런 정보들을 리퀘스트를 수신할 때 마다 뷰 함수의 인자로 넘기도록 해도 되는데, 쓸데없이 인자를 많이 가지고 있게 되는 것을 피하기 위해 플라스크는 이를 전역 변수 형식으로 제공한다. 근데 실제 전역 변수는 아니다. 멀티스레드 환경에서 못쓰니까. `` request`` 변수가 전역변수 처럼 동작하기는 하지만 실제로는 스레드들은 각각 다른 오브젝트를 처리하게 된다. 컨텍스트는 어플리케이션 컨텍스트/리퀘스트 컨텍스트로 나..
Empire
Empire
2018.11.03도커로 설치하면 `` (Empire) >`` 이게 계속 출력되면서 안된다. 그래서 그냥 native 설치해야함.python2가 기본 파이썬인 상태에서 설치해야 함. 사용법은 다음을 참고. Listener는 meterpreter말고 http로 해야 제대로 동작함. meterpreter로 하면 포트 리스닝도 안하고 생성되는 stager 코드도 문법에 안맞아서 에러난다.https://null-byte.wonderhowto.com/how-to/use-powershell-empire-getting-started-with-post-exploitation-windows-hosts-0178664/ https://null-byte.wonderhowto.com/how-to/use-powershell-empire-gener..
vagrant
vagrant
2018.11.02VM 이미지를 통째로 배포하는 것 대비 vagrant를 사용해 배포하면 다음과 같은 이점이 있음. 1. 환경에 따라 달라지는 설정이 있는 경우, 예를 들어 배포한 가상머신들이 특정 서버 IP를 바라보도록 설정해야 하는 경우 vagrant를 사용하면 도움이 될 수 있음. 2. port forwarding 같은 가상머신 외부에서 설정해주어야 하는 부분까지 미리 설정해서 배포할 수 있음. VM 이미지만 배포하게 되면 유저가 받아서 설치할 때 직접 포트포워딩 설정하고 방화벽 열어주어야 함. 실력 없는 엔지니어라면 이런거 하다가 짜증낼 수 있기 때문에, vagrant를 이용하면 이런 상황을 예방할 수 있음. 3. VM 설치 이후 앤서블같은 provisioning shell script가 실행되도록 구성할 수 있어..
ansible 앤서블 설명
ansible 앤서블 설명
2018.10.30https://blog.naver.com/alice_k106/221333208746 경험에 비추어 생각해보면, 서버 여러대 일괄작업 및 관리, 이런거 다 쉘스크립트로 하면 되는거 아닌가? 싶은 생각이 들지만쉘스크립트 짜서 돌릴 수 있는, 또 그렇게 하려고 하는 사람이 그렇게 많지 않다는 점과쉘스크립트 자체가 그런 목적으로 있는게 아니라는 점, 그리고 여러 다른 서버에 대한 호환 등을 고려해야 한다는 점 등 실제로 적용하다보면 단점들을 마주치기는 한다. 그래서 앤서블을 사용하는 것. windows에 앤서블을 설치하기 위해서는 cygwin을 설치해야 함.
docker
docker
2018.10.27docker docker container란? Simply put, a container is simply another process on your machine that has been isolated from all other processes on the host machine. That isolation leverages kernel namespaces and cgroups, features that have been in Linux for a long time. Docker has worked to make these capabilities approachable and easy to use. docker 장점? 1. Host와 독립된 환경에 설치되므로 Host가 지저분해지지 않고 충돌도 방지..
[python] docstring, 문서화
[python] docstring, 문서화
2018.10.15docstring 작성 포맷https://stackoverflow.com/questions/3898572/what-is-the-standard-python-docstring-formatgoogle style은 다음과 같은데 타입 적는게 :가 아니라 괄호 안에 들어가서 마음에 안들고, 들여쓰기 때문에 가로축도 많이 차지하고, VSCode에서 힌트 팝업으로 보여줄 때도 bold나 글꼴 크기같은게 안예쁘게 들어간다.```pyArgs: path (str): 설명Returns: int: 설명```Sphinx와 잘 붙는건 reST 스타일인데, ``py :param v1:``과 ``py :type v1:``을 따로 적어주어야 한다는 점이 마음에 들지 않고 가독성도 썩 좋지 않은 것 같다.가독성은 Numpydoc 스타..