총 비용 : 

일정


 날짜  시간  장소 일정 경비
3월 10일
(토)
 오후 03:30  집 출발 (버스 2시간 10분 소요) 
 오후 06:00  인천공항 공항 체크인 
 오후 08:30 인천공항 비행기 출발 시간 
   태국공항    차비 - 
   차트리움 레지던스 사톤  체크인  
3월 11일
(일)
   차트리움 레지던스 사톤 아침 (호텔 조식) 
    마트 - 먹을꺼 마트비용
    수영 
   아르노 점심 2만
   요요랜드 실내놀이동산
 3만
  딸랏롯빠이 야시장 요요랜드 바로 옆 3만
  딸랏롯빠이 야시장 저녁 3만
3월 12일
(월)
   차트리움 레지던스 사톤 아침 (호텔 조식) 
    
  노스이스트 점심 2만
 오후 02:00 차트리움 레지던스 사톤 처제 만남 
   왓 포 1만
  아래 4곳 중 하나 저녁 - 야경 잘 보이는 곳 가서 3만
  아시아티크 야시장 구경 및 쇼핑 5만
   택시 타고 숙소로 이동 1만
3월 13일
(화)
   아침 (호텔 조식) 
   시내쪽 가서 캐리어 맡기기 
  씨암 파라곤 백화점 구경 및 쇼핑 10만
  쉐라톤 호텔 부페 점심 - 부페 2만
  방콕 공항 공항으로 이동 
 오후 03:00 방콕 공항 비행기 출발 시간 
  끄라비 공항  
  두짓타니 끄라비 숙소 체크인 
   저녁 - 일몰 보이는 곳 2만
3월 14일
(수)
   아침 (호텔 조식) 
   홍섬 투어 2500바트 - 8만원쯤
  홍섬 점심 2만
  샌드위치미 저녁 2만
3월 15일
(목)
   아침 (호텔 조식) 
  두짓타니 끄라비 체크아웃 
  홀리데이인 끄라비 체크인 
   점심 2만
   저녁 2만
3월 16일
(금)
   아침 (호텔 조식) 
   점심 2만
   저녁 2만
3월 17일
(토)
   아침 (호텔 조식) 
     점심  2만
  홀리데이인 끄라비 숙소 체크아웃 
   저녁 2만
   공항 체크인 
 오후 08:40 끄라비 공항 비행기 출발시간 
  방콕 공항  
3월 18일
(일)
 오전 02:40  방콕 공항  비행기 출발 시간  
 오전 08:00  인천 공항    
 결산  


Bangkok Best Places


 이름  종류  숙소 기준 거리  기타
 카오산 로드
 Khaosan Rd
 주요 거래  차 30분
 대중교통 1시간 10분
 
 롯파이 야시장
 Srinakarin Rot Fai Market
 시장  차 38분
 대중교통 2시간
 롯파이 야시장이 2개이므로 주의
 요요랜드
 Yoyoland 
 어린이 실내
 놀이공원
 차 38분
 대중교통 2시간
 입장료 무료
 놀이기구당 20 ~ 50밧
 씨암 파라곤
 S&P at Siam Paragon
 복합 문화 공간  차 25분  
 터미널 21
 Terminal21
 쇼핑몰 차 28분 
 아시아티크
 เอเชียทีค, Asiatique
 쇼핑거리 차 19분 
 왓 포
 วัดโพธิ์์, Wat Pho
 사원 차 30분 입장 시간 : 08:00 ~ 18:30
 입장료 : 100밧
 왓 아룬
 วัดอรุณ, Wat Arun
 사원 차 30분 입장 시간 : 08:00 ~ 17:00
 입장료 : 50밧
 방콕 왕궁
 พระบรมมหาราชวัง
 Grand Palace
 궁전 차 30분 입장 시간 : 08:30 ~ 15:30
 입장료 500밧
 싸남 루앙
 Sanam Luang
 명소, 공원 차 30분 

"왓 포", "왓 아룬", "방콕 왕궁"은 모두 도보 10분 거리로 가깝다.
카오산 로드도 방콕 왕궁에서 멀지 않은 곳에 있고 도보 20분 거리 차로 10분 거리이다.
방콕 왕궁에서 카오산 로드로 도보로 이동하게 될 경우 싸남 루앙이라는 곳을 구경할 수도 있겠다.
공원이라고 되어 있는데 여의도 공원 크기에 이런 저런 행사를 가끔 하는 것 같다.




Bangkok Restaurant


 이름  음식  숙소 기준 거리  
 아르노
 ARNO's Butcher and Eatery
 스테이크집   차 2분
 도보 10분
 
 노스이스트
 Northeast Restaurant
 푸팟퐁커리   차 15분
 대중교통 40분
 
 잇 사이트 스토리 데크      
 더리버   살라 라타나코신 호텔
 비터 데크   살라 아룬 호텔
 더 데크   아룬 레지던스


Krabi Best Places


 이름 종류 숙소 기준 거리 기타
 끄라비타운 야시장  
 아오낭 비치 해변  
 프라낭 비치 해변  
끄라비는 마사지나 섬 투어를 많이 함
리조트에서 예약하는게 좋음

Krabi Restaurant


 이름 음식 숙소 기준 거리 
   
    
    

'나의 이야기 > 여행(Travel)' 카테고리의 다른 글

[태국] 방콕, 끄라비 자유 여행 일정  (0) 2018.02.26
[괌 여행] 쇼핑  (0) 2014.12.15
[괌 여행] 맛집 정리  (0) 2014.12.15
[괌 여행] 계획, 일정  (0) 2014.12.15
전주, 군산 여행 계획  (0) 2014.09.28
[속초여행] 계획, 코스  (0) 2014.03.13
속초 여행 스케줄  (0) 2013.08.16
아노마트센터 - 안성 추천 여행  (0) 2010.10.29
서일농원 - 안성 추천 여행  (0) 2010.10.29
속리산 문장대 최단 코스  (0) 2010.10.25
변산반도 여행코스  (0) 2010.10.25

Leave a Comment

오늘 회사 PC에서 작업을 하다가 크롬이 먹통이 되었다.
얼마 전 집에서 크롬이 문제가 생겨서 애를 먹었는데 회사 피씨도 동일한 증상을 보였다.

상당히 어이없는 문제는 다음과 같다.

  • 인터넷은 문제가 없다.
  • 프록시 설정도 문제가 없다.
  • IE는 되는데 크롬만 안된다.
  • 크롬 설정도 안 들어가진다.
  • 호환성 설정도 쓸모 없다.
  • --no-sandbox를 쓰면 되긴 된다.

인터넷에 나온 모두 해결 방법을 써보았으나 해결이 되지 않았다.
"--no-sandbox" 방법을 통해서 일단 쓸 수 있었지만 이것은 완벽한 해결책이 아니었다.

일단 "--no-sandbox"를 통해서 급한 업무를 처리하다가 퇴근 전에 이 문제를 다시 해결해보려고 구글링을 하는 도중 아래와 같은 해결 방법이 머리에 남았다.

  • 백신을 돌려서 PC를 검사하고 악성 코드나 바이러스를 제거한다.
  • 특정 프로세스를 끄고 해당 디렉토리를 삭제한다.

이것은 꽤 웃긴 일이다. 크롬이 안되는데 그 이유가 다른 프로세스(악성 코드나 바이러스일 수도 있는..) 때문인 것이다.
해당 특정 프로세스를 찾아보았지만 내 PC의 프로세스에는 그런 프로세스가 존재하지 않았다.
바이러스는 아닐 수 있지만 특정 프로세스때문에 크롬이 문제가 생기는 경우도 있는 듯하다.

그래서 "시스템 구성"에 "시작 프로그램"에 들어가서 수상하다 싶거나 내가 모르는 프로그램의 경우는 시작 프로그램에서 제외해버렸다.
그리고 재부팅을 하였더니 놀랍게도 해결이 되었다.

실행 > msconfig > 시스템 구성 > 시작 프로그램 > 수상한 프로그램 체크박스 해제


나의 경우는 보안 관련 프로그램으로 생각되는 것들을 모두 제외했었다.

이 별거 아닌 문제로 정말 일 못하고 쓸데없이 시간을 날렸다.
구글링에서는 나오지 않아서 다른 분들은 삽질 안하길 바라며 글을 남긴다.


Comments

  1. 지나가던크롬장인 2018.04.07 00:32 신고 Permalink Modify/Delete Reply

    그냥 alt+ctrl+del 누른 뒤에 작업 관리자 들어가서

    프로세스 항목에 chrome 라고 남아있는 모든 프로세스 다 강제 종료 하고 다시 크롬 켜면 정상 작동 됩니다...

  2. 남자 2018.04.09 12:29 신고 Permalink Modify/Delete Reply

    저와 증상이 같군요..혹시 크롬에서 "앗 이런"이라는 오류 메시지가 빈 화면에 뜨지 않습니까??
    저도 이 증상으로 몇 달을 고생했는데 Fasoo DRM이 문제더군요..삭제하니 바로 해결됐습니다.

  3. 아틴 2018.05.15 21:28 신고 Permalink Modify/Delete Reply

    와! 남자님 감사합니다.
    Fasoo DRM 문제 맞았습니다.
    삭제되니 바로 해결되네요 ㅠㅠ

    삭제도 바로 안되서 엄청 애먹었네요. 아래 블로그 참고했습니다.
    http://infofrag.tistory.com/161

Leave a Comment

코드리뷰를 하다보면 늘 반복적으로 나오는 내용이 있다.
기능상 문제가 되는 것은 아니지만 걸고 넘어갈만한 내용인데 매번 설명하기가 힘들어서 정리를 해본다.

오늘 코드리뷰를 하면서 나온 내용중에 하나가 아래와 같은 선언이다.

일단 LOGGER라는 네이밍이 걸렸지만 그 외에도 리뷰할만한 말이 있는데 설명하자니 이 간단한 한줄이 길어지게 되었다.


참고 소스 [1] - DefaultRedirectStrategy.java


참고 소스 [2] - DefaultSecurityFilterChain.java



1. 왜 private으로 하였는가?
해당 클래스를 다른 클래스가 상속받아 사용하지 않게 하는 경우라면 private으로 사용하는 것이 맞습니다.
상속을 통한 재사용을 고려한다면 protected로 선언할 수 있겠습니다.
[1]과 [2]의 차이인데 [1]에서는 상속을 처리하기 위해서 static을 사용하지 않고 protected final만을 사용해서 선언하였습니다. 선언시에도 상속한 클래스명을 받기 위해 생성자의 메서드를 호출하고 있습니다. 
[2]의 경우는 상속을 허용하지 않는 경우여서 private static final로 선언이 되어 있고 class도 final로 되어 있습니다.

2. 왜 static으로 하였는가?
static으로 선언하는 이유는 객체가 생성이 될 때마다 해당 객체를 매번 생성하지 않고 초기 클래스 로딩시 한번만 생성해서 사용을 하기 위함입니다.
이전의 자바 클래스 코딩 스타일은 static을 많이 사용하는 추세였다고 생각되고 저도 많이 사용했었ㅅ습니다.
그러나 Spring을 사용하게 되면서 객체를 굳이 싱글턴 형태로 디자인하지 않아도 객체를 싱글턴과 같이 한번만 생성해서 사용을 하게 되었습니다.
애플리케이션에서 해당 클래스의 생성 방식이나 사용 형태에 따라서 무조건적인 static을 선언해서 Perm 영역의 공간을 소비할 필요가 없게 되었습니다.
Spring 소스에서도 Logger 사용시 [1]과 같이 static으로 선언하지 않은 경우가 있고 [2]와 같이 static으로 선언하는 경우가 있습니다.


3. 왜 fianl로 하였는가?
로그를 찍는 Logger는 초기 생성된 이후에 변경될 필요가 없습니다.
특별한 경우가 아니라면 변경되는 경우는 거의 없다고 보입니다. 
final로 선언하지 않더라도 이 Logger에 대해 변경하는 경우는 거의 없겠지만 유지보수와 가독성을 위해 final로 선언하는 것이 좋습니다.


4. 왜 LOGGER라는 이름으로 하였는가?
LOGGER라는 이름으로 선언된 이유에 대해서 다른 소스에서도 그렇게 사용되는 것을 보아서 그랬다는 답변을 들은 적이 있다.
내 생각에는 JAVA에서 상수 선언시 이름을 대문자로 많이 쓴다. 통상 static final의 멤버 변수의 경우는 상수 선언시 많이 쓰게 되고 static final은 대문자라는 공식이라는 생각에 대문자로 선언한 분이 있지 않을까 한다.

하지만 static final로 선언한다고 무조건 상수는 아니며, static final로 선언한 객체는 당연히 소문자로 해줘야 된다.
Spring 소스에서도 Logger는 static final을 쓰더라도 소문자를 사용하고 있다.


Reference

[1] https://github.com/spring-projects/spring-security/blob/master/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java

[2] https://github.com/spring-projects/spring-security/blob/master/web/src/main/java/org/springframework/security/web/DefaultSecurityFilterChain.java


(글을 본 선배가 의견을 카톡으로 줘서 업데이트했습니다;ㅋ)


Leave a Comment

java에서 기본으로 제공해주는 MessageFormat을 이용하면 {0}, {1}, {2} 이런 값에 대해 변수를 대입해줄 수 있지만,
문제는 숫자로만 가능한다는 점이다.

숫자가 아닌 특정 템플릿 형태로 값을 주입하고 싶다면 common lang에서 제공해주는 StrSubstitutor을 이용하면 된다.
기본값은 "${name}"과 같은 형태이다. prefix가 "${"이고 suffix가 "}"이다.

이 외에 다른 형태로 값을 넣고 싶으면 메서드 호출시에 prefix와 suffix를 넣어주면 원하는 형태로 사용이 가능하다.


Test.java



Leave a Comment

.class에 대해 mock 처리를 해야 할 때가 있다.

이럴 때는 역시 파워목!

MockGateway.MOCK_GET_CLASS_METHOD를 true로 설정하면 된다.


TestCode.java



Leave a Comment

단위 테스트시에 객체 생성이 될 때, 예외가 발생을 하게 해야 하는 경우가 있다.

이런 경우에 PowerMock을 이용하여 테스트한다.


- 객체 생성시 예외 발생시키기 -





Leave a Comment

생성자가 private일 경우 테스트 필요시 처리.


생성자 호출



파라미터가 있는 생성자의 경우



Method 호출



필드값 주입



Leave a Comment

단위 테스트시에 파라미터에 따라서 다양하게 테스트를 해야 하는 경우가 있다.

이런 경우에 변경되는 파라미터에 대해 일일히 개발하거나 파라미터를 공통화해서 진행을 하기도 하는데

이럴 필요 없이 이미 다양한 파라미터에 대해 테스트할 수 있는 Parameterized가 있다.


- 사용법 - 

1. @RunWith(Parameterized.class) 선언 필요

2. 변경되면서 테스트가 필요한 파라미터 조건 선언

2.1. @Parameter를 붙여준다.

2.2. 파라미터는 반드시 public으로 선언해줘야 한다.


3. 파라미터 값들에 대한 테스트 목록 설정이 필요

3.1. @Parameters public static Collection<Object[]> data()로 선언해서 구현


ParamTest.java






Reference

[1] Mkyong (https://www.mkyong.com/unittest/junit-4-tutorial-6-parameterized-test/)

[2] junit team (https://github.com/junit-team/junit4/wiki/parameterized-tests)

Leave a Comment

pom.xml 테스트 설정

powermock 설정시 일부 라이브러리간 실행 안되는 문제가 안되서 기록해준다.


Test.java






pom.xml










Leave a Comment


MySQL 명령어

테이블 통계정보

mysql> show table status like 'atin_story'\G


인덱스 통계정보

mysql> show index from atin_story\G


쿼리 플랜
mysql> explain select sql


인덱스 추가/제거

alter table table_name drop index index_name;

alter table table_name add index index_name(colunm1, column2);


MySQL 인덱스

  • B-Tree 인덱스 구조 사용
  • NULL을 값으로 인식하여 인덱스에 포함됨
  • 인덱싱 컬럼에 대한 IN절은 Expansion으로 처리됨( UNION ALL )
  • DESC 인덱스는 지원하지 않음


MySQL 플랜

  • select_type :  SELECT 유형
  • type :  Access type
    • Good : Const, system, eq_ref
    • Bad : ALL(테이블풀스캔),  index(인덱스풀스캔)
    • 처리범위에 따라 다름 : range, ref
  • extra : 실행계획을 생성할 때 적용하는 최적화 기법을 표현하거나 부가정보
    • Good : using index(커버링인덱스), using where(메모리에서 필터링)
    • Bad : using filesort, using join buffer
  • 특정인덱스를 사용하거나 사용하지 않도록 하는 인덱스 힌트는 아래와 같다
    • USE INDEX/FORCE INDEX 
    • IGNORE INDEX
    • STRAIGHT JOIN : 드라이빙 순서를 고정할 때 사용하는 힌트


'Infra > RDBMS' 카테고리의 다른 글

MySQL 명령어 정리  (0) 2017.11.03
Oracle 테이블 스페이스 변경  (0) 2014.01.17
오라클 DBF 용량 줄이기  (0) 2013.06.17
오라클 백업  (0) 2013.06.06
테이블 제약 조건 확인  (0) 2013.05.20
ORA-00600: internal error code, arguments: [kokle_lob2lob13:input mismatch] 해결  (2) 2013.04.23
Postgresql 랜덤값 출력  (0) 2011.10.14
DB Password 부호화 복호화  (0) 2011.04.19
DB2 TimeStamp  (0) 2009.08.24
DB2 SEQUENCE 생성  (0) 2009.07.16
DB2에서 Temp테이블 사용법  (0) 2009.07.07

Leave a Comment


to Top