'분류 전체보기'에 해당하는 글 314건


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 1, 2, 3 더하기
 
class Counter(object):
    save = None
 
    def init_save(self, N):
        if N < 3:
            N = 3
 
        self.save = [None] * (N+1)
        self.save[1= 1
        self.save[2= 2
        self.save[3= 4
 
    def count_of_combination(self, N):
        if N < 1:
            return 0
        elif self.save[N] != None:
            return self.save[N]
        else:
            result = (self.count_of_combination(N-1)
                      + self.count_of_combination(N-2)
                      + self.count_of_combination(N-3))
            self.save[N] = result
            # print('save[{}]={}'.format(N, result))
            return result
 
def main():
    T = int(input())
 
    counter = Counter()
 
    for i in range(T):
        N = int(input())
        counter.init_save(N)
        cnt = counter.count_of_combination(N)
        print(cnt)
 
if __name__ == '__main__':
    main()
 
cs





WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

http://www.bloter.net/archives/201445



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

<블로그 주인장의 말>

프로젝트를 진행하고 시간이 지난 후, 프로젝트를 재개하거나 다시 살펴봐야 할 일이 생겼을 때.

그 프로젝트를 다시 보려면 큰 각오가 필요하고 엄두가 안난다면?

이 책을 한번 읽어보자. 내가 코드를 클린하게 짜고 있는지.


---


코드는 요구사항의 상세한 표현이다


<클린코드의 4가지 원칙?>

중복을 피하라

한 기능만 수행하라

제대로 표현해라

작게 추상화해라


<우리는 저자다>
Javadoc에는 @author 필드가 있다

코드 작성을 글 작성처럼 이야기하는 듯 하다 (의도를 표현하는 글)


<좋은 코드를 작성하는 것은 오래 걸린다?>

80년대 에디터는 입력한 모든 커맨드를 기억했다. 그것을 재생시켜보면 실제로 코딩시간의 90%는 화면을 스크롤하고, 코드를 읽는 시간이었다고 한다

좋은 코드는 읽기 쉽다. 잘 안 읽히는 코드는, 코드 작성을 어렵게 만든다


변수/클래스는 명사구

함수/메서드는 동사구


<함수는 짧게>

함수길이는 최소한 한 화면에 들어와야 한다고 생각하고 있었지만,

이 책에서는 심지어 함수가 2~4줄 정도로 작아야 의도를 잘 표현한다고 이야기한다


함수의 최대 들여쓰기는 2단 이하를 추천한다

블록을 함수로 분리함으로써 2단 이하로 줄이는 것이다


함수 내 모든 라인의 추상화 레벨은 동일하게


SRP: Single Responsibility Principle

 - 가지 책임만 가져야 한다

OCP:Open Closed Principle

 - 변경에 닫혀있어야 한다 (new employee type이 추가될 때마다 case문을 추가해야한다)


앞부분에 Abstract Factory 패턴이 자주 나온다


<서술적인 이름 사용>

함수 이름이 길어도 괜찮다.

짧고 어려운 이름보다, 길고 서술적인 주석보다 좋다.


발음하기 쉬운 이름 사용


<파라메터>

파라메터 3개 이상은 피하자

특별한 이유가 없다면


많은 파라메터는 테스트도 어렵게 만든다


아웃풋 파라메터는 더 어렵다. 피하자


플래그 파라메터도 피하자

함수가 플래그에 따라 두가지 일을 한다고 대놓고 공표하는 셈이니까!

ex) render(True)


new Point(0,0)의 파라메터

이것은 한 값을 표현하는 두 요소이다. 두 요소에는 자연적인 순서도 있다


assertEquals(expected, actual)

이 함수는 2항을 피할수는 없지만, 항 사이 순서가 없다. 헷갈린다!


<오류코드 리턴보다는 예외 처리를 사용하라>

if문으로 에러코드를 리턴하면, caller는 에러코드를 "즉시" 처리해야 한다는 문제에 부딪힌다

하지만 try/catch문을 사용하면, 에러 처리 코드를 분리할 수 있다


또 하지만, 저자는 try/catch문이 코드 구조에 혼란을 일으키며 정상동작/에러처리 코드를 뒤섞어놓는다고 한다 (이해는 잘 안되지만)

그러므로 try, catch 블록 각각을 함수화 시켜야 한다고 이야기한다


좀더 추가설명을 하자면, 에러처리도 "한 작업"이므로 분리해야 한다는 것이다


<주석보다는 코드로 의도를 표현하라>

저자는 최대한 주석을 줄이라고 이야기한다

심지어 주석은 실패를 의미한다고 한다. 코드로 의도를 표현하는 데에 실패했다는 것이다



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

https://ko.wikipedia.org/wiki/%ED%8F%AC%ED%93%B0%EB%A6%AC%EC%A6%98#%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%97%90%EC%84%9C%EC%9D%98_%ED%8F%AC%ED%93%B0%EB%A6%AC%EC%A6%98_%EB%85%BC%EB%9E%80


대한민국에서 포퓰리즘은 "정책의 현실성이나 가치판단, 옳고 그름 등 본래 목적을 외면하고 대중적 인기에만 영합해 목적을 달성하려는 정치 행태", "인기영합주의", "대중추수주의" 등과 같은 부정적인 의미로 사용되고 있다.



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

Xilinx Gnome-power error

Linux 2018. 4. 17. 02:14

https://stackoverflow.com/a/32578786


리눅스 GUI에서 화면이 뜨지 않을 때, console로 진입하는 핫키는 Ctrl+Alt+F2이다


Xilinx default user

user: ise

password: xilinx




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

Enable/Disable Hyper-V

etc 2018. 4. 17. 01:22

https://stackoverflow.com/a/35812945


disable

bcdedit /set hypervisorlaunchtype off


enable

bcdedit /set hypervisorlaunchtype auto 




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

Preemptive Scheduling

종류

 - round-robin

 - priority algorithm

특징

 - 현재 프로세스의 작업이 완료되지 않았음에도, 조건이 만족되면 다른 프로세스가 리소스를 선점할수 있다


Non-preemptive Scheduling

종류

 - FIFO

 - SJF

특징

 - 현재 프로세스의 작업이 완료될 때까지 다른 프로레스가 리소스를 선점할 수 없다


'etc' 카테고리의 다른 글

대한민국에서의 포퓰리즘 의미 (populism)  (3) 2018.04.17
Enable/Disable Hyper-V  (0) 2018.04.17
나이브 베이즈 분류  (0) 2018.04.15
[term] BNF: Backus–Naur form  (0) 2018.04.15
[Web] Content-Type application/x-ndjson  (0) 2018.04.13

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

나이브 베이즈 분류

etc 2018. 4. 15. 16:26

http://gomguard.tistory.com/69


텍스트를 분석하는 (의미를 알아내는) Language Model

텍스트 분석 Machine Learning


이라는 토픽에서 베이스 지식이다




나이브 베이즈 분류를 이해하기 위해서는 베이지안 룰을 알아야 한다

위 링크에 그 설명이 있다


'etc' 카테고리의 다른 글

Enable/Disable Hyper-V  (0) 2018.04.17
CPU Scheduling Policy: preemtive vs nonpreemtive  (0) 2018.04.16
[term] BNF: Backus–Naur form  (0) 2018.04.15
[Web] Content-Type application/x-ndjson  (0) 2018.04.13
NTFS 저널링 파일 시스템 vs FAT  (0) 2018.04.13

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

[term] BNF: Backus–Naur form

etc 2018. 4. 15. 16:12

Naive Bayesian classification이랑 헷갈렸다



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

Content-Type에는 여러 종류가 있는데, 그 중 json을 보내기 위한 Type이 있다

그중, 여러개의 json을 보내기 위한 type도 존재하는데 아래이다


Content-Type: application/x-ndjson  


예를들면 이렇게


{ ... }

{ ... }


Elasticsearch Bulk API가 그러한 형식을 이용한다


https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-bulk.html



'etc' 카테고리의 다른 글

나이브 베이즈 분류  (0) 2018.04.15
[term] BNF: Backus–Naur form  (0) 2018.04.15
NTFS 저널링 파일 시스템 vs FAT  (0) 2018.04.13
인문학 추천도서 링크 모음  (0) 2018.04.12
[elasticsearch] scan, scroll  (0) 2018.04.11

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

NTFS와 FAT32는 File System의 종류이다


우분투 리눅스에서, 안전제거 없이 USB를 뽑으면 쓰기 권한이 거부된다?

http://moordev.tistory.com/51


위 글에서는 USB 안전제거와 USB 쓰기 권한에 대해서 언급하고 있다

USB 안전제거의 중요성과, 안전제거를 하지 않았을 때 (commit이 되지 않았을 때) NTFS 저널링 시스템에 대해서 언급한다

아래는 저널링 시스템 위키 링크


NTFS 저널링 시스템

https://ko.wikipedia.org/wiki/%EC%A0%80%EB%84%90%EB%A7%81_%ED%8C%8C%EC%9D%BC_%EC%8B%9C%EC%8A%A4%ED%85%9C


저널은 파일 시스템 내에 기록되는 로그를 의미하는데, 이 저널에서 변경사항을 추적하여

파일시스템에 에러가 발생했을 때 빠르게 복구하는 것이다

FAT32에는 저널링 기능이 없으므로, 비교적 손실 가능성이 크다


꼭 USB 안전제거를 해주도록 하자

(파일쓰기를 수행하였을 때)


'etc' 카테고리의 다른 글

[term] BNF: Backus–Naur form  (0) 2018.04.15
[Web] Content-Type application/x-ndjson  (0) 2018.04.13
인문학 추천도서 링크 모음  (0) 2018.04.12
[elasticsearch] scan, scroll  (0) 2018.04.11
[elasticsearch] Result window is too large error  (0) 2018.04.11

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

elasticsearch-dsl에는 Search class가 있다


Search class는 scan() API가 있다


이것은 elasticsearch-py.helpers.scan() API의 wrapper로서, 

이것은 elasticsearch search의 scroll API의 wrapper이다


이 scan() API를 사용하려는데, 아래 코드는 에러가 발생했다


우선 Post라는 DocType 클래스를 정의한 후이다


Post.search().scan()


--------------


This feature is experimental and may be subject to change.


위에서 작성하던 DocType.search()이라는 API는, experimental function이라고 한다

그런 이유에서 필자는 원치않는 동작을 체험하였기 때문에

DocType.search() 대신 Search() class를 사용하는 것을 추천한다


2018.04.12.




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

StreamHandler


그냥 쓰면 된다


기본적인 핸들러 사용법은 아래


log = logging.getLogger('nl-api') # get logger log.setLevel(logging.DEBUG) # set level to logger fmt = logging.Formatter(logging.BASIC_FORMAT) # create formatter ch = logging.StreamHandler() # create handler
ch.setFormatter(fmt) # set formatter to handler
ch.setLevel(logging.DEBUG) # set level to handler
log.addHandler(ch) # add handler to logger


RotatingFileHandler


파일핸들러를 사용해도 되지만, 오랫동안/많이 로그를 남기면 파일 사이즈가 커질 수 있다

이 핸들러와 파일핸들러의 차이점은, 기준 크기 이상이 되면 rollover하여 새로운 파일에 로깅한다는 것이다

option은 filename과 maxBytes, backupCount이다

maxBytes는 로그파일 하나의 기준 크기이고, backupCount는 로그파일의 갯수이다

maxBytes * backupCount 용량 이상의 로그가 쌓일경우, 오래된 것부터 삭제된다


maxBytes는 원하는 로그파일당 사이즈를 주면 되겠고

backupCount는 여유있게 주면 되겠다 (문제없는한 충분히)


FileHandler보다는 advanced하다




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

대학생 인문학 권장도서

https://blog.naver.com/leekyung21c/70160881875


대학생 인문도서

http://hangilsa.tistory.com/324


나미야 잡화점의 기적



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/



class logging.Logger
propagate

If this attribute evaluates to true, events logged to this logger will be passed to the handlers of higher level (ancestor) loggers, in addition to any handlers attached to this logger. Messages are passed directly to the ancestor loggers’ handlers - neither the level nor filters of the ancestor loggers in question are considered.

If this evaluates to false, logging messages are not passed to the handlers of ancestor loggers.

The constructor sets this attribute to True.


Logger의 propagate의 default value는 True이다


propagate=True이면, higher level logger's handlers에게 logging이 passing된다


level이나, handler에 대한 처리순서는 다음과 같다


log = logging.getLogger('test')


log.debug('hello')



1. log에서 처리 (log.level이 debug보다 높을경우 종료, 즉 handler도 패스되지 않음)

2. log's handlers에서 처리 (각 handlers의 level에 따라 처리)

3. log's ancestors's handlers (마찬가지로 각 handlers의 level의 따라 처리) (ancestors logger는 거치지않음)


logger들은 입구이고, handler들은 출구이다


---


logger의 level이 NOTSET일 경우에는, 아무 로그도 처리하지 않는다

handler의 level이 NOTSET일 경우에는, 모든 로그를 처리한다



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

[elasticsearch] scan, scroll

etc 2018. 4. 11. 22:51

elasticsearch-dsl이나, elasticsearch-py.helpers에는 scan이라는 API가 있다


이 API들은 내부적으로 보면 elasticsearch API의 scroll을 사용한다


scroll은 효율성을 위해 sort: ['_doc']를 사용한다


즉, sorting된 scroll은 지원하지 않는다 (혹은 추천하지 않는다)




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

위 에러는 아래와 같은 경우에 발생한다


def func(**kwargs): pass


func(param='temp1', param='temp2')


param이라는 keyword argument를 여러 개(multiple) 보냈을 때 발생한다




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

search api에서, from + size <= 10,000 이어야 한다


그 이상은 scroll api를 활용하라고 한다


'etc' 카테고리의 다른 글

인문학 추천도서 링크 모음  (0) 2018.04.12
[elasticsearch] scan, scroll  (0) 2018.04.11
elasticsearch object vs nested type  (0) 2018.04.11
Natural Language Basic, Google NL API  (0) 2018.04.11
카메라 입문자의 링크 스크랩 / 메모  (0) 2018.04.09

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

DocType.save()

return value

 - True: the document was created

 - False: the document was overwritten


if save fails -> raise exception



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html


The nested type is a specialised version of the object datatype that allows arrays of objects to be indexed and queried independently of each other


nested type은 object type의 특별한 버전이다

우리가 objects array를 저장했더라도, search 할때는 우리의 의도와는 다른 결과가 나온다 (원하는 오브젝트가 서치되지 않는다)


그런 문제를 방지하기 위해, (array 안에서) object를 각각 independently하게 저장/검색하기 위해 nested type을 사용하자


---


mapping에서, nested 타입 == doc-type이라고 생각하면 된다

더 쉽게 말하면, properties라는 필드에 data filed들을 선언해주면 된다는 이야기다


elasticsearch-dsl에서도 Nested(properties={'field': Type(), ...})과 같이 작성하면 된다




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

Google NL API를 사용해보면, sentiment, magnitude, entity, salience 등 여러가지 term들이 등장한다

그 의미들을 알기위해 Natural Language Basic부터 알아보고 가자


https://brunch.co.kr/@mapthecity/25

https://cloud.google.com/natural-language/docs/basics


sentiment: 감정

 - score: -1 ~ 1까지, 부정/보통/긍정을 나타내는 수치

 - magnitude: score의 강도 (아직은 잘 모르겠다)

 - document/sentences 단위로 측정한다


entity: well-known-text


salience: 각 entity별 중요도를 나타내는 수치 (문장 내에서)

 - 핵심 키워드를 판별하기 위한 수치


---


API

analyze entity (엔티티 분석)

analyze sentiment (of doc or sentences) (감정 분석)

analyze entity sentiment (엔티티 감정 분석)

analyze syntax (문법 분석)

classify content categories (내용 분류)



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

unicode string을 의미하는 prefix로서, python2의 syntax이다 (python3에서는 굳이 붙이지 않아도 된다)


https://stackoverflow.com/a/2464968




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

입문자를 위한 미러리스 정리 요약

http://www.ppomppu.co.kr/zboard/view.php?id=camera&no=32284



“디지털 카메라의 심장” 센서 완전 정복

http://www.itworld.co.kr/print/84145

센서의 타입: CCD < CMOS (현재 기준)


카메라 감도(ISO)란?

http://openeidos.tistory.com/888

고감도의 치명적인 단점, 노이즈


노출과 조리개, 셔터스피드, ISO 그리고 피사계심도

https://underwater.kr/info/21014


화각과 광각/표준/망원

http://it.donga.com/15359/

광각: 화각(FOV)이 넓고 초점거리(focal length)가 작다

망원: 화각이 좁고 초점거리가 크다


초점거리

http://www.sony.co.kr/electronics/focal-length-angle-of-view-perspective

초점거리가 작다(광각렌즈) -> 배율이 낮다 -> 피사체에 물리적으로 가까이 접근해야한다

화각은 초점거리에 의해 결정된다


---


노출(빛의 양)을 높이는 방법

 - 조리개 값 줄이기 (조리개 최대한 열기)

 - 셔터스피드 낮추기 (빛 확보시간 늘리기)

 - ISO 높이기 (빛에 대한 감도 높이기)


---


폰카의 불편함: 야간촬영 시 노이즈 발생

 - ISO가 높기때문 (ISO: "카메라의 이미지센서"의 빛에 대한 감도의 단위)

ISO를 낮춘다면?

 - 빛에 대한 감도가 낮아진다 -> 사진이 어두워진다

고감도(높은 ISO)를 유지하려면?

 - 셔터스피드를 낮추기 (빛을 수집할 시간을 늘린다) -> 삼각대가 없으면 사진이 흔들린다

 - 또는 조리개 (구경)값을 낮춘다 -> DOF(Depth Of Field, 피사계심도)가 얕아진다 (초점이 안맞는 거리는 blur효과)


결론: 고감도(high ISO)로 야간촬영을 해도 노이즈가 적으려면?

 - 이미지 센서가 클수록 고감도 저노이즈라고 알고있음

 - 폰카는 초소형 센서를 사용함


---


최신 스마트폰들은 전문가 모드로 위 설정값들을 조절하여 노이즈를 크게 줄일 수 있다

이제 스마트폰 카메라 vs 디카(미러리스, DSLR 등)의 유일한 차이점은 이미지 센서 사이즈인데

이것이 사진에 어떤 영향을 미치느냐?


오토 모드로 찍을 때, 수동 조절로 찍을 때 두가지를 비교해봐야 될것같다


---


AF: Auto Focus / MF: Manual Focus


---


폰카 vs 미러리스 차이

이미지 센서 크기 차이로 인한 고감도 저노이즈

렌즈 교체 가능


---


촬영 설정값

 - 조리개 값

 - 셔터 스피드

 - ISO(감도)


렌즈

 - 화각대 (18-50mm) - 렌즈의 옵티컬 센터와 카메라 바디 이미지센서 사이의 거리를 말한다

   숫자가 낮으면 광각렌즈, 높으면 망원렌즈

   35mm와 같은 건 단렌즈, 18-50mm같은 건 줌렌즈

 - 최대 조리개


'etc' 카테고리의 다른 글

elasticsearch object vs nested type  (0) 2018.04.11
Natural Language Basic, Google NL API  (0) 2018.04.11
[Android] 저장공간 부족 해결방법  (0) 2018.04.08
SDHC?: High storage SD  (0) 2018.04.06
[HDL] VHDL rising edge, D-FlipFlop  (0) 2018.04.05

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

https://stackoverflow.com/a/4673436



'Web' 카테고리의 다른 글

[Javascript] var vs let 차이  (0) 2018.04.23
[Web] elasticsearch.js  (0) 2018.04.23
[Web] 네이버 캘린더 오픈API, CalDAV  (0) 2018.04.08
[Web] rudux: reduce + flux  (0) 2018.04.05
[python] pip install 패키지 버젼 범위설정  (0) 2018.04.04

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

네이버 캘린더 오픈API는 일정추가 밖에 없다

필자는 일정 가져오기를 원했는데, 구글링을 하던도중 CalDAV를 듣게 되었다


네이버 캘린더가 CalDAV 기반인지, CalDAV를 서포트하는 것인지는 잘 모르겠지만.


https://en.wikipedia.org/wiki/CalDAV


CalDAV는 WebDAV 기반 캘린더링이라는 프로토콜 명세(specification)이다

그럼 WebDAV는?


https://ko.wikipedia.org/wiki/WebDAV


WebDAV도 마찬가지로 프로토콜 명세로서, Web Distributed Authoring and Versioning의 약자이다

HTTP의 익스텐션 프로토콜이라고 한다


---


저 프로토콜 명세에 맞춰서 구현하기에는 시간도 많이들고, 네이버에서 얼마나 명세에 맞춰서 개발되었는지도 모르기 때문에 패스


네이버 로그인 오픈API를 사용고

캘린터 REST API를 사용할수 있는지 확인해봐야 겠다


---


아무튼 CalDAV, WebDAV라는 프로토콜에 대해 접하게 되었다



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

필자는 갤럭시 S2와 갤럭시 노트4를 사용해왔다


갤럭시 S2는 애플리케이션을 저장하는 스토리지의 파티션이 독단적으로 분리되어있고 그 용량이 작아서, 앱 삭제 외에는 저장공간 부족 에러를 해결할 방법이 없었다


하지만 갤럭시 노트4와 같은 OS에서는 시스템 스토리지를 공유한다


그래서, 다른 데이터를 정리하여 저장공간 부족 에러를 해결할 수 있다


<해결방법>


당연히 데이터 제거가 1순위다


그리고 제거순위는 용량순으로, 아래와 같다


1. 동영상 (비디오)

2. 음악 (오디오)

3. 그외 대용량 파일

4. 사진 (이미지)

5. 그외 파일


하지만 이것들을 무작정 제거하긴 어렵다. 그래서 이것을 SD카드로 옮기는 것을 추천

SD카드의 용량이 아무리 많아도, 시스템 스토리지로 사용될 순 없기 때문이다
(SD카드 용량이 이렇게 많은데 왜 저장공간이 부족하다고 하지?에 대한 답)


사진들은 옮기기 귀찮으니, 클라우드를 사용하자

필자는 네이버 클라우드를 사용하였다


그 다음 방법으로는, 앱 데이터를 삭제하는 것이다

특히 카카오톡, 사용하다보면 기가 단위의 용량을 차지한다


하지만 데이터는 소중하므로, 최후의 수단으로 사용해주자

정말 아까우면 백업해놓고 저장하기로


그외에, 문서 등은 전체 스토리지로 보면 티끌만큼만 차지하므로 (기하급수적으로 많지 않다면)

저장하지 않아도 된다


'etc' 카테고리의 다른 글

Natural Language Basic, Google NL API  (0) 2018.04.11
카메라 입문자의 링크 스크랩 / 메모  (0) 2018.04.09
SDHC?: High storage SD  (0) 2018.04.06
[HDL] VHDL rising edge, D-FlipFlop  (0) 2018.04.05
[elasticsearch5] Text vs String (and Keyword)  (0) 2018.04.04

WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

패키지의 모듈 뿐만아니라 내부 패키지도 모두 import 해준다는 차이점이 있다 (바닐라 파이썬 인터프리터는 안됨)


import urllib


urllib.parse # python에서는 에러, ipython에서는 가능



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

DocType 클래스를 정의했다면 (이름은 Post이라고 가정)


Post.init()으로 mapping을 populate시킬 수 있다


그리고 그 mapping을 dict 또는 string으로 얻고싶다면 아래와 같다


Post._doc_type.mapping.to_dict()


---


init()에서 에러가 발생한다면 (text to keyword conflict)

reindex 해야하므로 참고하자



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

http://enjoytools.net/xe/board_PZRP31/7961


OSError: raw write() returned invalid length 112 (should have been between 0 
and 56)

아래 라인을 추가하면 된다고 한다

100% 확신은 아니지만, 아래 코드 추가 후 에러가 발생하지 않았다


import win_unicode_console 

win_unicode_console.enable()


필자의 파이썬 버전은 3.5.4이다



WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

python에는 여러가지 SQL ORM이 있다


필자가 자주 본 것은 Django's ORM, SQLAlchemy(flask에서 사용하는)


이번에 SQLAlchemy를 간단하게 사용하므로 기록해놓으려 한다


https://www.pythoncentral.io/overview-sqlalchemys-expression-language-orm-queries/


declarative_base(), 

Column, String, Integer, 

create_engine('sqlite:///')


가장 기초적으로는 이러한 것들만 있으면 된다

'sqlite:///' 는 in-memory db이다


여기서 궁금했던 것은, 두가지


String vs VARCHAR? -> length 제한이 없다면 String으로 사용하자 (https://stackoverflow.com/a/41136521)


sqlite URL?

absolute path: sqlite:///C:\\Users\\...\\data\\db.db

relative path: sqlite:///data/db.db


db 파일이 없을경우, 새로 생성된다


----------


http://docs.sqlalchemy.org/en/latest/orm/tutorial.html#common-filter-operators


1. create_engine()으로 DB를 만든다

2. sessionmaker()로 Session class을 생성하고, configure하고, Session instance를 생성한다

3. Session.query(<Table class>).first() -> 첫번째 row를 가져온다




WRITTEN BY
hojongs
블로그 옮겼습니다 https://hojongs.github.io/

사용중인 블로그 스킨이 방명록을 지원하지 않습니다.

초대장을 받고싶으신 분들은 댓글 또는 블로그 설명의 메일로.