๐ปStudy (40) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ๋ฐ์ดํฐ๋ฒ ์ด์ค * ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ ํ ์กฐ์ง์ ์ฌ๋ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๊ณต์ ํ๋ ๊ด๋ จ ๋ฐ์ดํฐ์ ๋ชจ์์ด๋ค. ์๋ก ๊ด๋ จ ์๋ ๋ฐ์ดํฐ๋ค์ ํ๋๋ก ํตํฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ตฌ์ถํ๋ฉด ์ฌ๋ฌ ํ๋ก๊ทธ๋จ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต์ ํ์ฌ ์ฌ์ฉํ ์ ์๋ค. * ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS) ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ฅผ ์ฌ์ฉํ๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ง์ ์กฐ์ํ์ง ์๊ณ ๋ณ๋์ ์ํํธ์จ์ด๋ฅผ ํตํด ์กฐ์ํ๋๋ฐ, ์ด๋ฌํ ์ํํธ์จ์ด๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (DBMS)์ด๋ผ๊ณ ํ๋ค. DBMS๋ ์ฌ๋ฌ ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ณต์ ํ๋ฉฐ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค. => DBMS๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ฉ ํ๋ก๊ทธ๋จ๋ค ์ฌ์ด์ ๋งค๊ฐ์ฒด ์ญํ ์ ํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ ํ์ ์ ๊ณตํ๋ฉฐ, ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฒ์ํ๊ณ ์ ์ฅํ ์ ์๋๋ก ํ๋ค. ๊ฐ ์์ฉ ํ.. Spring MVC ๊ฐ๋ฐํ๊ฒฝ ์ธํ / Dispatcher Servlet / View Resolver tomcat 9.0.3, sts 4.9.0 ๋ค์ด๋ก๋ sts ์คํ ํ perspective Java EE๋ก ์ค์ Java EE๊ฐ ์์ ๋๋ Help > Install New Software > work with์ http://download.eclipse.org/releases/2020-12 > web,xml,java ee and OSGi Enterprise Develoment ์ค์น Create a Maven project - Create a simple project ์ ํ ํ๋ก์ ํธ๊ฐ ์ด๋ฆฌ๋ฉด pom.xml์ ๋นจ๊ฐ์ค์ด ๋จ๋๋ฐ, web.xml์ด ์๊ธฐ ๋๋ฌธ์ด๋ค. src - main - webapp ์์ ํฐ์บฃ ๋๋ ํ ๋ฆฌ ์ ROOT - WEB-INF(์์ web.xml ํ์ผ ์์)๋ฅผ ๋ณต์ฌํด ์์ ๋ถ์ธ๋ค. pom.x.. ์ปดํจํฐ ๊ตฌ์กฐ * ์ปดํจํฐ ์์คํ ์ ๊ตฌ์ฑ ์์ ์ปดํจํฐ ์์คํ = ํ๋์จ์ด(๊ธฐ๊ณ ์ฅ์น) + ์ํํธ์จ์ด(ํ๋ก๊ทธ๋จ๊ณผ ํ๋ก๊ทธ๋จ์ ํ์ํ ๋ฐ์ดํฐ) ์ฌ์ฉํ์ง ์์ ๋์ ํ๋ก๊ทธ๋จ(๋ช ๋ น์ด1+๋ช ๋ น์ด2+....)์ ๋ณด์กฐ๊ธฐ์ต์ฅ์น์ ์ ์ฅ๋์ด ์๋ค๊ฐ, ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด ์ฃผ๊ธฐ์ต์ฅ์น๋ก ๋ค์ด๊ฐ๋ค. ์ค์์ฒ๋ฆฌ์ฅ์น์์๋ ์ฃผ๊ธฐ์ต์ฅ์น์ ๋ช ๋ น์ด๋ฅผ ํ๋์ฉ ์ฝ์ด์ ์คํํ๋ค. * ํ๋์จ์ด์ ๊ตฌ์ฑ ์ค์์ฒ๋ฆฌ์ฅ์น, ์ฃผ๊ธฐ์ต์ฅ์น, ๋ณด์กฐ๊ธฐ์ต์ฅ์น, ์ ์ถ๋ ฅ์ฅ์น * ์ค์์ฒ๋ฆฌ์ฅ์น (= ์ ์ด์ฅ์น + ์ฐ์ฐ์ฅ์น + ๋ ์ง์คํฐ ์งํฉ) ์ค์์ฒ๋ฆฌ์ฅ์น๋ ํ๋ก๊ทธ๋จ ๋ช ๋ น์ด๋ฅผ ํด๋ ํ์ฌ ์คํํ๋ ์ญํ ์ ํ๋ค. ๋ค๋ฅธ ์ฅ์น๋ค๊ณผ๋ ๋ฒ์ค๋ก ์ฐ๊ฒฐ๋๋ค. 1. ์ ์ด์ฅ์น : ํ๋ก๊ทธ๋จ ๋ช ๋ น์ด๋ฅผ ํด๋ ํ๊ณ , ํด๋ ๋ ๋ช ๋ น์ ์๋ฏธ์ ๋ฐ๋ผ ์ฐ์ฐ์ฅ์น, ์ฃผ๊ธฐ์ต์ฅ์น, ์ ์ถ๋ ฅ์ฅ์น ๋ฑ์ ๋์์ ์ง์ํ๋ค. 2. ์ฐ์ฐ์ฅ์น : ์ ์ด์ฅ์น์ .. ์ ๋ณด์ ํํ, ๋ถ ๋์์ ๋์งํธ ๋ ผ๋ฆฌ * ์ปดํจํฐ์ ์ ๋ณด ํํ ๋ฐฉ์ - ์ด๊ธฐ ์ปดํจํฐ๋ 10์ง์๋ฅผ ์ฌ์ฉํ์ผ๋, ์ฐ์ฐ ์ฒ๋ฆฌ๊ฐ ๋๋ฆฌ๊ณ ์์ ์ฑ์ด ๋จ์ด์ง๋ค๋ ๋ฌธ์ ๋ก ์ค๋๋ ์ ์ปดํจํฐ๋ 2์ง์๋ฅผ ์ฌ์ฉํ๊ณ ์๋ค. (=>2์ง์๋ ์์ ์ฑ์ด ๋ฐ์ด๋จ) - ๋นํธ(bit) : ์ปดํจํฐ์์ ์ ๋ณด๋ฅผ ํํํ๋ ์ต์ ๋จ์. 8๋นํธ = 1๋ฐ์ดํธ(byte) n๋นํธ => 2์ n์ ๊ณฑ ๊ฐ์ ์ ๋ณด๋ฅผ ํํํ ์ ์๋ค. * ๋ฌธ์ ํํ ์ปดํจํฐ ๋ด๋ถ์์ ์๋ฌธ, ์ซ์, ๊ตฌ๋์ , ํน์๋ฌธ์ ๋ฑ์ ํํํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ์ฝ์ํ ์ฝ๋ ์ฒด๊ณ๋ฅผ ์ฌ์ฉํ๋ค. 1. ์์คํค ์ฝ๋ : ๊ฐ ๋ฌธ์๋ฅผ 7๋นํธ๋ก ํํ. ์ต๋๋ก ํํํ ์ ์๋ ๋ฌธ์ ์๋ 2์ 7์ ๊ณฑ(128)๊ฐ. ANSI(๋ฏธ๊ตญ ํ์ค ํํ) ํ์ค ์ฝ๋ ์ฒด๊ณ. ๊ธฐ์กด 7๋นํธ ์์คํค ์ฝ๋์ ๊ฐ์ฅ ์ผ์ชฝ์ 0์ ์ฝ์ ํด ๋ง๋ ํ์ฅ ์์คํค๋ ์๋ค. 2. ์ ๋์ฝ๋ : ๊ฐ ๋ฌธ์.. ์ปดํจํฐ์ ๊ฐ์์ ์ปดํจํฐ ๊ณผํ * ์ปดํจํฐ์ ๊ตฌ์ฑ - ์ปดํจํฐ = ํ๋์จ์ด(๊ธฐ๊ณ ์ฅ์น) + ์ํํธ์จ์ด(ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ) - ์ปดํจํฐ์ ๊ธฐ๋ฅ : ์ ๋ ฅ, ๊ธฐ์ต, ์ฐ์ฐ, ์ ์ด, ์ถ๋ ฅ ๊ธฐ๋ฅ * ํ๋์จ์ด ์ ๋ ฅ์ฅ์น๋ฅผ ํตํด ์ธ๋ถ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฅ ๋ฐ์ ์ค์์ฒ๋ฆฌ์ฅ์น์์ ๋ช ๋ น์ ์คํํ๊ณ ๊ธฐ์ต์ฅ์น์์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. ์ฒ๋ฆฌ๋ ๊ฒฐ๊ณผ๋ ์ถ๋ ฅ์ฅ์น๋ฅผ ํตํด ์ถ๋ ฅ๋๋ค. 1. ์ค์์ฒ๋ฆฌ์ฅ์น(CPU) : ์ปดํจํฐ์ ํต์ฌ ์ฅ์น. ๋ช ๋ น์ด๋ฅผ ํด๋ ํ๊ณ ์คํํ๋ค. ex) ์ธํ ์ฝ์ด 1) ์ ์ด์ฅ์น 2) ์ฐ์ฐ์ฅ์น 3) ๋ ์ง์คํฐ ์งํฉ 2. ๊ธฐ์ต์ฅ์น : ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. 1) ๋ณด์กฐ๊ธฐ์ต์ฅ์น : ํ๋ก๊ทธ๋จ๊ณผ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ๋ค. ex) ํ๋๋์คํฌ, SSD, USB ๋ฉ๋ชจ๋ฆฌ, ๊ด๋์คํฌ 2) ์ฃผ๊ธฐ์ต์ฅ์น : ์คํ ์ค์ธ ํ๋ก๊ทธ๋จ๊ณผ ์คํ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ค. - ๋จ(R.. Spring MVC Spring MVC๋ Front Controller Pattern์ ๊ธฐ์ดํ ์น MVC ํ๋ ์์ํฌ์ด๋ค. MVC model2 ๋ฐฉ์(์ปจํธ๋กค๋ฌ์ ๋ทฐ๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ผ์ด๋์ ๋ฐฉ์)์ ๋ฐ์ ํํ์ด๋ค. ์ฌ์ฉ์์ ์์ฒญ์ด ๋ค์ด์ค๋ฉด Dispatcher๋ ์ปจํธ๋กค๋ฌ์๊ฒ ์์ฒญ์ ์ ๋ฌํ๊ณ , ๋ฐํ๊ฐ์ jsp์ ์ ๋ฌํ๋ ์ค๊ฐ ๋งค๊ฐ์ฒด ์ญํ ์ ํ๋ค. ์ฌ์ฉ์๊ฐ ๋ณด๋ด๋ ๋ชจ๋ ์์ฒญ์ ํ๋์ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ๊ฐ ๋ฐ์ ํ, ๊ทธ์ ๋ง๋ ์ปจํธ๋กค๋ฌ์๊ฒ ๋ค์ ์์ฒญ์ ๋ณด๋ธ๋ค. ๋์คํจ์ฒ๊ฐ ํ๋ก ํธ ์ปจํธ๋กค๋ฌ ์ญํ ์ ํ๋ค. ์ด ๊ณผ์ ์์ ์ฌ์ฉ์์ ์ ๋ ฅ๊ฐ์ ์ฝ๊ฒ ๋ณํํด์ ์ ๋ฌํ๋ค. ์๋ธ๋ฆฟ์ ๊ธฐ๋ณธ ์ ๋ ฅ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์ String, ์ ์ํ ๋ฑ์ผ๋ก ์ ๋ฌํ๊ฑฐ๋ ๊ฐ์ฒด ํํ๋ก ์ ๋ฌํ ์ ์๋ค. ์ปจํธ๋กค๋ฌ๊ฐ view ํ์ด์ง์ ๋ํ ์ ๋ณด๋ฅผ ์๋ ค์ฃผ๋ฉด Dispatcher๋ jsp๋ฅผ ํธ.. Spring์ผ๋ก AOP ๊ตฌํ (Around Advice) ๋ณด์กฐ ์ ๋ฌด์ ์ฌ์ฉ์ ๋ฐ๋ผ ์คํ๋ง์ Before Advice, After returnning Advice, After throwing Advice, Around Advice ๋ค ๊ฐ์ง๋ฅผ ์ ๊ณตํ๋ค. ์ด์ ํฌ์คํ ์์ ์์ ์๋ฐ๋ก๋ง AOP๋ฅผ ๊ตฌํํ๋ ์ฝ๋๋ฅผ ์์ ํ์ฌ Around Advice๋ฅผ ๊ตฌํํด ๋ณด๋๋ก ํ๊ฒ ๋ค. (unounou.tistory.com/48) Program.java public class Program { public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("spring/aop/setting.xml"); Exam proxy = (Exam) context.getBe.. ์์ ์๋ฐ๋ก AOP ๊ตฌํํด๋ณด๊ธฐ ์ฌ์ฉ์์ ์๊ตฌ์ ๋ฐ๋ผ kor, eng, math, com ๋ค ๊ณผ๋ชฉ์ ์ด์ ์ ๊ณ์ฐํด ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ด ์๋ค๊ณ ํด๋ณด์. ํ๋ก๊ทธ๋จ์ด ๋๋ฌด ๋๋ฆฌ๋ค๋ ํผ๋๋ฐฑ์ด ์์ ๋ ๊ฐ๋ฐ์๋ค์ ์คํ์ ์๊ฐ์ด ์ผ๋ง๋ ๊ฑธ๋ฆฌ๋์ง ์ ํ์๊ฐ ์์ ๊ฒ์ด๊ณ , ๊ทธ๋ฌ๊ธฐ ์ํด ๊ณ์ฐํ๋ ์์ค๋ฅผ ๋ผ์๋ฃ๊ฒ ๋์๋ค. ์ด๋ ์ฌ์ฉ์์ ์๊ตฌ์ฌํญ๊ณผ๋ ๋ณ๊ฐ๋ก ๊ฐ๋ฐ์๋ค์ด ํ์์ ์ํด ์ฝ์ ํ ๋ถ๋ถ์ด๋ค. (=>๋ณด์กฐ ์ ๋ฌด) ** ์์ค ๊ตฌ์ฑ Exam์ NewlecExam์ ์ธํฐํ์ด์ค Program.java public class Program { public static void main(String[] args) { Exam exam = new NewlecExam(1,1,1,1); System.out.printf("total is %d\n", exam.total(.. ์ด์ 1 2 3 4 5 ๋ค์