πŸ“ Computer Science

    REST API와 RESTful API

    1. REST(REpresentational State Transfer) RESTλŠ” μžμ›μ„ μ΄λ¦„μœΌλ‘œ ꡬ뢄해 ν•΄λ‹Ή μžμ›μ˜ μƒνƒœλ₯Ό μ£Όκ³ λ°›λŠ” λͺ¨λ“  것을 μ˜λ―Έν•œλ‹€. 즉, μžμ›(resource)의 ν‘œν˜„(representation)에 μ˜ν•œ μƒνƒœ 전달을 λœ»ν•œλ‹€. μžμ›: ν•΄λ‹Ή μ†Œν”„νŠΈμ›¨μ–΄κ°€ κ΄€λ¦¬ν•˜λŠ” λͺ¨λ“  것이닀. Ex) λ¬Έμ„œ, κ·Έλ¦Ό, 데이터, ν•΄λ‹Ή μ†Œν”„νŠΈμ›¨μ–΄ 자체 λ“± ν‘œν˜„: μžμ›μ„ ν‘œν˜„ν•˜κΈ° μœ„ν•œ 이름이닀. Ex) DB의 학생 정보가 μžμ›μ΄λ©΄ studentsλ₯Ό μžμ›μ˜ ν‘œν˜„μœΌλ‘œ μ •ν•œλ‹€. μƒνƒœ 전달: 데이터가 μš”μ²­λ˜λŠ” μ‹œμ μ— μžμ›μ˜ μƒνƒœλ₯Ό μ „λ‹¬ν•œλ‹€. JSON ν˜Ήμ€ XML을 톡해 데이터λ₯Ό μ£Όκ³ λ°›λŠ” 것이 μΌλ°˜μ μ΄λ‹€. 기본적으둜 μ›Ήμ˜ κΈ°μ‘΄ 기술과 HTTP ν”„λ‘œν† μ½œμ„ κ·ΈλŒ€λ‘œ ν™œμš©ν•˜κΈ° λ•Œλ¬Έμ— μ›Ήμ˜ μž₯점을 μ΅œλŒ€ν•œ ν™œμš©ν•  수 μžˆλŠ” 아킀텍..

    λͺ¨λ“ˆκ³Ό μ»΄ν¬λ„ŒνŠΈ

    λͺ¨λ“ˆκ³Ό μ»΄ν¬λ„ŒνŠΈ κ³΅λΆ€ν•˜λ‹€ 보면 μž¬μ‚¬μš©μ„±μ΄λΌλŠ” 단어와 ν•¨κ»˜ λͺ¨λ“ˆκ³Ό μ»΄ν¬λ„ŒνŠΈλΌλŠ” 단어가 κ³΅κ³΅μ—°ν•˜κ²Œ λ“±μž₯ν•œλ‹€. λ‘˜ λ‹€ μ–΄λ– ν•œ ꡬ쑰와 κΈ°λŠ₯의 μ΅œμ†Œ λ‹¨μœ„μ™€ μœ μ‚¬ν•œ κ°œλ…μœΌλ‘œ μ •μ˜λ˜κ³  μžˆκΈ°μ— 이 λ‘˜μ„ ν˜Όμš©ν•˜λŠ” κ²½μš°κ°€ μž¦λ‹€. ν•˜μ§€λ§Œ 이 λ‘˜μ€ λͺ…ν™•ν•˜κ²Œ λ‹€λ₯Έ 의미λ₯Ό μ§€λ‹ˆκ³  μžˆλ‹€. μ„œλ²„-ν΄λΌμ΄μ–ΈνŠΈ κ΅¬μ‘°μ—μ„œ μ„œλ²„ 1κ°œμ™€ ν΄λΌμ΄μ–ΈνŠΈ 100κ°œκ°€ μžˆλ‹€λ©΄ λͺ¨λ“ˆμ€ μ„œλ²„ 1개, ν΄λΌμ΄μ–ΈνŠΈ 1개, 총 2개 μ»΄ν¬λ„ŒνŠΈλŠ” μ„œλ²„ 1개, ν΄λΌμ΄μ–ΈνŠΈ 100개, 총 101개 1. λͺ¨λ“ˆ(Module) κ°€μž₯ μƒμœ„μ— μœ„μΉ˜ν•˜λŠ” κ΅¬ν˜„μ˜ λ‹¨μœ„ λ§Œλ“€μ–΄μ§„ μ‚°μΆœλ¬Όμ˜ κ΅¬ν˜„ λ‹¨μœ„μ΄λ‹€. λΉ„μŠ·ν•˜κ±°λ‚˜ μ—°κ΄€μ„± μžˆλŠ” κ²ƒλ“€λ‘œ 이루어진 λ©”μ„œλ“œλ‚˜ 클래슀의 집합이닀. 2. μ»΄ν¬λ„ŒνŠΈ(Component) λŸ°νƒ€μž„ 개체λ₯Ό μ°Έμ‘°ν•˜λŠ” λ‹¨μœ„ μ‹€ν–‰ 쀑인 μ†Œν”„νŠΈμ›¨μ–΄μ˜ ν™œλ™ λ‹¨μœ„μ΄λ‹€.

    ν”„λ ˆμž„μ›Œν¬μ™€ 라이브러리

    ν”„λ ˆμž„μ›Œν¬μ™€ 라이브러리

    ν”„λ ˆμž„μ›Œν¬μ™€ 라이브러리 1. ν”„λ ˆμž„μ›Œν¬(Framework) ν”„λ ˆμž„μ›Œν¬λž€ μ†Œν”„νŠΈμ›¨μ–΄μ˜ ꡬ체적인 뢀뢄에 ν•΄λ‹Ήν•˜λŠ” 섀계와 κ΅¬ν˜„μ„ μž¬μ‚¬μš©μ΄ κ°€λŠ₯ν•˜κ²Œλ” 일련의 ν˜‘μ—…ν™”λœ ν˜•νƒœλ‘œ ν΄λž˜μŠ€λ“€μ„ μ œκ³΅ν•˜λŠ” 것이닀. λΌˆλŒ€λ‚˜ 기반 ꡬ쑰λ₯Ό λœ»ν•œλ‹€. ν”„λ‘œκ·Έλž˜λ°μ„ 진행할 λ•Œ ν•„μˆ˜μ μΈ μ½”λ“œ, μ•Œκ³ λ¦¬μ¦˜ λ“±κ³Ό 같이 μ–΄λŠ μ •λ„μ˜ ꡬ쑰λ₯Ό μ œκ³΅ν•΄μ£ΌκΈ° λ•Œλ¬Έμ— ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ¨ΈλŠ” 이 ν”„λ ˆμž„μ›Œν¬μ˜ λΌˆλŒ€ μœ„μ—μ„œ μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ—¬ ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•  수 μžˆλ‹€. 즉, μ™„μ„±λœ μ œν’ˆμ΄ μ•„λ‹Œ μ™„μ„±λœ μ œν’ˆμ„ λ§Œλ“€κΈ° μœ„ν•΄μ„œ 개발자λ₯Ό λ„μ™€μ£ΌλŠ” λ˜λŠ” 기반이 λ˜λŠ” 역할을 ν•©λ‹ˆλ‹€. 2. 라이브러리(Library) λΌμ΄λΈŒλŸ¬λ¦¬λž€ 자주 μ‚¬μš©λ˜λŠ” λ‘œμ§μ„ μž¬μ‚¬μš©ν•˜κΈ° νŽΈλ¦¬ν•˜λ„λ‘ 잘 μ •λ¦¬ν•œ 일련의 μ½”λ“œλ“€μ˜ 집합이닀. 즉, ν”„λ‘œκ·Έλž˜λ¨Έκ°€ μ–΄λ– ν•œ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κΈ° μœ„ν•΄μ„œ 도움을..

    자료ꡬ쑰 정리

    자료ꡬ쑰 정리 1. μ„ ν˜• ꡬ쑰와 λΉ„μ„ ν˜• ꡬ쑰 2020.04.24 - [πŸ“ Computer Science/✏ Data Structure] - μ„ ν˜• ꡬ쑰(Linear Structure)와 λΉ„μ„ ν˜• ꡬ쑰(Non-Linear Structure) μ„ ν˜• ꡬ쑰(Linear Structure)와 λΉ„μ„ ν˜• ꡬ쑰(Non-Linear Structure) 1. μ„ ν˜• ꡬ쑰 데이터λ₯Ό μ—°μ†μ μœΌλ‘œ μ—°κ²°λ˜μ–΄ μžˆλŠ” λͺ¨μ–‘μœΌλ‘œ κ΅¬μ„±ν•œλ‹€. 1) λ°°μ—΄(Array) λ™μΌν•œ μžλ£Œν˜•μ˜ 데이터듀이 같은 크기둜 λ‚˜μ—΄λ˜μ–΄ μˆœμ„œλ₯Ό κ°–κ³  μžˆλŠ” 집합이닀. λΉ λ₯Έ μ ‘κ·Ό(O(1))κ³Ό random accessκ°€ tech-interview.tistory.com 2. 이진 트리 2020.04.24 - [πŸ“ Computer Science/✏ Data Structure] - ..

    λ°μ΄ν„°λ² μ΄μŠ€ 정리

    λ°μ΄ν„°λ² μ΄μŠ€ 정리

    λ°μ΄ν„°λ² μ΄μŠ€ 정리 1. 파일 μ‹œμŠ€ν…œκ³Ό λ°μ΄ν„°λ² μ΄μŠ€ 2020.04.27 - [πŸ“ Computer Science/✏ Database] - λ°μ΄ν„°λ² μ΄μŠ€(DataBase) λ°μ΄ν„°λ² μ΄μŠ€(DataBase) 파일 μ‹œμŠ€ν…œκ³Ό λ°μ΄ν„°λ² μ΄μŠ€ λ°μ΄ν„°λ² μ΄μŠ€κ°€ μ‘΄μž¬ν•˜κΈ° μ΄μ „μ—λŠ” 파일 μ‹œμŠ€ν…œμ„ μ΄μš©ν•˜μ—¬ 데이터λ₯Ό κ΄€λ¦¬ν•˜μ˜€λ‹€. 1. 파일 μ‹œμŠ€ν…œ 파일 μ‹œμŠ€ν…œμ€ νŒŒμΌμ„ μ΄μš©ν•˜μ—¬ 자료λ₯Ό κ΄€λ¦¬ν•˜λŠ” λ°©λ²•μœΌλ‘œ 파일 tech-interview.tistory.com 2. 인덱슀 2020.04.27 - [πŸ“ Computer Science/✏ Database] - 인덱슀(Index) 인덱슀(Index) 인덱슀(Index) 데이터 λ ˆμ½”λ“œλ₯Ό λΉ λ₯΄κ²Œ μ ‘κ·Όν•˜κΈ° μœ„ν•΄ 쌍으둜 κ΅¬μ„±λ˜λŠ” 데이터 ꡬ쑰이닀. 데이터 ν…Œμ΄λΈ”μ„ Full Scan ν•˜μ§€ μ•Šκ³  인덱슀λ₯Ό μ΄μš©ν•΄..

    νŒŒν‹°μ…”λ‹(Partitioning)κ³Ό 샀딩(Sharding)

    νŒŒν‹°μ…”λ‹(Partitioning)κ³Ό 샀딩(Sharding)

    1. νŒŒν‹°μ…”λ‹(Partitioning) μ„œλΉ„μŠ€μ˜ 크기가 점점 컀지고 DB에 μ €μž₯ν•˜λŠ” λ°μ΄ν„°μ˜ 규λͺ¨ λ˜ν•œ λŒ€μš©λŸ‰ν™” λ˜λ©΄μ„œ, 기쑴에 μ‚¬μš©ν•˜λŠ” DB μ‹œμŠ€ν…œμ˜ μš©λŸ‰μ˜ ν•œκ³„μ™€ μ„±λŠ₯의 μ €ν•˜λ₯Ό κ°€μ Έμ˜€κ²Œ λ˜μ—ˆλ‹€. 즉, ν•˜λ‚˜μ˜ DBMS에 λ„ˆλ¬΄ 큰 table이 λ“€μ–΄κ°€λ©΄μ„œ μš©λŸ‰κ³Ό μ„±λŠ₯ μΈ‘λ©΄μ—μ„œ λ§Žμ€ μ΄μŠˆκ°€ λ°œμƒν•˜κ²Œ λ˜μ—ˆκ³  이런 이슈λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•œ λ°©λ²•μœΌλ‘œ table을 νŒŒν‹°μ…˜(partition)μ΄λΌλŠ” μž‘μ€ λ‹¨μœ„λ‘œ λ‚˜λˆ„μ–΄ κ΄€λ¦¬ν•˜λŠ” νŒŒν‹°μ…”λ‹(Partitioning)이 λ‚˜νƒ€λ‚˜κ²Œ λ˜μ—ˆλ‹€. νŒŒν‹°μ…”λ‹μ΄λž€ 큰 tableμ΄λ‚˜ indexλ₯Ό κ΄€λ¦¬ν•˜κΈ° μ‰¬μš΄ νŒŒν‹°μ…˜μ΄λΌλŠ” μž‘μ€ λ‹¨μœ„λ‘œ 물리적으둜 λΆ„ν• ν•˜λŠ” 것을 μ˜λ―Έν•œλ‹€. 물리적인 데이터 뢄할이 μžˆλ”λΌλ„ DB에 μ ‘κ·Όν•˜λŠ” μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ μž…μž₯μ—μ„œλŠ” 이λ₯Ό μΈμ‹ν•˜μ§€ λͺ»ν•œλ‹€. μ†Œν”„νŠΈμ›¨μ–΄μ μœΌλ‘œ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό ..