πŸ‘©πŸ»β€πŸ’» 크둀링을 ν™œμš©ν•œ μ‚¬μ΄νŠΈ μ œμž‘ - 4

sebinnnnnΒ·2023λ…„ 1μ›” 17일
0
post-thumbnail

πŸ“ μ‚­μ œ κΈ°λŠ₯ μˆ˜μ •(num 쀑볡 μ—λŸ¬)

μ™„λ²½ν•  쀄 μ•Œμ•˜λ˜ μ‚­μ œ λ²„νŠΌμ— 큰 문제 ν•˜λ‚˜κ°€ μžˆμ—ˆλ‹€.
λ°”λ‘œ 쀑볡 λ¬Έμ œμ˜€λ‹€. λ§Œμ•½ 3개의 μΉ΄λ“œκ°€ μžˆμ—ˆκ³  이 μ€‘μ—μ„œ 1개λ₯Ό μ‚­μ œν–ˆμ„ λ•Œ, κ·Έλ‹€μŒ μΆ”κ°€λ˜λŠ” μΉ΄λ“œκ°€ 맨 λ§ˆμ§€λ§‰ λ²ˆν˜Έμ™€ 쀑볡이 λ˜λŠ” 것이닀.
μ•„μ˜ˆ 생각도 λͺ» ν–ˆλ˜ 뢀뢄인지라.. 처음 νŠΉμ • μΉ΄λ“œλ₯Ό μ‚­μ œν•˜λ €κ³  λ²„νŠΌμ„ λˆŒλ €μ„ λ•Œ λ‹€λ₯Έ μΉ΄λ“œκ°€ μ‚­μ œλ˜λŠ” 것을 보고 β€˜μ•„β€¦ 이거 λ­”κ°€ 잘λͺ»λœ 거닀’ μƒκ°ν–ˆλ‹€.
이걸 μ–΄λ–»κ²Œ ν•΄κ²°ν•΄μ•Ό ν• κΉŒ κ³ λ―Όν•˜κ³  ꡬ글링도 ν•΄λ³Έ κ²°κ³Ό 쑰건문을 μΆ”κ°€ν•˜κΈ°λ‘œ ν–ˆλ‹€.

β†’ 즉, λ§Œμ•½ νŠΉμ • λ²ˆν˜Έκ°€ 이미 리슀트 λ²ˆν˜Έμ— μžˆλ‹€λ©΄ κ·Έ λ²ˆν˜Έμ— +1을 ν•˜μ—¬(기쑴에 +1을 ν–ˆμ§€λ§Œ ν•œ 번 더 1을 λ”ν•˜λŠ” λ°©μ‹μœΌλ‘œ) μƒμ„±ν•˜κ²Œ ν•˜λŠ” λ°©λ²•μ΄μ—ˆλ‹€.
순차적으둜 λ²ˆν˜Έκ°€ μ •λ ¬λ˜μ§€λŠ” μ•Šμ§€λ§Œ 쀑볡을 막을 수 μžˆλŠ” μœ μΌν•œ λ°©λ²•μ΄μ—ˆλ‹€.(μ§€κΈˆμ˜ μ§€μ‹μœΌλ‘œλŠ”β€¦)

page_list = list(db.pages.find({}, {'_id': False}))
    count = len(page_list) + 1

        doc = {
            'url': url_receive,
            'title': title,
            'image': image,
            'desc': desc,
            'num': count
        }

    db.pages.insert_one(doc)

μ²˜μŒμ—λŠ” λ‹¨μˆœνžˆ 리슀트 개수λ₯Ό λ°›μ•„μ™€μ„œ κ±°κΈ°μ„œ +1을 ν•˜λŠ” ν˜•νƒœλ‘œ 숫자λ₯Ό μƒμ„±ν•œ λ’€ μ•„λ¬΄λŸ° 쑰건 없이 ν•΄λ‹Ή 숫자둜 번호λ₯Ό λΆ€μ—¬ν–ˆλ‹€.
β†’ μ΄λŸ¬λ‹ˆ 쀑볡 λ¬Έμ œκ°€ λ°œμƒν•˜κ²Œ 된 것!

page_list = list(db.pages.find({}, {'_id': False}))
    count = len(page_list) + 1

    if db.pages.find_one({'num': count}) is not None:
        count = count + 1
        doc = {
            'url': url_receive,
            'title': title,
            'image': image,
            'desc': desc,
            'num': count
        }
    else:
        doc = {
            'url': url_receive,
            'title': title,
            'image': image,
            'desc': desc,
            'num': count
        }

    db.pages.insert_one(doc)

ν•΄κ²° λ°©λ²•μœΌλ‘œ ν•΄λ‹Ή μˆ«μžκ°€ DB λ¦¬μŠ€νŠΈμ— μ‘΄μž¬ν•˜λŠ”μ§€λ₯Ό λ¬»λŠ” 쑰건문을 μΆ”κ°€ν–ˆλ‹€.
db.pages.find_one({'num': count}) is not None
= pages의 데이터 μ€‘μ—μ„œ num이 count인 데이터가 이미 μ‘΄μž¬ν•œλ‹€λ©΄ κΈ°μ‘΄ countμ—μ„œ 1을 ν•œ 번 더 λ”ν•΄μ„œ 번호λ₯Ό λΆ€μ—¬ν•œλ‹€λŠ” 의미!
λ§Œμ•½, μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄ 처음 μ½”λ“œ λŒ€λ‘œ 리슀트 κ°œμˆ˜μ— 1만 λ”ν•˜μ—¬ 숫자λ₯Ό λΆ€μ—¬ν•œλ‹€.

β†’ κΈ°μ‘΄ 데이터가 μ–΄λ–€ μ‹μœΌλ‘œλ“  변경이 되고 μˆ˜μ •μ΄ λœλ‹€λ©΄ λ‹€μ–‘ν•œ μΈ‘λ©΄μ—μ„œ ν•΄λ‹Ή κΈ°λŠ₯이 μ˜¬λ°”λ₯Έ λ°©μ‹μœΌλ‘œ 진행이 λ˜λŠ” 것인지 ν™•μΈν•˜κ³  또 ν…ŒμŠ€νŠΈν•˜λŠ” 것이 μ€‘μš”ν•  것 κ°™λ‹€!


πŸ’‘ μ—¬λŸ¬ 번의 ν…ŒμŠ€νŠΈλ₯Ό κ±°μΉ˜μ§€ μ•ŠμœΌλ‹ˆ μ΄λ ‡κ²Œ μ•„μ£Ό 기본적인 κΈ°λŠ₯μ—μ„œ 였λ₯˜κ°€ λ°œμƒν•˜κ²Œ 된 것 κ°™λ‹€.
μ²˜μŒμ—λŠ” κ·Έλƒ₯ 데이터가 μ‚­μ œλœλ‹€λŠ” κ²ƒλ§ŒμœΌλ‘œ 기쁜 λ§ˆμŒμ— 뢀가적인 쑰건듀을 μƒκ°ν•˜μ§€ λͺ»ν–ˆλ˜ 것 κ°™λ‹€.
κ·Έλž˜λ„ λ’€λŠ¦κ²Œ μ•Œμ•„μ„œ ν•΄κ²°ν–ˆμœΌλ‹ˆ 닀행이라고 μƒκ°ν•œλ‹€.

코딩을 본격적으둜 배우기 μ „κΉŒμ§€λŠ” ν•œ λ²ˆμ—, 였랜 μ‹œκ°„μ„ νˆ¬μžν•΄μ„œ 결과물이 λ‚˜μ˜€λŠ” 쀄 μ•Œμ•˜λŠ”λ° ν•œ 번이 μ•„λ‹Œ 계속 보고 또 ν…ŒμŠ€νŠΈν•˜κ³  λ‹€μ‹œ 보고, ν•œ 번 더 뢄석을 ν•΄μ•Όμ§€λ§Œ μ œλŒ€λ‘œ 된 결과물이 λ‚˜μ˜¨λ‹€λŠ” 것을 μ•Œμ•˜λ‹€.
μ–΄λ €μš΄ μΌμ΄λΌλŠ” κ±Έ 이미 μ•Œκ³  μžˆμ—ˆμ§€λ§Œ μƒκ°ν–ˆλ˜ 것보닀 더 μ–΄λ ΅κ³  λ³΅μž‘ν•˜κ³  λ‹¨μˆœν•˜μ§€ μ•Šμ€ μž‘μ—…λ“€μΈ 것 κ°™λ‹€.
κ·Έλž˜λ„ μ–΄μ œ μ‹€νŒ¨ν–ˆλ˜ 것이 였늘 μ„±κ³΅ν•˜κ³  λ˜λ‹€μ‹œ μ‹€νŒ¨ν•˜κ³  λ‹€μ‹œ μ„±κ³΅μ‹œν‚€λŠ” 이 과정듀이 κ°€μΉ˜ μžˆλŠ” 것 κ°™λ‹€.

결둠은, λ‹¨μˆœν•˜κ²Œλ§Œ μƒκ°ν•˜μ§€ 말자...!

profile
🏠 λΈ”λ‘œκ·Έ 이전 쀑 β†’ https://medium.com/@sebinndev

0개의 λŒ“κΈ€