[리팩토링] 첫번째 기록

잡담에 대충 쓰긴 했으니 바로 본론!

100번 보는 것보다.. 한번 쳐보자~!

코드 내용을 그대로 다 올리면… 저작권에 문제가 될 것 같으니…

주요 내용 위주로 입력할 예정..

//비디오 종류별 대여료 계산
switch (each.getMovie().getPriceCode()) {
case Movie.REGULAR:
thisAmount += 2;
if (each.getDaysRented() > 2) {
thisAmount += (each.getDaysRented() – 2) * 1.5;
}
break;
case Movie.NEW_RELEASE:
thisAmount += each.getDaysRented() * 3;
break;
case Movie.CHILDRENS:
thisAmount += 1.5;
if (each.getDaysRented() > 3) {
thisAmount += (each.getDaysRented() – 3) * 1.5;
}
break;
}

statement() 내에 온갖 함수가 다 있는데 그 중에 상단에 위치한 코드를 우선 method로 분리하는 것이 1차 목표이다.

이 부분은 실무에서도 자주 마주하는 경우인데… switch 뿐 아니라 if문 / for 문 다양하게 적용 되는 것 같다.

그래도 어느정도 익숙해져서 초기 개발할 때에도 위와 같은 경우에는 미리 method로 분리해서 작업하게 된 것 같다.

책에 있는 예시를 보기 전 내 코드를 먼저 입력해보기로 한다.

어차피 위 내용이 거의 그대로 복사&붙여넣기 될 것 같긴하지만…
(바보 같이 편집기에서 치고 앉아 있었다..-_- 들여쓰기를 일일히 하려니 귀찮아..
라는 생각이 들 때쯤… 왜 이렇고 있나 싶어서 얼른 Intellij 로 이동..)

//switch 문 내용이 대여료를 구하는 것이므로.. method 명을 비슷하게 한다.
public String getAmout(int priceCode){
….
}

위와 같이 하고보니… 앗.. switch 안에..
each.getDaysRented() 와 같이 렌탈 기간도 사용하고 있는 걸 발견..
해서… 넘겨주는 paramter를 Rental 객체로 변경..


//비디오 종류별 대여료 계산
thisAmount = getPrice(each);


//각 비디오의 대여료를 계산
public double getPrice(Rental each){
int priceCode = each.getMovie().getPriceCode();
double thisAmount = 0;
switch (priceCode) {
case Movie.REGULAR:
thisAmount += 2;
if (each.getDaysRented() > 2) {
thisAmount += (each.getDaysRented() – 2) * 1.5;
}
break;
case Movie.NEW_RELEASE:
thisAmount += each.getDaysRented() * 3;
break;
case Movie.CHILDRENS:
thisAmount += 1.5;
if (each.getDaysRented() > 3) {
thisAmount += (each.getDaysRented() – 3) * 1.5;
}
break;
}
return thisAmount;
}

일단 심플하게 위 처럼 변환처리 했다…
Rental 객체인 each 대신 어차피 값이 2개(priceCode / daysRented) 만 넘겨도 될 것 같으나…
내 생각에는 확장성을 고려하면 Rental 객체인 each를 넘기는 것이 맞는 것 같다.
예를 들어 대여료의 조건이 추가 되거나 하는 경우라던가…?

개발에 정답은 없어서 좋기도 하지만 한편으로 이게 맞나..(?) 라는 생각도 드는 것도 사실인지라…
책과 한번 비교를… 해보자.

private int amountFor(Rental each){
int thisAmount = 0;
switch (each.getMovie().getPriceCode()) {
case Movie.REGULAR:
thisAmount += 2;
if (each.getDaysRented() > 2) {
thisAmount += (each.getDaysRented() – 2) * 1.5;
}
break;
case Movie.NEW_RELEASE:
thisAmount += each.getDaysRented() * 3;
break;
case Movie.CHILDRENS:
thisAmount += 1.5;
if (each.getDaysRented() > 3) {
thisAmount += (each.getDaysRented() – 3) * 1.5;
}
break;
}
return thisAmount;
}

책에서는 위와 같이 1차적으로 변경하였다가 컴파일 시 오류가 발생하여
amountFor 의 return 값을 double 로 변경하였다고 한다.

나도 위와 같은 실수를 할 뻔했는데…
(내가 Rental객체를 설계한게 아니기 때문…)
그래서 해당 객체 내부를 살펴보고 return 값을 정하였기 때문에 책과 같은 실수를 하지는 않았다.

1 글이 마음에 드셨다면 하트 꾸욱~!

나는 원숭이다.

나는 원숭이다.

2020.05.22 카카오톡으로 넘어온 링크..

해당링크를 누르면

나는 원숭이다.

라는 채팅이 쳐진다..

카카오톡 API를 통해 만든 것으로 추정..

해킹과는 무관하다.

문득 궁금하여 테스트용 애플리케이션을 등록하여 개발 시도..

음… 프링향 전용이라는.. 저 애플리케이션 이름이…

안 나오게는 할 수 없는건가..

또한 일반 웹에서의 버튼이 아니라 버튼 자체에 링크가 걸려있어

원하는대로 컨트롤이 되지 않는다.

웹이 아니라.. 앱으로 시도 해봐야 할 듯…?0 글이 마음에 드셨다면 하트 꾸욱~

큐브 iWork10/Z8350/듀얼OS/4G+64G/FHD(큐브 iWORK10 Ultimate Wi-Fi 64GB) 사용기~

지난 주 배송받은 큐브 iWork10 에 대한 리뷰…

채 일주일이 안되었지만.. 생각보다 만족스러운 성능에 빠른 리뷰를 작성한다..

성능은 아래 표와 같다..

64기가 로 되어있지만

윈도우에서 사용하는 용량은 약 45기가 할당 / 그외는 안드로이드운영체제 할당

윈도우 사용시 : 윈도우10 설치 용량이 24기가정도로 잡으면 실제 사용용량은 20기가정도이다.

(윈도우 기준으로 작성하는 이유는 필자가 윈도우 위주의 작업을 사용하기 때문..)

지난 번 개봉기에서 썼던 사진을 재탕…ㅎ

큐브 iWork10/Z8350/듀얼OS/4G+64G/FHD(큐브 iWORK10 Ultimate Wi-Fi 64GB) 개봉기~

이제부터 진짜 리뷰!! + 제품 일부 설명..

태블릿에는 우선 위와 같은 단자가 있다.

microSD / USB3.0 / USB2.0 / 미니HDMI / 이어폰단자

microSD : 추가 용량 확장을 위한 단자 – microSD 카드 별도 구매!!

USB3.0 : USB 3.0을 사용할 때 사용하며, 연결 케이블은 태블릿 구매시 기본 포함이다.

USB2.0 : 안드로이드폰 이용자라면 들어봤을법한 OTG 케이블을 이용하여 접근가능하며

충전단자로도 사용한다.

미니(?)HDMI : 태블릿에서 보는 화면을 다른 출력장치에서 사용하기 위한 단자

이어폰단자 : 스피커가 아닌 이어폰 사용시 이용~!

제품 구매시 옵션으로 구매가능한 도킹(키보드)을 구매하는 경우 위와 같이 USB단자 2개를 더 이용 할 수 있다.

다만, 도킹 이용시 배터리 소모가 매우 빨리진다는 단점도 역시 존재한다.

(구매 당시 포토리뷰(개봉기or사용기 등등) 작성시 무료로 보내주는 무선 마우스가 꼽혀 있다.)

하드웨어는 이정도로 설명을 끝내며.. 실제 사용기로 가보자..

큐브 iWork10 제품의 경우 듀얼OS를 지원하는 제품이다.

윈도우10 과 안드로이드 5.1을 스위치하며 사용가능하다!!

그렇다고 버튼 한번에 뚝딱~ 바로바로 프로그램 전환하듯이 빠르게 전환되지는 않는다.

(그렇게 되려면… 메모리문제, 발열문제 등 다양한 문제가 더 있을듯 싶다..)

우선 윈도우10 에서 안드로이드로 전환하는 방식이다.

바탕화면에 위와 같은 녹색로봇(안드로이드) 아이콘이 있다.

해당아이콘을 실행하면 안드로이드로 전환 가능하다.

반대로 안드로이드에서 윈도우로 전환하고 싶은 경우 태블릿 화면을

위에서 아래로 드래그(스와이프)하면 위와 같은 메뉴가 나타난다.

우측하단에 보면 switch to windows 라는 버튼을 눌러주면 윈도우로 전환~

생각보다 OS 전환은 간단하다.

다만, 윈도우 부팅할때처럼 또는 핸드폰 처음 켰을때처럼 일정시간은 필요로 하다.

사실 태블릿을 산 이유는 내년에 필요할 상황이 생기기 때문에..

미리 사놓았으나.. 당장 활용하는 상황은 많이 나올 것 같지 않다.

하여.. 간간히 PC로 즐기던… 게임!! 을 설치해보았다.

고사양게임이 아니기 때문에 별 무리없이.. 잘 돌아간다…

실제로 사용할 상황중 하나에 속하는… 사진 보정…!!

본인은 사진 찍는것도 하나의 취미로 즐기고 있다.

하지만.. 사진 촬영 후 바로바로 운영중인 NAS 에 올리고 싶거나, 블로그에 올리고 싶은 경우가 있다.

이 작업을 핸드폰으로 할 수도 있다.

(카메라 -> 와이파이 -> 핸드폰전송 -> 핸드폰으로 작성)

하지만 사진옮기는 속도가 매우 늦고, 파일 편집 역시 쉽지 않다.

이러한 부분 때문에 노트북을 찾아봤으나, 크기(본인은 10~11인치..)와 가격문제등 다양한 문제가 있어서 보류하였다.

이야기가 다른곳으로 빠졌다…

사진 보정에 특화된 어도브 라이트룸 설치!!

체험판을 설치해본다.. 부디 잘 설치 되기를…


일단 정상적으로 설치되었으며, 실행도 된다

테스트로 촬영한 사진을 올려봤는데..

실제 PC만큼 빠릿빠릿하지는 않으며, 효과등을 적용하는 경우.. 0.5~1초정도의 딜레이가 발생한다.

살짝 아쉬운 부분…

(30만원도 안하는 태블릿에.. 너무 많은걸 바랬나…ㅋ.ㅋ)

일반적인 사진촬영 -> 블로그 작성에는 많은 도움이 될 것으로 추정한다.

이참에.. 블로그도 활성화를…시도해볼까…?

윈도우에서 기능은 이정도로 마무리…!!

생각났을때.. 급하게 몰아서 작업하다보니… 많은 테스트 사진은 없다..-_-..

iWork10 태블릿을 먼저 사용한 친구의 경우 윈도우보다 안드로이드 위주로 사용하고 있다.

그럼.. 안드로이드로 넘어가보자..!!

위에서 설명한 안드로이드 전환 방법을 실행한다..


예를 눌러준다.(윈도우 설정에서 해당창을 없애고 바로 실행 할 수 도 있다^^)

안드로이드로 전환할것인지 묻는 창.

[예]를 누르면…

위와 같이 사용중이던 윈도우10을 다시 시작(종료)한다고 뜨며,

일정 시간이 지나면 아래와 같이 안드로이드 화면이 실행된다.

안드로이드 대기화면!!

자.. 이번에도 게임이다.. 게임..ㅎ

하스스톤 스토리모드가 나왔다고 들었으나.. 잊고 있었던 게임…

태블릿 PC를 구매하고.. 다시 설치해보았다..

(당연히… 잘 돌아간다..+_+)

아참! 글쓴이는 5년전에 구매했던 태블릿이 존재했다…

그당시 30만원정도 주고 구매했던걸로 기억하는… 넥서스7 – 16기가(1세대..)

어느순간.. 느려져서.. 초기화를 해보아도 느려서 사용안하고 있었는데..

고향을 내려가서 영화를 보는 목적으로 사용하려고 하였으나…

2~3기가 이상의 영화를 재생하면… 엄청난 랙이 발생…

하여 이번에 태블릿 구매전 친구에게 테스트해본다며.. 고화질(4기가 이상) 영화를 재생해보고…

간단한 몇가지 테스트를 하고 구매하였다..ㅎ

개인적으로 운영중인 나스에서의 영화 재생역시.. 무리 없이 잘 돌아간다.

(해당 나스에서 다양한 어플을 무료로 제공하고 있어서 사용하기 매우 편하다.)

오오…

다만.. 사운드부분은 많이 아쉬울 수 있으니…

영화 시청시에는 헤드셋이나 이어폰을 사용하길 권장한다

게임하는것만큼.. 게임 시청도 좋아라 하는 글쓴이이므로… 트위치로.. 게임방송도 시청해보고~

물론… 오버워치나, 배틀그라운드와 같은.. 고사양 게임은 무리다..

메모리가 4기가라고는 하지만, cpu 쿨러가 별도로 있는것이 아니기 때문에…

굳이.. 시간 낭비하고 싶지는 않다..

(이미 메모리, 그래픽카드 에서 탈락하지 않았을가..?)

인강이나 문서작성은 기본적으로 될 수 밖에 없는 사양이고,

iWork10 의 장점은.. 크기/무게/듀얼OS지원/가격 이지 않을까 싶다.

사진찍기 좋아하며, 돌아다니기 좋아하는 나에게는 딱 맞는 태블릿!!

부디.. 5년전에 구매했던 넥서스7 마냥 죽지 않기를 바라며…(너무 욕심이 큰가..?ㅎ)

이상으로.. 큐브 iWork10 에대한 리뷰 끄~~~읏1 글이 마음에 드셨다면 하트 꾸욱~!

큐브 iWork10/Z8350/듀얼OS/4G+64G/FHD(큐브 iWORK10 Ultimate Wi-Fi 64GB) 개봉기~

오랜만에.. 지름지름신~

기존에 사용하던 노트북은.. 개인사정으로 없고…

나스로 사용하던 노트북은… 너무 오래되서… 전원이 없으면 사용이 불가능한 수준…

그래서 여차저차 찾아봤는데…

내가 원하는 노트북이 보이지 않는다..

화면은 10~11인치, 성능은 듀얼코어 이상, 램은 4기가 이상 대충 이정도…?

일단 10~11인치 노트북자체가.. 보이질 않더라.. 대부분 넷북뿐…

넷북에 대한 인식이 좋지 않아서… 쳐다도 안보다가…

친구가 사용하던 태블릿이 생각나서 물어본 결과..!!

듀얼 OS 지원에 쿼드코어!

디테일한 성능은 아래표 참조!!

묻지마 주문주문!!

그리고 주말이 지난 다음 월요일 배송이 시작된 후..

화요일 배송!!

상품박스외에.. 택배박스도 보관하라는 문구가…?

일반적으로 제품박스 보관은 들어봤지만.. 택배 박스 보관이라…흠..

일단 보관하기로..ㅎ

뽁뽁이와.. 그 위에 있는 키스킨~!

이벤트인지.. 기본인지… 한글 키스킨을 무료로 제공해주고 있다!

실픔 그 자체..!!

개봉하면… 반품이 불가능합니다..!!

그러나~ 제품에 이상이 있으면.. 당연히 반품 가능!!

듀얼OS 별 초기화 방법이 적혀있다.

윈도우10, 안드로이드 5.1 초기화 방법!

태블릿을 들어보면 하단에 악세사리 박스가 있고..

이역시 생각보다 심플 그자체…

5핀을 usb로 변경해주는 OTG 케이블과, USB3.0을 사용할 수 있는 케이블

그리고 충전 케이블 딱 3개 들어있으며, 설명서도 역시 동봉!

(영문이라 패스!)

OS 초기화 방법이 적혀 있는 설명서!!

크… 곱다 고와..

도킹을 함께 구매하였기 때문에.. 키보드(?)가 있다!

탈부착이 가능하며, 장착시 배터리가 생각보다 빨리 닳는다..

(도킹에 별도의 배터리가 존재하지 않는다!!)

전원 온!!

윈도우10으로 우선 부팅!!

업데이트를 하고.. 사용기는.. 실제로 사용하고 작성해볼 예정~!0 글이 마음에 드셨다면 하트 꾸욱~