๐งโ๐ป๊น๋ฒ์ @g00dbyul | ๐งโ๐ป์กํ์ค @Hyeonjunnn | ๐ฉโ๐ป์ด์ ๊ฒฝ @jelee55 | ๐งโ๐ป์ด์ฐฝ์ @always0702 |
์ง๊ธ ์ด ์๊ฐ์๋ ํ๋ฅ๋ ํผ์ ธ๋๊ฐ K-POP, K-FOOD ์ดํ์ด ๋์ด์ง ์๊ณ ์์ต๋๋ค. ์ด์ ๋ฐ๋ง์ถ์ด ๋ํ๋ฏผ๊ตญ์ ์ฐพ๋ ์ธ๊ตญ์ธ๋ค๋ ์ ์ ์ฆ๊ฐํ๋ ์ถ์ธ์ ๋๋ค.
ํ์ฌ ์ฌ๋ฌ ์ฌํ ์ํ ํ๋ซํผ๋ค์ด ์กด์ฌํ์ง๋ง ๊ตญ๋ด ๊ด๊ด๊ณผ ์ข ๋ ๋ฐ์ ํ ํ๋ซํผ์ ๋ง๋๋ ๊ฒ์ด ์ฃผ ๋ชฉ์ ์ ๋๋ค.
"Kppong"์ ๊ตญ๋ด ๊ด๊ด์ ์ต์ ํ๋ ์นดํ ๊ณ ๋ฆฌ, ์ฒดํ ํ๋ก๊ทธ๋จ์ ์๊ฐํ๊ณ ๋ฐฉํํ๋ ์ธ๊ตญ์ธ๋ค์๊ฒ ์ฆ๊ฑฐ์ด ๊ฒฝํ์ด ๋ ์ ์๋๋กํ๋ ์ ํ์ง๋ฅผ ๋๋ ค์ค๋๋ค.
๋ํ ๊นจ๋ํ ์ปค๋ฎค๋ํฐ์ ์ง์ ์ฑ ์๋ ์กํฐ๋นํฐ๋ฅผ ์ํด ๊ด๋ฆฌ์๊ฐ ๊ด๋ฆฌํ๊ณ ์ํต ์ฐฝ๊ตฌ๋ฅผ ํตํด ์ฌ์ฉ์ ๊ฐ์ ์์ฌ์ํต์ ์ง์ํฉ๋๋ค.
-
์ฌ์ฉ์๋ ๋ง์์ ๋๋ ํ๋ก๊ทธ๋จ์ด ์๋ค๋ฉด '์ฐ'์ด๋ผ๋ ํญ๋ชฉ์ ์ ์ฅํ์ฌ ์ถํ์๋ ๊ด์ฌ์๋ ํ๋ก๊ทธ๋จ์ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
-
์ฌ์ฉ์๋ ๋ง์์ ๋๋ ํ๋งค์์๊ฒ '์ฆ๊ฒจ์ฐพ๊ธฐ'๋ก ๋ฑ๋กํ์ฌ '์ฆ๊ฒจ์ฐพ๊ธฐ'๋ก ํ๋งค์๋ค์ ๋ถ๋ฅํ๊ณ ํ๋งค์๋ค์ ๊ฒ์๋ฌผ์ ๋น ๋ฅด๊ฒ ํ์ธํ ์ ์์ต๋๋ค.
-
ํ๋ซํผ ๋ด์์ ๋ถ๋ํ ๋ด์ฉ์ ๊ฐ์ง ํ๋ก๊ทธ๋จ์ ์ ๊ณตํ๋ ํ๋งค์๋ ๊ฐ์ด ์ฐธ์ฌํ๋ ์ ์ฅ์์ ๋ถํธ์ ๋ผ์น๊ฑฐ๋ ํด๋ฅผ ์ ํ๋ ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ๋ฅผ ์ฃผ์ด ์ผ์ ์ด์ ๊ฒฝ๊ณ ๊ฐ ๋์ ๋ ๊ฒฝ์ฐ ํ๋ซํผ์์ ํด์ถ๋์ด ๋ค์ ์ ์ํ ์ ์๋๋ก ํฉ๋๋ค.
-
ํ๋ซํผ ๋ด์ ๊ฒ์ํ์ด ์กด์ฌํ์ฌ ์ฌ์ฉ์๊ฐ ์์ ๋กญ๊ฒ ๊ฒ์๋ฌผ์ ์์ฑํ ์ ์์ผ๋ฉฐ ๋๊ธ์ ํตํด ์๋ก ์ํตํ๋ฉฐ ์ ๋ณด ๊ณต์ ๋ ํ๊ธฐ ๋ฑ์ ๊ณต์ ํ ์ ์๋๋ก ํฉ๋๋ค.
CQRS(Command Query Responsibility Segregation)
- ๋ฐ์ดํฐ์ ๋ช ๋ น(Command)๊ณผ ์กฐํ(Query)๋ฅผ ๋ถ๋ฆฌํ๋ ์ํคํ ์ฒ ํจํด
- ๋ช ๋ น ์์ ๊ณผ ์กฐํ ์์ ์ ๋ ๋ฆฝ์ ์ผ๋ก ์ต์ ํ ๊ฐ๋ฅ
Master - Slave Replication
- Proxysql์ ํตํด ๋ช ๋ น ์์ ์ Mater DB์ ์ ์ฉ, ์กฐํ ์์ ์ Slave DB์์ ์กฐํ
- ๋ฐฑ์ ๋ฐ ํธ๋ํฝ ๋ถ์ฐ ๊ฐ๋ฅ
์ฃผ๋ฌธ ํ ์ด๋ธ
-> ์ฃผ๋ฌธ ์ํ ์์ฑ์ ๋ํ ์ฃผ์ ๊ธฐ๋ฅ
- ์ฃผ๋ฌธ์ ์งํ ์ํ์ธ ์ฃผ๋ฌธ์ ์ทจ์ํ ์ ์์ต๋๋ค
- ์ฃผ๋ฌธ์๊ฐ ํ์ , ์ทจ์ ์ํ์ธ ์ฃผ๋ฌธ์ ์ทจ์ํ ์ ์์ต๋๋ค
- ์ฃผ๋ฌธ์๊ฐ ์งํ ์ํ์ธ ์ฃผ๋ฌธ์ ๊ฒฐ์ ํ๋ฉด ํ์ ํฉ๋๋ค
- ์ฃผ๋ฌธ์๊ฐ ํ์ , ์ทจ์ ์ํ์ธ ์ฃผ๋ฌธ์ ํ์ ํ ์ ์์ต๋๋ค
์ ์ ํ ์ด๋ธ
์ ๊ณ ํ ์ด๋ธ
์ฌ์ฉ์ ๊ฒฝ๊ณ ํ ์ด๋ธ
user
- ํ์๊ฐ์
DELIMITER $$
CREATE OR REPLACE PROCEDURE insertUser(
IN _userId VARCHAR(15),
`_name` VARCHAR(15),
_email VARCHAR(40),
_passwd VARCHAR(40),
_nickname VARCHAR(15),
_phoneNum VARCHAR(15),
_birthAt DATE,
_national VARCHAR(15)
)
BEGIN
-- ํ์ ์์ด๋ ์ค๋ณต ๋ฐฉ์ง ์กฐ๊ฑด๋ฌธ
DECLARE _cnt INT;
SET _cnt = (SELECT COUNT(*)
FROM user
WHERE userId = _userId
OR email = _email
OR phoneNum = _phoneNum
);
IF (
_cnt < 1
)THEN
INSERT INTO user (
userId,
`name`,
email,
passwd,
nickName,
phoneNum,
birthAt,
national,
updatedAt
)
VALUES (
_userId,
`_name`,
_email,
_passwd,
_nickname,
_phoneNum,
_birthAt,
_national,
NULL
)
;
ELSE
SELECT '์ด๋ฏธ ์กด์ฌํ๋ ํ์ ์ ๋ณด์
๋๋ค.';
END IF;
END $$
DELIMITER ;
- ๋ก๊ทธ์ธ
DELIMITER $$
CREATE OR REPLACE PROCEDURE loginByUserId_passwd(
IN _userId VARCHAR(15),
_passwd VARCHAR(40)
)
BEGIN
DECLARE _cnt INT;
SET _cnt = (SELECT COUNT(*)
FROM user
WHERE userId = _userId
AND passwd = _passwd
);
IF (
_cnt >= 1
)
THEN
SELECT '๋ก๊ทธ์ธ ์ฑ๊ณต';
ELSE
SELECT '๋ก๊ทธ์ธ ์คํจ';
END IF;
END $$
DELIMITER ;
- ๊ฐ์ธ์ ๋ณด ์์
DELIMITER $$
CREATE OR REPLACE PROCEDURE updateOneUser_passwdByUserId(
IN _userId VARCHAR(15),
_passwd VARCHAR(40),
_updatePasswd VARCHAR(40)
)
BEGIN
DECLARE _cnt INT;
SET _cnt = (SELECT COUNT(*)
FROM user
WHERE userId = _userId
AND passwd = _passwd);
IF (
_cnt >= 1
)THEN
UPDATE user
SET passwd = _updatePasswd
WHERE (userId = _userId
AND passwd = _passwd);
ELSE
SELECT '์์ด๋ ๋๋ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ธํด์ฃผ์ธ์' AS '์ธ์ฆ ์ค๋ฅ';
END IF;
END $$
DELIMITER ;