๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ’ป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(..