์ด๋ฒ์ฃผ์๋ ์์ฝ๋ฐฑ์ ์ฌ๋ฌ ์ ๋ฌผ์ ๋ฐ์๋ค.
์ ์ผ ๋ง์์ ๋๋๊ฑฐ ๋ฉํฐ ํ๋ธ,,,, ๊ฐ๋ฐ์์๊ฒ ํ์ํ ๋ฌผํ๋ค๋ก ๋ฐ์์ ๋ญ๊ฐ ๋ฌผ๊ฑด ๊ณ ๋ฅด๋ ์ผ์ค๊ฐ ์๋ค๊ณ ๋๊ผ๋นใ
์ ๋ฌผ ๋ฐ์ผ๋๊น ๋ญ๊ฐ ์์๊ฐ๋ ๋ค๊ณ ์ข์๋น ๐
๐ ์์ ๊ธฐ๋ก
๐ Singleton Design Pattern (์ฑ๊ธํค ๋์์ธ ํจํด)
โ๏ธ What?
ํ๋์ ์ธ์คํด์ค๋ง ์์ฑํ์ฌ ์ฌ์ฉํ๋ ๋์์ธ ํจํด, ์ธ์คํด์ค๊ฐ ํ์ํ๋ฉด ๋๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ง ์๊ณ ๊ธฐ์กด์ ์ธ์คํด์ค ํ์ฉ
์์ฑ์๊ฐ ์ฌ๋ฌ๋ฒ ํธ์ถ๋๊ณ ์ค์ ์์ฑ๋๋ ๊ฐ์ฒด๋ ํ๋, ์ต์ด๋ก ์์ฑ๋ ์ดํ์ ํธ์ถ๋ ์์ฑ์๋ ์ด๋ฏธ ์์ฑํ ๊ฐ์ฒด๋ฅผ ๋ฐํ
โ๏ธ Why?
1๏ธโฃ ๋ฉ๋ชจ๋ฆฌ ์ด์
๊ฐ์ฒด๋ ์์ฑํ ๋๋ง๋ค ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋ฐ์์ผ ํ๋ค. ํ๋ฒ์ new๋ฅผ ํตํด ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์ง
2๏ธโฃ ์๋ ์ด์
์ด๋ฏธ ์์ฑ๋ ์ธ์คํด์ค๋ฅผ ํ์ฉํด ์๋์์ ์ด์ ์ ๊ฐ์ง
3๏ธโฃ ๋ฐ์ดํฐ ๊ณต์ ์ด์
์ฑ๊ธํค์ผ๋ก ๊ตฌํํ ์ธ์คํด์ค๋ ์ ์ญ์ด๋ฏ๋ก ๋ค๋ฅธ ํด๋์ค๋ค์ ์ธ์คํด์ค๋ค์ด ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ํ๋ ๊ฒ์ด ๊ฐ๋ฅํจ, ํ์ง๋ง ๋์์ฑ ๋ฌธ์ ์ ์ฃผ์
โ๏ธ When?
์ฃผ๋ก ๊ณตํต๋ ๊ฐ์ฒด๋ฅผ ์ฌ๋ฌ๊ฐ ์์ฑํด์ ์ฌ์ฉํด์ผํ๋ ์ํฉ
โ๏ธ Where?
๋ฐ์ดํฐ ๋ฒ ์ด์ค์์ ์ปค๋ฅ์ ํ, ์ค๋ ์คํ, ์บ์, ๋ก๊ทธ ๊ธฐ๋ก ๊ฐ์ฒด ๋ฑ..
โ๏ธ Any Cons?
๊ฐ์ฒด ์งํฅ ์ค๊ณ ์์น ์ค, ๊ฐ๋ฐฉ-ํ์ ์์น
์ฑ๊ธํค ์ธ์คํด์ค๊ฐ ํผ์ ๋๋ฌด ๋ง์ ์ผ์ ํ๊ฑฐ๋, ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๊ณต์ ์ํค๋ฉด ๋ค๋ฅธ ํด๋์ค๋ค๊ฐ์ ๊ฒฐํฉ๋ ์์น
-> ๊ฐ๋ฐฉ ํ์ ์์น์ ์๋ฐฐ, ๊ฒฐํฉ๋๊ฐ ๋์ผ๋ฉด ์ ์ง๋ณด์๊ฐ ํ๋ค๊ณ ํ ์คํธ๋ฅผ ์ํํ๊ฒ ์งํํ๊ธฐ ์ด๋ ค์
๋ฉํฐ ์ค๋ ์ค ํ๊ฒฝ์์์ ๋๊ธฐํ ์ฒ๋ฆฌ๋ฅผ ํ์ง ์์์ ๋, ์ธ์คํด์ค๊ฐ 2๊ฐ ์์ฑ๋๋ ๋ฌธ์ ๋ฐ์ ๊ฐ๋ฅ
์ฑ๊ธํค ํจํด ๊ตฌํ ์์
public class Singleton{
// ๋จ 1๊ฐ๋ง ์กด์ฌํด์ผ ํ๋ ๊ฐ์ฒด์ ์ธ์คํด์ค๋ก static ์ ์ธ
private static Singleeton instance;
// private ์์ฑ์๋ก ์ธ๋ถ์์ ๊ฐ์ฒด ์์ฑ ๋ถ๊ฐ
private Singleton(){}
// ์ธ๋ถ์์๋ getInstance()๋ก instance ๋ฐํ
// getInstance() ๋ฉ์๋๊ฐ ์ฒ์ ์คํ๋ ๋๋ง ํ๋์ instance ์์ฑ, ์ดํ์๋ ์ด๋ฏธ ์์ฑ๋ instance return
public static Singleton getInstance(){
// instance๊ฐ null์ผ ๋๋ง ์์ฑ
if(instance == null){
instance = new Singleton();
}
return instance;
}
}
// ๊ฐ์ instance์ธ์ง Test ํ๊ธฐ
public class Application {
public static void main(String[] args) {
// ๊ฐ์ฒด 2๊ฐ ์์ฑ
Singleton singleton1 = Singleton.getInstance();
Singleton singleton2 = Singleton.getInstance();
System.out.println(singleton1);
System.out.println(singleton2);
}
}
/** Output
* vendingmachine.Singleton@15db9742
* vendingmachine.Singleton@15db9742
**/
์ถ์ฒ
https://velog.io/@seongwon97/์ฑ๊ธํคSingleton-ํจํด์ด๋
https://gyoogle.dev/blog/design-pattern/Singleton%20Pattern.html
๐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ ์์
- Database ์์ฑ
- table ์์ฑ -> create
- ๋ฐ์ดํฐ ์ ์ฅ ๋ฐ ์กฐํ(๊ฒ์) -> insert, select
- ๋ฐ์ดํฐ ์์ , ์ญ์ -> update, delete
- ๊ถํ ๋ถ์ฌ -> grant
- ๋ฐ์ดํฐ์ ์ ํฉ์ฑ ๊ณ ๋ คํ์ฌ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ -> ํ์ ์ ํ, ๊ธ์์ ์ ํ, ์ค๋ณต ๋ถ๊ฐ, ๊ธฐ์ค๊ฐ(๊ณ ์ +null๊ฐ ๋ถ๊ฐ)
- ํํฐ์ ์ ์ฉ(mysql) -> ๋์ฉ๋ ๋ฐ์ดํฐ ์นดํ ๊ณ ๋ฆฌํ
๐ SQL ์์
โ๏ธ ๋ฌธ๋ฒ ์์
SELECT -> FROM -> WHERE -> GROUP BY -> HAVING -> ORDER BY
โ๏ธ ์คํ ์์
FROM - > ON -> JOIN -> WHERE -> GROUP BY -> HAVING -> SELECT -> DISTINCT -> ORDER BY
๐ SQL ๊ฒ์ ์กฐ๊ฑด
- `*` : ๋ชจ๋ ๊ฒ์, all
- `%` : ๋ฌธ์ ๊ฐ์์ ๋ฌด๊ด
- `_` : ๋ฌธ์ ํ๋ ์๋ฏธ
// ๋ฌธ์์ด ๋๋ฒ์งธ์ M์ด ์ค๊ณ ๊ทธ ๋ค๋ก๋ ์๊ด์์
where ename like '_M%';
// ์๋ค ์๊ด์์, ๋ฌธ์์ด์ M๋ง ๋ค์ด๊ฐ๋ฉด ๋จ
where ename like '%M%';
๐ SQL ๋ ์ง ํจ์
- ํ์ฌ ์์คํ
๋ ์ง์ ๋ํ ์ ๋ณด ์ ๊ณต
- sysdate(), now() : ๋ ์ ์ผ ์ ๋ถ ์ด
- curdate() : ๋ ์ ์ผ
- ์ผ์ ๊ณ์ฐ ํจ์
- datediff(a, b) : a-b
- interval : ๊ฐ๊ฒฉ
// ํ์ฌ ์๊ฐ์์ 1์ผ ํ์ ์๊ฐ์ ๊ตฌํจ
select now() + interval 1 day;
- ๋ ์ง ๋ํ๋ ํจ์
- ADDDATE()
- adddate(sysdate(), 10) -> 10์ผ ํ
- ๋ ๋ ์ง ์ฌ์ด์ ๊ฐ์ ์ ๊ฒ์
- dayofyear() : ํ์ฌ ์ํ ๋ ์ 1์ 1์ผ๋ถํฐ์ ํ์ฌ๊น์ง ์ผ์ ์ธ๋ ํจ์
- dayofmonth() : ํด๋น ๋ฌ์ ์ง๋ ์ผ์
๐ SQL JOIN
์กฐ์ธ์ ๋ด๊ฐ ์์ ์ ์ด git์ผ๋ก ๋์ฒด ~
https://github.com/chloe1129/code_notes/blob/master/SQL/09_join.md
๐ง ํ๊ณ
์์ผ๋ ์๊ณ ๋ฉด์ ๋ ์์ด์ ๋ญ๊ฐ ์ ์ ์์๋ ํ ์ฃผ์๋ค.
์์ผ๋ ํ๋ณตํ๊ฒ ๋ณด๋๊ณ ๋ฉด์ ๋ ์(?) ๋ณธ๊ฒ๊ฐ๊ธฐ๋...
๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐฐ์ ๋๋ฐ ์๋ ๋ด์ฉ์ด์ด๋ ํท๊ฐ๋ฆฌ๋ ๊ฒ๋ ๋ง๊ณ ๊ทธ๋์ ๋ค์ ํ๋ฒ ํ์ธํ๋ ์๊ฐ์ ๊ฐ์ ธ์ ์ข์๋ค.
์ฌ์ฌ ์๋ค๊ฐ๋ค ํ๋๊ฑฐ ์ ์๋๋๊ฒ๊ฐ์์ ๋คํ์ด๋ค.
๊ทธ๋๋ ์ถ๊ทผ๊ธธ ๋ฒ์ค๋ ์ง์ฅ ๊ทธ์ก์ฑใ
์ด๋ฒ์ฃผ๋ ํน์ดํ๊ฒ ๊ธ์ต BIZ ํน๊ฐ์ด ์์๋ค.
์ฐ๋ฆฌFIS ํ์ง์๋ถ๋ค์ด ์ค์ ์ ์ฌ๋ฌ ๊ธ์ต ๋๋ฉ์ธ ์ง์์ ์ค๋ช ํด ์ฃผ์ จ๋๋ฐ ๊ธ์ต๊ถ์์ ์ด๋ค ์ ๋ฌด๋ฅผ ํ๋์ง ์์ธํ ์ ์ ์๋ ์๊ฐ์ด์๋ค.
์ด๋ ค์ ์ง๋ง ์ด๋ฒ ํน๊ฐ์ ํตํด ๊ธ์ต๊ถ์์ ์ด๋ฃจ์ด์ง๋ ์ ๋ฌด ์ค์์ ๋์ ๊ด์ฌ์ฌ๋ฅผ ๋ ์ ์ ์ ์์๊ณ ์ ์ตํ ์๊ฐ์ด์๋น~
๐๐ป 3์ฃผ์ฐจ ๊ณํ
- ๋ฉด์ ์ ๋ณด๊ธฐ
- ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ๋งค์ผ๋งค์ผ ํ๊ธฐ
- ์์ ๋๋๊ณ ๊ณต๋ถํ๋ค ์ง ๊ฐ๊ธฐ
- ์์นจ ์ฑ๊ฒจ๋จน๊ณ ๊ฐ์ ์๋จน๊ธฐ (์ ๋ฐ)
- ์กธ์ ์๋ฅ ์ค๋นํ๊ธฐ
'์ฐ๋ฆฌFISA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ ์ฐ๋ฆฌ FISA ํด๋ผ์ฐ๋์์ง๋์ด๋ง 3์ฃผ์ฐจ ๊ธฐ๋ก (0) | 2023.12.09 |
---|---|
๐ ์ฐ๋ฆฌ FISA ํด๋ผ์ฐ๋์์ง๋์ด๋ง 1์ฃผ์ฐจ ๊ธฐ๋ก (0) | 2023.11.26 |