SlideShare a Scribd company logo
Clean Code
     Ch.2 ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„

     chois79




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
์ด์žฅ์—์„œ ๋‹ค๋ฃฐ ๋‚ด์šฉ

     โ€ข ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์ด๋ฆ„์€ ์–ด๋””๋‚˜ ์“ฐ์ธ๋‹ค


         โ€ข ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ์ธ์ˆ˜, ํด๋ž˜์Šค, ํŒŒ์ผ, package, jar, war ๋“ฑ...


     โ€ข ์ด๋Ÿฌํ•œ ์ด๋ฆ„์„ ์ž˜ ์ง“๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค


         โ€ข ์ดํ•ด๋„๋ฅผ ๋†’์ธ๋‹ค.


     โ€ข ์ด๋ฆ„์„ ์ž˜ ์ง“๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€?




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋ฐํ˜€๋ผ

     โ€ข ์˜๋„๊ฐ€ ๋ถ„๋ช…ํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค


         โ€ข ์ข‹์€ ์ด๋ฆ„์„ ์ง“๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ < ์ข‹์€ ์ด๋ฆ„์œผ๋กœ ์ธํ•ด ์ ˆ์•ฝํ•˜๋Š” ์‹œ๊ฐ„


         โ€ข Why? ์ฝ”๋“œ์˜ ์ดํ•ด์™€ ๋ณ€๊ฒฝ์ด ์‰ฌ์›Œ์ง


     โ€ข ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ์ง“๋Š” ๊ฐ€์ด๋“œ


         โ€ข ๋‹ค์Œ์˜ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉ


             โ€ข ์กด์žฌ ์ด์œ ๋Š”?


             โ€ข ์ˆ˜ํ–‰ ๊ธฐ๋Šฅ์€?


             โ€ข ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€?


         โ€ข ๋งŒ์•ฝ ์ฃผ์„์ด ํ•„์š”ํ•˜๋‹ค๋ฉด, ์˜๋„๋ฅผ ์ œ๋Œ€๋กœ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ



12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋ฐํ˜€๋ผ - ์˜ˆ์ œ

                       ์˜๋„๊ฐ€ ๋ชจํ˜ธํ•œ ์ฝ”๋“œ                                                  ์˜๋„๊ฐ€ ๋ถ„๋ช…ํ•œ ์ฝ”๋“œ

                                                             	   int elapsedTimeInDays;
                                                             	   int daysSinceCreation;
     
    int d; // ๊ฒฝ๊ณผ ์‹œ๊ฐ„ (๋‹จ์œ„: ๋‚ ์งœ ์ˆ˜)
                                                             	   int daysSinceModi๏ฌcation;
                                                             	   int ๏ฌleAgeInDays;

     
    // ๊ฐ ์ด๋ฆ„์ด ์ถฉ๋ถ„ํ•œ ์ •๋ณด ์ œ๊ณต์„ ํ•˜์ง€ ์•Š์Œ                          
   // ์ด๋ฆ„์„ ๋ช…ํ™•ํžˆ ๋ณ€๊ฒฝ
     	    public List<int[]> getThem() {                     	   public List<int[]> getFlaggedCells() {
     	       List<int []> list1 = new ArrayList<int []>();   	      List<int []> ๏ฌ‚aggedCells = new ArrayList<int []>();
     	       for(int [] x: theList) {                        	      for(int [] cell: gameBoard) {
     	          if(x[0] == 4)                                	         if(cell[STATUS_VALUE] == FLAGGED)
     	              list1.add(x);                            	             ๏ฌ‚aggedCells.add(cell);
     	       }                                               	      }
     	       return list1;                                   	      return ๏ฌ‚aggedCells;
     	    }                                                  	   }

                                                             
   // int []์„ Cell Class๋กœ ๋ณ€ํ™˜
                                                             	   public List<Cell> getFlaggedCells() {
                                                             	       List<Cell> ๏ฌ‚aggedCells = new ArrayList<Cell>();
                                                             	       for(Cell cell: gameBoard) {
                                                             	          if(cell.isFlagged())
                                                             	              ๏ฌ‚aggedCells.add(cell);
                                                             	       }
                                                             	       return ๏ฌ‚aggedCells;
                                                             	   }



12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๊ทธ๋ฆ‡๋œ ์ •๋ณด๋ฅผ ํ”ผํ•˜๋ผ

     โ€ข ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ฝ”๋“œ์— ๊ทธ๋ฆ‡๋œ ๋‹จ์„œ๋ฅผ ๋‚จ๊ฒจ์„œ๋Š” ์•ˆ๋œ๋‹ค


         โ€ข ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜๋ฏธ์™€ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋จ


             โ€ข ex) ์—ฌ๋Ÿฌ ๊ณ„์ •์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์„๋•Œ ์‹ค์ œ๋กœ List ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•„๋‹Œ๋ฐ accountList ๋กœ ์นญํ•  ๊ฒฝ์šฐ


                 โ€ข accountGroup, bunchOfAccounts ํ˜น์€ Accounts๋กœ ๋ช…๋ช…


         โ€ข ์„œ๋กœ ํก์‚ฌํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜


             โ€ข XYZControllerForEf๏ฌcientHandlingOfStrings, XYZControllerForEf๏ฌcientStorageOfString


         โ€ข ์œ ์‚ฌํ•œ ๊ฐœ๋…์€ ์œ ์‚ฌํ•œ ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ


         โ€ข ์•ŒํŒŒ๋ฒณ์— ์˜ํ•œ ๋ชจํ˜ธ์„ฑ ์ฃผ์˜


             โ€ข ์†Œ๋ฌธ์ž L๊ณผ ์ˆซ์ž 1: l, 1


             โ€ข ๋Œ€๋ฌธ์ž O์™€ ์ˆซ์ž 0: O, 0




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
์˜๋ฏธ ์žˆ๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋ผ

     โ€ข ์ฝ๋Š” ์‚ฌ๋žŒ์ด ์ฐจ์ด๋ฅผ ์•Œ๋„๋ก ์ด๋ฆ„์„ ์ง€์–ด๋ผ


         โ€ข ์—ฐ์†๋œ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฆ„์„ ์ง“์ง€๋งˆ๋ผ
            
     // a1, a2๋ณด๋‹ค source, destination ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ์ˆ˜ ์žˆ์Œ
            	     public static void copyChars(char a1[], char a2[]) {
            	     	    for(int i = 0; i < a1.length; i++) {
            	     	    	     a2[i] = a1[i];
            	     	    }
            	     }


         โ€ข ๋ถˆ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ๋ถ„ํ•˜์ง€๋งˆ๋ผ


                โ€ข ex1) Info๋‚˜ Data๋Š” a, an, the์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜๋ฏธ๊ฐ€ ๋ถˆ๋ถ„๋ช…


                   โ€ข ProductInfo, ProductData (์ฐจ์ด์ ์ด ๋ชจํ˜ธํ•จ)


                โ€ข ex2) NameString๊ณผ Name, moneyAmount์™€ money, customerInfo์™€ customer



12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๋ฐœ์Œํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ

     โ€ข ๋ฐœ์Œํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋ฆ„์€ ์˜์‚ฌ ์†Œํ†ต์„ ํž˜๋“ค๊ฒŒ ํ•œ๋‹ค


         โ€ข ex) genymdhms (generate date, year, month, day, hour, minute, second)


             โ€ข ์ด ์ด๋ฆ„์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์˜์‚ฌ ์†Œํ†ต ํ•ด์•ผ ํ•˜๋Š”๊ฐ€?


                     โ€ข โ€œ์   ์™€์ด ์—  ๋”” ์—์ด์ทจ ์—  ์—์Šคโ€, โ€œ์   ์•ผ ๋ฌด๋‹ค ํž˜์ฆˆโ€
                                 ๋ฐœ์Œํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋ฆ„                                      ๋ฐœ์Œํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„

                                                                 
   /* ์ฝ”๋“œ๋ฅผ ํ†ตํ•œ ์ง€์ ์ธ ๋Œ€ํ™”๊ฐ€ ๊ฐ€๋Šฅ */
                 	   class DtaRcrd102{		
                                                                 	   class Customer {
                 	   	    private Date genymdhms;
                                                                 	   	    private Date generationTimestamp;
                 	   	    private Date modymdhms;
                                                                 	   	    private Date modi๏ฌcationTimestamp;
                 	   	    private ๏ฌnal String pszqint = "102";
                                                                 	   	    private ๏ฌnal String recordId = "102";
                 	   	    /* ... */
                                                                 	   	    /* ... */
                 	   }
                                                                 	   }




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๊ฒ€์ƒ‰ํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ

     โ€ข ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๋ฅผ ์ฝ”๋“œ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์ด ๋ฐ”๋žŒ์ง


         โ€ข ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„๊ณผ ์ƒ์ˆ˜๋Š” ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฐ๋‹ค


              โ€ข ๊ฐ„๋‹จํ•œ ๋ฉ”์†Œ๋“œ์—์„œ ๋กœ์ปฌ ๋ณ€์ˆ˜๋งŒ ํ•œ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ


         โ€ข ์ด๋ฆ„์„ ์˜๋ฏธ ์žˆ๊ฒŒ ์ง€์œผ๋ฉด ํ•จ์ˆ˜๊ฐ€ ๊ธธ์–ด์ง€์ง€๋งŒ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ๋‹ค

                   ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋ฆ„                                            ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„

                                                     int readDaysPerIdealDay = 4;
                                                 	    ๏ฌnal int WORK_DAYS_PER_WEEK = 5;
                                                 	    int sum = 0;
          	      for(int j = 0; j < 34; j++) {
                                                 	    for(int j = 0; j < NUMBER_OF_TASKS; j++) {
          	      	     s += (t[j] * 4) / 5;
                                                 	    	     int realTaskDays = taskEstimate[j] * readDaysPerIdealDay;
          	      }
                                                 	    	     int realTaskWeeks = (realTaskDays / WORK_DAYS_PER_WEEK);
                                                 	    	     sum += realTaskWeeks;
                                                 	    }




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
์ธ์ฝ”๋”ฉ์„ ํ”ผํ•˜๋ผ

     โ€ข ๋ถ€๋‹ด์„ ๋”ํ•˜์ง€ ์•Š์•„๋„ ์ด๋ฆ„์— ์ธ์ฝ”๋”ฉํ•  ์ •๋ณด๋Š” ์•„์ฃผ ๋งŽ๋‹ค


     โ€ข ์ธ์ฝ”๋”ฉํ•œ ์ด๋ฆ„์€ ๋ฐœ์Œํ•˜๊ธฐ ์–ด๋ ต๋‹ค


     โ€ข ํ—๊ฐ€๋ฆฌ์•ˆ ํ‘œ๊ธฐ๋ฒ• (์œˆ๋„์šฐ C API ํ‘œ๊ธฐ๋ฒ•)


         โ€ข ํŠน์ง•: ๋‹น์‹œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž…์„ ์ ๊ฒ€ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ€์ž…์„ ๋ณ€์ˆ˜๋ช…์— ๋ช…์‹œํ•œ ํ‘œ๊ธฐ๋ฒ•


         โ€ข ํ˜„๋Œ€์  IDE๋Š” ์ปดํŒŒ์ผ ํ•˜์ง€ ์•Š์•„๋„ ํƒ€์ž…์„ ๊ฐ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ๋ฐฉํ•ด๊ฐ€ ๋จ


             โ€ข ํด๋ž˜์Šค ์ด๋ฆ„์ด๋‚˜ ํƒ€์ž…์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์–ด๋ ต๊ณ , ์ฝ๊ธฐ๋„ ์–ด๋ ต๋‹ค


     โ€ข ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ ‘๋‘์–ด


         โ€ข ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— m_ ์ด๋ผ๋Š” ์ ‘๋‘์–ด๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ๋ณด๋‹ค ๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•ด ์ฃผ๋Š” IDE ํˆด ์‚ฌ์šฉ


     โ€ข ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค์™€ ๊ตฌํ˜„ ํด๋ž˜์Šค


         โ€ข ์ธํ„ฐํŽ˜์ด์Šค์— ์ ‘๋‘์–ด โ€˜Iโ€™๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ ๋ณด๋‹ค ๊ตฌํ˜„ ํด๋ž˜์Šค์— โ€˜Cโ€™ or ์ ‘๋ฏธ์–ด โ€˜Impโ€™ ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋‚ซ๋‹ค




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
์ž์‹ ์˜ ๊ธฐ์–ต๋ ฅ์„ ์ž๋ž‘ํ•˜์ง€ ๋งˆ๋ผ

     โ€ข ๊ธฐ์–ต๋ ฅ์„ ๋ฏฟ๊ณ , ์˜๋ฏธ ์—†๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ๋ผ


     โ€ข ์ฝ”๋“œ๋ฅผ ์ฝ์œผ๋ฉด์„œ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ž์‹ ์ด ์•„๋Š” ์ด๋ฆ„์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๊ทธ ์ด๋ฆ„์€
       ๋ฐ”๋žŒ์งํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด๋‹ค


         โ€ข ๋ฌธ์ œ ์˜์—ญ์ด๋‚˜ ํ•ด๋ฒ• ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด๋ฆ„์„ ์„ ํƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
ํด๋ž˜์Šค ์ด๋ฆ„

     โ€ข ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๊ฐ์ฒด ์ด๋ฆ„์€ ๋ช…์‚ฌ๋‚˜ ๋ช…์‚ฌ๊ตฌ๊ฐ€ ์ ํ•ฉ


         โ€ข Customer, WikiPage, Account, AddressParser


     โ€ข ๋ถˆ์šฉ์–ด๋Š” ํ”ผํ•ด๋ผ


         โ€ข Manager, Processor, Data, Info...




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๋ฉ”์†Œ๋“œ ์ด๋ฆ„

     โ€ข ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์€ ๋™์‚ฌ๋‚˜ ๋™์‚ฌ๊ตฌ๊ฐ€ ์ ํ•ฉ


         โ€ข ex) postPayment, deletePage, save ...


     โ€ข ์ ‘๊ทผ์ž, ๋ณ€๊ฒฝ์ž, ์กฐ๊ฑด์ž๋Š” ์ž๋ฐ” ๋นˆ ํ‘œ์ค€์— ๋”ฐ๋ฅธ ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ


         โ€ข get, set, is


     โ€ข ์ƒ์„ฑ์ž๋ฅผ ์ค‘๋ณตํ•ด ์ •์˜ํ•  ๋•Œ๋Š” ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ

                                   ์ƒ์„ฑ์ž                                      ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ


                                                             	   Complex fulcrmPoint =
          	      Complex fulcrmPoint = new Complex(23.0);	   	   	  	    	    Complex.FromReadlNumber(23.0);




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๊ธฐ๋ฐœํ•œ ์ด๋ฆ„์€ ํ”ผํ•˜๋ผ

     โ€ข ์ด๋ฆ„์ด ๋„ˆ๋ฌด ๊ธฐ๋ฐœํ•˜๋ฉด ์ €์ž์™€ ์ƒ๊ฐ์ด ๋น„์Šทํ•œ ์‚ฌ๋žŒ๋งŒ ์ด๋ฆ„์„ ๊ธฐ์–ตํ•œ๋‹ค


     โ€ข ์žฌ๋ฏธ๋‚œ ์ด๋ฆ„๋ณด๋‹ค ๋ช…ํ™•ํ•œ ์ด๋ฆ„์„ ์„ ํƒ




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๊ฐœ๋… ํ•˜๋‚˜์— ๋‹จ์–ด ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

     โ€ข ์ถ”์ƒ์ ์ธ ๊ฐœ๋… ํ•˜๋‚˜์— ๋‹จ์–ด ํ•˜๋‚˜๋ฅผ ์„ ํƒ


         โ€ข ex) fetch, retrieve, get์„ ์ œ๊ฐ๊ฐ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ˜ผ๋ž€์ด ์ดˆ๋ž˜


     โ€ข ์ผ๊ด€์„ฑ ์žˆ๋Š” ์–ดํœ˜๋ฅผ ์‚ฌ์šฉํ•ด๋ผ




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๋ง์žฅ๋‚œ์„ ํ•˜์ง€ ๋งˆ๋ผ

     โ€ข ํ•œ ๋‹จ์–ด๋ฅผ ๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ๋ผ


         โ€ข Ex) ๊ธฐ์กด ๊ฐ’ ๋‘๊ฐœ๋ฅผ ๋”ํ•˜๊ฑฐ๋‚˜ ์ด์–ด์„œ ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๋ฉ”์†Œ๋“œ add๊ฐ€ ์žˆ์„
           ๊ฒฝ์šฐ


             โ€ข ์ง‘ํ•ฉ์— ๊ฐ’ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” ๋ฌด์—‡์œผ๋กœ ํ•ด์•ผํ• ๊นŒ?


             โ€ข add ๋ณด๋‹ค insert๋‚˜ append๊ฐ€ ์ ๋‹น




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
ํ•ด๋ฒ• ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ

     โ€ข ๊ธฐ์ˆ ์ ์ธ ๊ฐœ๋…์—๋Š” ๊ธฐ์ˆ ์ ์ธ ์ด๋ฆ„์ด ์ ํ•ฉ


         โ€ข ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ


         โ€ข ๋ฌธ์ œ ์˜์—ญ์—์„œ ๋ชจ๋“  ์ด๋ฆ„์„ ๊ฐ€์ ธ ์˜ฌ ๊ฒฝ์šฐ ๊ฐ™์€ ๊ธฐ์กด ๊ฐœ๋…๊ณผ ์ถฉ๋Œ์ด ์žˆ์„ ์ˆ˜
           ์žˆ์Œ


         โ€ข EX) AccountVisitor, JobQueue ...




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๋ฌธ์ œ ์˜์—ญ๊ณผ ๊ด€๋ จ ์žˆ๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ

     โ€ข ์ ์ ˆํ•œ โ€˜ํ”„๋กœ๊ทธ๋ž˜๋จธ ์šฉ์–ดโ€™๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋ฌธ์ œ ์˜์—ญ ๋‚ด์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉ


         โ€ข ์œ ์ง€ ๋ณด์ˆ˜์‹œ ์—…๋ฌด ์ „๋ฌธ๊ฐ€๋ฅผ ํ†ตํ•ด ์˜๋ฏธ ํŒŒ์•… ๊ฐ€๋Šฅ


         โ€ข ๋ฌธ์ œ ์˜์—ญ ๊ฐœ๋…๊ณผ ๊ด€๋ จ ๊นŠ์€ ์ฝ”๋“œ๋ผ๋ฉด ๋ฌธ์ œ ์˜์—ญ์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉ




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
์˜๋ฏธ ์žˆ๋Š” ๋งฅ๋ฝ์„ ์ถ”๊ฐ€ํ•˜๋ผ

     โ€ข ๋Œ€๋‹ค์ˆ˜ ์ด๋ฆ„์€ ์Šค์Šค๋กœ ์˜๋ฏธ๊ฐ€ ๋ถ„๋ช…ํ•˜์ง€ ์•Š๋‹ค


         โ€ข ํด๋ž˜์Šค, ํ•จ์ˆ˜, ์ด๋ฆ„ ๊ณต๊ฐ„์— ๋„ฃ์–ด ๋งฅ๋ฝ์„ ๋ถ€์—ฌ


         โ€ข ๋ชจ๋“  ๋ฐฉ๋ฒ•์ด ์‹คํŒจํ•˜๋ฉด, ์ ‘๋‘์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ผ


         โ€ข Ex) ๏ฌrstName, lastName, street, houseNumber, city, state, zipcode


             โ€ข ์ „์ฒด์ ์œผ๋กœ ๋ณด๋ฉด ์ฃผ์†Œ๋ฅผ ํ‘œํ˜„ ํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ๊ฐ์„ ๋ณด์•˜์„ ๋•Œ๋Š” ์˜๋ฏธ๊ฐ€ ๋ชจํ˜ธ


             โ€ข addr ์ ‘๋‘์–ด ์ถ”๊ฐ€


                 โ€ข addrFirstName, addrLastName, addrStreet, addrHouseNumber ...


             โ€ข But, Address ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ ์†์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ๊ณผ์ 



12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
์˜๋ฏธ ์žˆ๋Š” ๋งฅ๋ฝ์„ ์ถ”๊ฐ€ํ•˜๋ผ - ์˜ˆ์ œ
                               ๋งฅ๋ฝ์ด ๋ถˆ๋ถ„๋ช…ํ•œ ๋ณ€์ˆ˜                                                      ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งฅ๋ฝ์„ ๋ถ„๋ช…ํ•˜๊ฒŒ ํ•œ ๋ณ€์ˆ˜

                                                                                    	   public class GuessStatisticsMessage{
                                                                                    	   	     private String number;
                                                                                    	   	     private String verb;
                                                                                    	   	     private String pluralModi๏ฌer;
                                                                                    	   	     public String make(char candidate, int count) {
                                                                                    	   	     	      createPluralDependentMessagePars(count);
                                                                                    	   	     	      return String.format("There %s %s %s %s", verb,
      	   private void printGuessStatistics(char candidate, int count) {                                   number, candidate, pluralModi๏ฌer);
      	   	      String number;                                                     	   	     }
      	   	      String verb;                                                       	   	     private void createPluralDependentMessagePars(int count) {
      	   	      String pluralModi๏ฌer;                                              	   	     	      if(count == 0) {
      	   	      if(count == 0) {                                                   	   	     	      	      thereAreNoLetters();
      	   	      	      number = "no";                                              	   	     	      } else if(count == 1) {
      	   	      	      verb = "are";                                               	   	     	      	      thereIsOneLetter();
      	   	      	      pluralModi๏ฌer = "s";                                        	   	     	      } else {
      	   	      } else if(count == 1) {                                            	   	     	      	      thereAreManyLetters(count);
      	   	      	      number = "1";                                               	   	     	      }	
      	   	      	      verb = "is";                                                	   	     }
      	   	      	      pluralModi๏ฌer = "";                                         	   	     private void thereAreNoLetters() {
      	   	      } else {                                                           	   	     	      number = "no";
      	   	      	      number = Integer.toString(count);                           	   	     	      verb = "are";
      	   	      	      verb = "are";                                               	   	     	      pluralModi๏ฌer = "s";	    	     	
      	   	      	      pluralModi๏ฌer = "s";                                        	   	     }
      	   	      }                                                                  	   	     private void thereIsOneLetter() {
      	   	      String guessMessage = String.format("There %s %s %s %s",           	   	     	      number = "1";
                                         verb, number, candidate, pluralModi๏ฌer);   	   	     	      verb = "is";
      	   	      print(guessMessage);                                               	   	     	      pluralModi๏ฌer = "";	     	     	
      	   }                                                                         	   	     }
                                                                                    	   	     private void thereAreManyLetters(int count) {
                                                                                    	   	     	      number = Integer.toString(count);
                                                                                    	   	     	      verb = "are";
                                                                                    	   	     	      pluralModi๏ฌer = "s";
                                                                                    	   	     }
                                                                                    	   }


12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๋ถˆํ•„์š”ํ•œ ๋งฅ๋ฝ์„ ์—†์• ๋ผ

     โ€ข ์˜๋ฏธ๊ฐ€ ๋ถ„๋ช…ํ•œ ๊ฒฝ์šฐ์— ์งง์€ ์ด๋ฆ„์ด ๊ธด ์ด๋ฆ„๋ณด๋‹ค ๋‚ซ๋‹ค


         โ€ข Ex) ๊ณ ๊ธ‰ ํœ˜๋ฐœ์œ  ์ถฉ์ „์†Œ(Gas Station Deluxe) ์‹œ์Šคํ…œ ๋‚ด์˜ ํด๋ž˜์Šค ์ด๋ฆ„


             โ€ข ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ ‘๋‘์–ด๋กœ GSD๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฐ”๋žŒ์งํ•˜์ง€ ๋ชปํ•จ




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
๋งˆ์น˜๋ฉด์„œ

     โ€ข ์ข‹์€ ์ด๋ฆ„์„ ์„ ํƒํ•˜๋ ค๋ฉด?


         โ€ข ์„ค๋ช…ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ๋›ฐ์–ด๋‚˜์•ผ ํ•œ๋‹ค


         โ€ข ๋ฌธํ™”์  ๋ฐฐ๊ฒฝ์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค


     โ€ข ์ข‹์€ ์ด๋ฆ„์€ ๊ฐ€๋…์„ฑ์„ ๋†’์ธ๋‹ค


         โ€ข ์ž์‹ ์˜ ๊ธฐ์–ต๋ ฅ์— ์˜์กดํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ๋ช…ํ™•ํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด๋ผ




12๋…„ 7์›” 22์ผ ์ผ์š”์ผ

More Related Content

What's hot

แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ดํ•ดํ•˜๊ธฐ
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ดํ•ดํ•˜๊ธฐแ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ดํ•ดํ•˜๊ธฐ
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
Yong Joon Moon
ย 
python data model ์ดํ•ดํ•˜๊ธฐ
python data model ์ดํ•ดํ•˜๊ธฐpython data model ์ดํ•ดํ•˜๊ธฐ
python data model ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
Yong Joon Moon
ย 
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160612
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160612แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160612
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160612
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ตแ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160613
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160613แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160613
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160613
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ ์‹ฌํ™”
ํŒŒ์ด์ฌ ์‹ฌํ™”ํŒŒ์ด์ฌ ์‹ฌํ™”
ํŒŒ์ด์ฌ ์‹ฌํ™”
Yong Joon Moon
ย 
Jupyter notebook ์ดํ•ดํ•˜๊ธฐ
Jupyter notebook ์ดํ•ดํ•˜๊ธฐ Jupyter notebook ์ดํ•ดํ•˜๊ธฐ
Jupyter notebook ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
ํŒŒ์ด์ฌ iterator generator ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ iterator generator ์ดํ•ดํ•˜๊ธฐํŒŒ์ด์ฌ iterator generator ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ iterator generator ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Json+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160301
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Json+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160301แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Json+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160301
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Json+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160301
Yong Joon Moon
ย 
Processing ๊ธฐ์ดˆ ์ดํ•ดํ•˜๊ธฐ_20160713
Processing ๊ธฐ์ดˆ ์ดํ•ดํ•˜๊ธฐ_20160713Processing ๊ธฐ์ดˆ ์ดํ•ดํ•˜๊ธฐ_20160713
Processing ๊ธฐ์ดˆ ์ดํ•ดํ•˜๊ธฐ_20160713
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Collections แ„†แ…ฉแ„ƒแ…ฒแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Collections แ„†แ…ฉแ„ƒแ…ฒแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ตแ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Collections แ„†แ…ฉแ„ƒแ…ฒแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Collections แ„†แ…ฉแ„ƒแ…ฒแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ตแ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„‰แ…ฆแ„†แ…ตแ„‚แ…ก
แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„‰แ…ฆแ„†แ…ตแ„‚แ…กแ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„‰แ…ฆแ„†แ…ตแ„‚แ…ก
แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„‰แ…ฆแ„†แ…ตแ„‚แ…ก
Chul Ju Hong
ย 
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Operator+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160409
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Operator+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160409แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Operator+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160409
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Operator+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160409
Yong Joon Moon
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
Yong Joon Moon
ย 

What's hot (20)

แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ดํ•ดํ•˜๊ธฐ
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ดํ•ดํ•˜๊ธฐแ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ดํ•ดํ•˜๊ธฐ
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ class ๋ฐ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์ดํ•ดํ•˜๊ธฐ
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„’แ…กแ†ทแ„‰แ…ฎแ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160229
ย 
python data model ์ดํ•ดํ•˜๊ธฐ
python data model ์ดํ•ดํ•˜๊ธฐpython data model ์ดํ•ดํ•˜๊ธฐ
python data model ์ดํ•ดํ•˜๊ธฐ
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„Œแ…ฎแ„‹แ…ญ+แ„‹แ…ญแ†ผแ„‹แ…ฅ+แ„Œแ…ฅแ†ผแ„…แ…ต 20160304
ย 
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160612
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160612แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160612
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160612
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ตแ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‡แ…กแ†ซแ„‡แ…ฉแ†จแ„Œแ…ก แ„‰แ…ขแ†ผแ„‰แ…ฅแ†ผแ„Œแ…ก แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
ย 
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160613
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160613แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160613
แ„‹แ…ฆแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ตแ†จแ„‰แ…ฅแ„Žแ…ต แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160613
ย 
ํŒŒ์ด์ฌ ์‹ฌํ™”
ํŒŒ์ด์ฌ ์‹ฌํ™”ํŒŒ์ด์ฌ ์‹ฌํ™”
ํŒŒ์ด์ฌ ์‹ฌํ™”
ย 
Jupyter notebook ์ดํ•ดํ•˜๊ธฐ
Jupyter notebook ์ดํ•ดํ•˜๊ธฐ Jupyter notebook ์ดํ•ดํ•˜๊ธฐ
Jupyter notebook ์ดํ•ดํ•˜๊ธฐ
ย 
ํŒŒ์ด์ฌ iterator generator ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ iterator generator ์ดํ•ดํ•˜๊ธฐํŒŒ์ด์ฌ iterator generator ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ iterator generator ์ดํ•ดํ•˜๊ธฐ
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+แ„ƒแ…ฆแ„‹แ…ตแ„แ…ฅ+แ„€แ…ฎแ„Œแ…ฉ+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160311
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Json+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160301
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Json+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160301แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Json+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160301
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Json+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160301
ย 
Processing ๊ธฐ์ดˆ ์ดํ•ดํ•˜๊ธฐ_20160713
Processing ๊ธฐ์ดˆ ์ดํ•ดํ•˜๊ธฐ_20160713Processing ๊ธฐ์ดˆ ์ดํ•ดํ•˜๊ธฐ_20160713
Processing ๊ธฐ์ดˆ ์ดํ•ดํ•˜๊ธฐ_20160713
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Collections แ„†แ…ฉแ„ƒแ…ฒแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Collections แ„†แ…ฉแ„ƒแ…ฒแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ตแ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Collections แ„†แ…ฉแ„ƒแ…ฒแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Collections แ„†แ…ฉแ„ƒแ…ฒแ†ฏ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ตแ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ Xml แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
ย 
แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„‰แ…ฆแ„†แ…ตแ„‚แ…ก
แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„‰แ…ฆแ„†แ…ตแ„‚แ…กแ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„‰แ…ฆแ„†แ…ตแ„‚แ…ก
แ„‹แ…กแ†ซแ„ƒแ…ณแ„…แ…ฉแ„‹แ…ตแ„ƒแ…ณ แ„‰แ…ฆแ„†แ…ตแ„‚แ…ก
ย 
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
ํŒŒ์ด์ฌ ํŒŒ์ผ์ฒ˜๋ฆฌ ์ดํ•ดํ•˜๊ธฐ
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„‘แ…ณแ†ฏแ„…แ…กแ„‰แ…ณแ„แ…ณ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Operator+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160409
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Operator+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160409แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Operator+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160409
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ+Operator+แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต 20160409
ย 
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
แ„‘แ…กแ„‹แ…ตแ„Šแ…ฅแ†ซ แ„’แ…กแ†ทแ„‰แ…ฎ แ„‹แ…ตแ„’แ…ขแ„’แ…กแ„€แ…ต
ย 

Viewers also liked

Chean code chapter 1
Chean code chapter 1Chean code chapter 1
Chean code chapter 1HyeonSeok Choi
ย 
ํ•จ์ˆ˜์  ์‚ฌ๊ณ  2์žฅ
ํ•จ์ˆ˜์  ์‚ฌ๊ณ  2์žฅํ•จ์ˆ˜์  ์‚ฌ๊ณ  2์žฅ
ํ•จ์ˆ˜์  ์‚ฌ๊ณ  2์žฅ
HyeonSeok Choi
ย 
MutiCore 19-20
MutiCore 19-20MutiCore 19-20
MutiCore 19-20
HyeonSeok Choi
ย 
Mining the social web ch1
Mining the social web ch1Mining the social web ch1
Mining the social web ch1
HyeonSeok Choi
ย 
Abstract factory petterns
Abstract factory petternsAbstract factory petterns
Abstract factory petternsHyeonSeok Choi
ย 
Elastic search ํด๋Ÿฌ์Šคํ„ฐ๊ด€๋ฆฌ
Elastic search ํด๋Ÿฌ์Šคํ„ฐ๊ด€๋ฆฌElastic search ํด๋Ÿฌ์Šคํ„ฐ๊ด€๋ฆฌ
Elastic search ํด๋Ÿฌ์Šคํ„ฐ๊ด€๋ฆฌ
HyeonSeok Choi
ย 
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ์„ฑ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ์„ฑ7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ์„ฑ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ์„ฑ
HyeonSeok Choi
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 1์žฅ.
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 1์žฅ.HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 1์žฅ.
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 1์žฅ.
HyeonSeok Choi
ย 
ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์‚ฌ๋Š” ๋ฒ• Ch6
ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์‚ฌ๋Š” ๋ฒ• Ch6ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์‚ฌ๋Š” ๋ฒ• Ch6
ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์‚ฌ๋Š” ๋ฒ• Ch6HyeonSeok Choi
ย 
To become Open Source Contributor
To become Open Source ContributorTo become Open Source Contributor
To become Open Source ContributorDaeMyung Kang
ย 
Ooa&d
Ooa&dOoa&d
Ooa&d
DaeMyung Kang
ย 
Clean code ch15
Clean code ch15Clean code ch15
Clean code ch15HyeonSeok Choi
ย 
Clean code(05)
Clean code(05)Clean code(05)
Clean code(05)
๊ทœ์—ด ๊น€
ย 
Clean code chapter11 - systems
Clean code   chapter11 - systemsClean code   chapter11 - systems
Clean code chapter11 - systems
itomcc
ย 
Clean code chapter9
Clean code chapter9Clean code chapter9
Clean code chapter9
ukjinkwoun
ย 
์ฝ”๋“œ Ch20
์ฝ”๋“œ Ch20์ฝ”๋“œ Ch20
์ฝ”๋“œ Ch20ukjinkwoun
ย 
Clean code(02)
Clean code(02)Clean code(02)
Clean code(02)
๊ทœ์—ด ๊น€
ย 
Clean code(04)
Clean code(04)Clean code(04)
Clean code(04)
๊ทœ์—ด ๊น€
ย 
Clean code(01)
Clean code(01)Clean code(01)
Clean code(01)
๊ทœ์—ด ๊น€
ย 
Clean code(03)
Clean code(03)Clean code(03)
Clean code(03)
๊ทœ์—ด ๊น€
ย 

Viewers also liked (20)

Chean code chapter 1
Chean code chapter 1Chean code chapter 1
Chean code chapter 1
ย 
ํ•จ์ˆ˜์  ์‚ฌ๊ณ  2์žฅ
ํ•จ์ˆ˜์  ์‚ฌ๊ณ  2์žฅํ•จ์ˆ˜์  ์‚ฌ๊ณ  2์žฅ
ํ•จ์ˆ˜์  ์‚ฌ๊ณ  2์žฅ
ย 
MutiCore 19-20
MutiCore 19-20MutiCore 19-20
MutiCore 19-20
ย 
Mining the social web ch1
Mining the social web ch1Mining the social web ch1
Mining the social web ch1
ย 
Abstract factory petterns
Abstract factory petternsAbstract factory petterns
Abstract factory petterns
ย 
Elastic search ํด๋Ÿฌ์Šคํ„ฐ๊ด€๋ฆฌ
Elastic search ํด๋Ÿฌ์Šคํ„ฐ๊ด€๋ฆฌElastic search ํด๋Ÿฌ์Šคํ„ฐ๊ด€๋ฆฌ
Elastic search ํด๋Ÿฌ์Šคํ„ฐ๊ด€๋ฆฌ
ย 
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ์„ฑ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ์„ฑ7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ์„ฑ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ - ๋ฐ์ดํ„ฐ ๋ณ‘๋ ฌ์„ฑ
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 1์žฅ.
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 1์žฅ.HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 1์žฅ.
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 1์žฅ.
ย 
ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์‚ฌ๋Š” ๋ฒ• Ch6
ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์‚ฌ๋Š” ๋ฒ• Ch6ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์‚ฌ๋Š” ๋ฒ• Ch6
ํ”„๋กœ๊ทธ๋ž˜๋จธ๋กœ ์‚ฌ๋Š” ๋ฒ• Ch6
ย 
To become Open Source Contributor
To become Open Source ContributorTo become Open Source Contributor
To become Open Source Contributor
ย 
Ooa&d
Ooa&dOoa&d
Ooa&d
ย 
Clean code ch15
Clean code ch15Clean code ch15
Clean code ch15
ย 
Clean code(05)
Clean code(05)Clean code(05)
Clean code(05)
ย 
Clean code chapter11 - systems
Clean code   chapter11 - systemsClean code   chapter11 - systems
Clean code chapter11 - systems
ย 
Clean code chapter9
Clean code chapter9Clean code chapter9
Clean code chapter9
ย 
์ฝ”๋“œ Ch20
์ฝ”๋“œ Ch20์ฝ”๋“œ Ch20
์ฝ”๋“œ Ch20
ย 
Clean code(02)
Clean code(02)Clean code(02)
Clean code(02)
ย 
Clean code(04)
Clean code(04)Clean code(04)
Clean code(04)
ย 
Clean code(01)
Clean code(01)Clean code(01)
Clean code(01)
ย 
Clean code(03)
Clean code(03)Clean code(03)
Clean code(03)
ย 

Similar to Clean code Chapter.2

Yapp a.a study 2 reflection+annotation
Yapp a.a study 2 reflection+annotationYapp a.a study 2 reflection+annotation
Yapp a.a study 2 reflection+annotation
Junyoung Lee
ย 
iOS ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์˜์–ด๋กœ ์ด๋ฆ„ ์ง“๊ธฐ
iOS ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์˜์–ด๋กœ ์ด๋ฆ„ ์ง“๊ธฐiOS ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์˜์–ด๋กœ ์ด๋ฆ„ ์ง“๊ธฐ
iOS ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์˜์–ด๋กœ ์ด๋ฆ„ ์ง“๊ธฐ
hyunho Lee
ย 
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐTDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
Wonchang Song
ย 
์•ˆ๋“œ๋กœ์ด๋“œ ์„ค๊ณ„์ฝ”๋“œ ๋…ธํ•˜์šฐ ๋ฐ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•
์•ˆ๋“œ๋กœ์ด๋“œ ์„ค๊ณ„์ฝ”๋“œ ๋…ธํ•˜์šฐ ๋ฐ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•์•ˆ๋“œ๋กœ์ด๋“œ ์„ค๊ณ„์ฝ”๋“œ ๋…ธํ•˜์šฐ ๋ฐ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•
์•ˆ๋“œ๋กœ์ด๋“œ ์„ค๊ณ„์ฝ”๋“œ ๋…ธํ•˜์šฐ ๋ฐ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•
mosaicnet
ย 
๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํšจ๊ณผ
๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํšจ๊ณผ๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํšจ๊ณผ
๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํšจ๊ณผ
๋ฏผ์šฑ ์ด
ย 
[NDC2016] TERA ์„œ๋ฒ„์˜ Modern C++ ํ™œ์šฉ๊ธฐ
[NDC2016] TERA ์„œ๋ฒ„์˜ Modern C++ ํ™œ์šฉ๊ธฐ[NDC2016] TERA ์„œ๋ฒ„์˜ Modern C++ ํ™œ์šฉ๊ธฐ
[NDC2016] TERA ์„œ๋ฒ„์˜ Modern C++ ํ™œ์šฉ๊ธฐ
Sang Heon Lee
ย 
Java script
Java scriptJava script
Java script
์˜๋‚จ ํ—ˆ
ย 
์•ˆ๋“œ๋กœ์ด๋“œ๊ธฐ์ดˆ
์•ˆ๋“œ๋กœ์ด๋“œ๊ธฐ์ดˆ์•ˆ๋“œ๋กœ์ด๋“œ๊ธฐ์ดˆ
์•ˆ๋“œ๋กœ์ด๋“œ๊ธฐ์ดˆhylo926
ย 
C++ stl
C++ stlC++ stl
ํŒŒ์ด์ฌ ์–ธ์–ด ๊ธฐ์ดˆ
ํŒŒ์ด์ฌ ์–ธ์–ด ๊ธฐ์ดˆํŒŒ์ด์ฌ ์–ธ์–ด ๊ธฐ์ดˆ
ํŒŒ์ด์ฌ ์–ธ์–ด ๊ธฐ์ดˆ
beom kyun choi
ย 
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationSecrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Hyuncheol Jeon
ย 
G+ Summer C Study 20130712(5์ผ์ฐจ)
G+ Summer C Study 20130712(5์ผ์ฐจ)G+ Summer C Study 20130712(5์ผ์ฐจ)
G+ Summer C Study 20130712(5์ผ์ฐจ)
Jake Yoon
ย 
DDD ๊ตฌํ˜„๊ธฐ์ดˆ (๊ฑฐ์˜ Final ๋ฒ„์ „)
DDD ๊ตฌํ˜„๊ธฐ์ดˆ (๊ฑฐ์˜ Final ๋ฒ„์ „)DDD ๊ตฌํ˜„๊ธฐ์ดˆ (๊ฑฐ์˜ Final ๋ฒ„์ „)
DDD ๊ตฌํ˜„๊ธฐ์ดˆ (๊ฑฐ์˜ Final ๋ฒ„์ „)
beom kyun choi
ย 
๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” ์ข‹์€ ์ฝ”๋“œ ์„œ์˜ํ›ˆ
๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” ์ข‹์€ ์ฝ”๋“œ   ์„œ์˜ํ›ˆ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” ์ข‹์€ ์ฝ”๋“œ   ์„œ์˜ํ›ˆ
๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” ์ข‹์€ ์ฝ”๋“œ ์„œ์˜ํ›ˆ
Seo YoungHoon
ย 
๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž
๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž
๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž
๋ฏผ์šฑ ์ด
ย 
2015 ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ปจํผ๋Ÿฐ์Šค (11) ์—ผ์‚ฐ์•… - ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•˜์—ฌ
2015 ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ปจํผ๋Ÿฐ์Šค (11) ์—ผ์‚ฐ์•… - ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•˜์—ฌ2015 ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ปจํผ๋Ÿฐ์Šค (11) ์—ผ์‚ฐ์•… - ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•˜์—ฌ
2015 ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ปจํผ๋Ÿฐ์Šค (11) ์—ผ์‚ฐ์•… - ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•˜์—ฌ
iamprogrammerofficial
ย 
Clean code
Clean codeClean code
Clean codebbongcsu
ย 

Similar to Clean code Chapter.2 (17)

Yapp a.a study 2 reflection+annotation
Yapp a.a study 2 reflection+annotationYapp a.a study 2 reflection+annotation
Yapp a.a study 2 reflection+annotation
ย 
iOS ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์˜์–ด๋กœ ์ด๋ฆ„ ์ง“๊ธฐ
iOS ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์˜์–ด๋กœ ์ด๋ฆ„ ์ง“๊ธฐiOS ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์˜์–ด๋กœ ์ด๋ฆ„ ์ง“๊ธฐ
iOS ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์˜์–ด๋กœ ์ด๋ฆ„ ์ง“๊ธฐ
ย 
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐTDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
TDD.JUnit.์กฐ๊ธˆ๋”.์•Œ๊ธฐ
ย 
์•ˆ๋“œ๋กœ์ด๋“œ ์„ค๊ณ„์ฝ”๋“œ ๋…ธํ•˜์šฐ ๋ฐ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•
์•ˆ๋“œ๋กœ์ด๋“œ ์„ค๊ณ„์ฝ”๋“œ ๋…ธํ•˜์šฐ ๋ฐ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•์•ˆ๋“œ๋กœ์ด๋“œ ์„ค๊ณ„์ฝ”๋“œ ๋…ธํ•˜์šฐ ๋ฐ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•
์•ˆ๋“œ๋กœ์ด๋“œ ์„ค๊ณ„์ฝ”๋“œ ๋…ธํ•˜์šฐ ๋ฐ ๊ฐœ๋ฐœ๋ฐฉ๋ฒ•
ย 
๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํšจ๊ณผ
๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํšจ๊ณผ๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํšจ๊ณผ
๋ณ€์ˆ˜ ์ด๋ฆ„์˜ ํšจ๊ณผ
ย 
[NDC2016] TERA ์„œ๋ฒ„์˜ Modern C++ ํ™œ์šฉ๊ธฐ
[NDC2016] TERA ์„œ๋ฒ„์˜ Modern C++ ํ™œ์šฉ๊ธฐ[NDC2016] TERA ์„œ๋ฒ„์˜ Modern C++ ํ™œ์šฉ๊ธฐ
[NDC2016] TERA ์„œ๋ฒ„์˜ Modern C++ ํ™œ์šฉ๊ธฐ
ย 
Java script
Java scriptJava script
Java script
ย 
์•ˆ๋“œ๋กœ์ด๋“œ๊ธฐ์ดˆ
์•ˆ๋“œ๋กœ์ด๋“œ๊ธฐ์ดˆ์•ˆ๋“œ๋กœ์ด๋“œ๊ธฐ์ดˆ
์•ˆ๋“œ๋กœ์ด๋“œ๊ธฐ์ดˆ
ย 
C++ stl
C++ stlC++ stl
C++ stl
ย 
ํŒŒ์ด์ฌ ์–ธ์–ด ๊ธฐ์ดˆ
ํŒŒ์ด์ฌ ์–ธ์–ด ๊ธฐ์ดˆํŒŒ์ด์ฌ ์–ธ์–ด ๊ธฐ์ดˆ
ํŒŒ์ด์ฌ ์–ธ์–ด ๊ธฐ์ดˆ
ย 
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modificationSecrets of the JavaScript Ninja - Chapter 12. DOM modification
Secrets of the JavaScript Ninja - Chapter 12. DOM modification
ย 
G+ Summer C Study 20130712(5์ผ์ฐจ)
G+ Summer C Study 20130712(5์ผ์ฐจ)G+ Summer C Study 20130712(5์ผ์ฐจ)
G+ Summer C Study 20130712(5์ผ์ฐจ)
ย 
DDD ๊ตฌํ˜„๊ธฐ์ดˆ (๊ฑฐ์˜ Final ๋ฒ„์ „)
DDD ๊ตฌํ˜„๊ธฐ์ดˆ (๊ฑฐ์˜ Final ๋ฒ„์ „)DDD ๊ตฌํ˜„๊ธฐ์ดˆ (๊ฑฐ์˜ Final ๋ฒ„์ „)
DDD ๊ตฌํ˜„๊ธฐ์ดˆ (๊ฑฐ์˜ Final ๋ฒ„์ „)
ย 
๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” ์ข‹์€ ์ฝ”๋“œ ์„œ์˜ํ›ˆ
๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” ์ข‹์€ ์ฝ”๋“œ   ์„œ์˜ํ›ˆ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” ์ข‹์€ ์ฝ”๋“œ   ์„œ์˜ํ›ˆ
๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๋Š” ์ข‹์€ ์ฝ”๋“œ ์„œ์˜ํ›ˆ
ย 
๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž
๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž
๊ฐ€๋Šฅํ•œ C++ ์Šคํƒ€์ผ์˜ ์บ์ŠคํŠธ๋ฅผ ์ฆ๊ฒจ ์“ฐ์ž
ย 
2015 ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ปจํผ๋Ÿฐ์Šค (11) ์—ผ์‚ฐ์•… - ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•˜์—ฌ
2015 ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ปจํผ๋Ÿฐ์Šค (11) ์—ผ์‚ฐ์•… - ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•˜์—ฌ2015 ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ปจํผ๋Ÿฐ์Šค (11) ์—ผ์‚ฐ์•… - ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•˜์—ฌ
2015 ๋‚˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๋‹ค ์ปจํผ๋Ÿฐ์Šค (11) ์—ผ์‚ฐ์•… - ๊ฐ€๋…์„ฑ์— ๋Œ€ํ•˜์—ฌ
ย 
Clean code
Clean codeClean code
Clean code
ย 

More from HyeonSeok Choi

แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
HyeonSeok Choi
ย 
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch2
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch2แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch2
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch2
HyeonSeok Choi
ย 
แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ฅแ„…แ…ณแ†ฏแ„‹แ…ฑแ„’แ…กแ†ซแ„‰แ…ฅแ†ซแ„’แ…งแ†ผแ„ƒแ…ขแ„‰แ…ฎแ„’แ…กแ†จ1.2
แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ฅแ„…แ…ณแ†ฏแ„‹แ…ฑแ„’แ…กแ†ซแ„‰แ…ฅแ†ซแ„’แ…งแ†ผแ„ƒแ…ขแ„‰แ…ฎแ„’แ…กแ†จ1.2แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ฅแ„…แ…ณแ†ฏแ„‹แ…ฑแ„’แ…กแ†ซแ„‰แ…ฅแ†ซแ„’แ…งแ†ผแ„ƒแ…ขแ„‰แ…ฎแ„’แ…กแ†จ1.2
แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ฅแ„…แ…ณแ†ฏแ„‹แ…ฑแ„’แ…กแ†ซแ„‰แ…ฅแ†ซแ„’แ…งแ†ผแ„ƒแ…ขแ„‰แ…ฎแ„’แ…กแ†จ1.2
HyeonSeok Choi
ย 
แ„‹แ…กแ†ฏแ„€แ…ฉแ„…แ…ตแ„Œแ…ณแ†ท แ„Œแ…ฎแ†ผแ„‰แ…ตแ†ทแ„‹แ…ด แ„†แ…ฅแ„‰แ…ตแ†ซแ„…แ…ฅแ„‚แ…ตแ†ผ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ Ch04
แ„‹แ…กแ†ฏแ„€แ…ฉแ„…แ…ตแ„Œแ…ณแ†ท แ„Œแ…ฎแ†ผแ„‰แ…ตแ†ทแ„‹แ…ด แ„†แ…ฅแ„‰แ…ตแ†ซแ„…แ…ฅแ„‚แ…ตแ†ผ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ Ch04แ„‹แ…กแ†ฏแ„€แ…ฉแ„…แ…ตแ„Œแ…ณแ†ท แ„Œแ…ฎแ†ผแ„‰แ…ตแ†ทแ„‹แ…ด แ„†แ…ฅแ„‰แ…ตแ†ซแ„…แ…ฅแ„‚แ…ตแ†ผ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ Ch04
แ„‹แ…กแ†ฏแ„€แ…ฉแ„…แ…ตแ„Œแ…ณแ†ท แ„Œแ…ฎแ†ผแ„‰แ…ตแ†ทแ„‹แ…ด แ„†แ…ฅแ„‰แ…ตแ†ซแ„…แ…ฅแ„‚แ…ตแ†ผ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ Ch04
HyeonSeok Choi
ย 
แ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ แ„Œแ…ฆแ„ƒแ…ขแ„…แ…ฉแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต Ch04
แ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ แ„Œแ…ฆแ„ƒแ…ขแ„…แ…ฉแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต Ch04แ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ แ„Œแ…ฆแ„ƒแ…ขแ„…แ…ฉแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต Ch04
แ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ แ„Œแ…ฆแ„ƒแ…ขแ„…แ…ฉแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต Ch04
HyeonSeok Choi
ย 
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
HyeonSeok Choi
ย 
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ 4์žฅ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ 4์žฅ7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ 4์žฅ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ 4์žฅ
HyeonSeok Choi
ย 
Bounded Context
Bounded ContextBounded Context
Bounded Context
HyeonSeok Choi
ย 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
HyeonSeok Choi
ย 
DDD Start Ch#3
DDD Start Ch#3DDD Start Ch#3
DDD Start Ch#3
HyeonSeok Choi
ย 
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch8
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch8แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch8
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch8
HyeonSeok Choi
ย 
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch7
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch7แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch7
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch7
HyeonSeok Choi
ย 
์‹ค๋ฌด๋กœ ๋ฐฐ์šฐ๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™” Ch6
์‹ค๋ฌด๋กœ ๋ฐฐ์šฐ๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™” Ch6์‹ค๋ฌด๋กœ ๋ฐฐ์šฐ๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™” Ch6
์‹ค๋ฌด๋กœ ๋ฐฐ์šฐ๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™” Ch6
HyeonSeok Choi
ย 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
HyeonSeok Choi
ย 
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉแ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch1
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉแ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch1แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉแ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch1
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉแ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch1
HyeonSeok Choi
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 21์žฅ
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 21์žฅHTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 21์žฅ
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 21์žฅ
HyeonSeok Choi
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 16์žฅ
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 16์žฅHTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 16์žฅ
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 16์žฅ
HyeonSeok Choi
ย 
HTTPS
HTTPSHTTPS
HTTPS
HyeonSeok Choi
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 6์žฅ.
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 6์žฅ.HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 6์žฅ.
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 6์žฅ.
HyeonSeok Choi
ย 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
HyeonSeok Choi
ย 

More from HyeonSeok Choi (20)

แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
ย 
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch2
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch2แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch2
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch2
ย 
แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ฅแ„…แ…ณแ†ฏแ„‹แ…ฑแ„’แ…กแ†ซแ„‰แ…ฅแ†ซแ„’แ…งแ†ผแ„ƒแ…ขแ„‰แ…ฎแ„’แ…กแ†จ1.2
แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ฅแ„…แ…ณแ†ฏแ„‹แ…ฑแ„’แ…กแ†ซแ„‰แ…ฅแ†ซแ„’แ…งแ†ผแ„ƒแ…ขแ„‰แ…ฎแ„’แ…กแ†จ1.2แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ฅแ„…แ…ณแ†ฏแ„‹แ…ฑแ„’แ…กแ†ซแ„‰แ…ฅแ†ซแ„’แ…งแ†ผแ„ƒแ…ขแ„‰แ…ฎแ„’แ…กแ†จ1.2
แ„‘แ…ณแ„…แ…ฉแ„€แ…ณแ„…แ…ขแ„†แ…ฅแ„…แ…ณแ†ฏแ„‹แ…ฑแ„’แ…กแ†ซแ„‰แ…ฅแ†ซแ„’แ…งแ†ผแ„ƒแ…ขแ„‰แ…ฎแ„’แ…กแ†จ1.2
ย 
แ„‹แ…กแ†ฏแ„€แ…ฉแ„…แ…ตแ„Œแ…ณแ†ท แ„Œแ…ฎแ†ผแ„‰แ…ตแ†ทแ„‹แ…ด แ„†แ…ฅแ„‰แ…ตแ†ซแ„…แ…ฅแ„‚แ…ตแ†ผ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ Ch04
แ„‹แ…กแ†ฏแ„€แ…ฉแ„…แ…ตแ„Œแ…ณแ†ท แ„Œแ…ฎแ†ผแ„‰แ…ตแ†ทแ„‹แ…ด แ„†แ…ฅแ„‰แ…ตแ†ซแ„…แ…ฅแ„‚แ…ตแ†ผ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ Ch04แ„‹แ…กแ†ฏแ„€แ…ฉแ„…แ…ตแ„Œแ…ณแ†ท แ„Œแ…ฎแ†ผแ„‰แ…ตแ†ทแ„‹แ…ด แ„†แ…ฅแ„‰แ…ตแ†ซแ„…แ…ฅแ„‚แ…ตแ†ผ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ Ch04
แ„‹แ…กแ†ฏแ„€แ…ฉแ„…แ…ตแ„Œแ…ณแ†ท แ„Œแ…ฎแ†ผแ„‰แ…ตแ†ทแ„‹แ…ด แ„†แ…ฅแ„‰แ…ตแ†ซแ„…แ…ฅแ„‚แ…ตแ†ผ แ„€แ…กแ„‹แ…ตแ„ƒแ…ณ Ch04
ย 
แ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ แ„Œแ…ฆแ„ƒแ…ขแ„…แ…ฉแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต Ch04
แ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ แ„Œแ…ฆแ„ƒแ…ขแ„…แ…ฉแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต Ch04แ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ แ„Œแ…ฆแ„ƒแ…ขแ„…แ…ฉแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต Ch04
แ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ แ„Œแ…ฆแ„ƒแ…ขแ„…แ…ฉแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„€แ…ต Ch04
ย 
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
แ„†แ…ตแ‡€แ„‡แ…กแ„ƒแ…กแ†จแ„‡แ…ฎแ„แ…ฅแ„‰แ…ตแ„Œแ…กแ†จแ„’แ…กแ„‚แ…ณแ†ซแ„ƒแ…ตแ†ธแ„…แ…ฅแ„‚แ…ตแ†ผ Ch05
ย 
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ 4์žฅ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ 4์žฅ7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ 4์žฅ
7๊ฐ€์ง€ ๋™์‹œ์„ฑ ๋ชจ๋ธ 4์žฅ
ย 
Bounded Context
Bounded ContextBounded Context
Bounded Context
ย 
DDD Repository
DDD RepositoryDDD Repository
DDD Repository
ย 
DDD Start Ch#3
DDD Start Ch#3DDD Start Ch#3
DDD Start Ch#3
ย 
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch8
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch8แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch8
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch8
ย 
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch7
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch7แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch7
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉ แ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซ แ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ท แ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผ แ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch7
ย 
์‹ค๋ฌด๋กœ ๋ฐฐ์šฐ๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™” Ch6
์‹ค๋ฌด๋กœ ๋ฐฐ์šฐ๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™” Ch6์‹ค๋ฌด๋กœ ๋ฐฐ์šฐ๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™” Ch6
์‹ค๋ฌด๋กœ ๋ฐฐ์šฐ๋Š” ์‹œ์Šคํ…œ ์„ฑ๋Šฅ ์ตœ์ ํ™” Ch6
ย 
Logstash, ElasticSearch, Kibana
Logstash, ElasticSearch, KibanaLogstash, ElasticSearch, Kibana
Logstash, ElasticSearch, Kibana
ย 
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉแ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch1
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉแ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch1แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉแ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch1
แ„‰แ…ตแ†ฏแ„†แ…ฎแ„…แ…ฉแ„‡แ…ขแ„‹แ…ฎแ„‚แ…ณแ†ซแ„‰แ…ตแ„‰แ…ณแ„แ…ฆแ†ทแ„‰แ…ฅแ†ผแ„‚แ…ณแ†ผแ„Žแ…ฌแ„Œแ…ฅแ†จแ„’แ…ช Ch1
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 21์žฅ
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 21์žฅHTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 21์žฅ
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 21์žฅ
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 16์žฅ
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 16์žฅHTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 16์žฅ
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 16์žฅ
ย 
HTTPS
HTTPSHTTPS
HTTPS
ย 
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 6์žฅ.
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 6์žฅ.HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 6์žฅ.
HTTP ์™„๋ฒฝ๊ฐ€์ด๋“œ 6์žฅ.
ย 
Cluster - spark
Cluster - sparkCluster - spark
Cluster - spark
ย 

Clean code Chapter.2

  • 1. Clean Code Ch.2 ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„ chois79 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 2. ์ด์žฅ์—์„œ ๋‹ค๋ฃฐ ๋‚ด์šฉ โ€ข ์†Œํ”„ํŠธ์›จ์–ด์—์„œ ์ด๋ฆ„์€ ์–ด๋””๋‚˜ ์“ฐ์ธ๋‹ค โ€ข ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ์ธ์ˆ˜, ํด๋ž˜์Šค, ํŒŒ์ผ, package, jar, war ๋“ฑ... โ€ข ์ด๋Ÿฌํ•œ ์ด๋ฆ„์„ ์ž˜ ์ง“๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค โ€ข ์ดํ•ด๋„๋ฅผ ๋†’์ธ๋‹ค. โ€ข ์ด๋ฆ„์„ ์ž˜ ์ง“๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ธ๊ฐ€? 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 3. ์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋ฐํ˜€๋ผ โ€ข ์˜๋„๊ฐ€ ๋ถ„๋ช…ํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค โ€ข ์ข‹์€ ์ด๋ฆ„์„ ์ง“๋Š”๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ < ์ข‹์€ ์ด๋ฆ„์œผ๋กœ ์ธํ•ด ์ ˆ์•ฝํ•˜๋Š” ์‹œ๊ฐ„ โ€ข Why? ์ฝ”๋“œ์˜ ์ดํ•ด์™€ ๋ณ€๊ฒฝ์ด ์‰ฌ์›Œ์ง โ€ข ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ์ง“๋Š” ๊ฐ€์ด๋“œ โ€ข ๋‹ค์Œ์˜ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉ โ€ข ์กด์žฌ ์ด์œ ๋Š”? โ€ข ์ˆ˜ํ–‰ ๊ธฐ๋Šฅ์€? โ€ข ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์€? โ€ข ๋งŒ์•ฝ ์ฃผ์„์ด ํ•„์š”ํ•˜๋‹ค๋ฉด, ์˜๋„๋ฅผ ์ œ๋Œ€๋กœ ํ‘œํ˜„ํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 4. ์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋ฐํ˜€๋ผ - ์˜ˆ์ œ ์˜๋„๊ฐ€ ๋ชจํ˜ธํ•œ ์ฝ”๋“œ ์˜๋„๊ฐ€ ๋ถ„๋ช…ํ•œ ์ฝ”๋“œ int elapsedTimeInDays; int daysSinceCreation; int d; // ๊ฒฝ๊ณผ ์‹œ๊ฐ„ (๋‹จ์œ„: ๋‚ ์งœ ์ˆ˜) int daysSinceModi๏ฌcation; int ๏ฌleAgeInDays; // ๊ฐ ์ด๋ฆ„์ด ์ถฉ๋ถ„ํ•œ ์ •๋ณด ์ œ๊ณต์„ ํ•˜์ง€ ์•Š์Œ // ์ด๋ฆ„์„ ๋ช…ํ™•ํžˆ ๋ณ€๊ฒฝ public List<int[]> getThem() { public List<int[]> getFlaggedCells() { List<int []> list1 = new ArrayList<int []>(); List<int []> ๏ฌ‚aggedCells = new ArrayList<int []>(); for(int [] x: theList) { for(int [] cell: gameBoard) { if(x[0] == 4) if(cell[STATUS_VALUE] == FLAGGED) list1.add(x); ๏ฌ‚aggedCells.add(cell); } } return list1; return ๏ฌ‚aggedCells; } } // int []์„ Cell Class๋กœ ๋ณ€ํ™˜ public List<Cell> getFlaggedCells() { List<Cell> ๏ฌ‚aggedCells = new ArrayList<Cell>(); for(Cell cell: gameBoard) { if(cell.isFlagged()) ๏ฌ‚aggedCells.add(cell); } return ๏ฌ‚aggedCells; } 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 5. ๊ทธ๋ฆ‡๋œ ์ •๋ณด๋ฅผ ํ”ผํ•˜๋ผ โ€ข ํ”„๋กœ๊ทธ๋ž˜๋จธ๋Š” ์ฝ”๋“œ์— ๊ทธ๋ฆ‡๋œ ๋‹จ์„œ๋ฅผ ๋‚จ๊ฒจ์„œ๋Š” ์•ˆ๋œ๋‹ค โ€ข ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ์˜๋ฏธ์™€ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋จ โ€ข ex) ์—ฌ๋Ÿฌ ๊ณ„์ •์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์„๋•Œ ์‹ค์ œ๋กœ List ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์•„๋‹Œ๋ฐ accountList ๋กœ ์นญํ•  ๊ฒฝ์šฐ โ€ข accountGroup, bunchOfAccounts ํ˜น์€ Accounts๋กœ ๋ช…๋ช… โ€ข ์„œ๋กœ ํก์‚ฌํ•œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์ฃผ์˜ โ€ข XYZControllerForEf๏ฌcientHandlingOfStrings, XYZControllerForEf๏ฌcientStorageOfString โ€ข ์œ ์‚ฌํ•œ ๊ฐœ๋…์€ ์œ ์‚ฌํ•œ ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ โ€ข ์•ŒํŒŒ๋ฒณ์— ์˜ํ•œ ๋ชจํ˜ธ์„ฑ ์ฃผ์˜ โ€ข ์†Œ๋ฌธ์ž L๊ณผ ์ˆซ์ž 1: l, 1 โ€ข ๋Œ€๋ฌธ์ž O์™€ ์ˆซ์ž 0: O, 0 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 6. ์˜๋ฏธ ์žˆ๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋ผ โ€ข ์ฝ๋Š” ์‚ฌ๋žŒ์ด ์ฐจ์ด๋ฅผ ์•Œ๋„๋ก ์ด๋ฆ„์„ ์ง€์–ด๋ผ โ€ข ์—ฐ์†๋œ ์ˆซ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฆ„์„ ์ง“์ง€๋งˆ๋ผ // a1, a2๋ณด๋‹ค source, destination ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋…์„ฑ์„ ๋†’์ผ์ˆ˜ ์žˆ์Œ public static void copyChars(char a1[], char a2[]) { for(int i = 0; i < a1.length; i++) { a2[i] = a1[i]; } } โ€ข ๋ถˆ์šฉ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ๋ถ„ํ•˜์ง€๋งˆ๋ผ โ€ข ex1) Info๋‚˜ Data๋Š” a, an, the์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์˜๋ฏธ๊ฐ€ ๋ถˆ๋ถ„๋ช… โ€ข ProductInfo, ProductData (์ฐจ์ด์ ์ด ๋ชจํ˜ธํ•จ) โ€ข ex2) NameString๊ณผ Name, moneyAmount์™€ money, customerInfo์™€ customer 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 7. ๋ฐœ์Œํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ โ€ข ๋ฐœ์Œํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋ฆ„์€ ์˜์‚ฌ ์†Œํ†ต์„ ํž˜๋“ค๊ฒŒ ํ•œ๋‹ค โ€ข ex) genymdhms (generate date, year, month, day, hour, minute, second) โ€ข ์ด ์ด๋ฆ„์— ๋Œ€ํ•ด ์–ด๋–ป๊ฒŒ ์˜์‚ฌ ์†Œํ†ต ํ•ด์•ผ ํ•˜๋Š”๊ฐ€? โ€ข โ€œ์   ์™€์ด ์—  ๋”” ์—์ด์ทจ ์—  ์—์Šคโ€, โ€œ์   ์•ผ ๋ฌด๋‹ค ํž˜์ฆˆโ€ ๋ฐœ์Œํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋ฆ„ ๋ฐœ์Œํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„ /* ์ฝ”๋“œ๋ฅผ ํ†ตํ•œ ์ง€์ ์ธ ๋Œ€ํ™”๊ฐ€ ๊ฐ€๋Šฅ */ class DtaRcrd102{ class Customer { private Date genymdhms; private Date generationTimestamp; private Date modymdhms; private Date modi๏ฌcationTimestamp; private ๏ฌnal String pszqint = "102"; private ๏ฌnal String recordId = "102"; /* ... */ /* ... */ } } 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 8. ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ โ€ข ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜๋ฅผ ์ฝ”๋“œ ์—ฌ๋Ÿฌ ๊ณณ์—์„œ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์ด ๋ฐ”๋žŒ์ง โ€ข ๋ฌธ์ž ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„๊ณผ ์ƒ์ˆ˜๋Š” ๊ฐ€๋…์„ฑ์„ ๋–จ์–ด๋œจ๋ฆฐ๋‹ค โ€ข ๊ฐ„๋‹จํ•œ ๋ฉ”์†Œ๋“œ์—์„œ ๋กœ์ปฌ ๋ณ€์ˆ˜๋งŒ ํ•œ ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ โ€ข ์ด๋ฆ„์„ ์˜๋ฏธ ์žˆ๊ฒŒ ์ง€์œผ๋ฉด ํ•จ์ˆ˜๊ฐ€ ๊ธธ์–ด์ง€์ง€๋งŒ ์ฐพ๊ธฐ๊ฐ€ ์‰ฝ๋‹ค ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์–ด๋ ค์šด ์ด๋ฆ„ ๊ฒ€์ƒ‰ํ•˜๊ธฐ ์‰ฌ์šด ์ด๋ฆ„ int readDaysPerIdealDay = 4; ๏ฌnal int WORK_DAYS_PER_WEEK = 5; int sum = 0; for(int j = 0; j < 34; j++) { for(int j = 0; j < NUMBER_OF_TASKS; j++) { s += (t[j] * 4) / 5; int realTaskDays = taskEstimate[j] * readDaysPerIdealDay; } int realTaskWeeks = (realTaskDays / WORK_DAYS_PER_WEEK); sum += realTaskWeeks; } 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 9. ์ธ์ฝ”๋”ฉ์„ ํ”ผํ•˜๋ผ โ€ข ๋ถ€๋‹ด์„ ๋”ํ•˜์ง€ ์•Š์•„๋„ ์ด๋ฆ„์— ์ธ์ฝ”๋”ฉํ•  ์ •๋ณด๋Š” ์•„์ฃผ ๋งŽ๋‹ค โ€ข ์ธ์ฝ”๋”ฉํ•œ ์ด๋ฆ„์€ ๋ฐœ์Œํ•˜๊ธฐ ์–ด๋ ต๋‹ค โ€ข ํ—๊ฐ€๋ฆฌ์•ˆ ํ‘œ๊ธฐ๋ฒ• (์œˆ๋„์šฐ C API ํ‘œ๊ธฐ๋ฒ•) โ€ข ํŠน์ง•: ๋‹น์‹œ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํƒ€์ž…์„ ์ ๊ฒ€ํ•˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ํƒ€์ž…์„ ๋ณ€์ˆ˜๋ช…์— ๋ช…์‹œํ•œ ํ‘œ๊ธฐ๋ฒ• โ€ข ํ˜„๋Œ€์  IDE๋Š” ์ปดํŒŒ์ผ ํ•˜์ง€ ์•Š์•„๋„ ํƒ€์ž…์„ ๊ฐ์ง€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์˜คํžˆ๋ ค ๋ฐฉํ•ด๊ฐ€ ๋จ โ€ข ํด๋ž˜์Šค ์ด๋ฆ„์ด๋‚˜ ํƒ€์ž…์„ ๋ฐ”๊พธ๋Š” ๊ฒƒ์ด ์–ด๋ ต๊ณ , ์ฝ๊ธฐ๋„ ์–ด๋ ต๋‹ค โ€ข ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์ ‘๋‘์–ด โ€ข ๋ฉค๋ฒ„ ๋ณ€์ˆ˜์— m_ ์ด๋ผ๋Š” ์ ‘๋‘์–ด๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ๋ณด๋‹ค ๋‹ค๋ฅธ ์ƒ‰์œผ๋กœ ํ‘œ์‹œํ•ด ์ฃผ๋Š” IDE ํˆด ์‚ฌ์šฉ โ€ข ์ธํ„ฐํŽ˜์ด์Šค ํด๋ž˜์Šค์™€ ๊ตฌํ˜„ ํด๋ž˜์Šค โ€ข ์ธํ„ฐํŽ˜์ด์Šค์— ์ ‘๋‘์–ด โ€˜Iโ€™๋ฅผ ๋ถ™์ด๋Š” ๊ฒƒ ๋ณด๋‹ค ๊ตฌํ˜„ ํด๋ž˜์Šค์— โ€˜Cโ€™ or ์ ‘๋ฏธ์–ด โ€˜Impโ€™ ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ๋‚ซ๋‹ค 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 10. ์ž์‹ ์˜ ๊ธฐ์–ต๋ ฅ์„ ์ž๋ž‘ํ•˜์ง€ ๋งˆ๋ผ โ€ข ๊ธฐ์–ต๋ ฅ์„ ๋ฏฟ๊ณ , ์˜๋ฏธ ์—†๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ๋ผ โ€ข ์ฝ”๋“œ๋ฅผ ์ฝ์œผ๋ฉด์„œ ๋ณ€์ˆ˜ ์ด๋ฆ„์„ ์ž์‹ ์ด ์•„๋Š” ์ด๋ฆ„์œผ๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๊ทธ ์ด๋ฆ„์€ ๋ฐ”๋žŒ์งํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด๋‹ค โ€ข ๋ฌธ์ œ ์˜์—ญ์ด๋‚˜ ํ•ด๋ฒ• ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด๋ฆ„์„ ์„ ํƒํ–ˆ๊ธฐ ๋•Œ๋ฌธ 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 11. ํด๋ž˜์Šค ์ด๋ฆ„ โ€ข ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๊ฐ์ฒด ์ด๋ฆ„์€ ๋ช…์‚ฌ๋‚˜ ๋ช…์‚ฌ๊ตฌ๊ฐ€ ์ ํ•ฉ โ€ข Customer, WikiPage, Account, AddressParser โ€ข ๋ถˆ์šฉ์–ด๋Š” ํ”ผํ•ด๋ผ โ€ข Manager, Processor, Data, Info... 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 12. ๋ฉ”์†Œ๋“œ ์ด๋ฆ„ โ€ข ๋ฉ”์†Œ๋“œ ์ด๋ฆ„์€ ๋™์‚ฌ๋‚˜ ๋™์‚ฌ๊ตฌ๊ฐ€ ์ ํ•ฉ โ€ข ex) postPayment, deletePage, save ... โ€ข ์ ‘๊ทผ์ž, ๋ณ€๊ฒฝ์ž, ์กฐ๊ฑด์ž๋Š” ์ž๋ฐ” ๋นˆ ํ‘œ์ค€์— ๋”ฐ๋ฅธ ํ‘œ๊ธฐ๋ฒ• ์‚ฌ์šฉ โ€ข get, set, is โ€ข ์ƒ์„ฑ์ž๋ฅผ ์ค‘๋ณตํ•ด ์ •์˜ํ•  ๋•Œ๋Š” ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ๋ฅผ ์‚ฌ์šฉ ์ƒ์„ฑ์ž ์ •์  ํŒฉํ† ๋ฆฌ ๋ฉ”์†Œ๋“œ Complex fulcrmPoint = Complex fulcrmPoint = new Complex(23.0); Complex.FromReadlNumber(23.0); 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 13. ๊ธฐ๋ฐœํ•œ ์ด๋ฆ„์€ ํ”ผํ•˜๋ผ โ€ข ์ด๋ฆ„์ด ๋„ˆ๋ฌด ๊ธฐ๋ฐœํ•˜๋ฉด ์ €์ž์™€ ์ƒ๊ฐ์ด ๋น„์Šทํ•œ ์‚ฌ๋žŒ๋งŒ ์ด๋ฆ„์„ ๊ธฐ์–ตํ•œ๋‹ค โ€ข ์žฌ๋ฏธ๋‚œ ์ด๋ฆ„๋ณด๋‹ค ๋ช…ํ™•ํ•œ ์ด๋ฆ„์„ ์„ ํƒ 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 14. ๊ฐœ๋… ํ•˜๋‚˜์— ๋‹จ์–ด ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜๋ผ โ€ข ์ถ”์ƒ์ ์ธ ๊ฐœ๋… ํ•˜๋‚˜์— ๋‹จ์–ด ํ•˜๋‚˜๋ฅผ ์„ ํƒ โ€ข ex) fetch, retrieve, get์„ ์ œ๊ฐ๊ฐ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ํ˜ผ๋ž€์ด ์ดˆ๋ž˜ โ€ข ์ผ๊ด€์„ฑ ์žˆ๋Š” ์–ดํœ˜๋ฅผ ์‚ฌ์šฉํ•ด๋ผ 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 15. ๋ง์žฅ๋‚œ์„ ํ•˜์ง€ ๋งˆ๋ผ โ€ข ํ•œ ๋‹จ์–ด๋ฅผ ๋‘ ๊ฐ€์ง€ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ๋ผ โ€ข Ex) ๊ธฐ์กด ๊ฐ’ ๋‘๊ฐœ๋ฅผ ๋”ํ•˜๊ฑฐ๋‚˜ ์ด์–ด์„œ ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“œ๋Š” ๋ฉ”์†Œ๋“œ add๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ โ€ข ์ง‘ํ•ฉ์— ๊ฐ’ ํ•˜๋‚˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฉ”์†Œ๋“œ๋Š” ๋ฌด์—‡์œผ๋กœ ํ•ด์•ผํ• ๊นŒ? โ€ข add ๋ณด๋‹ค insert๋‚˜ append๊ฐ€ ์ ๋‹น 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 16. ํ•ด๋ฒ• ์˜์—ญ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ โ€ข ๊ธฐ์ˆ ์ ์ธ ๊ฐœ๋…์—๋Š” ๊ธฐ์ˆ ์ ์ธ ์ด๋ฆ„์ด ์ ํ•ฉ โ€ข ์ฝ”๋“œ๋ฅผ ์ฝ๋Š” ์‚ฌ๋žŒ์€ ํ”„๋กœ๊ทธ๋ž˜๋จธ โ€ข ๋ฌธ์ œ ์˜์—ญ์—์„œ ๋ชจ๋“  ์ด๋ฆ„์„ ๊ฐ€์ ธ ์˜ฌ ๊ฒฝ์šฐ ๊ฐ™์€ ๊ธฐ์กด ๊ฐœ๋…๊ณผ ์ถฉ๋Œ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Œ โ€ข EX) AccountVisitor, JobQueue ... 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 17. ๋ฌธ์ œ ์˜์—ญ๊ณผ ๊ด€๋ จ ์žˆ๋Š” ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜๋ผ โ€ข ์ ์ ˆํ•œ โ€˜ํ”„๋กœ๊ทธ๋ž˜๋จธ ์šฉ์–ดโ€™๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ๋ฌธ์ œ ์˜์—ญ ๋‚ด์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉ โ€ข ์œ ์ง€ ๋ณด์ˆ˜์‹œ ์—…๋ฌด ์ „๋ฌธ๊ฐ€๋ฅผ ํ†ตํ•ด ์˜๋ฏธ ํŒŒ์•… ๊ฐ€๋Šฅ โ€ข ๋ฌธ์ œ ์˜์—ญ ๊ฐœ๋…๊ณผ ๊ด€๋ จ ๊นŠ์€ ์ฝ”๋“œ๋ผ๋ฉด ๋ฌธ์ œ ์˜์—ญ์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉ 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 18. ์˜๋ฏธ ์žˆ๋Š” ๋งฅ๋ฝ์„ ์ถ”๊ฐ€ํ•˜๋ผ โ€ข ๋Œ€๋‹ค์ˆ˜ ์ด๋ฆ„์€ ์Šค์Šค๋กœ ์˜๋ฏธ๊ฐ€ ๋ถ„๋ช…ํ•˜์ง€ ์•Š๋‹ค โ€ข ํด๋ž˜์Šค, ํ•จ์ˆ˜, ์ด๋ฆ„ ๊ณต๊ฐ„์— ๋„ฃ์–ด ๋งฅ๋ฝ์„ ๋ถ€์—ฌ โ€ข ๋ชจ๋“  ๋ฐฉ๋ฒ•์ด ์‹คํŒจํ•˜๋ฉด, ์ ‘๋‘์–ด๋ฅผ ์‚ฌ์šฉํ•ด๋ผ โ€ข Ex) ๏ฌrstName, lastName, street, houseNumber, city, state, zipcode โ€ข ์ „์ฒด์ ์œผ๋กœ ๋ณด๋ฉด ์ฃผ์†Œ๋ฅผ ํ‘œํ˜„ ํ•œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ๊ฐ์„ ๋ณด์•˜์„ ๋•Œ๋Š” ์˜๋ฏธ๊ฐ€ ๋ชจํ˜ธ โ€ข addr ์ ‘๋‘์–ด ์ถ”๊ฐ€ โ€ข addrFirstName, addrLastName, addrStreet, addrHouseNumber ... โ€ข But, Address ํด๋ž˜์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๊ทธ ์†์„ฑ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ๊ณผ์  12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 19. ์˜๋ฏธ ์žˆ๋Š” ๋งฅ๋ฝ์„ ์ถ”๊ฐ€ํ•˜๋ผ - ์˜ˆ์ œ ๋งฅ๋ฝ์ด ๋ถˆ๋ถ„๋ช…ํ•œ ๋ณ€์ˆ˜ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งฅ๋ฝ์„ ๋ถ„๋ช…ํ•˜๊ฒŒ ํ•œ ๋ณ€์ˆ˜ public class GuessStatisticsMessage{ private String number; private String verb; private String pluralModi๏ฌer; public String make(char candidate, int count) { createPluralDependentMessagePars(count); return String.format("There %s %s %s %s", verb, private void printGuessStatistics(char candidate, int count) { number, candidate, pluralModi๏ฌer); String number; } String verb; private void createPluralDependentMessagePars(int count) { String pluralModi๏ฌer; if(count == 0) { if(count == 0) { thereAreNoLetters(); number = "no"; } else if(count == 1) { verb = "are"; thereIsOneLetter(); pluralModi๏ฌer = "s"; } else { } else if(count == 1) { thereAreManyLetters(count); number = "1"; } verb = "is"; } pluralModi๏ฌer = ""; private void thereAreNoLetters() { } else { number = "no"; number = Integer.toString(count); verb = "are"; verb = "are"; pluralModi๏ฌer = "s"; pluralModi๏ฌer = "s"; } } private void thereIsOneLetter() { String guessMessage = String.format("There %s %s %s %s", number = "1"; verb, number, candidate, pluralModi๏ฌer); verb = "is"; print(guessMessage); pluralModi๏ฌer = ""; } } private void thereAreManyLetters(int count) { number = Integer.toString(count); verb = "are"; pluralModi๏ฌer = "s"; } } 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 20. ๋ถˆํ•„์š”ํ•œ ๋งฅ๋ฝ์„ ์—†์• ๋ผ โ€ข ์˜๋ฏธ๊ฐ€ ๋ถ„๋ช…ํ•œ ๊ฒฝ์šฐ์— ์งง์€ ์ด๋ฆ„์ด ๊ธด ์ด๋ฆ„๋ณด๋‹ค ๋‚ซ๋‹ค โ€ข Ex) ๊ณ ๊ธ‰ ํœ˜๋ฐœ์œ  ์ถฉ์ „์†Œ(Gas Station Deluxe) ์‹œ์Šคํ…œ ๋‚ด์˜ ํด๋ž˜์Šค ์ด๋ฆ„ โ€ข ๋ชจ๋“  ํด๋ž˜์Šค์˜ ์ ‘๋‘์–ด๋กœ GSD๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ฐ”๋žŒ์งํ•˜์ง€ ๋ชปํ•จ 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ
  • 21. ๋งˆ์น˜๋ฉด์„œ โ€ข ์ข‹์€ ์ด๋ฆ„์„ ์„ ํƒํ•˜๋ ค๋ฉด? โ€ข ์„ค๋ช…ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ๋›ฐ์–ด๋‚˜์•ผ ํ•œ๋‹ค โ€ข ๋ฌธํ™”์  ๋ฐฐ๊ฒฝ์ด ๊ฐ™์•„์•ผ ํ•œ๋‹ค โ€ข ์ข‹์€ ์ด๋ฆ„์€ ๊ฐ€๋…์„ฑ์„ ๋†’์ธ๋‹ค โ€ข ์ž์‹ ์˜ ๊ธฐ์–ต๋ ฅ์— ์˜์กดํ•˜๊ธฐ ๋ณด๋‹ค๋Š” ๋ช…ํ™•ํ•˜๊ณ  ์ฝ๊ธฐ ์‰ฌ์šด ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด๋ผ 12๋…„ 7์›” 22์ผ ์ผ์š”์ผ