SOLID ์์น ํญ์ ๊ธฐ์ตํ์ S: ๋จ์ผ ์ฑ ์ ์์น(SRP, Single Responsibility Principle) ๊ฐ์ฒด๋ ๋จ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค. O: ๊ฐ๋ฐฉ-ํ์ ์์น(OCP, Open Closed Principle) ๊ธฐ์กด์ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉด์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋๋ก ์ค๊ณ๊ฐ ๋์ด์ผ ํ๋ค. L: ๋ฆฌ์ค์ฝํ ์นํ ์์น(LSP, Liskov Substitution Principle) ์ผ๋ฐํ ๊ด๊ณ์ ๋ํ ์ด์ผ๊ธฐ๋ฉฐ, ์์ ํด๋์ค๋ ์ต์ํ ์์ ์ ๋ถ๋ชจ ํด๋์ค์์ ๊ฐ๋ฅํ ํ์๋ ์ํํ ์ ์์ด์ผ ํ๋ค. I: ์์กด ์ญ์ ์์น(DIP, Dependency Inversion Principle) ์์กด ๊ด๊ณ๋ฅผ ๋งบ์ ๋ ๋ณํํ๊ธฐ ์ฌ์ด ๊ฒ ๋๋ ์์ฃผ ๋ณํํ๋ ๊ฒ๋ณด๋ค๋ ๋ณํํ๊ธฐ ์ด๋ ค์ด ๊ฒ, ๊ฑฐ์ ๋ณํ๊ฐ ์๋ ๊ฒ์..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcFeccL%2FbtqHG7p26RZ%2FxMDWT3t59P3Ttybdo9g5G1%2Fimg.png)
์ด ๊ธ์ ํฐ์คํ ๋ฆฌ ๋ฐ์์ ์ต์ ํ ๋ ๋ด์ฉ์ ๋๋ค. ๊ตฌ๊ธ ๊ฒ์ ๋ ธ์ถํ๊ธฐ ์์. ์ฐ์ธก ๋งํฌ๋ฅผ ํตํด ์ ์ฅ! (https://search.google.com/search-console) ์์ํ๊ธฐ๋ฅผ ๋๋ฅด๊ณ ๋ก๊ทธ์ธ์ ์๋ฃํ๋ฉด ์๋์ ๊ฐ์ ํ์ ์ด ๋์ค๊ฒ ๋๋ค. ์ด๋ ๊ฒ ๋ ๊ฐ ์ค ์ ํํ๋๋ก ๋์ค๋๋ฐ, URL ์ ๋์ด๋ฅผ ์ ํํ๋ค. ๋๋ฉ์ธ์ ์ฐ๋ฆฌ๊ฐ ์ง์ ๋๋ฉ์ธ์ ๊ฐ์ง๊ณ ์๋ ๊ฒ์ด ์๋ ํฐ์คํ ๋ฆฌ์ ๋๋ฉ์ธ์ ๋น๋ ค ์ฌ์ฉํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ URL ์ ๋์ด๋ฅผ ์ ํํ๋ ๊ฒ์ด๋ค. ์ฃผ์๋ฅผ ์ ๋ ฅ ํ ๊ณ์์ ๋๋ฅด๊ฒ ๋๋ฉด ์๋์ ๊ฐ์ด ๋์ค๊ฒ ๋๋ค. ํ๋จ์ HTML ํ๊ทธ๋ฅผ ์ ํ! ๋ด์ฉ์ ๋ณต์ฌํ ํ์, ํฐ์คํ ๋ฆฌ ๊ธฐ์ค ๋ธ๋ก๊ทธ ์ค์ ! / ๊พธ๋ฏธ๊ธฐ / ์คํจ ํธ์ง ํด๋ฆญ! ์ฐ์ธก์์ html ํธ์ง์ ๋๋ฅด๊ณ , ์๋์ ๊ฐ์ด ํ๊ทธ ๋ฐ์ ๋ณต์ฌํ ํ๊ทธ ์ฝ์ ! ๊ทธ ํ์ ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbN18py%2FbtqHzEpjdNK%2F1ru2yZr2lTkcAMWC63liqk%2Fimg.png)
Kakao AdFit - ์นด์นด์ค ์นด์นด์ค ๊ด๊ณ ์ ์ฒญ์ ๋จผ์ ํ๊ธฐ ์ํด ์ฐ์ธก ๋งํฌ๋ฅผ ํตํด ๋ค์ด๊ฐ๋ค. adfit.kakao.com ์๋จ์ ๊ด๊ณ ๊ด๋ฆฌ ํญ์์ ๊ด๊ณ ๊ด๋ฆฌ ๋ฉ๋ด๋ฅผ ์ ํํ๋ค. ๊ฐ์ด๋ฐ์ ์ ์ฒด๋งค์ฒด์์ ์ ๋งค์ฒด ์ ํ. ๊ด๊ณ ๋ฅผ ๊ตฌ๋ถํ ๋ณ์นญ์ ์ ํ๊ณ ๋งค์ฒด์ ํ์ Web ์ผ๋ก ํด์ฃผ๋๋ก ํ์! ๋งค์ฒด ๊ณ ์ ๊ฐ์๋ ๊ด๊ณ ๋ฅผ ๊ฒ์ฌํ URL (ํํ์ด์ง ๋ฐ ๋ธ๋ก๊ทธ ์ฃผ์)์ ์ ๋ ฅํ๋ค. ์ด์ ๊ด๊ณ ๋จ์๋ฅผ ๋ฑ๋กํ๊ธฐ ์ํ ์ฐฝ์ด๋ค. ์ฒ์์ ๊ทธ๋ฅ ์๋์ ๋๊ฐ์ด ์ ๋ ฅํ์. (์ด์ฐจํผ ์ถ๊ฐ๊ฐ ํ์!) ๊ด๊ณ ๋จ์๋ช ์ ์ฌ์ด์ฆ๋ฅผ ์ ๋ ฅํ์ฌ ๊ตฌ๋ถํ๋๊ฒ ๋์ค์ ๊ตฌ๋ถํ๊ธฐ ํธํ๋ค. ์คํฌ๋ฆฝํธ/SDK ๋ฐ๊ธ์ ํด๋ฆญ! ์๋์ ๊ฐ์ด ์ฐ๋ฆฌ๊ฐ ์ ๋ ฅํ ์ ๋ณด๊ฐ ๋์ฌ ๊ฒ์ด๋ค. ํ๋จ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณต์ฌํ์ฌ ๋ธ๋ก๊ทธ์ ์ฝ์ ์ ํ ๊ฒ์ธ๋ฐ.. ๋ธ๋ก๊ทธ์ ์ข ๋ฅ๋ ์๋ง์ผ๋ ์ด ๊ธ์ ํฌ์คํ ํ ํฐ์คํ ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcNd7pk%2FbtqHLfOrWvt%2FKIHjYFaxykDjqLPllF8iL1%2Fimg.png)
๊ตฌ๊ธ์ ์คํฌ๋ฆฝํธ ํ๋๋ก ์๋์ผ๋ก ๊ด๊ณ ๊ฐ ์ฝ์ ๋๊ฒ ํ ์์๋ค. ๋๋ ์ํ๋ ์์น์ ํด๋น ๊ด๊ณ ๋ฅผ ์ฝ์ ํ ์ ์๋ค. ์ฐ์ธก ๋งํฌ๋ฅผ ์ด์ฉํด ์์ (https://www.google.co.kr/adsense/start/) ์์ํ๊ธฐ ๋ฒํผ์ ๋๋ฌ ์์ํ๋ค. ๊ด๊ณ ๋ฅผ ๊ฒ์ฌํ ์น์ฌ์ดํธ์ URL์ ๋ฃ๊ณ , ๊ตฌ๊ธ ์ ๋์ผ์ค ๊ด๋ จํ์ฌ ์ ๋ณด๋ฅผ ๋ฐ๊ธฐ ์ํด ์ด๋ฉ์ผ ์ฃผ์๋ฅผ ์ ๋ ฅํ๋ค. ์ ์ฅํ๊ณ ๊ณ์ํ๊ธฐ๋ฅผ ๋๋ฅด๋ฉด ์๋์ ๊ฐ์ ํ๋ฉด์ด ๋์จ๋ค. ๊ตญ๊ฐ๋ ๋ํ๋ฏผ๊ตญ์ ์ ํํ๊ณ ํ๋จ์ ๋์ ์ฒดํฌ๋ฐ์ค๋ฅผ ์ ํํ๋ค. ๋ค์ ์ฐฝ์์ ์ํ๋ ์ข ๋ฅ์ ๊ด๊ณ ์คํ์ผ์ ์ ํํ๊ณ ์์ํ๊ธฐ๋ฅผ ๋๋ฅด๊ณ ๋๋ฉด, ์์ต๊ธ์ ๋ฐ์ ์ ์๋๋ก ๊ธฐ๋ณธ ์ค์ ์ ํ๋ ์ฃผ์ ์ ๋ ฅ ์ฐฝ์ด ๋์จ๋ค. ์ฃผ์ ์ ๋ ฅ ํ ์ ์ถ. ์ ๋๋์ด ๋ง์ง๋ง ๋จ๊ณ์ด๋ค. ๊ด๊ณ ์ฝ์ ์ ์ํด ๊ตฌ๊ธ์์ ์ ๊ณตํด์ฃผ๋ ์คํฌ๋ฆฝํธ๋ฅผ ๋ณต์ฌ..
#์ํ์ค ์์ฑ create sequence TB_Board_SEQ start with 1 increment by 1 cache 10; #์ํ์ค ์ ๋ ฅ INSERT INTO TB_BOARD VALUES(nextval('TB_BOARD_SEQ'), ....); #์ํ์ค ์ด๊ธฐํ ALTER SEQUENCE TB_USER_SEQ RESTART WITH 1;
#์ํ์ค ์์ฑ create sequence TB_Board_SEQ start with 1 increment by 1 cache 10; #์ํ์ค ์ถ๊ฐ INSERT INTO TB_BOARD VALUES(nextval('TB_BOARD_SEQ'), ....); #์ํ์ค ์ด๊ธฐํ ALTER SEQUENCE TB_USER_SEQ RESTART WITH 1;
์ปฌ๋ผ์ถ๊ฐ ALTER TABLE board ADD create_date date; ์ปฌ๋ผ์ญ์ ALTER TABLE board DROP create_date; ์ปฌ๋ผ default๊ฐ ์ถ๊ฐ ALTER TABLE board ALTER COLUMN name SET DEFAULT '์ด๋ฆ์์'; --๋ฌธ์ ALTER TABLE board ALTER COLUMN no SET DEFAULT 1;--์ซ์ ์ปฌ๋ผ default๊ฐ ์ ๊ฑฐ ALTER TABLE board ALTER name DROP DEFAULT; ์ปฌ๋ผ NOT NULL ์ถ๊ฐ ALTER TABLE board ALTER COLUMN name SET NOT NULL; ์ปฌ๋ผ NOT NULL ์ ๊ฑฐ ALTER TABLE board ALTER COLUMN name DROP NOT ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbLypf2%2FbtrLDSvf7Vw%2FkehXv9rqXAaF85HStLchA1%2Fimg.png)
๐Free SQL DB Tool, ๋ด๊ฐ ๋ฐ๋ก DBeaver ๋ค! ๐1. ํ ๋ฒํธ ํ์ ๐์๋ ํ์ธ์. ์ค๋์ ๋ง์ ๋ถ๋ค์ด ์ง๋ฌธ ์ฃผ์ DBeaver ๊ฐ๋จํ ๊ธฐ๋ณธ ์ค์ ์ ๋ํด ์ค๋ช ๋๋ฆฌ๊ฒ ์ต๋๋ค. #1. ํ ๋ฒํธ ํ์ ์๋จ ๋ฉ๋ด์์ ์๋์ฐ/์ค์ ์ผ๋ก ์ด๋ํด์ฃผ์ ํ, ์ผ๋ฐ/ํธ์ง๊ธฐ/๋ฌธ์ ํธ์ง๊ธฐ๋ก ์ด๋ํฉ๋๋ค. ์ฐ์ธก ์ฒดํฌ๋ฐ์ค์์ ํ ๋ฒํธ ํ์๋ฅผ ์ ํ ํ์ ํ, ์ ์ฉ์ ๋๋ฆ ๋๋ค. ์๋ฃ! ๐2. ์๋์ ์ฅ ๐์๋จ ๋ฉ๋ด์์ ์๋์ฐ/์ค์ ์ผ๋ก ์ด๋ํด์ฃผ์ ํ, ์ผ๋ฐ/ํธ์ง๊ธฐ/Autosave๋ก ์ด๋ํฉ๋๋ค. ์ฐ์ธก ์ฒดํฌ๋ฐ์ค์์ Enable autosave for dirty editors ๋ฅผ ์ ํ ํ์ ํ, ์ํ์๋ ์๊ฐ์ ์ ๋ ฅํ์ ์ ์ ์ฉ์ ๋๋ฆ ๋๋ค. ์๋ฃ! ๐3. UTF-8 ์ค์ ๐์์ ๋๋ถ๋ถ ํ ์คํธ ํ์ผ ์ธ์ฝ๋ฉ์ UTF-8์ด ํ์คํ๋๊ณ ์..