[java] object 통한 getClass()를 사용하여 데이터 알아내기



가끔 받아온 값에 대해서 

알 수 없을 때까 있습니다.


error : mismatch cannot convert from


이러한 문제가 발견 될 때가 있습니다.


이런 문제를 해결하기 위해서... 

Object로 임시로 받아서 getClass()를 통해서 

확인하는 방법이 있어요!





package java_sort;

public class ConvertByteString {

    public static void main(String[] args) {
        String testStr = "test할 문자";
        int testInt = 11;
        double testDouble = 1.1;
        
        Object obj = null;
        
        obj = testStr;
        System.out.println(obj.getClass());
        //testStr java.lang.String의 값이 나옵니다.
        
        obj = testInt;
        System.out.println(obj.getClass());
        //testStr java.lang.Integer의 값이 나옵니다.

        obj = testDouble;
        System.out.println(obj.getClass());
        //testStr java.lang.Integer의 값이 나옵니다.

    }   

}



결과화면




블로그 이미지

미나미나미

,

web.xml이 없는 경우

[java] 2018. 9. 30. 20:23

web.xml이 없는 경우


web.xml일 없는 경우 


WEB-INF/web.xml가 없는 경우


당황하시지 마시고 아래 사진 처럼 따라오세요.



해당 프로젝트에서 우클릭 후에 빨간색 네모칸 부분


Generate Deployment Descriptor Stub 부분을 클릭해주세요.



짜잔, 그러면 아래 web.xml이 생길거에요


블로그 이미지

미나미나미

,

[java] hashmap value 값으로 key 값 찾기 

(get key from value)


가끔 key 값은 알게 되었는데

value 값을 알아야 하는 경우가 있습니다.

그럴 때 찾는 방법을 기록합니다.



package java_sort;

import java.util.HashMap;
import java.util.Map;

public class HashmapGetKeyFromValue {

    public static void main(String[] args) {
        Map<String, Object> hashMap = new HashMap();
//hashmap을 생성합니다.
//그리고 아래에 데이터를 넣어줍니다.
        hashMap.put("A", "test");
        hashMap.put("B", 212123);
        hashMap.put("C", "ashdjkashdjk");
        hashMap.put("D", 77);
        
        
        System.out.println(getKey(hashMap,"test"));
        //test라는 value 값을 통해서 key 값은 = > A
        System.out.println(getKey(hashMap,77));
        //77라는 value 값을 통해서 key 값은 = > D
    }
    
    
    public static <K, V> K getKey(Map<K, V> map, V value) {
        // 찾을 hashmap 과 주어진 단서 value
        for (K key : map.keySet()) {
            if (value.equals(map.get(key))) {
                return key;
            }
        }
        return null;
    }

}




결과화면







블로그 이미지

미나미나미

,

overflow 사용시 scrollbar(스크롤바) niceScroll.js로 바꾸기 



CSS에서 overflow : auto를 사용하면,

크기를 벗어날 시 자동으로 스크롤 바가

생기는 것을 볼 수 있습니다.


아래의 화면에서 보여지는 기본 스크롤 바를

아래의 사진처럼 바꿔 보겠습니다


BEFORE



바뀌면 계속 쭈욱 남아있지않고, 아이폰 스크롤바처럼 사라집니다.

그리고, 공간을 차지하지 않습니다.


AFTER




그러면, 적용 방법!

<style>
#box{
border: 1px solid;
width:500px;
height:300px;
background:yellow
}
#big_box{
width: 1000px;
height: 800px;
overflow: auto;
border: 1px solid;
}
</style>


<body>
<div id="big_box">
<!--
big_box 안에
box가 3개가 들어가서
css overflow : auto로 설정해두어서
스크롤바가 생성될겁니다.
-->
<div id="box"></div>
<div id="box"></div>
<div id="box"></div>
</div>


<script>
//ready시
$(function () {
$("#big_box").niceScroll();
// niceScroll를 적용할 id값을 넣어주세요
// $("body").niceScroll();
// body안에 있는 요소들이 scroll로 생기실 nicescroll로 바뀝니다.
});
</script>
</body>





See the Pen nicescroll by Nami (@NamuNami) on CodePen.




블로그 이미지

미나미나미

,

i'mport(아임포트) 결제 모듈 간편하게 사용해보기


이 글은 아임포트에 후원 받은 적 없으며, 


광고에 목적은 없음을 미리 알려드립니다.


단순히 호기심과 공부를 위해 기록합니다.


준비물


어이, 학생 시작하기 전에 준비물이 있어요!


아임포트에 가서 회원가입하고 와요~~


http://www.iamport.kr/


가입하고 오셔야 필요한 가맹점 식별코드를 발급이 가능합니다.


테스트 버전에서는 아직까지는 저는 돈이 든적이 없습니다.

그렇기 때문에 이점 참고하세요!





결제 모듈를 간단하게 연동할 수 있는 방법이 있습니다.

아임포트 생각보다 다루기 쉬운데요!

뭐... 깊이 들어가면 조금 힘들어요 ㅋㅋ 


자, 코드 설명드릴게요!

(맨 아래에 전체코드가 있습니다.)


헤더 부분


<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="https://service.iamport.kr/js/iamport.payment-1.1.5.js"></script>


맨 처음 첫째줄에 jquery가 선언되어있습니다.

아임포트를 사용하기위해서는 jquery가 먼저 선언되어있어야 합니다.


두번째줄은 아임포트를 쓰기 위해 js 코드를 가져옵니다. 




바디부분

<p>

<p>아임 서포트 결제 모듈 테스트 해보기</p>
<button id="check_module" type="button">아임 서포트 결제 모듈 테스트 해보기</button>
</p>


간단하게 <p> 태그랑 버튼으로 button 이벤트면 이렇게 준비하시면 됩니다. 



스크립트 부분(이 부분이 중요해요)



설명이 필요한 부분과 내가 만약 카카오페이를 써야하는 경우 

바꿔야하는 부분을 주석으로 써놨습니다.

물론, 아임포트 문서에 가시면 많은 내용이 있으니 이점 참고하시고요.



<script>
$("#check_module").click(function () {
var IMP = window.IMP; // 생략가능
IMP.init('가맹점식별코드를 넣어주세요');
// 'iamport' 대신 부여받은 "가맹점 식별코드"를 사용
// i'mport 관리자 페이지 -> 내정보 -> 가맹점식별코드
IMP.request_pay({
pg: 'inicis', // version 1.1.0부터 지원.
/*
'kakao':카카오페이,
html5_inicis':이니시스(웹표준결제)
'nice':나이스페이
'jtnet':제이티넷
'uplus':LG유플러스
'danal':다날
'payco':페이코
'syrup':시럽페이
'paypal':페이팔
*/
pay_method: 'card',
/*
'samsung':삼성페이,
'card':신용카드,
'trans':실시간계좌이체,
'vbank':가상계좌,
'phone':휴대폰소액결제
*/
merchant_uid: 'merchant_' + new Date().getTime(),
/*
merchant_uid에 경우
https://docs.iamport.kr/implementation/payment
위에 url에 따라가시면 넣을 수 있는 방법이 있습니다.
참고하세요.
나중에 포스팅 해볼게요.
*/
name: '주문명:결제테스트',
//결제창에서 보여질 이름
amount: 1000,
//가격
buyer_email: 'iamport@siot.do',
buyer_name: '구매자이름',
buyer_tel: '010-1234-5678',
buyer_addr: '서울특별시 강남구 삼성동',
buyer_postcode: '123-456',
m_redirect_url: 'https://www.yourdomain.com/payments/complete'
/*
모바일 결제시,
결제가 끝나고 랜딩되는 URL을 지정
(카카오페이, 페이코, 다날의 경우는 필요없음. PC와 마찬가지로 callback함수로 결과가 떨어짐)
*/
}, function (rsp) {
console.log(rsp);
if (rsp.success) {
var msg = '결제가 완료되었습니다.';
msg += '고유ID : ' + rsp.imp_uid;
msg += '상점 거래ID : ' + rsp.merchant_uid;
msg += '결제 금액 : ' + rsp.paid_amount;
msg += '카드 승인번호 : ' + rsp.apply_num;
} else {
var msg = '결제에 실패하였습니다.';
msg += '에러내용 : ' + rsp.error_msg;
}
alert(msg);
});
});
</script>





결과 화면 및 테스트 화면


실제로 제가 쓰는 카드로 결제를 진행했습니다.

즉, 테스트에서 실제로 사용하는 테스트를 진행할 수 있습니다.


그러나, 결제후에 환불이 가능함으로 돈이 들지 않습니다.

이점 꼭 참고하세요!


단, 테스트 도중 개발자모드가 켜져있으면, 

결제가 진행이 안되니 이점 참고하세요!


버튼 클릭시 결제창





실제로 제가 사용하는 카드로 테스트하기 위해서 

농협 카드를 사용하였습니다.


카카오페이 및 다른것도 가능합니다.


script 부분에서 확인하세요!




결제 관련 부분을 alert창으로 확인 가능합니다.






환불 페이지 


환불 페이지는 아임서포트 관리자 페이지

-> 결제승인내역에서 취소가 가능합니다.

 


https://admin.iamport.kr/payments








블로그 이미지

미나미나미

,

듀얼 코일 고속 무선 충전기(IWC-201) 리뷰



듀얼 코일 고속 무선 충전기(IWC-201) 리뷰에 오신걸 환영합니다.


구매한 곳은 : "쿠팡"에서 구매를 했으며, 실질적으로 사용해보기 위해서 직접 구매하였습니다.





앞면과 옆모습입니다.

옆모습에 연결된 핀은 micro pin 입니다.

USB  C Type이 아닌점 참고하세요.




충전하는 모습입니다.



제품 총평


장점

네임벨류가 있는 제품에 비해
가격이 엄청 비싸지 않다

어느 방향으로 나둬 잘된다.
가로로 두었는데도 충전이 된다.

편하다.
선이 없으니 편하다.
그러려고 샀는데... ㅋㅋ

딱히, 큰 발열은 없는 듯 하다.


단점

단단해 보이지는 않는다.
음.. 단단해 보이지 않는다는 거는 내구성이 없는게 아니라
장난감처럼 보인다. 그래서 잘못하면 또각하는 순간 망가질수도 있을 거 같다.

지짐대가 살짝 부실해 보인다.
그래서 스마트폰을 힘을 두면, 아래 받침이 밀린다.
음... 즉, 고무패킹이 밀린다.






'[기계리뷰]' 카테고리의 다른 글

샤오미 미믹스2s(Mi Mix 2s) 개봉기  (0) 2018.06.30
블로그 이미지

미나미나미

,

샤오미 미믹스2s(Mi Mix 2s) 개봉기



샤오미 미믹스 2s(Mi Mix 2s) 개봉기에 오신걸 환영합니다.


구매한 곳은 : "큐텐"에서 구매를 했으며, 실질적으로 사용해보기 위해서 직접 구매하였습니다.






샤오미 미믹스 2s(Mi Mix 2s) 개봉기에 오신걸 환영합니다.


이런식으로 빵빵하게 배송이 되었습니다.


주문 날짜 : 2018/06/24(일)

배송받은 날짜 : 2018/06/30(토)


6일 정도 걸렸습니다.

큐텐에서 구매하실 분들은 이점 차고 하세요.


큐텐의 홍보 목적은 아니에요!!



박스 외관




테이핑을 뜯으면, 요러한 상자가 나옵니다.


가운데 MI 글씨가 나오고, 아무래도 샤오미가 플래그쉽을 밀다보니

예전에 다른 샤오미 기계들 보다 포장에 신경을 많이 쓴거 같습니다.



안에도 고급스럽게 영어와 

뭐 좀더 고급스럽게 되어 있네요.



구성 물품



안에 구성 물품을 보게되면 


미믹스 2S : 1개 (하나만 더주라..)

미믹스 2s 화이트버전 케이스 : 1개

(플라스틱재질인거 같아요. TPU의 휘어지는 재질은 아닙니다)

충전기 : 1개 ( 돼지코가 같이 옵니다. 그냥 주는거 같아요)

USB-C type : 1개

USB-C type 오디오 단자 : 1개

(미믹스2s는 오디오 단자가 따로 없습니다.)

유심 뺴는 핀 : 1개




샤오미 미믹스 2s 크기






외관 크기는 흐음..... 보시는 대로 아주 크지는 않습니다.

하지만, 그렇다고 디스플레이 화면이 작은것은 아닙니다.


(아! 현재 강화 필름이 전면부에 부착이 되어 있습니다. 이점 알려드립니다.)


ppi : 화소 밀도(畵素密度) 또는 픽셀 밀도 또는 픽셀 퍼 인치(pixels per inch, PPI)는 

다양한 환경에 쓰이는 장치 해상도의 측정 단위 (위키백과)


스펙 상황을 보았을 때, 크기는 확실히 비슷합니다.

픽셀에서는 확실히 어느 정도 차이가 있음을 확인 할 수 있습니다.

또한, 해상도에서 차이가 있음을 알 수 있습니다.




뒷판은 세라믹 재질로 되어 있어서 

케이스가 없을 경우 미끄러울 수 있다고 하는데 ... 흐음... 

그럴수도 아닐수도,,,

다만... 지문이 확실히 너무 잘 묻는다. 

이점은 깨끗히 쓰시고 싶은신 분들은 참 힘들게 할 거 같다.




아래에 USB-C type 형태 부분과 특히하게 아래에 카메라가 있다

요즘은 셀피라고 하던데.... 맞나?

셀프로 카메라로 찍은 시는 분들은 이점 불편할 수 있을 거 같다.





오른쪽 옆면에 볼륨 버튼과 전원 버튼이 있습니다.



왼쪽 옆면에 유심을 넣는 부분이 있습니다.


꼭! 확인

참고로 유심은 나노 유심만 가능합니다 두개까지!!!




나머지는 일주일 사용후기 때 찾아오겠습니다.


'[기계리뷰]' 카테고리의 다른 글

듀얼 코일 고속 무선 충전기(IWC-201) 리뷰  (0) 2018.07.01
블로그 이미지

미나미나미

,


[Excel] 한개의 조건 평균값 구하기 AVERAGEIFS 함수 사용하기


 ■  AVERAGEIFS 함수 


AVERAGEIFS (평균을 구할 구간 , 조건 구할 범위1, 조건 구할 범위1의 조건,  조건 구할 범위2, 조건 구할 범위2의 조건, )  


평균을 구할 구간 :

특정 조건의 맞는 요소만을 뽑아서 평균을 구할 범위

A반 학생들의 총점


 조건 구할 범위1의 조건 :

A반 학생들의 국어 점수


조건 구할 범위1의 조건 :

A반 국어 점수가 90점인 학생들


 조건 구할 범위2의 조건 :

A반 학생들의 수학 점수


조건 구할 범위1의 조건 :

A반 수학 점수가 70점이상인 학생들


=AVERAGEIFS(A반 총점 범위, A반 국어 점수 범위, "90" , A반 수학 점수 범위 , "70>")



자, 아래의 예제를 통해서 

AVERAGEIFS 함수를 다루어 보겠습니다.


여기서 AVERAGEIFS 로 구할 값은 


"1승" 하고, "1패 이하"를 한 나라의 승점 평균은?




= AVERAGEIFS( 평균을 구할 구간  , 


평균을 구할 구간 승점임으로 승점 범위를 지정해줍니다.





= AVERAGEIFS( 평균을 구할 구간  ,  "승"이 있는 범위 , 구할 조건 "1"


"승"이 있는 범위를 지정하고, 구할 조건 1승 "1"을 만들어 줍니다. 




= AVERAGEIFS( 평균을 구할 구간  ,  

"승"이 있는 범위 , 구할 조건 "1" , 

"패"가 있는 범위 , 조건이 1패이하임으로 "<=1")




결과화면



블로그 이미지

미나미나미

,