์ƒ์„ธ ์ปจํ…์ธ 

๋ณธ๋ฌธ ์ œ๋ชฉ

[WIL]์‹ค์ „ํ”„๋กœ์ ํŠธ 6์ฃผ์ฐจ - ์•„๋ฌดํŠผ ์ถœ๊ทผ

WIL

by mr_woong 2022. 6. 5. 22:24

๋ณธ๋ฌธ

1๋ถ„ 1์ดˆ๊ฐ€ ๋น ๋ฅด๊ฒŒ ํ˜๋Ÿฌ๊ฐ”๋˜ ์‹ค์ „ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚ฌ๋‹ค.

์ด๋ฒˆ ์ฃผ๋Š” ์ฝ”๋”ฉ ๋ณด๋‹ค๋Š” ์œ ์ €ํ…Œ์ŠคํŠธ๋ฅผ ํ†ตํ•ด ํ”ผ๋“œ๋ฐฑ ๋ฐ›์€ ๋ถ€๋ถ„๋“ค์„ ๋ณด์™„ํ•˜๊ณ , 6/3(๊ธˆ) ์— ์žˆ์„ ์ตœ์ข…๋ฐœํ‘œํšŒ ์˜์ƒ๊ณผ ์ž๋ฃŒ๋“ค์„ ์ค€๋น„ํ•˜๋ฉฐ ์‹œ๊ฐ„์„ ๋ณด๋ƒˆ๋‹ค.

 

์ด๋ฒˆ ์ฃผ์ฐจ ๋‚ด๊ฐ€ ํ•œ ์ผ

- ์›น์„œ๋น„์Šค ์‹œ์—ฐ์˜์ƒ ์ดฌ์˜ ๋ฐ ํŽธ์ง‘

- Github README ์ž‘์„ฑ >>> https://github.com/A-Chool/BE

- NAVER ์†Œ์…œ ๋กœ๊ทธ์ธ ์ถ”๊ฐ€

 

 

Trouble Shooting

๋ฌธ์ œ)

๋‹ฌ์ด ๋ฐ”๋€Œ๋Š” ๊ตฌ๊ฐ„์—์„œ ํ†ต๊ณ„ ํŽ˜์ด์ง€์— ๊ฐ’์ด ์ œ๋Œ€๋กœ ๊ฐ€๊ณต๋˜์–ด ์ „๋‹ฌ๋˜์ง€ ์•Š๋Š” ์˜ค๋ฅ˜

 

์›์ธ)

๋‚ ์งœ๋ฅผ String ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๊ณ , if ๋ฌธ์œผ๋กœ ๋‚ ์งœ ๊ฐ’์„ ๋น„๊ต ํ–ˆ์„ ๋•Œ  DB์—์„œ ๋ถˆ๋Ÿฌ์˜จ ์›”์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด "05" ์ด๊ณ , ๋น„๊ตํ•˜๋ ค๋Š” ๊ฐ’์ด "5" ์˜€๊ธฐ ๋•Œ๋ฌธ์— 0์˜ ์œ ๋ฌด์— ์ฐจ์ด๋กœ if ๋ฌธ์ด ์ œ๋Œ€๋กœ ์กฐ๊ฑด์„ ๊ฑธ๋Ÿฌ์ฃผ์ง€ ๋ชปํ•จ

 

Solution)

์ฒ˜์Œ์—” ์›”์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์— 0์ด ์žˆ์œผ๋ฉด ํ•ด๋‹น ๊ฐ’์„ replace ๋กœ ์—†์• ๋ ค๊ณ  ํ–ˆ์ง€๋งŒ, 10์›”์˜ ๊ฒฝ์šฐ 0์ด ์‚ญ์ œ๋˜๋ฉด ์•ˆ๋˜๊ณ  ์ธ๋ฑ์Šค ์œ„์น˜๋กœ ์•ž์— 0์ด์žˆ์„ ๋•Œ ์‚ญ์ œํ•˜๋Š” ์กฐ๊ฑด์„ ์ถ”๊ฐ€ํ•˜๋ฉด ์ฝ”๋“œ๊ฐ€ ๋„ˆ๋ฌด ์ง€์ €๋ถ„ํ•ด์งˆ ๊ฒƒ ๊ฐ™์•„ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ๊ณ ๋ฏผํ–ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์•ž์— 0์ด ๋ถ™๋Š”๊ฒŒ ๋ฌธ์ œ๋ผ๋ฉด, ๊ฐ„๋‹จํ•˜๊ฒŒ String ํ˜•ํƒœ๋ฅผ int ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•ด์„œ ๋น„๊ตํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. int ํ˜•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด ์•ž์ž๋ฆฌ์— ๋ถ™์€ 0์€ ์ž๋™์œผ๋กœ ์‚ฌ๋ผ์ง€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋‹คํ–‰ํžˆ ํ•ด๋‹น ๋ฐฉ๋ฒ•์„ ์ ์šฉํ•œ ๋กœ์ง์€ ์•„๋ฌด๋Ÿฐ ์˜ค๋ฅ˜ ์—†์ด ์ž˜ ์ž‘๋™ํ•˜๋Š” ๊ฑธ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 

์ˆ˜์ •๋œ ์ฝ”๋“œ ์ผ๋ถ€

//๋ณธ์ธ ์ผ๋ณ„ ๊ณต๋ถ€์‹œ๊ฐ„
        for (int i = 1; i <= lastDay; i++) {
            int getDay = i;

            String day ="";
            String getString = getDay + ":" + "0";
          
            for (Analysis find : targetUser) {
                String[] getDate = find.getDate().split("-");

                if (getDay == Integer.valueOf(getDate[2]) && getM == Integer.valueOf(getDate[1])) {
                    log.info("====ํ™•์ธ{}=======", getDate[1]);
                    String[] getDaySum = find.getDaySum().split(":");
                    Long getNum = Long.valueOf(getDaySum[0]);
                    getString = getDay + ":" + String.valueOf(getNum);
                }
            }
            getMyTotal.add(getString);
        }

 

 

์‹ค์ „์ฃผ์ฐจ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๋ฉฐ...

6์ฃผ๋ผ๋Š” ๊ธฐ๊ฐ„๋™์•ˆ ๊ธฐํš๋ถ€ํ„ฐ ๊ฐœ๋ฐœ, ์œ ์ €ํ…Œ์ŠคํŠธ, ์ด์Šˆ ๋Œ€์‘ ๋“ฑ์„ ํ•˜๋ฉด์„œ ์ •์‹ ์—†์ด ๋‹ฌ๋ ค์™”๋˜ ๊ฒƒ ๊ฐ™๋‹ค.

๋ง‰์ƒ ์„œ๋น„์Šค ๋ฐฐํฌ์™€ ์ตœ์ข… ๋ฐœํ‘œ๊นŒ์ง€ ๋๋‚ด๊ณ  ๋Œ์•„๋ณด๋‹ˆ ์•„์‰ฌ์šด ๋งˆ์Œ์ด ๋งŽ์ด ๋“ค์—ˆ๋‹ค. ๋‹ค์‹œ๊ธˆ ๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ๋“ค์„ ๋ดค์„ ๋•Œ ๋” ๊น”๋”ํ•˜๊ณ , ๋‚˜์€ ๋กœ์ง๋“ค์ด ์žˆ์—ˆ์„ํ…๋ฐ ๋„ˆ๋ฌด ์‹œ๊ฐ„์— ์ซ“๊ธฐ๋ฉฐ ์ฝ”๋”ฉ์„ ํ•ด์„œ ๊ทธ๋Ÿฐ์ง€ ์ฝ”๋“œ๋“ค์ด ์กฐ๊ธˆ ์‚ฐ๋งŒํ–ˆ๋‹ค. ์‹œ๊ฐ„ ๊ณ„์‚ฐ์„ ์œ„ํ•ด Calendar ๋ฅผ ์‚ฌ์šฉํ•˜์˜€์ง€๋งŒ, ์ง€๊ธˆ ๋‹ค์‹œ ๋กœ์ง์„ ์ง ๋‹ค๊ณ  ํ•˜๋ฉด Duration ์ด๋‚˜ Period, ChronoUnit, Calculator ๋“ฑ์„ ์‚ฌ์šฉ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

์ฒ˜์Œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋‹น์‹œ ๋‚ ์งœ์™€ ์‹œ๊ฐ„์„ ๋‹ค๋ฃฐ ๋•Œ๋Š” Calendar ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒŒ ๊ฐ€์žฅ ๋‚˜์„๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ์—ˆ๋Š”๋ฐ, Calendar ๋ณด๋‹ค๋Š” ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ์นœ๊ตฌ๋“ค์ด ๋” ๋‹ค๋ฃจ๊ธฐ ์‰ฝ๊ณ , ์ฝ”๋“œ๋„ ๋” ๊น”๋”ํ•˜๊ฒŒ ๋‚˜์˜ฌ ๊ฒƒ ๊ฐ™์•˜๋‹ค. ์ €๋Ÿฐ ๋ฉ”์„œ๋“œ๋“ค์ด ์žˆ๋Š” ๊ฑธ ๋„ˆ๋ฌด ํ›„๋ฐ˜๋ถ€์— ์•Œ๊ฒŒ๋˜์„œ ์•„์‰ฌ์› ๋‹ค.

 

ํ†ต๊ณ„ ํŽ˜์ด์ง€ ๊ธฐ๋Šฅ ๊ตฌํ˜„์„ ํ•˜๋ฉด์„œ ChronoUnit ์€ ํ•œ ๋ฒˆ ์จ๋ดค๋Š”๋ฐ Calendar ๋ณด๋‹ค ์ฝ”๋“œ์–‘๋„ ์ค„๊ณ , ํ›จ์”ฌ ์‚ฌ์šฉํ•˜๊ธฐ ํŽธํ–ˆ๋‹ค.

 

 

์ด์ œ ๋‚จ์€ ๊ฑด ์ง€์›์ฃผ์ฐจ...!

์ทจ์—…๋ฌธ์„ ๋‘๋“œ๋ฆฌ๋ฉฐ ์‹ ์ž…๊ฐœ๋ฐœ์ž๋กœ์„œ ์ฒซ ๊ฑธ์Œ์„ ๋‚ด๋”›์–ด ๋ณด๋ คํ•œ๋‹ค.

์ด๋ ฅ์„œ๋ฅผ ์“ฐ๊ณ , ๋ฉด์ ‘์„ ์ค€๋น„ํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๋กœ ์ทจ์—…ํ•˜๋Š” ๊ทธ ๋‚ ๊นŒ์ง€ ํž˜!

๊ด€๋ จ๊ธ€ ๋”๋ณด๊ธฐ

๋Œ“๊ธ€ ์˜์—ญ