1. ๋ค์ Java ์ฝ๋์ ๋ํ ์๋ง๋ ์ถ๋ ฅ๊ฐ์ ์ฐ์์ค.
class Connection {
private static Connection _inst = null;
private int count = 0;
static public Connection get() {
if(_inst == null) {
_inst = new Connection();
return _inst;
}
return _inst;
}
public void count() { count ++; }
public int getCount() { return count; }
}
public class testcon {
public static void main(String[] args) {
Connection conn1 = Connection.get();
conn1.count();
Connection conn2 = Connection.get();
conn2.count();
Connection conn3 = Connection.get();
conn3.count();
System.out.print(conn1.getCount());
}
}
3
์ด ํด๋์ค๋ ๊ฐ์๋ฅผ ์ถ์ ํ๋ count ๋ฉค๋ฒ ๋ณ์๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค.
Connection ํด๋์ค๋ private ์์ฑ์๋ฅผ ๊ฐ์ง๋ฉฐ,
Connection ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋ ์ ์ ๋ฉ์๋ get()์ ๊ฐ์ง๊ณ ์์ต๋๋ค.
get() ๋ฉ์๋๋ Connection ํด๋์ค์ ์ธ์คํด์ค๊ฐ ์๋ ๊ฒฝ์ฐ ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ญ๋๋ค.
์ด๋ฏธ ์ธ์คํด์ค๊ฐ ์กด์ฌํ๋ ๊ฒฝ์ฐ, ์ด์ ์ ๋ง๋ค์ด์ง ์ธ์คํด์ค๋ฅผ ๋ฐํํฉ๋๋ค.
testcon ํด๋์ค๋ main ๋ฉ์๋๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ,
Connection ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ธ ๋ฒ ๊ฐ์ ธ์ count() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ count ๋ณ์๋ฅผ ์ฆ๊ฐ์ํต๋๋ค.
๊ทธ๋ฐ ๋ค์ conn1 ๊ฐ์ฒด์ getCount() ๋ฉ์๋๋ฅผ ํธ์ถํ์ฌ count ๋ณ์์ ๊ฐ์ ์ถ๋ ฅํฉ๋๋ค.
๊ฒฐ๊ณผ์ ์ผ๋ก ์ถ๋ ฅ์ "3"์ด ๋ฉ๋๋ค.
์ด๋ ์ธ ๊ฐ์ Connection ์ธ์คํด์ค๊ฐ ๋ชจ๋ ๊ฐ์ ์ธ์คํด์ค์ด๊ธฐ ๋๋ฌธ์ count ๋ณ์๊ฐ ๊ฐ๊ฐ์ ์ธ์คํด์ค์์ ์ฆ๊ฐ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค.
2. ๋ค์์ ์ ๋ณด ๋ณดํธ ๊ธฐ์ ์ธ AAA์ ๋ํ ์ค๋ช ์ด๋ค. ๊ฐ ์ค๋ช ์ ๋ง๋ ๋ต์ ๊ณ ๋ฅด์์ค
(์ค์ ๊ธฐ์ถ๋ฌธ์ ์์๋ ๋ต์ ๋ณด๊ธฐ ์ค, A์ ๋ํ ๋ณด๊ธฐ๊ฐ ์ฃผ์ด์ง๋๋ค.(์ค๋ต ์ค, Application ๋ฑ..))
1. ์์คํ ์ ์ ๊ทผํ๊ธฐ ์ ์ ์ ๊ทผ ์๋ํ๋ ์ฌ์ฉ์์ ์ ์์ ๊ฒ์ฆ
2. ๊ฒ์ฆ๋ ์ฌ์ฉ์์๊ฒ ์ด๋ค ์์ค์ ๊ถํ๊ณผ ์๋น์ค๋ฅผ ํ์ฉ
3. ์ฌ์ฉ์์ ์์(์๊ฐ,์ ๋ณด,์์น ๋ฑ)์ ๋ํ ์ฌ์ฉ ์ ๋ณด๋ฅผ ์์ง
- ์์คํ ์ ์ ๊ทผํ๊ธฐ ์ ์ ์ ๊ทผ ์๋ํ๋ ์ฌ์ฉ์์ ์ ์์ ๊ฒ์ฆ - Authentication(์ธ์ฆ)
- ๊ฒ์ฆ๋ ์ฌ์ฉ์์๊ฒ ์ด๋ค ์์ค์ ๊ถํ๊ณผ ์๋น์ค๋ฅผ ํ์ฉ - Authorization(์ธ๊ฐ)
- ์ฌ์ฉ์์ ์์(์๊ฐ,์ ๋ณด,์์น ๋ฑ)์ ๋ํ ์ฌ์ฉ ์ ๋ณด๋ฅผ ์์ง - Accounting(๊ฐ์ฌ)
3. Grant์ ๊ธฐ๋ฅ์ ๋ํด ๊ฐ๋ตํ๊ฒ ์ฝ์ ํ์์ค.
DBMS ์์ ์ฌ์ฉ์ ๋๋ ์ฌ์ฉ์ ๊ทธ๋ฃน์ ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด(ํ ์ด๋ธ, ๋ทฐ, ํ๋ก์์ ๋ฑ)์ ๊ถํ์ ๋ถ์ฌํ๋ SQL ๋ฌธ์ ๋๋ค.
Grant๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ์คํ ๋ฑ์ ๊ถํ์ ๋ถ์ฌํ ์ ์์ผ๋ฉฐ,
์ด๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ณด์๊ณผ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์์ต๋๋ค.
๋ํ, Grant๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์ ๊ฐ์ ๊ถํ์ ๊ณต์ ํ๊ฑฐ๋ ๊ถํ์ ์ ํํ์ฌ ๋ณด์์ ๊ฐํํ ์ ์์ต๋๋ค.
4. ๋ค์ ์ค, ์ค๋ช ์ ๋ํ ๊ดํธ( ) ์์ ๋ค์ด๊ฐ๋ ๋ด์ฉ์ ๋ํด ์์ฑํ์์ค.
(์ค๋ช ๊ณผ ํจ๊ป ๋์๊ณผ์ ์ด๋ฏธ์ง๊ฐ ์์ต๋๋ค.)
( ) ์คํธํ์ ๊ทผ๊ฑฐ๋ฆฌ ํต์ ๋ง ํ์์ ( ) ๋ฉ์์ง๋ฅผ ์ด์ฉํ์ฌ ์๋๋ฐฉ์ ๋ฐ์ดํฐ ํจํท์ ์ค๊ฐ์์ ๊ฐ๋ก์ฑ๋ ์ค๊ฐ์ ๊ณต๊ฒฉ ๊ธฐ๋ฒ์ด๋ค.
์ด ๊ณต๊ฒฉ์ ๋ฐ์ดํฐ ๋งํฌ ์์ ํ๋กํ ์ฝ์ธ ( )๋ฅผ ์ด์ฉํ๊ธฐ ๋๋ฌธ์ ๊ทผ๊ฑฐ๋ฆฌ์์ ํต์ ์์๋ง ์ฌ์ฉํ ์ ์๋ ๊ณต๊ฒฉ์ด๋ค.
ARP(Address Resolution Protocol)
ARP : IP ์ฃผ์๋ฅผ ๋ฌผ๋ฆฌ์ ์ธ MAC ์ฃผ์๋ก ๋งคํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ๋ก,
๋คํธ์ํฌ์์ ํต์ ์ ํ๊ธฐ ์ํด ์ํธ ๊ฐ์ MAC ์ฃผ์๋ฅผ ์์๋ด๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
ARP Spoofing: ARP ํ ์ด๋ธ์ ๋ฑ๋ก๋ MAC ์ฃผ์๋ฅผ ๋ณ์กฐํ์ฌ ๋ค๋ฅธ ๊ธฐ๊ธฐ๋ก ํจํท์ ์ ์กํ๋ ๊ณต๊ฒฉ์ผ๋ก,
์ค๊ฐ์์ ํต์ ๋ด์ฉ์ ๊ฐ๋ก์ฑ๊ฑฐ๋ ๋ณ๊ฒฝํ ์ ์์ด ๋ณด์ ์ทจ์ฝ์ ์ด ๋ ์ ์์ต๋๋ค.
5. ๋ค์์ Coupling์ ๋ํ ์ค๋ช ์ด๋ค. ์ค๋ช ์ ๋ํ Coupling ์ข ๋ฅ๋ฅผ ์๋ฌธ์ผ๋ก ์์ฑํ์์ค.
์ด๋ค ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋์ ๋ด๋ถ ๋
ผ๋ฆฌ ์กฐ์ง์ ์ ์ดํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ ์ด ์ ํธ๋ฅผ ์ด์ฉํ์ฌ ํต์ ํ๋ ๊ฒฝ์ฐ์ ๊ฒฐํฉ๋
ํ์ ๋ชจ๋์์ ์์ ๋ชจ๋๋ก ์ ์ด ์ ํธ๊ฐ ์ด๋ํ์ฌ ์์ ๋ชจ๋์๊ฒ ์ฒ๋ฆฌ ๋ช
๋ น์ ๋ถ์ฌํ๋ ๊ถ๋ฆฌ ์ ๋ ํ์์ด ๋ฐ์
Control Coupling
์ํํธ์จ์ด ๊ณตํ์์ coupling์ด๋ ๊ฒฐํฉ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
๊ฒฐํฉ๋๋ ์ฝํ ์๋ก ๋ชจ๋์ ๋
๋ฆฝ์ฑ์ด ๋์์ง๋๋ฐ,
๋ด์ฉ > ๊ณตํต > ์ธ๋ถ > ์ ์ด > ์คํฌํ > ์๋ฃ ๊ฒฐํฉ๋ ์์ผ๋ก ๊ฒฐํฉ๋๊ฐ ์ฝํด์ง๋๋ค.
- ๋ด์ฉ ๊ฒฐํฉ๋(Content Coupling): ํ๋์ ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋ ๋ด๋ถ์ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ์ฐธ์กฐํ๊ฑฐ๋, ๋ค๋ฅธ ๋ชจ๋์ ๋ด๋ถ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ์ง์ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ, ๋์ ๊ฒฐํฉ๋๊ฐ ๋ฐ์ํ๋๋ฐ ์ด๋ฅผ ๋ด์ฉ ๊ฒฐํฉ๋๋ผ๊ณ ํฉ๋๋ค.
- ๊ณตํต ๊ฒฐํฉ๋(Common Coupling): ์ฌ๋ฌ ๋ชจ๋์์ ํ๋์ ์ ์ญ ์๋ฃ๋ ๊ณต์ ์๋ฃ๋ฅผ ์ฐธ์กฐํ๋ ๊ฒฝ์ฐ, ๊ณตํต ๊ฒฐํฉ๋๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์ธ๋ถ ๊ฒฐํฉ๋(External Coupling): ํ ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋์ ์ ๋ ฅ์ด๋ ์ถ๋ ฅ์ผ๋ก ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ, ๋ ๋ชจ๋ ๊ฐ์ ์ธ๋ถ ๊ฒฐํฉ๋๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์ ์ด ๊ฒฐํฉ๋(Control Coupling): ์ด๋ค ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋์ ๋ด๋ถ ๋ ผ๋ฆฌ ์กฐ์ง์ ์ ์ดํ๊ธฐ ์ํด ์ ์ด ์ ํธ๋ฅผ ์ด์ฉํ์ฌ ํต์ ํ๋ ๊ฒฝ์ฐ, ์ ์ด ๊ฒฐํฉ๋๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์คํฌํ ๊ฒฐํฉ๋(Stamp Coupling): ๋ ๋ชจ๋ ๊ฐ์ ๋ฐ์ดํฐ ์ ์ก ์ ์ผ๋ถ ๋ฐ์ดํฐ ํญ๋ชฉ๋ง ์ฃผ๊ณ ๋ฐ๋ ๊ฒฝ์ฐ, ์คํฌํ ๊ฒฐํฉ๋๊ฐ ๋ฐ์ํฉ๋๋ค.
- ์๋ฃ ๊ฒฐํฉ๋(Data Coupling): ๋ชจ๋ ๊ฐ์ ์๋ฃ ๊ตฌ์กฐ๋ฅผ ๊ณต์ ํ๊ฑฐ๋, ๊ณต์ ์๋ฃ๋ฅผ ์ด์ฉํ์ฌ ํต์ ํ๋ ๊ฒฝ์ฐ, ์๋ฃ ๊ฒฐํฉ๋๊ฐ ๋ฐ์ํฉ๋๋ค. ์ด๋ ๋ชจ๋ ๊ฐ์ ๋ ๋ฆฝ์ฑ์ ๋์ด๋๋ฐ ๋์์ด ๋ฉ๋๋ค.
6. OSI 7 Layer์ ์ค๋ช ์ผ๋ก ํด๋น๋๋ ์ค๋ช ์ ๋ต์ ์์ฑํ์์ค.
1. ๋ฌผ๋ฆฌ๊ณ์ธต์ ํตํด ์ก์์ ๋๋ ์ ๋ณด์ ์ค๋ฅ์ ํ๋ฆ์ ๊ด๋ฆฌํ์ฌ ์์ ํ ์ ๋ณด์ ์ ๋ฌ์ ์ํํ ์ ์๋๋ก ๋์์ฃผ๋ ์ญํ
2. ๋ฐ์ดํฐ๋ฅผ ๋ชฉ์ ์ง๊น์ง ๊ฐ์ฅ ์์ ํ๊ณ ๋น ๋ฅด๊ฒ ์ ๋ฌํ๋ ๊ธฐ๋ฅ
3. ์์ ์์์ ๋ฐ์ดํฐ์ ์์ถ์ ํ์ ์๋ ๋ฐฉ์์ผ๋ก ๋ ๋ฐ์ดํฐ ์์ถ
๋ฌผ๋ฆฌ ๊ณ์ธต (Physical Layer): ๋ฐ์ดํฐ๋ฅผ ์ ๊ธฐ์ , ๊ธฐ๊ณ์ , ๊ธฐ๋ฅ์ ์ธ ์ ํธ๋ก ๋ณํํ์ฌ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ ๊ณ์ธต์ ๋๋ค.
๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต (Data Link Layer): ๋ฌผ๋ฆฌ ๊ณ์ธต์์ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ๊ฒ์ถํ๊ณ , ์ ์ ํ์ฌ ๋ฐ์ดํฐ ์ ์ก์ ์ ์ดํ๋ ๊ณ์ธต์ ๋๋ค.
๋คํธ์ํฌ ๊ณ์ธต (Network Layer): ํจํท์ ์ด๋ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ๊ณ , ๋ค์ํ ๋คํธ์ํฌ๋ค์ ์ฐ๊ฒฐํ์ฌ ํต์ ์ ๊ฐ๋ฅํ๊ฒ ํ๋ ๊ณ์ธต์ ๋๋ค.
์ ์ก ๊ณ์ธต (Transport Layer): ์ ๋๋จ์ ์ฌ์ฉ์๋ค์ด ์ ๋ขฐ์ฑ ์๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋๋ก ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ , ๋ฐ์ดํฐ์ ๋ถํ ๊ณผ ๋ณํฉ, ํ๋ฆ์ ์ด, ์ค๋ฅ๊ฒ์ถ๊ณผ ๋ณต๊ตฌ๋ฅผ ์ํํ๋ ๊ณ์ธต์ ๋๋ค.
์ธ์ ๊ณ์ธต (Session Layer): ์ ๋๋จ์ ์์ฉ ํ๋ก์ธ์ค๋ค ๊ฐ์ ์ฐ๊ฒฐ์ ์ค์ ํ๊ณ , ์ ์งํ๋ฉฐ, ์ข ๋ฃํ๋ ๊ณ์ธต์ ๋๋ค.
ํํ ๊ณ์ธต (Presentation Layer): ๋ฐ์ดํฐ์ ํ์์ ๋ณํํ๊ฑฐ๋, ์ํธํ, ๋ณตํธํ, ์ธ์ฝ๋ฉ, ๋์ฝ๋ฉ ๋ฑ์ ๊ธฐ๋ฅ์ ์ํํ๋ ๊ณ์ธต์ ๋๋ค.
์์ฉ ๊ณ์ธต (Application Layer): ์ต์ข ์ฌ์ฉ์์ ์์ฉ ํ๋ก๊ทธ๋จ๊ณผ ์ง์ ์ํธ์์ฉํ๋ ๊ณ์ธต์ ๋๋ค. ์ด ๊ณ์ธต์์๋ ์ผ๋ฐ์ ์ธ ์์ฉ ์๋น์ค์ ๋คํธ์ํฌ ์๋น์ค๋ฅผ ์ ๊ณตํฉ๋๋ค.
7. ๋ค์ ์ค, ์ค๋ช ์ ๋ํ ๊ดํธ ( ) ์์ ๋ค์ด๊ฐ ์๋ง๋ ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์์ค.
- ์ถ์ํ, ํ๋์ ์ฌ๋ฌผ์ด ๋ค๋ฅธ ์ฌ๋ฌผ์ ํฌํจ๋์ด ์๋ ๊ด๊ณ ํํ: ( 1. )
- ๊ฐ๋
ํ, ํ๋์ ์ฌ๋ฌผ์ด ๋ค๋ฅธ ์ฌ๋ฌผ์ ๋นํด ๋ ์ผ๋ฐ์ ์ธ์ง ๊ตฌ์ฒด์ ์ธ์ง๋ฅผ ํํ: ( 2. )
---
๋ณด๊ธฐ
Aggregation, Classification, Generalization, Abstraction, Association
1. Aggregation
2. Generalization
Aggregation์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ๊ฐ์ฒด ๊ฐ์ ๊ด๊ณ๋ฅผ ๊ตฌ์ฑํ๋ ๋ฐฉ๋ฒ ์ค ํ๋์ด๋ค.
๋ ๊ฐ์ฒด ์ฌ์ด์ ์ผ๋๋ค ๊ด๊ณ๋ฅผ ๋ํ๋ด๋๋ฐ, ์ด ๋ ๋ค์์ ๊ฐ์ฒด๋ ํ๋์ ๊ฐ์ฒด์ ์ํ ์ ์๋ค.
Aggregation ๊ด๊ณ๋ ๋ ๊ฐ์ฒด ๊ฐ์ ์๋ช ์ฃผ๊ธฐ๋ฅผ ๊ณต์ ํ์ง ์๋๋ค.
์ฆ, ๋ถ๋ชจ ๊ฐ์ฒด๊ฐ ์ญ์ ๋๋๋ผ๋ ์์ ๊ฐ์ฒด๋ ๊ณ์ ์กด์ฌํ ์ ์๋ค.
Generalization์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์์ ๊ฐ๋ ์ ์๋ฏธํ๋ค.
์๋ก์ด ํด๋์ค๋ฅผ ์ ์ํ ๋ ์ด๋ฏธ ์กด์ฌํ๋ ํด๋์ค์ ์์ฑ๊ณผ ์ฐ์ฐ์ ์์๋ฐ์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค.
์์ ๊ด๊ณ์์๋ ์์ ํด๋์ค๊ฐ ํ์ ํด๋์ค์๊ฒ ๊ณตํต์ ์ธ ํน์ฑ์ ์ ๊ณตํ๊ณ ํ์ ํด๋์ค๋ ์์ ํด๋์ค์์ ์์๋ฐ์ ํน์ฑ์ ํฌํจํ์ฌ ๋ ๊ตฌ์ฒด์ ์ธ ํน์ฑ์ ๊ฐ์ง ์ ์๋ค.
์์์ ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ ์ ์ง๋ณด์๋ฅผ ์ฉ์ดํ๊ฒ ํด์ค๋ค.
8. ๋ค์์ ํ ์คํธ์ผ์ด์ค์ ๊ตฌ์ฑ์์์ ๋ํ ์ค๋ช ์ด๋ค. ๊ดํธ ( ) ์์ ๋ค์ด๊ฐ ์๋ง๋ ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์์ค.
(์ค์ ๊ธฐ์ถ๋ฌธ์ ์์๋ ๋ต์ ๋ํ ๋ณด๊ธฐ๊ฐ ์ฃผ์ด์ง๋๋ค.)
( 1. ) | ํ
์คํธ ๊ฐ์ ์ข
์์ฑ, ํ
์คํธ ์ํ ์ ์คํ๋์ด์ผ ํ ๊ณ ๋ ค ์ฌํญ ๋ฑ
( 2. ) | ํ
์คํธ ์คํ ์ ์
๋ ฅํ ์
๋ ฅ๊ฐ, ์ ํ ๋ฒํผ, ์ฒดํฌ ๋ฆฌ์คํธ ๊ฐ ๋ฑ
( 3. ) | ํ
์คํธ ์คํ ํ ์ถ๋ ฅ ๋ฐ์ดํฐ, ๊ฒฐ๊ณผ ํ๋ฉด, ๊ธฐ๋ ๋์ ๋ฑ
1. ํ
์คํธ ์กฐ๊ฑด
2. ํ
์คํธ ๋ฐ์ดํฐ
3. ์์ ๊ฒฐ๊ณผ
9. ๋ค์ ์ค, ์ค๋ช ์ ๋ํ ๊ดํธ ( ) ์์ ๋ค์ด๊ฐ ์๋ง๋ ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์์ค.
(์ค์ ๊ธฐ์ถ๋ฌธ์ ์์๋ ๋ต์ ๋ํ ๋ณด๊ธฐ ์ค, ์๋ฌธ ๋ณด๊ธฐ๊ฐ ์ฃผ์ด์ง๋๋ค.)
( ) ํตํด ์๊ตฌ์ฌํญ ๋ช ์ธ๋ฅผ ์ ๋ ฅ ์กฐ๊ฑด๊ณผ ์ถ๋ ฅ ์กฐ๊ฑด ๊ฐ์ ๋ ผ๋ฆฌ์ ๊ด๊ณ๋ก ํํํ๊ณ ,
์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํธ์ผ์ด์ค๋ฅผ ๋์ถํ๋ค.
( )์ ‘์์ธ(causes)’์ ์
๋ ฅ ์กฐ๊ฑด์ ์๋ฏธํ๊ณ ‘๊ฒฐ๊ณผ(effects)’๋ ์
๋ ฅ ์กฐ๊ฑด์ ๊ฒฐ๊ณผ๋ฅผ ์๋ฏธํ๋ฉฐ,
์์ธ๊ณผ ๊ฒฐ๊ณผ ๊ฐ์ ๋
ผ๋ฆฌ์ ๊ด๊ณ๋ฅผ AND, OR, NOT ๊ฐ์ boolean ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ํํํ๋ค.
Cause-Effect Graph
Cause-Effect Graph๋ ์์คํ ์ ์ ๋ ฅ๊ณผ ์ถ๋ ฅ ์ฌ์ด์ ์ธ๊ณผ ๊ด๊ณ๋ฅผ ์๊ฐ์ ์ผ๋ก ํํํ ๋๊ตฌ์ ๋๋ค.
์ด ๋๊ตฌ๋ ์ํํธ์จ์ด ํ ์คํธ์์ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ ๋ ฅ ๋ณ์์ ์ถ๋ ฅ ๋ณ์๊ฐ ๋ง์ ๋ณต์กํ ์์คํ ์ ๊ฒฝ์ฐ,
์ ๋ ฅ ๋ณ์์ ์กฐํฉ์ด ์ถ๋ ฅ ๋ณ์์ ์ํฅ์ ์ฃผ๋ ๋ฐฉ์์ ์ดํดํ๋ ๊ฒ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค.
Cause-Effect Graph๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ์ ๋ ฅ ๋ณ์์ ์ถ๋ ฅ ๋ณ์ ์ฌ์ด์ ๋ณต์กํ ๊ด๊ณ๋ฅผ ๊ฐ์ํํ๊ณ ์ดํดํ๊ธฐ ์ฌ์ด ํํ๋ก ์๊ฐํํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ ์คํธ ์ผ์ด์ค๋ฅผ ์์ฑํ๊ณ ์์คํ ์ ํ ์คํธํ ๋ ํจ์จ์ฑ๊ณผ ์ ํ์ฑ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
10. ๋ค์ ์ค, ์ค๋ช ์ ๋ํ ๊ดํธ ( ) ์์ ๋ค์ด๊ฐ ์๋ง๋ ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์์ค.
( )๋ ๋ธ๋ก ์ํธ์ ์ผ์ข
์ผ๋ก, ๋ฏธ๊ตญ NBS (National Bureau of Standards, ํ์ฌ NIST)์์ ๊ตญ๊ฐ ํ์ค์ผ๋ก ์ ํ ์ํธ์ด๋ค.
( )๋ 64๋นํธ ํ๋ฌธ์ 64๋นํธ ์ํธ๋ฌธ์ผ๋ก ์ํธํํ๋ ๋์นญํค ์ํธ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.
( )์ ํค๋ 7๋นํธ๋ง๋ค ์ค๋ฅ๊ฒ์ถ์ ์ํ ์ ๋ณด๊ฐ 1๋นํธ์ฉ ๋ค์ด๊ฐ๊ธฐ ๋๋ฌธ์ ์ค์ง์ ์ผ๋ก๋ 56๋นํธ์ด๋ค.
DES
11. ๋ค์ Java ์ฝ๋์ ๋ํ ์๋ง๋ ์ถ๋ ฅ๊ฐ์ ์ฐ์์ค.
public class testco {
public static void main(String[] args) {
int a = 3, b = 4, c = 3, d = 5;
if((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) {
a = b + c;
if(7 == b ^ c != a) {
System.out.println(a);
} else {
System.out.println(b);
}
} else {
a = c + d;
if(7 == c ^ d != a) {
System.out.println(a);
} else {
System.out.println(d);
}
}
}
}
7
- if๋ฌธ ์กฐ๊ฑด์์์ ๋ ผ๋ฆฌ ์ฐ์ฐ์ |์ ^๊ฐ ์ฌ์ฉ๋์๋ค.
- |์ ๋ ผ๋ฆฌํฉ(OR) ์ฐ์ฐ์๋ก, ์์ชฝ ํผ์ฐ์ฐ์ ์ค ํ๋๋ผ๋ ์ฐธ(true)์ด๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด ๋๋ค. ๋ฐ๋ผ์, a == 2 | a == c๋ false | true๊ฐ ๋์ด true๊ฐ ๋๋ค.
- &๋ ๋ ผ๋ฆฌ๊ณฑ(AND) ์ฐ์ฐ์๋ก, ์์ชฝ ํผ์ฐ์ฐ์ ๋ชจ๋ ์ฐธ(true)์ผ ๋ ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด ๋๋ค. !(c > d)๋ true๊ฐ ๋๋ฏ๋ก, ์ ์ฒด ์กฐ๊ฑด์์ true & true & (1 == b ^ c != d)๊ฐ ๋๋ค.
- ^๋ ๋ฐฐํ์ ๋ ผ๋ฆฌํฉ(XOR) ์ฐ์ฐ์๋ก, ์์ชฝ ํผ์ฐ์ฐ์๊ฐ ์๋ก ๋ค๋ฅด๋ฉด ๊ฒฐ๊ณผ๊ฐ ์ฐธ์ด ๋๋ค. 1 == b ^ c != d๋ true๊ฐ ๋๋ค.
- ๋ฐ๋ผ์, if๋ฌธ์ ์ฒซ ๋ฒ์งธ ๋ธ๋ก์ด ์คํ๋์ด a = b + c๊ฐ ์คํ๋๋ค. a๋ ์ด์ 7์ด ๋๋ค.
- ๋ ๋ฒ์งธ if๋ฌธ์ ์กฐ๊ฑด์์ 7 == c ^ d != a์ด๋ค.
- ๋ง์ง๋ง์ผ๋ก, System.out.println(a)๊ฐ ์คํ๋์ด ์ฝ์์ 7์ด ์ถ๋ ฅ๋๋ค.
12. ๋ค์ C์ธ์ด์ ๋ํ ์๋ง๋ ์ถ๋ ฅ๊ฐ์ ์ฐ์์ค.
#include <stdio.h>
int main(){
int *arr[3];
int a = 12, b = 24, c = 36;
arr[0] = &a;
arr[1] = &b;
arr[2] = &c;
printf("%d\n", *arr[1] + **arr + 1);
}
37
arr[1]์ b์ ์ฃผ์๋ฅผ ์ ์ฅํ๊ณ ์์ต๋๋ค. *arr[1]์ b์ ๊ฐ์ ๊ฐ๋ฆฌํต๋๋ค.
**arr์ arr ๋ฐฐ์ด์ ์ฒซ ๋ฒ์งธ ์์์ธ a์ ๊ฐ์ ๊ฐ๋ฆฌํต๋๋ค.
๋ฐ๋ผ์ *arr[1] + **arr + 1์ b์ ๊ฐ์ธ 24์ a์ ๊ฐ์ธ 12๋ฅผ ๋ํ๊ณ 1์ ๋ํ ๊ฒฐ๊ณผ์ธ 37์ด ์ถ๋ ฅ๋ฉ๋๋ค.
13. ๋ค์์, ํ ์ด๋ธ์์ ์กฐ๊ฑด๊ฐ์ ์คํํ ํ๋ฉด์ด๋ค. ์ด์ ๋ํ ์๋ง๋ ๊ฒฐ๊ณผ๊ฐ์ ์์ฑํ์์ค.
14. ๋ค์ ํ์ด์ฌ ์ฝ๋์ด๋ค. ์๋ง๋ ์ถ๋ ฅ๊ฐ์ ์ฐ์์ค.
a,b = 100, 200
print(a==b)
False
15. ๋ค์ ์ค, ์ค๋ช ์ ๋ํ ๊ดํธ ( ) ์์ ๋ค์ด๊ฐ ์๋ง๋ ๋ต์ ์์ฑํ์์ค.
( ) ๋ค์ด์ด๊ทธ๋จ์ ๋ฌธ์ ํด๊ฒฐ์ ์ํ ๋๋ฉ์ธ ๊ตฌ์กฐ๋ฅผ ๋ํ๋ด์ด ๋ณด์ด์ง ์๋ ๋๋ฉ์ธ ์์ ๊ฐ๋ ๊ณผ
๊ฐ์ ์ถ์์ ์ธ ๊ฐ๋
์ ๊ธฐ์ ํ๊ธฐ ์ํด ๋ํ๋ธ ๊ฒ์ด๋ค.
๋ํ ์ํํธ์จ์ด์ ์ค๊ณ ํน์ ์์ฑ๋ ์ํํธ์จ์ด์ ๊ตฌํ ์ค๋ช
์ ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
( ) ๋ค์ด์ด๊ทธ๋จ์ ํ์์ ( )๋ฅผ ํฌํจํ์ฌ ์์ฑ(attribute)๊ณผ ๋ฉ์๋(method)๊ฐ ์๋ค.
ํด๋์ค ๋ค์ด์ด๊ทธ๋จ
16. ๋ค์ ์ค, ์ค๋ช ์ ๋ํ ๊ดํธ ( ) ์์ ๋ค์ด๊ฐ ์๋ง๋ ๋ณด๊ธฐ๋ฅผ ๊ณ ๋ฅด์์ค.
(์ค์ ๊ธฐ์ถ๋ฌธ์ ์์๋ ๋ต์ ๋ํ ๋ณด๊ธฐ ์ค, ์๋ฌธ ๋ณด๊ธฐ๊ฐ ์ฃผ์ด์ง๋๋ค.)
( ) ํจํด์ ๊ฐ์ฒด์งํฅ ๋์์ธ ํจํด์ด๋ค.
( )๋ ๋ถ๋ชจ(์์) ํด๋์ค์ ์๋ ค์ง์ง ์์ ๊ตฌ์ฒด ํด๋์ค๋ฅผ ์์ฑํ๋ ํจํด์ด๋ฉฐ,
์์(ํ์) ํด๋์ค๊ฐ ์ด๋ค ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ง๋ฅผ ๊ฒฐ์ ํ๋๋ก ํ๋ ํจํด์ด๊ธฐ๋ ํ๋ค.
๋ถ๋ชจ(์์) ํด๋์ค ์ฝ๋์ ๊ตฌ์ฒด ํด๋์ค ์ด๋ฆ์ ๊ฐ์ถ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ฌ์ฉํ๋ค.
Factory method
ํฉํ ๋ฆฌ ๋ฉ์๋(Factory Method)๋ ๊ฐ์ฒด ์์ฑ ํจํด ์ค ํ๋๋ก, ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๊ณ , ์ด๋ฅผ ๊ตฌํํ๋ ํด๋์ค์์ ๊ฐ์ฒด์ ์์ฑ์ ์ฑ ์์ง๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ์ฒด์ ์์ฑ๊ณผ์ ์ ์บก์ํํ๊ณ , ์ ์ฐํ ๊ฐ์ฒด ์์ฑ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ํต์ฌ ์์ด๋์ด๋ "๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๊ฒ์ ํ์ ํด๋์ค๊ฐ ๊ฒฐ์ ํ๋๋ก ๋ง๋ ๋ค"์ ๋๋ค.
์ฆ, ๊ฐ์ฒด์ ์์ฑ์ ์์ฒญํ๋ ์ฝ๋๋ ๊ตฌ์ฒด์ ์ธ ํด๋์ค ์ด๋ฆ์ ์์ง ์์๋ ๋ฉ๋๋ค.
๋์ ์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ํฉํ ๋ฆฌ ์ธํฐํ์ด์ค์ ๋ํ ์ฐธ์กฐ๋ง ์์ผ๋ฉด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์๋์ฐจ๋ฅผ ์์ฐํ๋ ๊ณต์ฅ์ด ์๋ค๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. ์๋์ฐจ์ ์ข ๋ฅ์๋ ์คํฌ์ธ ์นด, ์ธ๋จ, SUV ๋ฑ์ด ์์ต๋๋ค.
์ด๋ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ด์ฉํ์ฌ ์๋์ฐจ๋ฅผ ์์ฐํ๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
์๋์ฐจ ํด๋์ค๋ฅผ ์ถ์ ํด๋์ค๋ก ์ ์ํ๊ณ , ํฉํ ๋ฆฌ ์ธํฐํ์ด์ค์๋ createCar()๋ผ๋ ๋ฉ์๋๋ฅผ ์ ์ํฉ๋๋ค.
createCar() ๋ฉ์๋๋ ์๋์ฐจ์ ์ข ๋ฅ์ ๋ฐ๋ผ ์ ์ ํ ์์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋๋ก ๊ตฌํํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฅผ ์์๋ฐ์ ๊ฐ๊ฐ์ ์๋์ฐจ ์ข ๋ฅ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ํฉํ ๋ฆฌ ํด๋์ค๋ฅผ ๋ง๋ญ๋๋ค.
์ด๋ ๊ฒ ํฉํ ๋ฆฌ ๋ฉ์๋ ํจํด์ ์ ์ฉํ๋ฉด, ์๋์ฐจ ์ข ๋ฅ๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ๋ณ๊ฒฝ๋ ๋์๋ ์์ ํด๋์ค๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ ๋ณ๊ฒฝํจ์ผ๋ก์จ ์ ์ฐํ๊ฒ ๋์ฒํ ์ ์์ต๋๋ค. ๋ํ ์๋์ฐจ ๊ฐ์ฒด์ ์์ฑ์ ๋ด๋นํ๋ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ์๋์ฐจ์ ์ข ๋ฅ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์์ต๋๋ค. ์ด๋ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ํฅ์์ํค๋ ๋ฐ์ ์ ์ฉํฉ๋๋ค.
17. ๋ค์ C์ธ์ด์ ๋ํ ์๋ง๋ ์ถ๋ ฅ๊ฐ์ ์ฐ์์ค.
#include <stdio.h>
struct jsu {
char name[12];
int os, db, hab, hhab;
};
int main(){
struct jsu st[3] = {{"๋ฐ์ดํฐ1", 95, 88},
{"๋ฐ์ดํฐ2", 84, 91},
{"๋ฐ์ดํฐ3", 86, 75}};
struct jsu* p;
p = &st[0];
(p + 1)->hab = (p + 1)->os + (p + 2)->db;
(p + 1)->hhab = (p+1)->hab + p->os + p->db;
printf("%d\n", (p+1)->hab + (p+1)->hhab);
}
501
ํฌ์ธํฐ ์ฐ์ฐ์ ์ด์ฉํ์ฌ ๊ฐ ๊ตฌ์กฐ์ฒด์ ๋ฉค๋ฒ์ ์ ๊ทผํ๊ณ , ์ด๋ฅผ ์ด์ฉํ์ฌ ์ฑ์ ์ ๊ณ์ฐํ๊ณ ์ถ๋ ฅํ๋ ์ฝ๋
->๋ ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ์ ์ ๊ทผํ ๋ ์ฌ์ฉํ๋ ์ฐ์ฐ์์ ๋๋ค.
๊ตฌ์กฐ์ฒด ํฌ์ธํฐ p๊ฐ s์ ์ฃผ์๋ฅผ ๊ฐ๋ฆฌํฌ ๋๋ p->x์ ๊ฐ์ด "->" ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฉค๋ฒ์ ์ ๊ทผํฉ๋๋ค.
์ด๋ ํฌ์ธํฐ๊ฐ ๊ฐ๋ฆฌํค๋ ๋์์ ๊ฐ์ ์ ์ผ๋ก ์ฐธ์กฐํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉํฉ๋๋ค.
jsu์๋ {name, os, db, hab, hhab} ์ด๋ฐํํ์ ๋ฐ์ดํฐ๊ฐ ๋ค์ด๊ฐ ์์ต๋๋ค.
p = &st[0];
p = {"๋ฐ์ดํฐ1", 95, 88}
(p+1)→hab = (p+1)→os + (p+2)→db; :
(p+1) = {"๋ฐ์ดํฐ2", 84, 91}, (p+2) = {"๋ฐ์ดํฐ3", 86, 75}
(p+1)→os + (p+2)→db : 84 + 75 = 159
(p+1)→hhab = (p+1)→hab + p→os + p→db; :
(p+1)→hab + p→os + p→db : 159 + 95 + 88 = 342
printf("%d", (p+1)→hab + (p+1)→hhab) :
(p+1)→hab + (p+1)→hhab : 159 + 342 = 501
18. ๋ค์์, ํ์ผ ๊ตฌ์กฐ(File Structures)์ ๋ํ ์ค๋ช ์ด๋ค. ๊ดํธ ( ) ์์ ๋ค์ด๊ฐ ์๋ง๋ ๋ต์ ์์ฑํ์์ค.
ํ์ผ๊ตฌ์กฐ๋ ํ์ผ์ ๊ตฌ์ฑํ๋ ๋ ์ฝ๋๋ค์ด ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ํธ์ฑ๋๋ ๋ฐฉ์์ผ๋ก ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ผ ๋ฐฉ์์ด ๋ฌ๋ผ์ง๋ค.
์ ๊ทผ ๋ฐฉ๋ฒ์ค, ๋ ์ฝ๋๋ค์ ํค-๊ฐ ์์ผ๋ก ์ ๋ ฌํ์ฌ ๊ธฐ๋กํ๊ณ , ๋ ์ฝ๋์ ํค ํญ๋ชฉ๋ง์ ๋ชจ์ ( )์ ๊ตฌ์ฑํ์ฌ ํธ์ฑํ๋ ๋ฐฉ์์ด ์์ผ๋ฉฐ, ๋ ์ฝ๋๋ฅผ ์ฐธ์กฐํ ๋๋ ( ) ์ด ๊ฐ๋ฅดํค๋ ์ฃผ์๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ์ฐธ์กฐํ ์ ์๋ค. ํ์ผ ๊ตฌ์กฐ์๋ ์์ฐจ ์ ๊ทผ, ( ) ์ ๊ทผ, ํด์ฑ ์ ๊ทผ์ด ์๋ค.
์ธ๋ฑ์ค(์์ธ)
19. ๋ค์ ์ค๋ช ์ ๋ํ ์๋ง๋ ๋ต์ ์๋ฌธ์ฝ์ด๋ก ์์ฑํ์์ค.
( )๋ ์ฌ์ฉ์๊ฐ ๊ทธ๋ํฝ์ ํตํด ์ปดํจํฐ์ ์ ๋ณด๋ฅผ ๊ตํํ๋ ํ๊ฒฝ์ ๋งํ๋ค.
์ด์ ๊น์ง ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ํค๋ณด๋๋ฅผ ํตํด ๋ช
๋ น์ด๋ก ์์
์ ์ํ์์ผฐ์ง๋ง
( )์์๋ ํค๋ณด๋ ๋ฟ๋ง ์๋๋ผ ๋ง์ฐ์ค ๋ฑ์ ์ด์ฉํ์ฌ ํ๋ฉด์ ๋ฉ๋ด ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์์
์ ์ํํ๋ค.
ํ๋ฉด์ ์์ด์ฝ์ ๋์ด ๋ง์ฐ์ค๋ฅผ ์ด์ฉํ์ฌ ํ๋ฉด์ ์๋ ์์ด์ฝ์ ํด๋ฆญํ์ฌ ์์
์ ์ํํ๋ ๋ฐฉ์์ด๋ค.
๋ํ์ ์ผ๋ก๋ ๋ง์ดํฌ๋ก์ํํธ์ Windows, ์ ํ์ Mac ์ด์์ฒด์ ๋ฑ์ด ์๋ค.
GUI
20. ๋ค์์ ์ํํธ์จ์ด ํตํฉ ํ ์คํธ์ ๋ํ ์ค๋ช ์ด๋ค. ๊ดํธ ( ) ์์ ๋ค์ด๊ฐ ์๋ง๋ ๋ต์ ์์ฑํ์์ค.
( 1. ) ๋ฐฉ์์ ์ด๋ฆ์์๋ ์ ์ ์๋ฏ์ด, ํ์ ๋ชจ๋๋ถํฐ ์์ํ์ฌ ์์ ๋ชจ๋๋ก ํ ์คํธ๋ฅผ ์งํํ๋ ๋ฐฉ์์ด๋ฉฐ,
์ด ๋ฐฉ์์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ( 2. )๊ฐ ํ์ํ๋ค.
( 2. )๋ ์ด๋ฏธ ์กด์ฌํ๋ ํ์ ๋ชจ๋๊ณผ ์กด์ฌํ์ง ์์ ์์ ๋ชจ๋์ ๋ํ ์ธํฐํ์ด์ค ์ญํ ์ ํ๋ค.
1. ์ํฅ์
2. ํ ์คํธ ๋๋ผ์ด๋ฒ
'์๊ฒฉ์ฆ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 2022๋ 2ํ ๊ธฐ์ถ๋ฌธ์ (0) | 2023.04.18 |
---|---|
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 2022๋ 1ํ ๊ธฐ์ถ๋ฌธ์ (0) | 2023.04.17 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 2021๋ 2ํ ๊ธฐ์ถ๋ฌธ์ (0) | 2023.04.15 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 2021๋ 1ํ ๊ธฐ์ถ๋ฌธ์ (0) | 2023.04.14 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] 2020๋ 4ํ ๊ธฐ์ถ๋ฌธ์ (0) | 2023.04.11 |