파이썬 λΆ€λ™μ†Œμˆ˜μ  링크

파이썬 λΆ€λ™μ†Œμˆ˜μ  κ΄€λ ¨ 링크, 보면 이해가 λœλ‹€. === 파이썬 μ½”λ”© 도μž₯ 베타: 48.5 μ‹€μˆ˜ κ°’μ˜ 였차 Data Science School νŒŒμ΄μ¬μ—μ„œ 뢀동 μ†Œμˆ˜μ  였차 ν•΄κ²°ν•˜κΈ° 계산기 μ—‘μ‹€λ‘  - μœ„ν‚€λ°±κ³Ό, 우리 λͺ¨λ‘μ˜ 백과사전 κ³ μ •μ†Œμˆ˜μ , λΆ€λ™μ†Œμˆ˜μ  κ΄€ν•œ 이야기

Rust κΈ°λ³Έ 문법

λ³€μˆ˜ λ³€μˆ˜λŠ” λΆˆλ³€μ„± κ°€λ³€μ„± λ³€μˆ˜λŠ” mut λ₯Ό μΆ”κ°€ let mut x = 5; μƒμˆ˜ μƒμˆ˜λŠ” mut 을 μ“Έμˆ˜ μ—†μŒ. λΆˆλ³€μ„± κ·Έ 자체 const μœ ν˜•(데이터 νƒ€μž…)을 μ„ μ–Έν•΄μ•Όν•œλ‹€. μƒμˆ˜ν‘œν˜„μ‹μœΌλ‘œλ§Œ μ„€μ •, μ‹€ν–‰μ‹œκ°„μ— 섀정될 수 μ—†λ‹€. const MAX_POINTS: u32 = 100_000; Shadowing 같은 λ³€μˆ˜ 이름을 μ¨μ„œ κ°€λ¦¬λŠ” 것 let x = 1; let x = x+1; mut μ‚¬μš©κ³Όμ˜ 차이점 변경이후 λ³€μˆ˜κ°€ λΆˆλ³€μ„±μ„ κ°€μ§€λŠλƒ μœ ν˜•(데이터 νƒ€μž…)을 λ³€κ²½ ν•  수 μžˆμœΌλ©΄μ„œ, 같은 λ³€μˆ˜λͺ…을 μœ μ§€ mut 을 μ΄μš©λ”λΌλ„ μœ ν˜• 변경을 ν•΄μ„œ 값을 λŒ€μž… μ‹œν‚¬ μˆ˜λŠ” μ—†λ‹€. 데이터 νƒ€μž… λŸ¬μŠ€νŠΈλŠ” νƒ€μž…μ΄ κ³ μ •λœ μ–Έμ–΄ 슀칼라 νƒ€μž… : ν•˜λ‚˜μ˜ κ°’μœΌλ‘œ ν‘œν˜„λ˜λŠ” νƒ€μž… μ •μˆ˜ν˜• 8λΉ„νŠΈ : i8(κ°€μž₯쒋은 선택, κ°€μž₯ λΉ λ₯΄λ‹€), u8 16λΉ„νŠΈ : i16, u16 32λΉ„νŠΈ : i32, u32

Rust Cargo

cargo λͺ…λ Ήμ–΄ 정리 ν”„λ‘œμ νŠΈ 생성 cargo new β€”bin <app> β”œβ”€β”€ Cargo.lock β”œβ”€β”€ Cargo.toml └── src └── main.rs 1 directory, 3 files λΉŒλ“œ 및 μ‹€ν–‰ cargo build: 컴파일 cargo run : λ°”λ‘œ μ‹€ν–‰ cargo check : 문법체크 cargo clean : 컴파일 정리 cargo new : ν”„λ‘œμ νŠΈ 생성 cargo init : ν”„λ‘œμ νŠΈ 생성(이미 μ‘΄μž¬ν•˜λŠ” 디렉토리에 생성 κ°€λŠ₯) cargo test : tests μ‹€ν–‰ cargo bench : 벀치마크 μ‹€ν–‰ cargo update : μ˜μ‘΄μ„± μ—…λ°μ΄νŠΈ cargo search : crates 검색 $ cargo search web Updating registry `https://github.com/rust-lang/crates.io-index` web = "0.0.2" # ... cargo-web = "0.6.16" # A Cargo subcommand for the client-side Web actix-web-requestid = "0.1.2&q

flask νŒŒμΌμ—…λ‘œλ“œ κ²€μ¦ν•˜κΈ°

파일 μ—…λ‘œλ“œμ˜ 경우 μ£Όμ˜ν•  점이(μ—…λ‘œλ“œλ₯Ό λ‹Ήν•˜λŠ” μž…μž₯μ—μ„œ) μ•…μ„±νŒŒμΌ ν˜Ήμ€ μ›μΉ˜ μ•ŠλŠ” νŒŒμΌλ“€μ΄ λ“€μ–΄μ˜¬ 수 μžˆμŒμ„ 항상 μΈμ§€ν•΄μ•Όν•œλ‹€. κ·Έλž˜μ„œ μ™ λ§Œν•˜λ©΄ 파일 μ—…λ‘œλ“œλ₯Ό 잘 μ•ˆλ§Œλ“€κ±°λ‚˜ λ‚΄λΆ€μ—μ„œ λͺ‡λͺ…μ˜ μΈκ°€λœ μ‚¬μš©μžλ§Œ λ”°λ‘œ μ—…λ‘œλ“œ 메뉴λ₯Ό 보이게 ν•΄μ„œ μ œκ³΅ν•˜κ±°λ‚˜ ν•˜λŠ” μ‹μœΌλ‘œ ν•˜κ³€ ν–ˆμ—ˆλ‹€. κ·Έλž˜λ„ μ—…λ‘œλ“œκ°€ ν•„μš”ν•  경우 μ•„λž˜μ™€ 같은 λ°©λ²•μœΌλ‘œ μ œν•œ ν•  수 μžˆλ‹€. 파일 ν™•μž₯자 체크 μ‚¬μ΄μ¦ˆ 체크 mime type 체크 κ·Έλ ‡μ§€λ§Œ, 파일 ν™•μž₯μžλŠ” μ–Έμ œλ‚˜ λ³€κ²½κ°€λŠ₯ν•˜κΈ° λ•Œλ¬Έμ— μœ„ν—˜ν•˜λ‹€. 예λ₯Ό λ“€μ–΄, μ•…μ„± μžλ°”μŠ€ν¬λ¦½νŠΈ, μ›Ήμ‰˜ 같은 νŒŒμΌλ“€μ„ .png, .jpg, .docx λ“±κ³Ό 같이 μ—…λ¬΄μ—μ„œ 자주 μ‚¬μš©ν•˜λŠ” 파일 ν™•μž₯자둜 λ³€κ²½ν•΄μ„œ 올릴 여지가 μ—¬μ „νžˆ μžˆλ‹€. mime type 체크 μ—­μ‹œ μ›Ήν”„λ ˆμž„μ›Œν¬ μƒμ—μ„œ λ‚΄λ €μ£ΌλŠ” 값을 보면 λ¬Έμ œκ°€ 생긴닀. http://flask.pocoo.org/docs/1.0/patterns/fileuploads/ Flask 의 λ¬Έμ„œμ—μ„œλŠ” 파일 μ‚¬μ΄μ¦ˆμ— λŒ€ν•œ μ œν•œκ³Ό ν™•μž₯μžμ— λŒ€ν•œ μ œν•œ 그리고 secure_filename() ν•¨μˆ˜λ₯Ό ν†΅ν•œ μ„œλ²„λ‚΄μ—μ„œμ˜ λ‹€λ₯Έ 경둜둜의 접근을 μ œν•œν•˜κ³  μžˆλ‹€. μœ„μ˜ 링크에 μžˆλŠ” μ†ŒμŠ€λ₯Ό 가지고 Whale.exe νŒŒμΌμ„ Whale.pdf 둜 λ³€κ²½ν•œ 후에 파일 μ—…λ‘œλ“œλ₯Ό 올리고 μ•„λž˜μ™€ 같은 μ½”λ“œλ‘œ mimetype 을 찍어봀닀. @app.route('/upload', methods=['POST']) def

SQLAlchemy Join #3 One to One

One To One μΌλŒ€μΌ κ΄€κ³„μ—μ„œλŠ” μ–‘μͺ½ λ§€νΌμ—μ„œ 슀칼라 속성을 ν†΅ν•œ μ–‘λ°©ν–₯ 관계가 ν•„μˆ˜μ μ΄λ‹€. 이것을 μœ„ν•΄μ„œ uselist flag κ°€ μžˆλŠ”λ° 이것은 λ§Žμ€μͺ½("many” side of the relationship.)의 μ»¬λž™μ…˜ λŒ€μ‹ μ— 슀칼라 μ†μ„±μ˜ μœ„μΉ˜λ₯Ό 가리킨닀. μΌλŒ€λ‹€ λ₯Ό μΌλŒ€μΌλ‘œ λ°”κΎΈλ©΄, class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) child = relationship("Child", uselist=False, back_populates="parent") class Child(Base): __tablename__ = 'child' id = Column(Integer, primary_key=True) parent_id = Column(Integer, ForeignKey('parent.id')) parent = relationship("Parent", back_populates="child") λ‹€λŒ€μΌμ˜ 경우, class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=Tru

SQLAlchemy Join #2 Many To One

Many To One λ‹€λŒ€μΌ κ΄€κ³„μ—μ„œ child λ₯Ό μ°Έμ‘°ν•˜λŠ” μ™Έλž˜ν‚€λŠ” parent ν΄λž˜μŠ€μ— μœ„μΉ˜ν•΄μžˆλ‹€. relationship() ν•¨μˆ˜ λŠ” parent ν΄λž˜μŠ€μ— μœ„μΉ˜ν•΄μžˆμœΌλ©°, scalar-holding 속성이 생성될것이닀. class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) child_id = Column(Integer, ForeignKey('child.id')) child = relationship("Child") class Child(Base): __tablename__ = 'child' id = Column(Integer, primary_key=True) μ–‘λ°©ν–₯ 연결을 λ‘λ²ˆμ§Έ relationship() λ₯Ό μΆ”κ°€ν•˜κ³  μ–‘μͺ½μ—relationship.back_populates νŒŒλΌλ―Έν„°λ₯Ό μ–‘μͺ½μ— μ μš©ν•˜λ©΄ λœλ‹€. class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) child_id = Column(Integer, ForeignKey('child.id')) child = relationship("Child", back_populates="parents") class Child(Base):

PyconKR 2018 ν›„κΈ° 2일차

2일차 ν›„κΈ° 1일차 ν›„κΈ° λ³΄λŸ¬κ°€κΈ° λ‚˜λˆ„κ³  λ‚˜λˆ„κΈ°: 파이썬으둜 μ½”λ“œ λ¦¬νŒ©ν† λ§ν•˜κΈ° -NiΓ±o R. Eclarin- 외ꡭ뢄이 ν•˜λŠ” μ„Έλ―Έλ‚˜λŠ” 사싀 개인적으둜 잘 λ“£μ§€λŠ” μ•ŠλŠ”λ° λ¦¬νŒ©ν† λ§μ΄λΌλŠ” 해묡은 주제λ₯Ό 가지고 μ™”κΈΈλž˜ ν•œλ²ˆ λ“€μ–΄λ΄€λ‹€. 생각보닀 재밌게 잘 μ„€λͺ…을 ν•΄μ£Όμ—ˆκ³  원둠적인 이야기 λ³΄λ‹€λŠ” μ‹€μ œ ν”„λ‘œμ νŠΈλ₯Ό ν•˜λ©΄μ„œ μ‹€μš©μ μΈ λ¦¬νŒ©ν† λ§ μœ„μ£Όλ‘œ μ„€λͺ…을 ν•΄μ£Όμ—ˆλ‹€. λ‹¨μˆœνžˆ 쀑볡을 μ œκ±°ν•˜κ±°λ‚˜, 해쉬화λ₯Ό ν•˜λŠ”κ²ƒλ„ μ€‘μš”ν•˜μ§€λ§Œ, λ­”κ°€ 같이 μΌν•˜λŠ” μ‚¬λžŒλ“€μ—κ²Œ μ–΄λ–»κ²Œ μ„€λͺ…ν•  것인지도 μ€‘μš”ν•˜λ‹€λŠ” μ• κΈ°λ₯Ό ν–ˆλ˜κ²ƒ κ°™λ‹€. μΆ”μ²œμ‹œμŠ€ν…œμ„ μœ„ν•œ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„ 개발 ν›„κΈ° -κΉ€κ΄‘μ„­- 이번 νŒŒμ΄μ½˜μ—μ„œ κ°€μž₯ μ’‹μ•˜λ˜ μ„Έμ…˜μ΄μ—ˆλ‹€. μΉ΄μΉ΄μ˜€μ—μ„œ νŒŒμ΄μ¬μ„ μ“°λ‚˜?

PyconKR 2018 ν›„κΈ° 1일차

λͺ‡λ…„째인지 λͺ¨λ₯΄κ² μ§€λ§Œ μ°Έμ—¬ν•˜κ³  μžˆλ‹€. λ‚˜μ΄κ°€ λ“€μ–΄μ„œ κ·ΈλŸ°μ§€ 점점 같이 κ°”λ˜ 뢄듀이 보이지 μ•Šκ±°λ‚˜ ν•˜λŠ”κ²ƒ 같은데 이 μ—­μ‹œ 개발자의 μˆ™λͺ…이 μ•„λ‹κΉŒ ν•˜λŠ” 생각이 λ“ λ‹€. λ‚˜λŠ” μ•„λ‚΄κ°€ 파이콘 κ°€λŠ”κ²ƒμ„ 1년에 ν•œλ²ˆμ΄κΈ°λ•Œλ¬Έμ— 뭐라고 ν•˜μ§€ μ•Šμ§€λ§Œ, 주말2일 평일1일을 μ„Έλ―Έλ‚˜μ— μ“΄λ‹€λŠ” 건은 μ†”μ§νžˆ 쉽지 μ•Šλ‹€. μ•„μ‰½κ²Œλ„ μ˜¬ν•΄λŠ” λΌμ΄νŠΈλ‹ ν† ν¬λŠ” ν•¨κ»˜ν•˜μ§€ λͺ»ν–ˆλ‹€. λ‚΄λ…„μ—λŠ” 아이가 λ‘˜μ΄λΌμ„œ ν•œ 아이λ₯Ό μ•„μ΄λŒλ΄„μ— 맑기고 봐야할 것 κ°™λ‹€. νŠœν† λ¦¬μ–Ό 처음 도전해본 νŠœν† λ¦¬μ–Όμ΄μ—ˆκ³ , 개인적으둜 asyncio, 비동기 ν”„λ‘œκ·Έλž˜λ°μ— λŒ€ν•΄μ„œ κΆκΈˆν–ˆλ˜ν„°λΌ μ‹ μ²­ν•˜κ²Œ λ˜μ—ˆλ‹€. νŠœν† λ¦¬μ–Όμ„ ν•˜κΈ° 전에 파이콘 ν™ˆνŽ˜μ΄μ§€μ— μžˆλŠ” Jonas Obrist의 β€œArtisanal Async Adventures” λ°œν‘œλ₯Ό 보고 κ°”λ‹€. 쀑간에 잘 λͺ» μ•Œμ•„ λ“£λŠ” 뢀뢄이 μžˆμ–΄μ„œ 일단 νŠœν† λ¦¬μ–Όμ„ 톡해

SQLAlchemy Join #1 One To Many

SQLAlchemy Join 에 λŒ€ν•΄μ„œ λ§‰μ—°ν•˜κ²Œ μ“°λ‹€λ³΄λ‹ˆ μ—¬λŸ¬κ°€μ§€ 관계 ν…Œμ΄λΈ”μƒν™©μ—μ„œ μ œλŒ€λ‘œ μ‚¬μš©ν•˜μ§€ λͺ»ν•˜κ³  μˆ˜λ°•κ²‰ν•£κΈ°μ‹μœΌλ‘œ μ“°λŠ” κ²½μš°κ°€ λ§Žμ•˜λ‹€. κ·Έλž˜μ„œ 곡식 λ¬Έμ„œμƒμ˜ Join κ΄€λ ¨ λΆ€λΆ„(μ•„λž˜μ˜ URL)을 λ”°λΌν•˜λ©΄μ„œ λ§‰νžˆλŠ” 뢀뢄을 ν’€μ–΄λ³΄κ³ μž ν•œλ‹€. http://docs.sqlalchemy.org/en/latest/orm/relationships.html Basic Relationship Patterns One To Many(μΌλŒ€λ‹€) μΌλŒ€λ‹€ κ΄€κ³„λŠ” parent λ₯Ό μ°Έμ‘°ν•˜λŠ” μ™Έλž˜ν‚€λ₯Ό child ν…Œμ΄λΈ”μ— μ€€λ‹€. child 의 μ»¬λ ‰μ…˜μ„ κ°€μ Έμ˜€κΈ° μœ„ν•΄μ„œ relationship() ν•¨μˆ˜λŠ” parent 에 μœ„μΉ˜μ‹œν‚¨λ‹€. class Parent(Base): __tablename__ = 'parent' id = Column(Integer, primary_key=True) children = relationship("Child") class Child(Base): __tablename__ = 'child' id = Column(Integer, primary_key=True) parent_id = Column(Integer, ForeignKey('parent.id')) def __repr__(self): return str({ 'id': self.id,

검색엔진 λ‹€μŒμ€? μŒμ„±μΈμ‹μ—”μ§„?

2010λ…„κ²½ μœˆλ„μš°μ¦ˆμ— κΉ”λ €μžˆλŠ” 인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬μ— λŒ€ν•œ λ°˜λ…μ  κ΄€λ ¨ μ΄μŠˆκ°€ μžˆμ—ˆλ‹€. λ‚˜λŠ” 사싀 이 λ•Œ 이 λ¬Έμ œμ— λŒ€ν•΄μ„œ μ™œ μœˆλ„μš°μ— μžˆλŠ” 인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬κ°€ 무엇이 λ¬Έμ œμΈμ§€ λͺ°λžλ‹€. MSκ°€ νŒŒλŠ” μœˆλ„μš°μ— 인터넷 μ΅μŠ€ν”Œλ‘œλŸ¬κ°€ μžˆλŠ”κ²Œ 무엇이 잘λͺ»μ΄λž€ 말인가? μ–΄μ°¨ν”Ό μ„€μΉ˜ν•  κ±° 미리 μ„€μΉ˜ν•˜λ©΄ μ•ˆλ˜λ‚˜? ν•˜λŠ” 생각이 λ“€μ—ˆλ‹€. 그리고 ν˜„μž¬ λ‚˜λŠ” 상황에 맞게 μ—¬λŸ¬κ°€μ§€ λΈŒλΌμš°μ €λ₯Ό μ„žμ–΄μ„œ μ“°κ³  μžˆλ‹€. κ°œλ°œμ„ ν¬λ‘¬μ—μ„œ, μ›Ήμ„œν•‘μ€ 넀이버 μ›¨μΌμ—μ„œ, κ²°μ œλŠ” μ΅μŠ€ν”Œλ‘œλŸ¬μ—μ„œ. 그리고 λͺ‡ λ…„ ν›„, λͺ¨λ°”일 λΈŒλΌμš°μ € λ‚΄ 검색엔진 독점 μ΄μŠˆκ°€ μžˆμ—ˆλ‹€. λΈŒλΌμš°μ € 이슈 만큼 크진 μ•Šμ•˜μ§€λ§Œ κ·Έ λ•Œ μ—­μ‹œ μ–΄μ°¨ν”Ό κ΅¬κΈ€λ“€μ–΄κ°€μ„œ 검색할꺼 κ΅¬κΈ€μ—μ„œ λ‹€ 검색해주면 쒋은거 μ•„λ‹Œκ°€? ν•˜λŠ” 생각이 λ“€μ—ˆλ‹€. ν•˜μ§€λ§Œ ν˜„μž¬ λͺ¨λ°”일 μ‚¬νŒŒλ¦¬ λΈŒλΌμš°μ €μ—μ„œλŠ” λͺ‡κ°œμ˜ 검색엔진을 선택할 수 μžˆλ‹€. λ¬Όλ‘  ν˜„μž¬λ„ μ—¬λŸ¬κ°œλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€. μ „λ¬Έμ μ΄κ±°λ‚˜ μ™Έκ΅­ 자료λ₯Ό λ΄μ•Όν• λ•Œμ—λŠ” ꡬ글을, μƒν™œν˜• 검색은 넀이버λ₯Ό μ‚¬μš©ν•˜κ³  μžˆλ‹€.