반응형


맥북에서 메일 콘텐츠 위치.

 - OS X El Capitan


~/Library/Containers/com.apple.mail/Data/Library/Mail Downloads



반응형
반응형


# . 으로 시작하는 파일 파인더에서 보이게 하기.

$ defaults write com.apple.finder AppleShowAllFiles -bool true


# 다시 숨기기.

$ defaults write com.apple.finder AppleShowAllFiles -bool false

반응형
반응형

Client - Server 에서 앱 버전 체크하는 API 에서 사용할 만한 query.


버전이 최대 3자리라고 가정하고...


로직은 이렇게.....


SET @ver = "10.22.1";

SET @len = LENGTH(@ver);

SET @loc0 = 0;

SET @loc1 = LOCATE('.', @ver);

SET @loc2 = LOCATE('.', @ver, @loc1 + 1);

SET @loc3 = LOCATE('.', @ver, @loc2 + 1);

SELECT 

-- 각각 자리별로 값 구하기.

--                SUBSTRING(@ver, (@loc0 + 1), IF(@loc1 <> 0, (@loc1 - @loc0 - 1), @len)) as 1st, 

-- IF(@loc1 <> 0, SUBSTRING(@ver, (@loc1 + 1), IF(@loc2 <> 0, (@loc2 - @loc1 - 1), @len)), 0) as 2nd, 

-- IF(@loc2 <> 0, SUBSTRING(@ver, (@loc2 + 1), IF(@loc3 <> 0, (@loc3 - @loc2 - 1), @len)), 0) as 3rd;



-- 각각 자리별로 값 구하기.(decimal type 으로 convert)

--                CONVERT(SUBSTRING(@ver, (@loc0 + 1), IF(@loc1 <> 0, (@loc1 - @loc0 - 1), @len)), DECIMAL) as 1st, 

-- CONVERT(IF(@loc1 <> 0, SUBSTRING(@ver, (@loc1 + 1), IF(@loc2 <> 0, (@loc2 - @loc1 - 1), @len)), 0), DECIMAL) as 2nd, 

-- CONVERT(IF(@loc2 <> 0, SUBSTRING(@ver, (@loc2 + 1), IF(@loc3 <> 0, (@loc3 - @loc2 - 1), @len)), 0), DECIMAL) as 3rd;



-- 실제 비교할 땐 어떻게 하지?? 각각 버전값이 0-99 까지 쓴다고 가정하고...

--                CONVERT(SUBSTRING(@ver, (@loc0 + 1), IF(@loc1 <> 0, (@loc1 - @loc0 - 1), @len)), DECIMAL) * 1000000 as 1st, 

-- CONVERT(IF(@loc1 <> 0, SUBSTRING(@ver, (@loc1 + 1), IF(@loc2 <> 0, (@loc2 - @loc1 - 1), @len)), 0), DECIMAL) * 1000 as 2nd, 

-- CONVERT(IF(@loc2 <> 0, SUBSTRING(@ver, (@loc2 + 1), IF(@loc3 <> 0, (@loc3 - @loc2 - 1), @len)), 0), DECIMAL) * 1 as 3rd;


-- 실제 비교할 땐 어떻게 하지?? 숫자값으로 변환해서 비교??

              ((CONVERT(SUBSTRING(@ver, (@loc0 + 1), IF(@loc1 <> 0, (@loc1 - @loc0 - 1), @len)), DECIMAL) * 1000000) + 

(CONVERT(IF(@loc1 <> 0, SUBSTRING(@ver, (@loc1 + 1), IF(@loc2 <> 0, (@loc2 - @loc1 - 1), @len)), 0), DECIMAL) * 1000) + 

(CONVERT(IF(@loc2 <> 0, SUBSTRING(@ver, (@loc2 + 1), IF(@loc3 <> 0, (@loc3 - @loc2 - 1), @len)), 0), DECIMAL) * 1)) as ver_sum;





실제 사용시에는 이렇게....



SELECT 

SUBSTRING(appVer, 1, IF(LOCATE('.', appVer) <> 0, (LOCATE('.', appVer) - 1), LENGTH(appVer))) as 1st, 

IF(LOCATE('.', appVer) <> 0, SUBSTRING(appVer, (LOCATE('.', appVer) + 1), IF(LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) <> 0, (LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) - LOCATE('.', appVer) - 1), LENGTH(appVer))), 0) as 2nd, 

IF(LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) <> 0, SUBSTRING(appVer, (LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) + 1), IF(LOCATE('.', appVer, (LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) + 1)) <> 0, (LOCATE('.', appVer, (LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) + 1)) - LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) - 1), LENGTH(appVer))), 0) as 3rd from tbl_app;

SELECT

((CONVERT(SUBSTRING(appVer, 1, IF(LOCATE('.', appVer) <> 0, (LOCATE('.', appVer) - 1), LENGTH(appVer))), DECIMAL) * 1000000) + 

(CONVERT(IF(LOCATE('.', appVer) <> 0, SUBSTRING(appVer, (LOCATE('.', appVer) + 1), IF(LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) <> 0, (LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) - LOCATE('.', appVer) - 1), LENGTH(appVer))), 0), DECIMAL) * 1000) + 

(CONVERT(IF(LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) <> 0, SUBSTRING(appVer, (LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) + 1), IF(LOCATE('.', appVer, (LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) + 1)) <> 0, (LOCATE('.', appVer, (LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) + 1)) - LOCATE('.', appVer, (LOCATE('.', appVer) + 1)) - 1), LENGTH(appVer))), 0), DECIMAL) * 1)) as ver_sum from tbl_app;



반응형

'Database > Mysql' 카테고리의 다른 글

[mysql] Your password does not satisfy the current policy requirements  (0) 2023.08.01
index 생성 기준?  (0) 2021.09.24
mysql 에서 unix time 구하기  (0) 2015.09.23
mysql bin log 삭제.  (0) 2014.05.15
mysql dump  (0) 2014.03.24
반응형

HTTP Header 구성요소.html


http://coffeenix.net/doc/network/http_1_0_vs_1_1.html

반응형

'Server' 카테고리의 다른 글

nginx + php-fpm 설치  (2) 2020.02.27
반응형


이클립스에서 commit 하다 cancel 을 했다.


다시 commit 하려고 하니까 lock 걸려서 진행이 안됨.


보통은 team > cleanup 하면 된다고 한다.


그리고 lock 파일이 있는지 찾아보라고 하는데.. 없다..


결국 직접 svn db 파일을 수정해서 해결.


1. sqlite 클라이언트 다운로드

 - http://sqlitebrowser.org/


2. sqlite 클라이언트 실행해서 DB를 연다.

 - .svn 디렉토리 밑에 wc.db 파일.


3. sql 실행 탭에서 아래 쿼리 실행.

 - DELETE FROM WORK_QUEUE;

 - DELETE FROM WC_LOCK;


4. wc.db 파일 저장.(sqlite 클라이언트 종료)


이제 잘된다....



출처: http://finkle.tistory.com/124


반응형
반응형



[펌] http://seongtak-yoon.tistory.com/19



MySQL 5.0과 같이 저버전을 사용하게되면, 요즘 스마트폰에 기본으로 적용된 Emoji 문자때문에 골치 아픈 경우가 많습니다.

MySQL은 기본적으로 UTF-8이 3Byte까지만 지원하기때문에 4Byte로 구성된 Emoji와 같은 문자가 저장되면 빈 값으로 저장되거나 ?? 등으로 저장됩니다.

이를 방지하기 위해서 (정확이는 utf8mb4 타입을 적용하기 전까지 임시방편으로 ..) 저장되지 않도록 애플리케이션단에서 제거할 필요가 있습니다.


# planes 1-3

# planes 4-15

# plane 16

preg_replace("/\xF0[\x90-\xBF][\x80-\xBF]{2} | [\xF1-\xF3][\x80-\xBF]{3} | \xF4[\x80-\x8F][\x80-\xBF]{2}/", "", $string);



참고된 테이블 구성 그대로 정규식으로 조합하여 4Byte UTF-8 문자를 찾아내어 ""(빈값)으로 replace합니다.


4Byte UTF-8의 first Byte는 F0~F4로 구성되어 있습니다.

 - http://docs.oracle.com/cd/E24693_01/server.11203/e10729/appunicode.htm#CACHBDGH   여기를 참고해보시면  

 - 이 정보는 1~3Byte와 중복되지 않는 값으로 일종의 Key값(?)으로 생각하면 될것 같네요.



💞💞허허허💞💞 -> 허허허가 됩니다.

⛄허허 -> ⛄허허가 됩니다. 

이 문자는 3Byte로 구성된 UTF-8로 없어지지 않는 것이 맞고, 저버전 MySQL도 문제없이 처리가능합니다.

- http://apps.timwhitlock.info/unicode/inspect?s=%E2%9B%84



참고 사이트


- 특정 문자 구성내용 보기 

http://apps.timwhitlock.info/unicode/inspect?s=%F0%9F%92%9E


- UTF-8 구성표

http://www.utf8-chartable.de/unicode-utf8-table.pl


- 도움되는 사이트.

http://stackoverflow.com/questions/16496554/can-php-detect-4-byte-encoded-utf8-chars


- getEmoji

http://getemoji.com/



반응형

'프로그래밍 > PHP' 카테고리의 다른 글

php 서버 바로 띄우기.  (0) 2020.06.03
세션 관리. session id 가 계속 갱신되는 문제.  (0) 2016.03.10
[error] date_default_timezone_set()  (0) 2012.12.11
short_open_tag 설정.  (0) 2012.08.07
파일 업로드.  (0) 2012.07.11
반응형


정부표준 프레임워크라고 나와서 한번 설치 시도해봄.


GEF

 - Available Software Sites 에 이미 등록되어 있음.

 - 검색 후 설치.


amateras ERD/ UML

 - 이클립스에서 Available Software Sites 에 추가 후 설치.

 - http://takezoe.github.io/amateras-update-site

 - Amateras Modeler

   Lightweight graphical UML and ER diagram editor



플러그인 직접설치 시 디렉토리.

/Applications/Eclipse.app/Contents/Eclipse/plugins


반응형
반응형

JSTL 조건식 사용할 때..


// eq

// - ==
<c:if test="${name eq '이름'}">

<c:if test="${name eq null}">

<c:if test="${age eq 20}">


// ne

// - !=

<c:if test="${name ne '이름'}">

<c:if test="${name ne null}">

<c:if test="${age ne 20}">


// empty

// - null, 빈 문자열, 빈 배열, 빈컬렉션 검사

<c:if test="${empty name}">

<c:if test="${!empty name}">

<c:if test="${empty list}">

<c:if test="${!empty map}">



반응형
반응형



ajax 로 array data request 시 서버에서 받는 방법.



var a = [];

a[0] = 1;

a[1] = 2;

a[2] = 3;


$.ajax({


url : "/test.json",

type : "POST",

data: {

'array_data' : a

},

dataType: 'json',

success: function(data) {

},

error: function(data, status, err){

}

});





Spring 에서 요렇게 받을수 있다.

@RequestParam(value = "array_data[]", required = false) List<String> arrayData


sprint 3.x, jquery 1.10.x




반응형
반응형


하이버네이트 native sql  사용.


List<Map<String, Object>> 로 return.

String sql = "SELECT first_name, salary FROM EMPLOYEE";
SQLQuery query = session.createSQLQuery(sql);
query.setResultTransformer(Criteria.ALIAS_TO_ENTITY_MAP);
List results = query.list();


아래 함수를 사용하지 않을 경우에는 List<Object[]> 로 return.

setResultTransformer()


참조

https://www.tutorialspoint.com/hibernate/hibernate_native_sql.htm


다른 도움 사이트.

https://docs.jboss.org/hibernate/orm/3.3/reference/ko-KR/html/querysql.html



반응형

+ Recent posts