'λ‘μ°λ 벨 νλ‘κ·Έλλ° κ·Όλ° μ΄μ λ°±μλλ₯Ό κ³λ€μΈ'νμ μμ€ν νλ‘κ·Έλλ° μ€ν°λμ λλ€. CμΈμ΄λ‘ Mini Shellκ³Ό Mini DBMSλ₯Ό ꡬννλ©΄μ μ΄μ체μ μ λ°±μλ μμ€ν μ μ΄ν΄ν©λλ€.
2025-04-02 ~
- λλ§μ Unix Shellμ μ§μ ꡬν
echo
,cd
,pwd
,export
,unset
,env
,exit
κ°μ λ΄μ₯ λͺ λ Ήμ΄ μ§μ ꡬν|
,<
,>
,>>
,^C
,^D
λ±μ νμ΄ν, 리λλ μ , μκ·Έλ μ μ΄ μ²λ¦¬- Mini DBMS ꡬν λ° Shellκ³Ό μ°λ
- ν¬νΈν΄λ¦¬μ€λ‘ μ μΆ κ°λ₯ν μ€μ μμ€ μ½λλ² μ΄μ€ ꡬμ±
![]() μ΄νκΆ |
![]() μ΅μ ν |
![]() μ₯μ§μ |
![]() λ°μ±μ§ |
![]() λ°°μΈμ |
- μΈμ΄: C (GCC)
- νλ«νΌ: MacOS
- ν΄: Make, Git
- κΈ°μ ν€μλ: Shell ꡬν, μμ€ν μ½, νκ²½λ³μ, νμ±, DBMS
minishell/
βββ include/ # μ μ ν€λ νμΌ
β βββ minishell.h
βββ lib/ # μΈλΆ λΌμ΄λΈλ¬λ¦¬, κ³΅μ© μ νΈ ν¨μ
βββ src/
β βββ shell/ # Shell κ΄λ ¨ λ‘μ§
β β βββ parser/ # λͺ
λ Ήμ΄ νμ±
β β βββ builtin/ # λ΄μ₯ λͺ
λ Ήμ΄
β β βββ executor/ # λͺ
λ Ή μ€ν, 리λλ μ
, νμ΄ν
β β βββ utils/ # λ¬Έμμ΄ μ νΈ, μλ¬ μ²λ¦¬
β β βββ main.c # Shell μ§μ
μ (REPL)
β βββ dbms/ # DBMS κ΄λ ¨ λ‘μ§
β βββ parser/ # SQL-like 쿼리 ν΄μ
β βββ engine/ # λͺ
λ Ή μ€ν λ‘μ§
β βββ storage/ # νμΌ κΈ°λ° μ μ₯μ
β βββ utils/ # ν
μ΄λΈ μ νΈ ν¨μ
βββ Makefile # λΉλ μ€μ
μ£Όμ°¨ | λ μ§ | μ£Όμ | μΈλΆ λ΄μ© |
---|---|---|---|
2μ£Όμ°¨ | 3/17 | Java κΈ°μ΄ νμ΅ 1 | νκ²½ μ€μ λ° κ°λ¨ν λ¬Έλ² (μΌμ μ μ§νλ¨) |
3μ£Όμ°¨ | 3/24 | Java κΈ°μ΄ νμ΅ 2 | ν΄λμ€, λ©μλ λ± λ³΅μ΅ (μΌμ μ μ§νλ¨) |
4μ£Όμ°¨ | 3/31 | μμ€ν μ½ κΈ°μ΄ | νλ‘μ νΈ μ
μ
, read , write , open , close λ± |
5μ£Όμ°¨ | 4/7 | κΈ°λ³Έ μ ꡬ쑰 | ν둬ννΈ, λͺ λ Ήμ΄ νμ±, μ€ν |
6~7μ£Όμ°¨ | λ―Έμ | νλ‘μΈμ€ μ²λ¦¬ | fork() , exec() , wait() |
8μ£Όμ°¨ | 4/28 | 리λλ μ & νμ΄ν | < , > , ` |
9μ£Όμ°¨ | 5/7 | λ°±κ·ΈλΌμ΄λ μ€ν | & μ²λ¦¬, job control |
10μ£Όμ°¨ | 5/12 | νκ²½ λ³μ & μκ·Έλ | export , unset , Ctrl+C λ± μ²λ¦¬ |
11μ£Όμ°¨ | 5/19 | λ―Έλ DBMS μ€κ³ | ν μ΄λΈ ꡬ쑰, λͺ λ Ήμ΄ νμ± (CREATE, INSERT, SELECT) |
12μ£Όμ°¨ | 5/26 | Shell β DB μ°λ | SQL-like ν΄μ β DB μ²λ¦¬ ν¨μ νΈμΆ |
13μ£Όμ°¨ | 6/2 | κ³ λν | Persistence, μλ¬ νΈλ€λ§, ν μ€νΈ |
# 1. μ μ₯μ ν΄λ‘
git clone https://github.com/ALOC-dev/3rd-study-LowAndBack.git
# 2. λΉλ
cd shell
make
# 3. μ€ν
./myshell