π€ Why'sWiki
- μ C6μ΄ μλλΌ C7μ΄ μμ±λμκΉ?
- GitHub README λ§ν¬λ€μ΄ λ¬Έλ² μ 리
- νΉμλ¬Έμ ν¬ν¨ νμΌ μμ νΈλ¬λΈμν κΈ°λ‘
- μ£Όμ
- π 157339. μλμ°¨ λμ¬ κΈ°λ‘μμ μ₯κΈ°/λ¨κΈ° λμ¬ κ΅¬λΆνκΈ° (SQL)
- λ€νΈμν¬ μ£Όμ, λΈλ‘λμΊμ€νΈ μ£Όμ κ³μ°
μ C6μ΄ μλλΌ C7μ΄ μμ±λμκΉ?
- Git μκ°ν ν΄μμ
bugFix
λΈλμΉμμgit commit
μ μ€ννλλ, μλ‘μ΄ μ»€λ°μ΄C6
μ΄ μλλΌC7
λ‘ λ§λ€μ΄μ§. C6
μ μ‘΄μ¬νμ§λ§ νλ¦Ώνκ² νμλκ³ , μ΄λ€ λΈλμΉμμλ μ΄μ΄μ§μ§ μμ.
git checkout HEAD^ μν μ§ν
git checkout bugFix μν μ§ν
git commit μν μ§ν
νμ¬ μν© μ 리
- C5 μ΄νμ 컀λ°μ΄ μμ±λ¨.
- C6μ μμ§λ§ λ°μ μμΌλ‘ νμλμ΄ μκ³ , μ»€λ° λΌμΈμ΄ μ°κ²°λμ§ μμ.
- νμ¬ HEADλ
bugFix
λΈλμΉμ μκ³ , λ³ν(*)λ‘ νμλμ΄ μμ. - μ 컀λ°μ C7μΌλ‘ κΈ°λ‘λ¨.
π μ C6μ΄ μλλΌ C7μΌκΉ?
1. HEADκ° μ΄λμ μλμ§κ° μ€μ
- Gitμμ 컀λ°μ νλ©΄ νμ
HEAD
κ° κ°λ¦¬ν€λ λΈλμΉ κΈ°μ€μΌλ‘ 컀λ°μ΄ μκΈ΄λ€.
git commit
- μ΄ λͺ
λ Ήμ νμ¬
HEAD
κ° κ°λ¦¬ν€λ λΈλμΉ μμ 컀λ°μ μμ±νλ€. - νμ¬
HEAD β bugFix
μκΈ° λλ¬Έμ, 컀λ°μ C5 β C7μΌλ‘ μ΄μ΄μ‘μ.
2. C6μ HEAD
κ° κ°λ¦¬ν€λ κ²½λ‘μ μμ§ μλ€
- C6λ
git checkout
μ΄λrebase
λμ€ μμλ‘ μκ²Όλ€κ° νμ¬ λΈλμΉ κΈ°μ€μμλ λ μ΄μ μ΄μ΄μ§μ§ μμ κ³Όκ±° 컀λ°μ΄λ€. - λΈλμΉλ λ€λ₯Έ 컀λ°μμ μ°Έμ‘°νμ§ μλ 컀λ°μ garbage collection λμμ΄ λλ€.
- μ¦, C6μ μμ μ μμ±λ¬μ§λ§ μμ μ μμ±λμ§λ§ νμ¬ λΈλμΉλ HEADκ° κ°λ¦¬ν€μ§ μλ κ³ μ 컀λ°μ΄λ€.
- C7μ΄ bugFix λΈλμΉμμ μλ‘κ² μ»€λ°ν κ²°κ³Όλ¬Όμ΄λ€.
μκ°ν κΈ°λ° κ΅¬μ‘°
C4 (main)
β
C2 βββββββββ
β
C1 β
β β
C0 C3 β C5 β C7 (HEAD β bugFix)
β
C6 (κ³ μ 컀λ°)
μ°Έκ³ λͺ λ Ήμ΄
# νμ¬ λΈλμΉ λ° HEAD νμΈ
git branch
git status
# λͺ¨λ λΈλμΉμ μ»€λ° λ‘κ·Έ νμΈ
git log --graph --oneline --all
GitHub README λ§ν¬λ€μ΄ λ¬Έλ² μ 리
GitHub README λ§ν¬λ€μ΄ λ¬Έλ² μ 리
- .md νμ₯μλ λ§ν¬λ€μ΄ λ¬Έμ
- GitHubλ README.mdλ₯Ό μλμΌλ‘ νλ‘μ νΈ νμμ 보μ¬μ€λ€.
- μ½λ λΈλμ μΈμ΄λͺ μ μ§μ νλ©΄ λ¬Έλ² κ°μ‘°κ° μ μ©λλ€. (μ: javascript, python, bash)
π 1. μ λͺ© (Headings)
# H1 μ λͺ©
## H2 μ λͺ©
### H3 μ λͺ©
#### H4 μ λͺ©
##### H5 μ λͺ©
###### H6 μ λͺ©
βοΈ 2. κ°μ‘° (Emphasis)
*κΈ°μΈμ* λλ _κΈ°μΈμ_
**κ΅΅κ²** λλ __κ΅΅κ²__
***κ΅΅κ³ κΈ°μΈμ*** λλ ___κ΅΅κ³ κΈ°μΈμ___
π 3. λͺ©λ‘ (List)
β μμ μλ λͺ©λ‘
- νλͺ© 1
- νλͺ© 2
- νμ νλͺ©
β μμ μλ λͺ©λ‘
1. 첫 λ²μ§Έ νλͺ©
2. λ λ²μ§Έ νλͺ©
1. νμ νλͺ©
π» 4. μ½λ (Code)
β μΈλΌμΈ μ½λ
`μ½λ`
μ: `console.log("Hello")`
β μ½λ λΈλ
<pre> <code> ```javascript function hello() { console.log("Hello, world!"); } ``` </code> </pre>
π 5. λ§ν¬ & μ΄λ―Έμ§
- λ§ν¬
[λ§ν¬ν
μ€νΈ](https://example.com)
- μ΄λ―Έμ§

- μ

π¬ 6. μΈμ©λ¬Έ (Blockquote)
> μΈμ©λ¬Έμ
λλ€.
>> μ€μ²© μΈμ©λ¬Έλ κ°λ₯ν©λλ€.
π 7. μνμ (ꡬλΆμ )
---
***
___
β 8. 체ν¬λ°μ€ (To-do List)
- [ ] ν μΌ
- [x] μλ£λ μΌ
π 9. μ κΈ° κΈ°λ₯ (Details Toggle)
<details>
<summary>μ¬κΈ°λ₯Ό ν΄λ¦ν΄μ μ΄κΈ°</summary>
μ¨κ²¨μ§ λ΄μ©μ μ¬κΈ°μ μμ±ν©λλ€.
</details>
νΉμλ¬Έμ ν¬ν¨ νμΌ μμ νΈλ¬λΈμν κΈ°λ‘
ποΈ λ¬Έμ
- νμΌλͺ
:
--date=short οΌ grep
- μμΉ:
C:\Users\aweso\Desktop\μν΄λ(3)\awesomepossumgirl
- νμΌμ΄ 보μ΄μ§λ§ μμ νλ € νλ©΄
μ§μ λ νμΌμ μ°Ύμ μ μμ΅λλ€
λ°μ - μ€μ νμΌλͺ
μλ **νΉμλ¬Έμ
οΌ
λλβ
**κ° ν¬ν¨λμ΄ λͺ λ Ήμ΄ μΈμμ μ€ν¨
π₯οΈ μλ 1: CMD (λͺ λ Ή ν둬ννΈ)
λ°ννλ©΄ μ΄λ
cd C:\Users\aweso\Desktop\μν΄λ(3)\awesomepossumgirl
μμ μλ
del "--date=short οΌ grep"
β κ²°κ³Ό
μ§μ λ νμΌμ μ°Ύμ μ μμ΅λλ€
μ§§μ μ΄λ¦ νμΈ
dir /x
β κ²°κ³Ό
- μ§§μ μ΄λ¦μ΄ νμλμ§ μμ
- β 8.3 ν¬λ§· λΉνμ±ν μνκ±°λ, νΉμλ¬Έμ λλ¬Έμ μμ± μ€ν¨
π₯οΈ μλ 2: PowerShell κΈ°λ³Έ μμ
cd "C:\Users\aweso\Desktop\μν΄λ(3)\awesomepossumgirl"
Remove-Item ".\--date=short οΌ grep"
β κ²°κ³Ό
Remove-Item : κ²½λ‘λ μ‘΄μ¬νμ§ μμΌλ―λ‘ μ°Ύμ μ μμ΅λλ€.
μλ 3: μ λμ½λλ‘ λ¬Έμ μ λ ₯
μ λμ½λ οΌ
(U+F0FC) μ¬μ©
Remove-Item "$PWD\--date=short $([char]0xf0fc) grep"
β μ€ν¨
PowerShellμ΄ ν΄λΉ λ¬Έμλ₯Ό β
λ‘ μ€ν΄νλ κ²½μ° λ°μ β μμ μ€ν¨
μλ 4: μ λμ½λ β
(U+2713) μ¬μ©
Remove-Item "$PWD\--date=short $([char]0x2713) grep"
β μ€ν¨
Remove-Item : κ²½λ‘λ μ‘΄μ¬νμ§ μμ
μ΅μ’ μλ
νμ¬ λλ ν 리μμ μ΄λ¦ ν¨ν΄ κΈ°λ°μΌλ‘ νμΌ μ°Ύμ μμ
cd "C:\Users\aweso\Desktop\μν΄λ(3)\awesomepossumgirl"
$target = Get-ChildItem | Where-Object { $_.Name -like "*--date=short*" }
$target.FullName
Remove-Item $target.FullName -Force
κ²°κ³Ό
νμΌ μμ λΆκ°
μ£Όμ
1. Java (Intelli J)
κΈ°λ₯ | λ¨μΆν€ (Windows/Linux) | λ¨μΆν€ (Mac) |
---|---|---|
ν μ€ μ£Όμ ν κΈ // |
|
|
λΈλ‘ μ£Όμ ν κΈ /* */ |
μ·¨μλ |
|
λ¬Έμ μ£Όμ (Javadoc) |
|
|
2. νκ²½μ€μ νμΌ
μ€μ νμΌ(.env, .ini, conf, λ±)μμ μ£Όμμ μΈ λ μ΄λ€ νμΌμλ #, ; μ°λμ§
- .env β λλλ‘ #λ§ μ°μ, ;λ λλ κ²½μ° μμ
- .conf, Dockerfile, sh β 무쑰건 #
- .ini β λλλ‘ ; μ°μ , #λ λλ κ²½μ° μμ
π 157339. μλμ°¨ λμ¬ κΈ°λ‘μμ μ₯κΈ°/λ¨κΈ° λμ¬ κ΅¬λΆνκΈ° (SQL)
1. λ¬Έμ μμ½
car_rental_company_car
,car_rental_company_rental_history
,car_rental_company_discount_plan
ν μ΄λΈ μ 곡- 'μΈλ¨', 'SUV' μ°¨μ’ μ€ 2022λ 11μ ν λ¬ κ° λμ¬ κ°λ₯ν μ°¨λμ μ°Ύκ³ , 30μΌ μκΈ κΈ°μ€ μ λ ¬
2. μ€ν¨ν μλλ€
β 첫 λ²μ§Έ μλ
SELECT j.car_id, j.car_type, j.daily_fee * ((100 - j.discount_rate)*0.01) * 30 AS fee
FROM (car_rental_company_car c INNER JOIN car_rental_company_discount_plan d ON c.car_type = d.car_type) AS j
INNER JOIN car_rental_company_rental_history h ON j.car_id = h.car_id
WHERE car_type = 'μΈλ¨' OR 'SUV' AND h.end_date < '2024-11-01'
ORDER BY fee DESC, j.car_type, j.car_id DESC
- μ€λ₯:
'SUV'
λ νμ trueλ‘ μΈμλ¨ β λͺ¨λ car_type ν¬ν¨λ¨ - λ μ§ μ‘°κ±΄ λΆμ ν
β λ λ²μ§Έ μλ
FROM (SELECT * FROM ... ) AS j ...
- κ΅¬μ‘°λ§ λ°κΏ¨μ λΏ λ Όλ¦¬μ μ€λ₯ λμΌ
β μΈ λ²μ§Έ μλ
FROM (SELECT c.car_id, c.car_type, c.daily_fee, d.discount_rate FROM ... ) AS j ...
- κ³μ°μ λ§μμ§λ§ μ€μκ° μΆλ ₯ β
ROUND()
νμ car_id
μ€λ³΅ βGROUP BY
νμ
β λ€ λ²μ§Έ μλ
... GROUP BY car_id ...
- WHEREμ μ€λ₯ κ³μλ¨ (
car_type = 'μΈλ¨' OR 'SUV'
λ¬Έμ )
β λ€μ― λ²μ§Έ μλ
WHERE car_type IN ('μΈλ¨', 'SUV') AND h.end_date < '2024-11-01'
- WHERE μ μ€λ₯ μμ μ±κ³΅
- νμ§λ§ ν΅μ¬ 쑰건 λΉ μ§ β 11μ ν λ¬ "λμ¬ λΆκ°ν μ°¨λ"μ μ μΈν΄μΌ ν¨
β μ¬μ― λ²μ§Έ μλ
... AND d.duration_type = '30μΌ μ΄μ'
... AND h.start_date <= '2022-11-01' AND h.end_date >= '2022-11-30'
- λμ¬μ€μΈ μ°¨λλ§ ν¬ν¨λλ μ€λ₯ β μ μΈ μ‘°κ±΄μ΄ μλ ν¬ν¨ μ‘°κ±΄μ΄ λ¨
β μΌκ³± λ²μ§Έ μλ
WHERE car_type IN (...) AND (SELECT car_id FROM ...)
- WHERE μ μ μλΈμΏΌλ¦¬ λ¨λ μ¬μ© β λ€μ€ν μ€λ₯ λ°μ
β μ¬λ λ²μ§Έ μλ
WHERE car_type IN (...) AND NOT EXISTS (SELECT ...)
- μ²μμ 쑰건 λΆμμ νμ (j.car_id μ°λ μλ¨)
β μν λ²μ§Έ μλ (μ±κ³΅)
SELECT j.car_id, j.car_type, ROUND(j.daily_fee * ((100 - j.discount_rate)*0.01) * 30) AS fee
FROM (
SELECT c.car_id, c.car_type, c.daily_fee, d.discount_rate
FROM car_rental_company_car c
INNER JOIN car_rental_company_discount_plan d
ON c.car_type = d.car_type AND d.duration_type = '30μΌ μ΄μ') AS j
WHERE car_type IN ('μΈλ¨', 'SUV')
AND NOT EXISTS (
SELECT 1
FROM car_rental_company_rental_history h2
WHERE h2.car_id = j.car_id
AND NOT (h2.end_date < '2022-11-01' OR h2.start_date > '2022-11-30')
)
ORDER BY fee DESC, j.car_type, j.car_id DESC;
- NOT EXISTS μ μμ "11μ ν λ¬μ΄λΌλ λμ¬λ μ°¨λ μ μΈ"
- λ μ§ λ²μ:
NOT (end < 11μ 1μΌ OR start > 11μ 30μΌ)
β κ²ΉμΉλ λμ¬κΈ°κ° νν°λ§ - ν μΈ μ‘°κ±΄:
duration_type = '30μΌ μ΄μ'
- μκΈ:
ROUND()
ν¨μλ‘ μ μ μ²λ¦¬
3. κ΅ν λ° ν¬μΈνΈ μ 리
3.1 SQL WHERE μ μμ λ Όλ¦¬ μ€λ₯ μ£Όμ
'SUV'
λ¨λ μ νμ true βIN ('μΈλ¨', 'SUV')
μ¬μ©ν΄μΌ μ ν
3.2 λ μ§ λ²μ νν°λ§ μ NOT EXISTS
μ¬μ© ν
- κ²ΉμΉλ λ μ§ μ‘°κ±΄μ λΆμ ν΄μ μ μΈν μ°¨λμ μ μν΄μΌ ν¨
- κΈ°κ° κ²ΉμΉ¨ νμΈμ
NOT (end < μμ OR start > μ’ λ£)
λ‘ λΆμ
3.3 GROUP BYλ μ€λ³΅ λ°©μ§μ© μλ
- λ¬Έμ μμ μꡬνμ§ μλ μ΄μ, JOIN κ²°κ³Ό μ€λ³΅ λ°μ μμΈμ λ¨Όμ μ κ²ν κ²
3.4 ROUND ν¨μλ‘ μ€μ μ²λ¦¬
- κ³μ°μ κ²°κ³Όλ μ€μ β
ROUND()
λ‘ μ μ λ³ν νμ
π TMI:
- 볡μ‘ν SQLμΌμλ‘ μ μ§μ μΌλ‘ ν μ€νΈνλ©΄μ WHEREμ 쑰건μ λͺ νν νμ ν΄μΌ ν¨.
λ€νΈμν¬ μ£Όμ, λΈλ‘λμΊμ€νΈ μ£Όμ κ³μ°
1. 쑰건
- IP μ£Όμ:
192.168.35.10
- μλΈλ· λ§μ€ν¬:
255.255.252.0
(/22
)
2. λ€νΈμν¬ μ£Όμ κ³μ°
2.1 μλΈλ· λ§μ€ν¬ μ΄μ§ νν
255.255.252.0 = 11111111.11111111.11111100.00000000
β /22 (μμμ 22λΉνΈκ° κ³ μ )
2.2 λ€νΈμν¬ μ£Όμ κ³μ°
IP μ£Όμμ μλΈλ· λ§μ€ν¬λ₯Ό AND μ°μ°:
IP : 192.168.35.10 β 11000000.10101000.00100011.00001010
μλΈλ· : 255.255.252.0 β 11111111.11111111.11111100.00000000
--------------------------------------------------------------
κ²°κ³Ό : 192.168.32.0 β 11000000.10101000.00100000.00000000
β λ€νΈμν¬ μ£Όμ: 192.168.32.0
3. λΈλ‘λμΊμ€νΈ μ£Όμ κ³μ°
μλΈλ· λ§μ€ν¬μ 보μλ₯Ό λν¨:
μλΈλ· 보μ : 0.0.3.255
λ€νΈμν¬ μ£Όμ : 192.168.32.0
λΈλ‘λμΊμ€νΈ μ£Όμ : 192.168.32.0 + 0.0.3.255 = 192.168.35.255
β λΈλ‘λμΊμ€νΈ μ£Όμ: 192.168.35.255
4. μ ν¨ν νΈμ€νΈ λ²μ
- κ°λ₯ν νΈμ€νΈ IP λ²μ:
192.168.32.1
~192.168.35.254
- μ΄ νΈμ€νΈ μ:
210β2=1024β2=10222^{10} - 2 = 1024 - 2 = 1022210β2=1024β2=1022κ°
(λ€νΈμν¬ μ£Όμμ λΈλ‘λμΊμ€νΈ μ£Όμ μ μΈ)
5. κ²°λ‘ : μμ κ°λ₯ν IP 쑰건
λΈλ‘λμΊμ€νΈ ν¨ν·μ μμ ν μ μλ IPλ λ€μκ³Ό κ°λ€.
192.168.32.1 ~ 192.168.35.254
μ¦, ν΄λΉ λ²μ λ΄μ μλ λͺ¨λ IPκ° λΈλ‘λμΊμ€νΈ ν¨ν·μ μμ κ°λ₯νλ€.