전체보기

반응형

 

 

 

어벤져스 인피니티워 개봉당시 메가박스에서 한정판으로 판매했던 메탈컵

 

 

구매당시 캡틴 아메리카 메탈컵

 

파란색으로 시원시원해서 찬물 마실 때 애용중이었지만 한번 떨어뜨렸더니 내부소재에 금이가서 물이 새고 있었다.

어쩐지 물이 없는데 찰랑찰랑 거리던게 이 때문이었다.

 

 

쓰다보니 생활기스도 많이 났다

 

더이상 이제 물컵으로 활용할 수 없어 무엇으로 써야 좋을까  고민하다가 딱히 용도는 떠오르지 않았고

그냥 장식용으로 써야겠다 싶어서 밋밋한 방패에 색을 입혀보기로 하였다

바로 이 방패!

 

손톱으로 긁어도 충분히 벗겨낼 수 있었다

 

 

도색을 벗겨낸 모습

 

더 이상은 무리..

 

철제 자와 각종 도구로 열심히 벗겨낸 작업 영상

 

이제 빨간색 네임펜으로 칠해주기만 하면 된다.

 

 

완성!

가까이서 보면 지저분하다. 그래서 장식용으로 두고 멀리서 보는게 좋겠다

 

작게보니 좀 낫다

 

확실히 색을 입히니 훨씬 멋있다

 

더 좋은 도구들이 있으면 깔끔하게 했을 것 같은데 없어서 더 이상은 역부족..

 

캡틴 아메리카 피규어라도 하나 사야되는가 싶다.

 

아이언맨과 건틀렛도 색을 입히면 예쁠 것 같다는 생각이 든다

 

 

 

반응형
반응형



요즘 급 빠져버린 토트넘 마그넷 모으기

우선 손흥민은 기본이고 엠블럼에 신구장 마그넷까지





신구장 마그넷은 나오자마자 품절되었따가 다시 입고 되었는데

얼른 구매했더니 금새 또 품절이 떴다.

그런데 우측에 좀 깨져있는건 아쉽..



챔스에서 우승하면 또 어떤 기념 마그넷이 나올진 모르겠지만 기대가 된다.

얼마 전 나왔던 챔스 열쇠고리도 살려고 했지만 또 매진이 되어버렸는데 재입고가 되었으면 좋겠다



반응형
반응형

 

 

 

삼성 무선충전배터리 EB-U1200 보러가기

https://yonoo88.tistory.com/1271

 

샤오미 보조배터리를 살까 하다가 어차피 갤10을 쓰고 있으니 같은 삼성으로 써보자 해서 구입

 

배송비 합쳐 18000원에 구입(정가 21000원)

 

EB-P1100 전면

 

재질은 플라스틱이 아닌 금속 느낌의 재질로 모서리에 폰이 긁힐 경우 기스가 날 수도 있을 것 같아 케이스를 씌우면 좋을 것 같다

 

10000 mAh의 용량이지만 실사용용량은 6300 mAh. 같은 용량의 샤오미는 7000mAh를 조금 넘는다고 한다.

배터리

삼성 공식 홈페이지 : https://www.samsung.com/sec/mobile-accessories/10000mah-battery-pack-eb-p110c/EB-P1100CPKGKR/)

  • 용량10000 mAh
  • 사용 가능 용량 (일반 충전)6300 mAh, 31.5 Wh
  • 사용 가능 용량 (고속 충전)3100 mAh, 27.9 Wh
  • 갤럭시S9 2.1 회 충전, 갤럭시노트9 1.6회 충전 가능

 

듀얼 충전도 가능한 2개의 포트

* 배터리팩 상단에 위치한 '배터리 체크' 버튼을 눌러 고속 충전 모드에서 듀얼 충전 모드로 변경하세요.
* 고속 충전은 하나의 기기를 충전할 때만 사용 가능합니다.
* 내장된 충전 케이블은 약 20 cm 길이의 Type-C 케이블로 1개만 제공됩니다. 
* 상기 이미지의 케이블 외 부속품은 연출용이며, 내장 케이블 외의 별도 케이블은 추가로 구매가능합니다.
별도로 판매 하는 케이블 사양은 국가별로 다를 수 있습니다.

 

배터리 체크 버튼을 누르면 듀얼충전모드로 변경이 가능하다는데

테스트해보니 딱히 안눌러도 2개의 기기 충전이 가능했다.

 

또 1개의 기기만 충전할 때도 눌러보았는데 고속충전은 유지되었다.

딱히 저 배터리 체크 버튼의 기능이 뭔지는 모르겠다.

 

배터리 잔량 표시

 

 

구성품은 20cm C 타입 케이블이 전부이다.

 

사이즈는 갤S10과 비슷한 크기이며

약 14cm x 7cm의 크기이다.

 

다른 제품으로 무선 충전도 지원하는 삼성 무선충전 보조배터리도 있는데 그건 5만원이 넘기 때문에

굳이 살 필요 없이 이걸로도 충분하다고 본다.

 

배터리 스펙

반응형
반응형

 

기본 코드는 이 링크를 참고하였습니다.

https://javaslave.tistory.com/78

 

POI Library를 이용한 Excel Read

Apache POI Grid 형태의 데이터를 핸들링 하는 화면에는 보통 '엑셀다운로드', '엑셀업로드' 버튼이 존재한다. 이를 구현하기 위해서 Apache에서 제공하는 POI 라이브러리를 이용하는 방법을 알아보도록 하자. Jav..

javaslave.tistory.com

 

POI 버전은 3.11을 사용하였습니다. (최신 poi 4점대 버전에서는 코드가 동작하지 않습니다)

poi 3.11 라이브러리 파일

lib (2).zip
7.51MB
lib.zip
3.21MB

용량 제한으로 압축파일 2개로 나뉘어 첨부함

 

사용 용도 

엑셀 내용( 확장자 xlsx 필수)
account.xlsx
0.01MB

위와 같은 엑셀 내용에서 각 열 별로 데이터를 긁어와 각 ArrayList에 저장함

로그인시

ID에는 ArrayList1.get(0)

암호에는 ArrayList2.get(0) 

이런 식을 1:1 매칭해서 로그인에 활용하는 단순 용도

총 6개의 ArrayList  선언 (액셀에 총 6개의 열이 있기 때문)

 

스위치 문에서 각 열마다 1개의 ArrayList에 값을 넣음

발생하는 문제점

첫 열의 개수에 따라 나머지 열의 개수가 결정됨

첫 열이 10개고 나머지 열이 20개,16개 등등 제 각기라면 첫 열 기준으로 모두 10개의 데이터만 가져오게 되는 문제가 존재함

 

전체 코드

package poi;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class POIReader {
    public static List<String> account1 = new ArrayList<String>();
    public static List<String> account2= new ArrayList<String>();
    public static List<String> account3 = new ArrayList<String>();
    public static List<String> account4 = new ArrayList<String>();
    public static List<String> account5 = new ArrayList<String>();
    public static List<String> account6 = new ArrayList<String>();
    
   /**
    * XLSX 파일을 분석하여 List<poi> 객체로 반환
    * @param filePath
 * @return 
    * @return
    */
   public static void xlsxTopoiList(String filePath) {
       // 반환할 객체를 생성
       FileInputStream fis = null;
       XSSFWorkbook  workbook = null;
       
       try {
           
           fis= new FileInputStream(filePath);
           // XSSFWorkbook은 엑셀파일 전체 내용을 담고 있는 객체
           workbook = new XSSFWorkbook (fis);
           
           // 탐색에 사용할 Sheet, Row, Cell 객체
           XSSFSheet curSheet;
           XSSFRow   curRow;
           XSSFCell  curCell;
//           poiList vo;
           
           // Sheet 탐색 for문
           for(int sheetIndex = 0 ; sheetIndex < workbook.getNumberOfSheets(); sheetIndex++) {
               // 현재 Sheet 반환
               curSheet = workbook.getSheetAt(sheetIndex);
               
               // row 탐색 for문
               for(int rowIndex=0; rowIndex < curSheet.getPhysicalNumberOfRows(); rowIndex++) {
                   // row 0은 헤더정보이기 때문에 무시
                   if(rowIndex != 0) {
                       // 현재 row 반환
                       curRow = curSheet.getRow(rowIndex);
//                       vo = new poiList();
                       String value;
                           // row의 첫번째 cell값이 비어있지 않은 경우 만 cell탐색
                       System.out.println("---"+curRow.getCell(0));
                       if(curRow.getCell(0) != null){ // 첫번째열 모자를 때 구분
                    	   if(!"".equals(curRow.getCell(0).getStringCellValue())) {
                               
                               // cell 탐색 for 문
                               for(int cellIndex=0;cellIndex<curRow.getPhysicalNumberOfCells(); cellIndex++) {
                                   curCell = curRow.getCell(cellIndex);
                                   
                                   if(true) {
                                       value = "";
                                       // cell 스타일이 다르더라도 String으로 반환 받음
                                       if(curCell != null){ //각 열의 목록 길이에 따라 분기
                                    	   switch (curCell.getCellType()){
                                           case XSSFCell.CELL_TYPE_FORMULA:
                                               value = curCell.getCellFormula();
                                               break;
                                           case XSSFCell.CELL_TYPE_NUMERIC:
                                               value = curCell.getNumericCellValue()+"";
                                               break;
                                           case XSSFCell.CELL_TYPE_STRING:
                                               value = curCell.getStringCellValue()+"";
                                               break;
                                           case XSSFCell.CELL_TYPE_BLANK:
                                               value = curCell.getBooleanCellValue()+"";
                                               break;
                                           case XSSFCell.CELL_TYPE_ERROR:
                                               value = curCell.getErrorCellValue()+"";
                                               break;
                                           default:
                                               value = new String();
                                               break;
                                           }
                                       }
                                       switch (cellIndex) {
                                       case 0: // name
                                    	   account1.add(rowIndex-1, value);
                                           break;
                                           
                                       case 1: // 암호                                	   
                                    	   account2.add(rowIndex-1, value);
                                           break;
                                           
                                       case 2: // 여기서 하나씩 분류
                                    	   account3.add(rowIndex-1, value);
                                           break;
           
                                       case 3: // 여기서 하나씩 분류
                                    	   account4.add(rowIndex-1, value);
                                           break;
                                           
                                       case 4: // 여기서 하나씩 분류
                                    	   account5.add(rowIndex-1, value);
                                           break;
                                           
                                       case 5: // 여기서 하나씩 분류
                                    	   account6.add(rowIndex-1, value);
                                           break;
                                       default:
                                           break;
                                       }
                                   }
                               }
                           }
                       }
                       
                   }
               }
           }
       } catch (FileNotFoundException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
       } catch (IOException e) {
           // TODO Auto-generated catch block
           e.printStackTrace();
           
       } finally {
           try {
               // 사용한 자원은 finally에서 해제
               if( workbook!= null) 
            	   workbook.close();
               if( fis!= null) fis.close();
               
           } catch (IOException e) {
               // TODO Auto-generated catch block
               e.printStackTrace();
           }
       }
   }
}

 

 

반응형
반응형

깜빡 하면서 실행되지 않는다

최신 버전의 이클립스를 사용하다가 플러그인이 지원을 하지 않아 구 버전(Neon) 이클립스를 받아서 실행하였다

그런데 실행이 되지 않는다. 또 한참을 삽질을 했다.

이 현상을 해결하기 위해 구글링을 해보면 eclipse.ini 파일 수정하라는 얘기가 제일 많이 나온다

-vm 에 자바 경로를 추가해라..

java.se.ee 였나 이거 추가해라.. 등등이 있는데 전혀 해결되지 않았다

결론은 자바 버전이 문제였다

자바를 11.0.2 최신 버전을 설치했었는데 이게 이클립스 구버전에서 지원이 안되는 것이었나보다.

자바를 지우고 구버전 JDK 1.8.0을 설치하였따

그랬더니 단번에 해결..

오늘도 역시나 최신 업데이트는 함부로 하는게 아니라는 진리를 깨달았다..

반응형
반응형

String 배열을 사용해서 콤보박스에 값들을 보여줬었는데

ArrayList를 사용해서 콤보박스에 보여주고 싶었따.

스트링 배열은 String[] account1 = { id,id1,id2}

이런식으로 콤마로 이루어진 값이었는데 ArrayList는 배열마다 각 값을 가지고 있기 때문에 나중에 관리하기 편할 것 같았다.

기존 String 배열(account1)을 콤보박스에 넣었을 때 코드

JComboBox<?> comboBox = new JComboBox<Object>(account1);

ArrayList(account1)를 콤보박스에 넣을 때 코드

JComboBox<?> comboBox = new JComboBox(account1.toArray(new String[account1.size()]));

이렇게 하면 account1 배열의 사이즈만큼 알아서 콤보박스에 값이 노출되었다

반응형
반응형

나이키 토트넘 핫스퍼 아카데미 드릴탑 트레이닝 세트 구매

신제품이지만 날씨는 점점 더워지고 있다. 다시 추워질 때 입으면 되니 구매

상하의 세트로 S 사이즈를 주문. 드릴탑은 기모처리가 되어있다

그런데 전에 구매한 스쿼드 드릴탑(https://yonoo88.tistory.com/1230) 과 사이즈 비교했을 때 상의는 좀 더 작게 나왔는지 타이트했다. 지퍼도 올리면 목이 조이는 느낌이 들 정도. 하의는 만족

그런데 스쿼드 드릴탑보다는 신축성은 조금 떨어진다. 그래서 사이즈가 작게 느껴지는 것 같기도 하다.

그래도 디자인은 스쿼드 드릴탑 보다 낫다고 생각됨.

NVY S Spurs Nike Adult THFC Academy Drill Top
NVY S Spurs Nike Adult THFC Academy Drill Top 뒷모습
NVY S Spurs Nike Adult THFC Academy Drill Top 안감 기모처리
NVY S Spurs Nike Adult THFC Academy Pant

반응형
반응형

 

이번에 새로 나온 아카데미 THFC 트레이닝 

여름을 대비하여 구매하였다. 사이즈는 M으로 주문했는데 티셔츠는 사이즈가 맞는데 바지가 생각보다 허리가 컸다

이전에 구매했던 트레이닝 반바지(https://yonoo88.tistory.com/1254)는 M이면 딱 좋았는데 이거는 줄로 좀 조여줘야 했다.

옷 마다 또 사이즈가 다른 건 여전한가 보다. 

그리고 이 제품을 산 건 디자인 또한 마음에 들었다. 17 18 어웨이를 연상시키는 디자인이고 그냥 캐주얼하게 입고 다녀도 무난한 색상이라 구매하였다.

NVY M Spurs Nike Adult THFC Academy T-Shirt
NVY M Spurs Nike Adult THFC Academy Shorts

반응형

+ Recent posts