본문 바로가기

전체 글418

[Python] Ipython 노트북 설치하기 IPython??기존의 python보다 좀더 인터프리터가 쉽게 나타나 있는 형태라고 보면 될 것 같다.python을 웹에서 코딩하고 작업할 수는 없을까라는 요구에 의해 나오게 된 거라도 봐도 될 것 같다. 간단히 어떻게 설치하고 사용하는지 살펴보자. 우선 ipython을 설치한다.참고로 ipython은 python 버전 2.7 또는 3.3 이상을 요구한다. $> pip install ipython 아래 라이브러리는 Ipython 사용에 있어 dependencies를 가지는 라이브러리들이기 때문에 함께 설치한다.- jinja2, needed for the notebook- sphinx, needed for nbconvert- pyzmq, needed for IPython's parallel computin.. 2017. 11. 21.
[Flask] Flask에서 ajax 사용하기 Flask 웹 페이지 화면에서 데이터가 갱신 되었을 때, 해당된 영역만 갱신을 하고 싶었다. 웹은 거의 초짜 수준이라.. 이것 저것 찾아 봤다. 맨 처음에 쓴 방식은 html template를 새롭게 하나 더 만들고, 새롭게 만든 html template에 기존 html 콘텐츠를 추가하기 아래와 같은 방식이다.{% block %} 원래 html 영역 {% end block %} 새롭게 만든 html 영역 하지만 이 방법 역시 기존 html 영역을 나타나게 하려면 python 코드에서 정보를 다 입력해서 넘겨주어야만 했다.return render_template('새로운 html', 기존 html 정보, 새로운 html 정보); 결국엔 전체 page 갱신과 똑같은 결과라서 결국 이 방법은 포기! 두 번째 .. 2017. 11. 20.
[SQLALCHEMY] session 관리 SQLAlchemy에서는 정말 편리하게도 많은 기능들을 제공해 주고 있다. 그 중 하나로 pool 관리도 해주는데 대부분 아래와 같이 사용할 것이다.from sqlalchemy import create_engine from sqlalchemy.orm import scoped_session, sessionmaker engine = create_engine('mysql 주소', convert_unicode=False, pool_size=20, pool_recycle=500, max_overflow=20)session = scoped_session(sessionmaker(autocommit=False, autoflush=False, bind=engine)) 간략하게 create_engine의 parameter.. 2017. 11. 15.
[GIT FLOW] git flow를 사용해 보자! 기존 git branch에 대해 좀 더 효율적인 branch 관리를 위해 도입한 glt flow를 사용해 보기로 했다. 기존의 git의 경우 master와 develop 두 가지의 branch 전략만 기본으로 제시하고 있는데, git flow에서는 이를 좀 더 세분화 해서 branch 를 나누고 있다.우선 우리가 가장 잘 알고 있는 master와 develop branch부터 살펴보자면, master는 실제 배포를 위한 branch, develop은 배포를 하기 위한 작업 branch라고 생각하면 된다. 이 develop branch에서 간혹 문제가 발생되는데, 가령 A라는 기능을 만드는 도중에 A 기능 개발을 잠시 중단하고 B 기능을 개발해야 된다면 어떻게 해야 될까? A 기능을 주석처리한 다음에 B를.. 2017. 11. 14.
[INTELLIJ] Jar 파일 만들기 IntelliJ에서 maven 빌드를 하려고 하는데, 관련 메뉴를 도무지 찾지 못했다. 예전 eclipse 같은 경우는 maven install 이라고 따로 팝업 메뉴가 존재했었는데, 그런 것도 없고 그냥 build를 하면 jar 파일 생성은 안되고.. 찾아본 결과 Build artifacts를 하면 된다는 글을 발견.. 실행하려는 찰나.. 어라??? 메뉴가 enable 설정이 되어 있지 않다!!또 열씸히 구글링...아하.. artifacts를 빌드하려면 artifacts를 만들어 주어야 한다..artifacts를 만들기 전에.. 도대체 artifacts가 무엇인지부터 찾아봤다.일반적으로 소프트웨어에서의 artifacts는 개발 프로세스에 의해 생성된 무언가를 나타낸다고 한다. 즉 실행파일이나 중간 산출.. 2017. 11. 13.
[HBASE] 테이블 읽어보기 HBASE에 있는 table이 제대로 읽어지는지 확인이 필요해서 아래와 같이 코드를 작성했다.HBASE Client와 server version은 모두 0.98.11을 사용했다. (낮아도 한~~참 낮다 -_-) HBaseConfiguration으로 hbase 설정을 해 준후, HBaseAdmin을 이용해서 table list를 가져오자.Scan 객체를 생성한 후 table의 row마다 print를 해줘서 해당 row 내용을 읽는다.참고로 위에서 선언한 객체들은 다 deprecated 된 상태이다. (-_-!!!!)테스트 용으로 대충 만든 거라... 실제 서비스용으로 사용하기 위해서는 다른 코드를 사용하는 것이 정신 건강에도 더 좋을 듯 하다. 2017. 11. 10.
[RUBY] 간단하게 사용해보기 우연찮게 RUBY 프로젝트를 접할 기회가 생겨서, 간단하게 사용 방법을 정리해 보고자 한다. 기준은 역시나 Ubuntu 14.04..아래와 같이 ruby를 설치하자.$> apt-get install ruby 제대로 설치가 되었는지 확인하기 위해 version을 확인해 보자.$> ruby --version 제대로 설치가 되었다면 이제 gem을 통해 bundler를 설치하자. 참고로 gem은 python에서의 pip와 같이 패키지를 설치할 수 있게 도와주는 툴인 것 같고 bundler는 패키지 의존성을 관리해주는 툴인 것 같다. 대부분 github를 살펴보면, Gemfile이 있는 것을 볼 수가 있는데, 이는 python의 requirement.txt와 비슷하게 설치하고자 하는 패키지들을 쫙 나열하고, 한번.. 2017. 11. 9.
[MYSQL] LOAD DATA 사용하기 MYSQL 데이터를 마이그레이션 해야 하는 일이 발생 했다. 데이터를 밀어 넣기 위해 아래와 같이 sql alchemy를 이용해서 작업을 진행했는데.. 속도가 너무나 느렸다. 1건 당 commit을 진행하도록 코드를 작성한 것도 느린 속도에 큰 영향을 끼쳤을 것 같다. for value in valuelist: try: item = db_session.query(TEST).filter_by(id = value['id']).first() if item == None: test = TEST(value) db_session.add(test) db_session.commit() except ValueError as e: log.error('insert error %s' %(e)) for 문으로 10000개씩 묶.. 2017. 11. 7.
tcpdump로 네트워크 패킷 잡기 CENTOS에서 tcpdump를 이용해서 network packet을 잡아보자. $> sudo tcpdump -i any host [host 주소] 위와 같이 입력하면 host주소를 통해 들어오고 나가는 ip:port 정보를 확인해 볼 수가 있다. 또한 현재는 -i any를 통해 모든 네트워크 카드에 대해 패킷을 잡았는데, -i eth0 혹은 -i eth1 등으로 변경함으로써 특정 이더넷 카드만 지정해서 패킷을 확인해 볼 수도 있다.또한 아래와 같이 특정 port를 명시해서 특정 port에 해당하는 ip 패킷만 확인해 볼 수도 있다.$> sudo tcpdump -i any port [포트번호] 2017. 10. 26.