Skip to content

Latest commit

ย 

History

History
executable file
ยท
338 lines (202 loc) ยท 10.9 KB

File metadata and controls

executable file
ยท
338 lines (202 loc) ยท 10.9 KB

temp.03

ํ• ์ผ
  1. ์žฅ๊ณ  ํ…Œ์ŠคํŠธ ๋ฌธ์„œ ๋งŒ๋“ค๊ธฐ
  2. ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
  3. ์„ฑ๊ตฌ ๊ฒ€์ƒ‰ ๋””๋น„ ์™„์„ฑํ•˜๊ธฐ
  4. ํ˜•์„ ์œ„ํ•œ ํฌ๋กค๋Ÿฌ ์ฃผ์„ ๋ฐ ์ •๋ฆฌํ•ด์„œ ๋ณด๋‚ด์ฃผ๊ธฐ
  5. ๋ธ”๋กœ๊ทธ ํŒŒ๊ธฐ
  6. ์žฅ๊ณ  ๋ฒˆ์—ญ๋ฌธ์„œ ์ปค๋ฐ‹ํ•˜๊ธฐ
ํœด์‹
  1. ์€๊ฒฝ์ด ํ”„๋ก ํŠธ ๊ฐ•์˜ ๋“ฃ๊ธฐ

Python

Interning

์ž๋ฃŒ: ๊ธธ๋กฏ ๋ธ”๋กœ๊ทธ - python string interning

1. ํŒŒ์ด์ฌ์—์„  ๋ณ€์ˆ˜๊ฐ€ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฐ’์ด ๊ฐ™์œผ๋ฉด ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๋„ ๊ฐ™๋‹ค?

ํŒŒ์ด์ฌ์€ ํšจ์œจ์„ฑ์„ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ๋ฌธ์ž์—ด ๋˜๋Š” ์ˆซ์ž๋ฅผ ๋ฏธ๋ฆฌ ์ €์žฅํ•ด๋‘”๋‹ค. ์ด๋ฅผ interning์ด๋ผ๊ณ  ํ•œ๋‹ค.

  • intern: ์ „์Ÿ ๋˜๋Š” ์ •์น˜์ ์ธ ์ด์œ ๋กœ, ๋ฒ”์ฃ„์‚ฌ์‹ค์˜ ์ฆ๋ช…์ด ์—†์Œ์—๋„ ์‚ฌ๋žŒ์„ ๊ฐ€๋‘์–ด ๋‘๋‹ค.
  • interning์€ ํŒŒ์ด์ฌ์— ๊ตญํ•œ๋˜์ง€ ์•Š๊ณ , ํ˜„๋Œ€ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์—์„œ ๋‘๋ฃจ ์‚ฌ์šฉ๋˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ( Python, PHP(5.4์ด์ƒ), Lua, Ruby, Java etc.)

2. interning ์‚ฌ๋ก€

  • interning์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„ , ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๊ฐ’์„ ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ ๋ณ€์ˆ˜๊ฐ€ ๊ฐ™์€ ๋‘ ๊ฐ’์„ ๊ฐ€์ง€๊ณ  ์žˆ์„ ๋•Œ, ๊ฐ ๋ณ€์ˆ˜์˜ ์ฃผ์†Œ๊ฐ’์ด ์ผ์น˜ํ•˜๋Š” ๊ฒƒ์œผ๋กœ์จ interning์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
  • python ์—์„œ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋Š” id()์ด๋‹ค. (์ด ํ•จ์ˆ˜๋Š” c ํƒ€์ž…์˜ ์ฃผ์†Œ, ๊ณง ์ง„์งœ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.)
  • ๋ช…์‹œ์ ์ธ ์ฃผ์†Œ๊ฐ’์˜ ํ™•์ธ ์—†์ด๋„, ์—ฐ์‚ฐ์ž is๋ฅผ ํ†ตํ•ด ์ฃผ์†Œ๊ฐ’์˜ ์ผ์น˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
# ๊ฐ„๋‹จํ•œ ๋ฌธ์ž์—ด์˜ ์ผ์น˜
a = 'asdf'
b = 'asdf'

hex(id(a))
>>> '0x10ecbb420'
hex(id(b))
>>> '0x10ecbb420'

a is b
>>> True

# ๊ฐ„๋‹จํ•œ ์ˆซ์ž์˜ ์ผ์น˜
a = 123
b = 123

hex(id(a))
>>> '0x10b6e14e0'
hex(id(b))
>>> '0x10b6e14e0'

a is b
>>> True

3. interning ์˜ˆ์™ธ ์‚ฌ๋ก€

a = 'asdf!'
b = 'asdf!'
a is b
>>> False

a = 1.23
b = 1.23
a is b
>>> False

4. ๊ฐ•์ œ interning

import sys
a = sys.intern('asdf!')
b = sys.intern('asdf!')

a is b
>>>True

5. interning ์˜ ์žฅ์ 

  • ๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ
  • ๋น„๊ต ์—ฐ์‚ฐ ํšจ์œจ์„ฑ ์ฆ๊ฐ€ (O(n)->O(1))
    ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•  ๋•Œ, ๋ฐ”์ดํŠธ ๋‹จ์œ„๋กœ ๋น„๊ตํ•  ํ•„์š” ์—†์ด, ํฌ์ธํ„ฐ๋งŒ ๋น„๊ตํ•˜๋ฉด ๋œ๋‹ค.

6. native interning ์˜ ์กฐ๊ฑด

๊ณตํ†ต

immutable value ์ฆ‰, ๋ถˆ๋ณ€๊ฐ’์ด์–ด์•ผ ํ•œ๋‹ค.

์ˆซ์ž

: [-5, 256] ์˜ ์ •์ˆ˜

๋ฌธ์ž์—ด
  1. ๊ธธ์ด๊ฐ€ 0 ๋˜๋Š” 1 ์ธ ๋ชจ๋“  ๋ฌธ์ž์—ด

  2. NAME_CHARS ์ด์™ธ์˜ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•œ ๊ฒฝ์šฐ ์ œ์™ธ

    NAME_CHARS = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz'
    
    'foo' is 'foo'  # True
    'foo!' is 'foo!'  # False
  3. ์ปดํŒŒ์ผ์ด ์•„๋‹Œ ์‹คํ–‰์‹œ ์„ ์–ธ๋˜๋Š” ๋ณ€์ˆ˜ ์ œ์™ธ

    'foo' is ''.join(['f', 'o', 'o'])  # False
    'a' * 20 is 'aaaaaaaaaaaaaaaaaaaa'  # True
    
    # ์—ฐ์‚ฐ ํ›„ ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 20์ด ๋„˜์–ด๊ฐ€๋ฉด ์ œ์™ธ๋œ๋‹ค.
    'a' * 21 is 'aaaaaaaaaaaaaaaaaaaaa'  # False
    
    # ๊ทธ๋ƒฅ ๋ฌธ์ž์—ด ๊ธธ์ด๊ฐ€ 20์ด ๋„˜๋Š” ๊ฒƒ์€ ๊ดœ์ฐฎ๋‹ค.
    'foooooooooooooooooooooooooooooo' is 'foooooooooooooooooooooooooooooo'

Django Source Code

QuerySet._for_write

facebook django group ์— ์งˆ๋ฌธํ–ˆ๋˜ ๋‚ด์šฉ

Django Migration




Django

model ๊ณผ migration

1. ์ฒ˜์Œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์—” ๊ธฐ๋ณธ๊ฐ’์ด ํ•„์š”์—†๋‹ค

์ฒ˜์Œ migration ์—๋Š” default ๊ฐ’์ด ํ•„์š”๊ฐ€ ์—†๋‹ค. ๊ทธ ๋‹ค์Œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜๋ถ€ํ„ฐ๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ํ•„์š”ํ•˜๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒ์„ฑ์—ฌ๋ถ€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค.

2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์šฐ๋ฉด ๋‹ค์‹œ ๋งˆ์ด๊ทธ๋ ˆ์ดํŠธ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

์ค‘๊ฐ„์— ์˜ค๋ฅ˜๊ฐ€ ์ƒ๊ธฐ๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์šฐ๊ณ  ๋‹ค์‹œ ์ƒ์„ฑํ•˜๋Š” ์ผ์ด ๋นˆ๋ฒˆํ•œ๋ฐ, migrate ๋ฅผ ์žŠ์œผ๋ฉด ํ…Œ์ด๋ธ”์ด ์—†๋‹ค๋Š” ๋ง์ด ๋œฌ๋‹ค.

์˜ค๋ฅ˜: ํ…Œ์ด๋ธ”์ด ์—†์Šต๋‹ˆ๋‹ค / ์นผ๋Ÿผ์ด ์—†์Šต๋‹ˆ๋‹ค

OperationalError: no such table: scripture_verse  
OperationalError: no such column: scripture_verse.book_name

๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ์ด ์ž˜ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜์ž. ๊ทธ๋ฆฌ๊ณ  shell_plus๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ๋„ ์žŠ์ง€ ๋ง์ž. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ€์–ด๋ฒ„๋ฆฐ ๊ฒฝ์šฐ์—๋„ ๋‹ค์‹œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ํ•ด์ฃผ์–ด์•ผ ํ•œ๋‹ค.

Nginx Error

Ubuntu-Nginx, 13 Permission Denied

Error Message:
PermissionError at /admin/post/image/3/change/  
[Errno 13] Permission denied: '/srv/pdxen-homepage-pj/pdxenhomepage/media'
์›์ธ ๋ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ

nginx user์ธ deploy๊ฐ€ media ํด๋”์— ์ ‘๊ทผ ๋˜๋Š” ๋ณ€๊ฒฝ ๊ถŒํ•œ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. media ํด๋”๊ฐ€ ์—†์œผ๋ฉด ๋งŒ๋“ค์–ด์ฃผ๊ณ , ๋””๋ ‰ํ† ๋ฆฌ ์œ ์ €๋ฅผ recursiveํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•˜์ž.

sudo chown -R deploy:deploy /srv/pdxen-homepage-pj/pdxenhomepage/media

ububtu nginx user ํ™•์ธํ•˜๊ธฐ: sudo vi /etc/nginx/nginx.conf

attempt to write a readonly databaseโ€จโ€จ## Error Message:

OperationalError at /todo/add/
attempt to write a readonly database

db.sqlite ์˜ user ๊ฐ€ ubuntu ์ด๊ณ , ์œ ์ €๋งŒ ์“ฐ๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. (-rw-r--r--) ๋‹ค์Œ๊ณผ ๊ฐ™์ด db.sqlite ์˜ ์œ ์ €๋ฅผ uwsgi ์œ ์ €์ธ deploy ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

sudo chown deploy:deploy /srv/todo-management/todo/db.sqlite3

์ด๊ฒƒ์„ ๋งˆ์ณ๋„ ์•„๋ž˜์˜ ์—๋Ÿฌ๊ฐ€ ๋‚  ๊ฒƒ์ด๋ฏ€๋กœ, db.sqlite์˜ ์ƒ์œ„ ํด๋”์˜ ์œ ์ €๋„ ๋ณ€๊ฒฝํ•ด์ฃผ์ž.

sudo chown deploy:deploy /srv/todo-management/todo/

unable to open database file

OperationalError at /todos/add/
unable to open database file

์œ„ ์—๋Ÿฌ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋กœ, db.sqlite ์˜ ์ƒ์œ„ ํด๋”์˜ ์ ‘๊ทผ๊ถŒํ•œ์ด ์—†๋Š” ๊ฒฝ์šฐ์ด๋‹ค. ์ด ๊ฒฝ์šฐ, ํ•ด๋‹น ์ƒ์œ„ ํด๋”์˜ ์œ ์ €๋ฅผ ๋ณ€๊ฒฝํ•ด์ค€๋‹ค.

sudo chown deploy:deploy /srv/todo-management/todo/

HTML

background

HTML ๋ฌธ๋ฒ• ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ
  • ์ž‘์„ฑ๋œ html ๋ฌธ์„œ๊ฐ€ ์›นํ‘œ์ค€์— ๋งž๋Š”์ง€ ๊ฒ€์‚ฌํ•ด์ค€๋‹ค.
  • ๊ฒ€์‚ฌ ๋„๊ตฌ (Validator): validator.w3.org
entitycode:

HTML ์ด๋‚˜ XML ๊ณผ ๊ฐ™์€ ๋งˆํฌ์—… ๋ฌธ์„œ์—์„œ, ์ผ๋ จ์˜ ํŠน์ˆ˜ํ•œ ๋ฌธ์ž๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ฌธ์ž ์กฐํ•ฉ์œผ๋กœ, Character Reference ๋ผ๊ณ  ๋ถˆ๋ฆฐ๋‹ค. ์ด๊ฒƒ์€ ๋‹ค์Œ์˜ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค:

  1. numeric character reference: ์ˆซ์ž๋กœ ๊ธฐํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ (<=&#60;)
  2. character entity reference: ๋ฌธ์ž๋กœ ๊ธฐํ˜ธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๊ฒƒ (<=&lt;)

entity code table: entitycode.com

tag

์ด๋ฏธ์ง€
  • img: ์ด๋ฏธ์ง€ ํƒœ๊ทธ
    • src: ์ด๋ฏธ์ง€ ์ฃผ์†Œ
    • alt: ์ด๋ฏธ์ง€๊ฐ€ ์—†์„ ๋•Œ ๋Œ€์ฒดํ•˜๋Š” ํ…์ŠคํŠธ. ์‹œ๊ฐ์žฅ์• ์ธ์—๊ฒŒ ์ œ๊ณต๋˜๋Š” ์ •๋ณด์ด๊ธฐ๋„ ํ•˜๋‹ค.
  • figure: ๋„ํ‘œ, ์ฐจํŠธ, ์ด๋ฏธ์ง€, ํ‘œ ๋“ฑ์„ ๊ฐ์Œ€ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ์š”์†Œ
  • figcaption: ํ•ด๋‹น ํ”ผ๊ทœ์–ด์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ํƒœ๊ทธ

Database

Transaction

Transaction ์ด๋ž€

transaction ์ด๋ž€, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ์ž‘์—…์˜ ๋‹จ์œ„์ด๋‹ค. transaction ์€ ๋‹ค์Œ ๋„ค ๊ฐ€์ง€ ์งˆ์˜์–ด(sql) ์š”์ฒญ์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค:

  1. select
  2. insert
  3. update
  4. delete
Transaction ์˜ ํŠน์„ฑ

transaction ์€ ๋‹ค์Œ ๋„ค ๊ฐ€์ง€ ํŠน์„ฑ์„ ์ง€๋‹Œ๋‹ค:

  1. ๋น„๋ถ„๋ฆฌ์„ฑ (Atomicity): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” transaction ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝ๋œ๋‹ค. transaction ์„ ๊ตฌ์„ฑํ•˜๋Š” ์ผ๋ถ€ ์ฟผ๋ฆฌ๋งŒ ๋ฐ˜์˜๋˜๋Š” ๊ฒฝ์šฐ๋Š” ์—†๋‹ค. transaction ์ „์ฒด๊ฐ€ ๋ฐ˜์˜๋˜๊ฑฐ๋‚˜ ๋ฐ˜์˜๋˜์ง€ ์•Š๊ฑฐ๋‚˜์ด๋‹ค.
  2. ์ผ๊ด€์„ฑ (Consistency): transaction ์ด ๋Œ€์ƒ์œผ๋กœ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ผ๊ด€์ ์ด์–ด์•ผ ํ•œ๋‹ค. transaction ์ค‘ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€๊ฒฝ์ด ์žˆ์–ด๋„, ๊ทธ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค.
  3. ๋…๋ฆฝ์„ฑ (Isolation): ํ•œ transaction ์ด ๋‹ค๋ฅธ transaction ์˜ ์—ฐ์‚ฐ์— ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค.
  4. ์˜๊ตฌ์„ฑ (Durability): ํ•œ๋ฒˆ ๋ฐ˜์˜๋œ transaction ์€ ์˜๊ตฌํžˆ ๋ฐ˜์˜๋œ๋‹ค.

๊ฐ๊ฐ์˜ ์ฒซ ๊ธ€์ž๋ฅผ ๋ชจ์•„, ์ด ์„ฑ์งˆ์„ ACID ๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค. ์ด๋ก ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์€ ๊ฐ๊ฐ์˜ transaction ์— ๋Œ€ํ•ด ์ƒ๊ธฐ ์„ฑ์งˆ๋“ค์„ ๋ณด์žฅํ•˜์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ์„ฑ๋Šฅ์„ ์œ„ํ•ด ์ข…์ข… ๋ฌด์‹œ๋˜๊ธฐ๋„ ํ•œ๋‹ค. transaction ์„ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ transactional database ๋ผ๊ณ  ํ•œ๋‹ค. ๋Œ€๋ถ€๋ถ„ ๊ด€๊ณ„ํ˜•๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ํ•ด๋‹น๋œ๋‹ค.

transaction ์˜ ์‹คํ–‰๊ณผ์ •
  • Begin the transaction
  • Execute several queries: ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋งŒ๋“ ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ์šฉํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค.
  • Commit the transaction: ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ์šฉํ•œ๋‹ค.
Commit ๊ณผ Rollback

transaction ์ด ์™„๋ฃŒ๋˜๋ฉด commit, ์ค‘๊ฐ„์— ์ทจ์†Œ๋˜๊ฑฐ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ์ฒ˜์Œ์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ๊ฒฝ์šฐ์—๋Š” Rollback.

  • commit: transaction ์˜ ์ฟผ๋ฆฌ๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด, ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ์šฉํ•˜๋Š” ์—ฐ์‚ฐ.
  • rollback: transaction ์ด ๋น„์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋œ ๊ฒฝ์šฐ, transaction ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜, ์ง„ํ–‰๋œ transaction ์„ ์ทจ์†Œํ•˜๋Š” ์—ฐ์‚ฐ. ์ด๊ฒƒ์€ DBMS ์„ค์ •์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์›ํ•˜๋Š” ๊ฒฝ์šฐ, transaction ์€ commit ์ „์— ์–ธ์ œ๋“ ์ง€ rollback ์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

DBMS: Database Management System ์˜ ์•ฝ์ž๋กœ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์ €์žฅ, ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด์ด๋‹ค. Mysql, Postgresql ๋“ฑ์ด ์žˆ๋‹ค.

Transaction ์˜ ์ƒํƒœ
  • Active
  • Failed: ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์„œ ์‹คํŒจ
  • Aborted: ์ค‘์ง€๋˜์–ด rollback ์—ฐ์‚ฐ ์‹คํ–‰
  • Partially committed: transaction ์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋‚˜ commit ๋˜์ง€ ์•Š์€ ์ƒํƒœ
  • Committed: ์™„๋ฃŒํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ์šฉ๊นŒ์ง€ ๋œ ์ƒํƒœ

โ€” wikipedia, ๊ฐœ๋ฐœ์ž ํ™€๋กœ ์„œ๊ธฐ, limkydev

B tree

ETC

Big-O notation

Big-O notation: refers to the complexity of a given algorithm. In computer science, big O notation is used to classify algorithms according to how their running time or space requirements grow as the input size grows.

์ธํ’‹ ์•„์›ƒํ’‹์˜ ๊ธฐ์šธ๊ธฐ๋ฅผ ๋งํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.