์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ์ฑ
- JavaScript
- Java
- css
- database
- ์๋ฐ์คํฌ๋ฆฝํธ
- K๋ฐฐํฐ๋ฆฌ
- ๋ง์ผ๋ด๊ฐ์ธ์์๋ค์์ฐ๋ค๋ฉด
- ๋ฐ์ํ
- ํ๋ก๊ทธ๋๋ฐ
- ๋ ์
- ComputerScience
- ๊น๋ฏธ๊ฒฝ
- ์นํผ๋ธ๋ฆฌ์ฑ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ์ฅํธ์์ค
- ํ์ด์ฌ
- ์นํ์ด์ง๋ง๋ค๊ธฐ
- ์ํ
- K๋ฐฐํฐ๋ฆฌ๋ ๋ณผ๋ฃจ์
- ๊น๋ฏธ๊ฒฝ์๋งํ์์
- ์ฝ๋ฉ
- ์ปดํจํฐ๊ณผํ
- Python
- ๊นํ๋จ
- ๊ฐ๋ฐ
- ๋ผํ๋ผ์ค์๋ง๋
- html
- ์๋ฐ
- ์ค๋ผํด
- Today
- Total
๋ชฉ๋กfull stack (143)
JiYoung Dev ๐ฅ
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/zQEt9/btsrctP29PL/aXxFluXBK7jmsGrNOhQywK/img.png)
์ ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ฌ์ดํธ๊ฐ ์ค๊ฐ์ ์์ด ๋ธ๋ผ์ฐ์ ๊ฐ์ ์ค๋์ค๋ ์์ ๋ฏธ๋์ด๋ฅผ ์คํธ๋ฆผํ๊ณ , ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ์ ์๋๋ก ํ๋ ๊ธฐ์ ์๋ฒ๋ฅผ ์ต๋ํ ๊ฑฐ์น์ง ์๊ณ P2P(Peer-to-Peer Network)๋ก ๋ธ๋ผ์ฐ์ ๋ ๋จ๋ง๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ ์ ์น ํ์ค\ Zoom, ๊ตฌ๊ธ Meet, ํ์ด์ค๋ถ ๋ฉ์ ์ ๋ฑ์์ ์ฌ์ฉ ํน์ง ์น์์ ์ฌ์ฉํ ์ ์๋ ์ ์ผํ P2P ๊ธฐ์ ๋ก ๊ฐ๊ฐ์ ๊ธฐ๊ธฐ๊ฐ ์๋ฒ์ ๋์ ์์ด ์ฐ๊ฒฐ๋๊ธฐ ์ํด ์ฐ๊ฒฐ์ ๋์์ฃผ๋ ์๋ฒ(Signaling)๊ณผ P2P ์ฐ๊ฒฐ์ด ๋ถ๊ฐ๋ฅํ ์ํฉ์ ๋๋นํ ๋ฆด๋ ์ด ์๋ฒ(TURN)๊ฐ ํ์ํจ UDP(User Datagram Protocol) ๊ธฐ๋ฐ์ ์คํธ๋ฆฌ๋ฐ ๊ธฐ์ WebRTC๋ฅผ ๊ตฌ์ฑํ๋ ์ผ๋ จ์ ํ์ค๋ค์ ํ๋ฌ๊ทธ์ธ์ด๋ ์ 3์ ์ํํธ์จ์ด ์ค์น ์์ด ์ข ๋จ ๊ฐ ๋ฐ์ดํฐ ๊ณต์ ์ ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nVnQr/btsq8IZNO3N/Z2Etx4Vaa2C7IzkQavv80k/img.png)
์ค์น ์ฌ๋ถ ํ์ธ rpm -qa httpd php mariadb-server ํ๋ก๊ทธ๋จ ์ค์น dnf -y install httpd php php-mysqlnd mariadb-server ๋ฒ์ ผํ์ธ rpm -qa httpd php mariadb-server rpm -qi httpd php mariadb-server dnf info httpd php mariadb-server ์๋น์ค ๊ตฌ๋ systemctl restart/enable/status httpd systemctl restart/enable/status mariadb start ์ฌ์ฉ์ ์ด๋ฏธ active ์ํ๋ผ๋ฉด ์ค๋ฅ๋ ์ ์์ → restart ํฌํธ ์ด๊ธฐ (http, https) firewall-config ํด๋ผ์ด์ธํธ์์ ์๋ฒ ์ฐ๊ฒฐ ๋๋ฉ์ธ ์ค์ DNS ์..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cvZ7r3/btsq2lc8Jk9/LFkiRargz5DXdwekVLBSl0/img.png)
-- 1. ์๊ฒฉ์ง ์์คํ ๊ด๋ฆฌ์ -- 461 --------------------- -- ํ ๋ (telnet) dnf install telnet-server -- ์๋น์ค ์์ systemctl start telnet.socket -- ์๋น์ค ์ํํ์ธ systemctl status telnet.socket -- ํ ๋ ์ฉ ์ฌ์ฉ์์์ฑ adduser inho passwd inho -- ๋ฐฉํ๋ฒฝ open -- gui ์ค์ firewall-config -- cli ์ค์ firewall-cmd --add-service=telnet firewall-cmd --add-port=23/tcp firewall-cmd --permanent --add-service=telnet firewall-cmd --reload -- xrdp -..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nMTvy/btsqMiBvip8/bJxQtWUAOvCOmQY4kWnPR0/img.png)
cron ๋ด๊ฐ ์ํ๋ ์๊ฐ๋์ ์์ ์ ์งํํ ์ ์๋๋ก ์ค์ → ๋ฐฐ์น ์ฒ๋ฆฌ์ ์ฌ์ฉ (๋ฐฑ์ ) ๋ถ, ์, ์ผ, ์, ์์ผ์ ์ ํด์ง ์๊ฐ์ด ๋๋ฉด ๋ฐฑ์ ๋๋๋ก cron ์ค์ ํ๊ธฐ [root@localhost backup]# nano /etc/crontab [root@localhost backup]# systemctl restart crond [root@localhost backup]# systemctl status crond 1. ๋ฐฐ์น ํ๋ก๊ทธ๋จ ์ฝ๋ - backup.sh (๋ณธ์ธ ๊ณ์ ์์ ์์ฑ) home ๋๋ ํ ๋ฆฌ๋ฅผ ๋ฐฑ์ ํ ์์ถ → backup ํด๋์ ์ ์ฅํ๋ ํ๋ก๊ทธ๋จ backup ํด๋ ์์ฑ : mkdir /backup backup.sh ์คํ๊ถํ ๋ถ์ฌ : chmod 755 backup.sh 2. crontabl ํ๋ก..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/Njggd/btsqPZBTInB/xGa9cest2WNmz8d7nnPWCK/img.png)
vmware : ๊ฐ์์๋ฒ๋ฅผ ๋์๊ฐ ์ ์๊ฒ ํด์ฃผ๋ ํ๋ก๊ทธ๋จ ๋ฆฌ๋ ์ ์๋ฒ ์ค์น ๊ฐ์์๋ฒ vm์ ๋ถ์ด๊ธฐ ํธ์คํธ ์ฃผ์ ๋ณ๊ฒฝ power On ํต์ ํ์ธ : ping test host ์ปดํจํฐ์์ ์งํ ์๋น์ค ์คํ์ํค๋ ค๋ฉด system ctl start restart stop status 4๊ฐ์ง option http ์คํํ๋ฉด๋จ rpm ์ผ๋ก ํ๋ก๊ทธ๋จ ์ค์น ์ค์นํ๊ณ ์ ํ๋ ํ์ผ ์์น๋ก ์ด๋ [root@localhost CentOS-8-BaseOS-x86_64]# cd AppStream/ [root@localhost AppStream]# cd Packages/ [root@localhost Packages]# ls mc-* mc-4.8.19-9.el8.x86_64.rpm ํ์ผ ์ค์น ์ฌ๋ถ ํ์ธ : qa [root@localh..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/nD9vT/btsqKxFlKPx/dV8oIuRUaPAcLH7oPP1G51/img.png)
ํธํ๊ฒ ์ฌ์ฉํ๋ ค๋ฉด autoincrement ์ฌ์ฉํ๋ ํ์id ๊ฐ์ ์ค๋ณต์ ํ์ฉํ์ง ์๋ ์ปฌ๋ผ์ด ์๋ค๋ฉด ์ด๋ฅผ pk๋ก ์ฌ์ฉํ๋ ๊ฒ์ ์ถ์ฒํจ db ์ค๊ณ์ ๊ณ ๋ คํ ์ 1. ๊ฐ๊ฐ ํ ์ด๋ธ์ pk๋ ์ ์ค์ ์ด ๋์ด ์๋๊ฐ? 2. ์ธ๋ํค ์ค์ ์ด ์ ๋์๋๊ฐ? ๊ผญ ์ธ๋ํค๋ ์ค์ ์ํด๋ ๋จ → ํ์ ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋ ๋ ๊ด๋ จ๋ ๋ฐ์ดํฐ ์ง์ฐ๊ณ ์ถ์ ๋, ํ์์ด ์์ด์ผ๋ง ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐํ๊ณ ์ถ์ ๋ ์ฌ์ฉ → ์ฐ๊ด๊ด๊ณ๋ ์ค์ ํ๋ ์ธ๋ํค ์ค์ ์ ์ํด๋ ๋จ 3. ๊ฐ๊ฐ์ ์์ฑ์ด ๊ผญ ํ์ํ ์์ฑ์ธ๊ฐ? 4. ์ฃผ์ํฐํฐ ๋จผ์ ํ๋ก๊ทธ๋จ ๊ตฌํ ํ ๋ฉ์ธ ์ํฐํฐ , ํ์ ์ํฐํฐ ์์ผ๋ก ๊ฐ๋ฐํ๋ฉด ํธํ๋ค.
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/b4B9zF/btsqCtRk58r/fLexAxfbVjV5JXS5X5aHd1/img.png)
ํ๋ก์์ SQL์ ์ ์ฐจ์ ์ผ๋ก ํ๋ก๊ทธ๋๋ฐํ์ฌ ์ฌ์ฉํ๋ ๊ธฐ์ SQL์ ๋ํ์ ์ธ ๋น์ ์ฐจํ ์ธ์ด SET SERVEROUTPUT ON; SELECT * FROM TB_CUST; CREATE OR REPLACE PROCEDURE P_SOLD_OUT_YN_DEL AS v_cnt NUMBER := 0; BEGIN DBMS_OUTPUT.PUT_LINE(v_cnt); SELECT COUNT(*) INTO v_cnt FROM TB_CUST ; DBMS_OUTPUT.PUT_LINE(v_cnt); EXCEPTION WHEN OTHERS THEN NULL ; END ; / EXEC P_SOLD_OUT_YN_DEL; ๋ณ์ ์ ์ธ CREATE OR REPLACE PROCEDURE P_SOLD_OUT_YN_DEL AS v_cust_id..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bA0VUr/btsqKyploJz/wS95cCWJkflZzIvGLnUA1K/img.png)
๊ณ์ธต ์ฟผ๋ฆฌ ํ์ฉ์ ๋ฉ๋ด, ๊ฒ์ํ์ ๋๊ธ, ๋๋๊ธ์ ๋ง๋ค ์ ์์ ์์ ์ฟผ๋ฆฌ SELECT ๋ฉ๋ดID , ์์๋ฉ๋ดID , ๋ฉ๋ด์ด๋ฆ , LEVEL , LPAD(' ' , ( LEVEL -1 ) * 2 , ' ' ) || ๋ฉ๋ด์ด๋ฆ FROM ๋ฉ๋ด WHERE 1=1 -- WHERE ์กฐ๊ฑด์ด ์์ผ๋ฉด ๋ฐ๋ก ์์จ๋ ๋จ START WITH ์์๋ฉ๋ดID IS NULL CONNECT BY NOCYCLE ์์๋ฉ๋ดID = PRIOR ๋ฉ๋ดID ORDER SIBLINGS BY ๋ฉ๋ดID ; ์ ํ ์กฐ์ธ(SELF JOIN) SELECT * FROM ๋ฉ๋ด A, ๋ฉ๋ด B WHERE A.์์๋ฉ๋ดID = B.๋ฉ๋ดID; -- ์ ํ์กฐ์ธ (๊ณ์ธต ์ฟผ๋ฆฌ๊ฐ ์๋ ์์ ์ ๊ณ์ธต์ ๊ตฌํํ๊ธฐ ์ํด ์ฌ์ฉ) ๋๋๊ธ ๊ตฌํ SELECT ๋๊ธID , ์์๊ธ , ์์ฑ๊ธ , C..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/IiqUq/btsqKitoHUL/NSqYusKNqPaKf3SLUeopM0/img.png)
FULL SCAN ์ธ๋ฑ์ค ์ธ๋ฑ์ค ์์ฑ CREATE INDEX IDX_PRD ON TB_PRD ( PRD_TYPE ) ; ์ธ๋ฑ์ค ์ฌ์ฉ ๋ชฉ์ : ์กฐํ ์ฑ๋ฅ ํฅ์ ๋์ DML ์ฑ๋ฅ์ด ๊ฐ์ํจ ์ธ๋ฑ์ค ํ์ฉ : NL์กฐ์ธ (Nested Loop / ์ค์ฒฉ์กฐ์ธ) ์ธ๋ฑ์ค์ ํจ๊ป ์ฌ์ฉํ์ ๋ ํจ์จ์ด ๋์์ง ํน์ง PRIMARY KEY ์์ฑ ==> ์์ด์ ๊ทธ PK์ ๋ํ ์ธ๋ฑ์ค ํ๋ ์์ฑ๋จ ๋ค๋ฅธ ๊ฒฝ์ฐ์๋ ์ง์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํด์ผ ํจ
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dOt6fP/btsqJsppdlH/NoTdCGsgfekY5DP8nfx6ik/img.png)
SELECT PRD_ID , PRD_NAME , PRD_AMT , DENSE_RANK() OVER (ORDER BY PRD_AMT DESC) AS ๊ฐ๊ฒฉ๋์์ FROM TB_PRD; ์๋์ฐํจ์ : ํ ์ด๋ธ์ ํ๊ณผ ํ๊ฐ์ ๊ด๊ณ๋ฅผ ์ด์ฉํด์ ์๋ฏธ์๋ ๋ฐ์ดํฐ๋ฅผ ๋ฝ๋๋ค. RANK : ์ค๋ณต๋ ์์ ๋ค์ ์ซ์ ๊ฑด๋๋ DENSE_RANK : ์ค๋ณต๋ ์์ ๋ค์ ์ซ์ ๊ฑด๋๋ฐ์ง ์์ ROW_NUMBER : ๊ณ ์ ํ ์ซ์ ์คํ์์ ์ธ๋ผ์ธ๋ทฐ๋ฅผ ์ด์ฉํด์ ์กฐ๊ฑด ๋ถ์ฌ ๊ฐ๋ฅ SELECT * FROM ( SELECT PRD_ID , PRD_NAME , PRD_AMT , DENSE_RANK() OVER (ORDER BY PRD_AMT DESC) AS ๊ฐ๊ฒฉ๋์์ FROM TB_PRD ) WHERE ๊ฐ๊ฒฉ๋์์