2017. 9. 27.

[파이썬] readline() 과 readlines() 차이

readline() : 한줄씩 읽고 반환한다
readlines() : 파일에 있는 모든 문자열 리스트를 반환한다.

text.txt 라는 파일에 다음과 같이 기록되어 있다고 가정해보자.
hi
nice to meet you
thanks 

그리고 다음의 각각 1,2 상황일 어떤 출력값이 나올까.
file= open('test.txt',"r")
print file.readline()

1. 출력값 : hi

print file.readline()

2. 출력값 : ['hi\n', 'nice to meet you\n', 'thanks']

Continue reading

2017. 9. 21.

[스크랩] 자기소개서 좋은 예시

자기소개서 안 좋은 예와 좋은 예시를 정리했다. 나중에 자기소개서를 작성 할 때 참고해서 작성하면 아주 많은 도움이 될 것 같다.

1. 안 좋은 예시

“넥슨의 대용량 데이터베이스 환경을 경험하고 싶어 지원했으며 제가 가지고 있는 IT 역량을 활용하여 최대한 도움이 될 수 있도록 노력하겠습니다. 이를 위해 OCP, MCDBA 등의 자격증을 획득하기 위해 열과 성을 다해 공부 중에 있으며 요즘 대용량 데이터 분석에 대한 수요가 증대하고 있는 것을 잘 알고 있기 때문에 기회를 주신다면 대용량 데이터를 적절히 분석하여 넥슨에 도움을 줄 수 있었으면 좋겠습니다.”

평가 : 한 지원자가 게임회사 넥슨에 실제 제출했던 자기소개서 중 일부다. 열정도 있어 보이고 전문용어도 제법 아는 듯하다. 하지만 사실 이는 넥슨에서 ‘잘 못쓴 자기소개서’로 공개한 사례다. 조재범 넥슨 모바일기술본부 실장은 “실무분야 직군에서는 지원자가 구체적으로 어떤 목표를 세웠고, 이를 위해 얼마나 노력해 왔는지를 보고 싶어 한다”며 “어려운 용어를 깊이 없이 나열해 쓰거나 자신의 발전상을 ‘전문가가 되겠다’ ‘회사에 도움이 되겠다’는 정도로 막연히 표현하는 건 좋은 점수를 주기 어렵다”고 했다.

2. 좋은 예시 

“데이터베이스 분야에 있어 제 단기적인 목표는 ‘다양한 RDB, NoSQL’ 을 원활히 다룰 수 있는 멀티플랫폼 DBA 입니다. 그를 위해 아래와 같이 미션을 산정하고 달성하기 위한 노력을 기울였습니다.
첫째, 다양한 데이터베이스에 대한 접근성을 높이기 위해 주요 RDB 및 NoSQL 에 대한 설치를 진행해 보았습니다. 설치를 진행해 본 내역은 MySQL 5.7, MS SQL Server 2016, MongoDB 3.0, Couchbase 3.0 입니다.
둘째, RDB 핸들링의 기본은 SQL 에 대한 전문성이라고 생각합니다. SQL 을 통한 DML, DDL 작업이 원활할 수 있도록 MySQL 기반으로 실습을 진행했으며 공인 자격증 확보를 위해 SQLP 를 획득하였습니다.
셋째, 대용량 데이터에 대한 핸들링이 필요하다고 생각했습니다. 따라서 ‘대용량데이터베이스 솔루션’ 책을 정독하여 기본 RDB 아키텍처에 대한 기본 이해를 충실히 하였습니다.”

평가 : “구체적 목표를 제시하고 이를 달성하고자 어떤 액션을 취했는지를 서류에 함께 담아내면 좋다”며 “또한 5년 후, 10년 후까지의 상세한 로드맵과 발전 목표가 적힌 자소서엔 눈길이 더 간다”

출처

  • http://1boon.daum.net/jobsN/59c39caa6a8e510001c8b2fd

Continue reading

2017. 9. 19.

2017. 9. 18.

2017. 9. 15.

2017. 9. 14.

[PYTHON] httplib 모듈에서 request와 putrequest 의 차이

파이썬에서 웹 통신을 할때, 사용하는 라이브러리 중 httplib 가 있다. 가장 기본적인 코드는 아래와 같을 것이다.

import httplib

conn=httplib.HTTPConnection("httpbin.org/") # Do not use "http://"
conn.request("GET","/get")
r1 =conn.getresponse()
print r1.status
print r1.reason
print r1.read()

그리고 평소 궁금했었는데 해결된 궁금증이 있다. "putrequest와 request 변수의 차이점"이 바로 그것이다.

해결 :  request 함수는 변수의 인자로 헤더값을 넣을 수 있다. 때문에 헤더값을 따로 넣지않더라도 end of header를 알리기 위해서 공백라인을 서버에 전달한다.
반면 putrequest 함수는 인자로 헤더값을 넣을 수 없다. putheader 함수로 별도로 넣어줘야 한다. putrequest 를 사용했는데 putheader를 사용안하면 에러가 발생한다.

글로 표현하니까 조금 어렵게 들린다. 

위 처럼 헤더값 입력 없이 /get 메소드만 요청할 때는 request 를 사용하고 


위 처럼 header 한 라인씩 입력할 때는 putrequest 를 입력하고 putheader 로 헤더값을 삽입한다.

보통 파라미터나 헤더값을 입력 할 때는 사전(Dictionary)을 이용하는 것 같다.

import httplib, urllib
params = urllib.urlencode({'spam': 1, 'eggs':2, 'bacon':0})
headers={"Content-type":"application/x-www-form-urlencoded","Accept":"text/plain"}
conn=httplib.HTTPconnection("www.site.com")
conn.request("POST","/cgi-bin/query", params, headers)
response = conn.getresponse()



Continue reading

[웹 취약점] 크롬브라우저에서 XSS 차단 기능 잠시 무력화하기

웹 취약점 점검하다 보면 크롬 브라우저에서 XSS 를 차단하는 경우가 있다. 이를 무력화(?) 시키기 위해서 버프를 이용할 수 있다.

해결방안

1. 프록시 기능을 활성화 시키고,
2. 버프스위트에서 Options -> 'Match and Replace' -> X-XSS-Protection 0  에 체크한다.

그러면 X-XSS-Protection 기능이 작동하지 않는다.

Continue reading

2017. 9. 7.

[파이썬] 파이썬 UI 프로그래밍, PyQt

파이썬으로 개발하고 PyQt으로 GUI를 씌울수 있다.

파이썬과 사용 가능한 GUI 개발 툴킷은 다음이 있을 수 있다. 그래도 PyQt 가 제일 좋은 것 같다.
  • Tkinter : TK를 기반으로 하는 파이썬 표준 라이브러리. 사용법은 간단하지만 제약이 있다.
  • PyQt : 유명한 Qt 프레임워크를 파이썬에서 사용할 수 있도록 리버뱅크란 곳에서 바인딩한 것. 오픈소스로서 개인적 사용은 무료이며, 풍부한 기능에 깔끔한 윈도우를 만들 수 있다고 한다. 
  • wxPython : 오픈소스인 wxWidget 을 파이썬 용으로 바인딩한 것으로 완전 무료이며 PyQt 처럼 크로스 플랫폼 툴킷이다. C++ 로 작성되어 Tkinter 보다 빠르고 풍부한 기능을 제공하지만 파이썬 2.7까지만 지원한다.
  • PySide, PyGTK 등등.. 
<출처 - https://wikidocs.net/8170>

PyQt에 대해 간단히 검색해봤는데 정보도 굉장히 많아 보인다. 몇 가지 만들어서 업무에 활용하면 굉장히 재미있을 듯!

import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QMessageBox, QApplication


class MyWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        button = QPushButton('Btn', self)
        button.move(10,10)
        button.clicked.connect(self.message)
        self.show()

    def message(self):
        msg = QMessageBox(self)
        msg.setText("Ok! Clicked!")
        msg.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = MyWindow()
    sys.exit(app.exec())

pyQt5 는 위와 같은 코드로 구분되고 실행하면 아래처럼 윈도우 창이 열리는 것을 확인 할수 있다.


# 참고
  • https://www.slideshare.net/ravenkyu/pycon-2015-pyqt
  • https://opentutorials.org/module/544/4998

Continue reading

파이썬 공부 정보 모음 (저서 포함)

인터넷에는 파이썬에 관련한 자료와 심지어 도서까지 무궁무진하다! 너무너무 행복하다. : )
좋은 자료를 기록해놓고 시간 날 때마다 살펴봐야겠다.

파이썬을 여행하는 히치하이커를 위한 안내서
  • http://python-guide-kr.readthedocs.io/ko/latest/index.html
'해커랭크' 라는 사이트에서 주어지는 파이썬 문제 풀기

  • https://www.hackerrank.com/domains/python/py-introduction
파이썬을 배우는 최고의 방법, 아티클
  • https://nolboo.kim/blog/2014/08/10/the-best-way-to-learn-python/

Continue reading

Popular Posts

Recent Posts

Powered by Blogger.