*. 시간날때 마다 정리할 예정입니다.


sendmm3 소스 다운로드 경로

https://github.com/kakopappa/AndroidMMS



1. 현재 기능 구현 중 3사(SK, KT, LG)에서 전송 성공 확인

  -> 테스트 단말 : 갤럭시 J7(2017), 갤럭시 노트8


2. 이미지, 동영상 전송 기능 성공

  -> GIF(애니메이션 이미지), PNG, JPG, MP4 등



-기타 내용-

*. LG 통신사에서 MMS 전송 시 서버에서 결과는 200을 받으나 실제로 전송안될 경우

  -. setFrom()에 자기 핸드폰 번호를 정상적으로 설정했는지 확인이 필요함


WRITTEN BY
whitewave
WhiteWave의 Blog

,

*. parsing data for android-mnc failed Error

  -. 경고창이 뜨면서 아래와 같은 에러 발생시

    loading data for android m has encountered a proble

    parsing data for android-mnc failed

 



 parsing data for android-mnc failed 에러가 뜨면 activity_main.xml을 실행 시켰을 경우 아래와 같이 아무것도 안보임.


빨간 네모 부분을 버전과 동일 하게 변경 해주면 해결됨




WRITTEN BY
whitewave
WhiteWave의 Blog

,

* 스위프트 함수 선언 및 호출


 다른 언어와 별 다른 차이점이 없기 때문에 자세한 설명은 생략















* 디폴트 함수 매개변수 정의


  buildMessage함수를 수정하여 이름매개변수가 인자로 전달되지 않을 경우 디폴트로 Customer라는 문자열이 사용되도록 변경


















* 함수로부터 여러 개의 결과 반환하기


 함수는 여러 결과 값들을 튜플로 감싸서 반환할 수 있다. 이 함수의 반환 타입은 Float 타입으로 yards, centimeters, meters라는

 이름의 세 개 값을 포함하는 튜플을 반환하는 것을 가르킨다.













* 함수 매개변수의 변수 개수


 가변매개변수(variadic parameter)를 사용하여 매개변수는 함수가 지정된 데이터 타입으로 0개 또는 그 이상의 매개변수를 

 받는다는 것을 가리키기 위해서 세 개의 점(...)을 이용하여 선언된다.


 





WRITTEN BY
whitewave
WhiteWave의 Blog

,

* where문 사용하기


  where문은 witch case에 부가적인 조건을 추가하기 위하여 사용 될 수 있다.













 * fallthrough


  다른 언어의 switch 문에 익숙한 독자라면 각 case문 다음에 break문을 포함할 필요가 없다는 것에 주목해야 한다.

 swift는 일치하는 case 문을 만나면 자동으로 빠져나온다. fallthrough효과는 fallthrough문을 이용하여 구현할 수 있다















 스위프트 switch구문에서는 보통 break문이 사용되지 않지만 default case에서 해야할 작업이 없을 경우에 유용함


WRITTEN BY
whitewave
WhiteWave의 Blog

,

* 스위프트 옵셔널 타입(optional type)


 스위프트 옵셔널 데이터 타입은 기존의 다른 프로그래밍 언어네는 없는 새로운 개념.

 목적 : 변수 또는 상수에 아무런 타입의 값이 할당되지 않는 사황을 처리하기 위해 안전하고 일관된 방법 제공


 옵셔널하게 변수를 선언하기 위해서는 타입 선언부 뒤에 " ? " 문자를 두면 된다.


 index 변수는 이제 정수 값을 갖거나 아무 값도 갖지 않을 수 있다. 이면에서는 옵셔널 변수에 값이 할당되지 않아 컴파일러

 와 런타임에 문제가 되므로 변수는 실제로 nil의 값을 갖는다.

 

 옵셔널은 다음과 같은 방법으로 변수에 할당된 값이 있는지를 식별한다.

 


 





 만약 옵셔널이 할당된 값을 갖는다면 그 값은 옵셔널에 "래핑되었다(wrapped)"라고 한다. 옵셔널에 해핑된 값은

 강제 언패링(forced unwrapping)이라 불리는 개념을 사용하여 접근된다. 간랸하게 말하자면 옵셔널 데이터 타입에서 값을

 추출한다는 의미이고, 옵셔널 이름 뒤에 느낌표(!)를 두어 실행한다.



 





 



 만약 옵셔널 변수은 index가 값을 가지고 있다면, 배열에서 그 위치에 해당하는 값을 콘솔에 출력해준다. 

 index는 옵셔널 타입이기 때문에 해당 값은 변수 이름 다음에 느낌표를 사용하여 언래핑된다.

 

 index변수가 언래핑되지 않았다면(즉, 위의 코드에서 느낌표를 생략했다면)컴파일러는 다음과 같은 에러를 내놓을 것이다.


  Value of optional type Int? not unwrapped


 강제 언래핑하는 또 다른 방법으로, 옵셔널 바인딩(optional binding)을 이용하여 옵셔널에 할당된 값을 임시 변수 또는 상수에 

 할당할 수 있다.


 




 






 위의 코드는 두 가지 작업을 한다.

 1. 지정된 옵셔널이 값을 가지고 있는지를 확인

 2. 옵셔널이 값을 가지고 있다면 선언된 상수에 그 값을 할당하고 if문 수행

  즉, index가 값을 가지고 있는지 확인 후, 가지고 있다면 myvalue상수에 index의 값을 할당 시키고 if문 수행












 옵셔널이 암묵적인 언래핑(implicitly unwrapped)이 되도록 선언할 수도 있다. 

 이러한 방법으로 옵셔널이 선언된다면 강제 언래핑이나 옵셔널 바인딩을 하지 않아도 값에 접근할 수 있다. 

 암묵적인 언래핑으로 옵셔널을 선언하기 위해서는 느낌표를 사용하면 된다.


 암묵적인 언래핑으로 선언된 index 옵셔널 변수는 위의 print호출에서 배열의 인덱스를 사용할 떄 더이상 언래핑할 필요가 없다


 오직 옵셔널 타입만 아무런 값을 갖지 않거나 nil값을 가질 수 있다.





WRITTEN BY
whitewave
WhiteWave의 Blog

,

* 컬럼명 변경

ALTER TABLE "TABLENAME" RENAME COLUMN "변경전컬럼명" to "변경할컬럼명";

ex) ALTER TABLE USER_INFO RENAME COLUMN LOGIN to LOGINTIME;

 

* 컬럼 추가

ALTER TABLE "TABLENAME" ADD ("추가할 컬럼명" VARCHAR2(20));

ex) ALTER TABLE USER_INFO ADD (USE_YN VARCHAR2(20));

 

* 컬럼 삭제

ALTER TABLE "TABLENAME" DROP("삭제할 컬럼명"); 

ex) ALTER TABLE USER_INFO DROP(LOGINTIME);

 

* 컬럼 커멘트 달기 및 변경   

COMMENT ON TABLE "TABLENAME"."컬럼명" IS '컬럼 커멘트';

ex) COMMENT ON TABLE USER_IFO.LOGINTIME IS '사용자 로그인 시간'

'DB > oracle' 카테고리의 다른 글

사용자 계정 조회  (0) 2015.07.14
사용자 잠금 해제  (0) 2015.07.14

WRITTEN BY
whitewave
WhiteWave의 Blog

,

 * 이클립스의 배경을 Dark로 변경해 주는 테마 (Moonrise UI Theme)

 

Help -> Eclips Marketplace... 클릭

 

 

Moonrise UI Theme 검색

 

 

다음과 같이 확인 하고 Confirm클릭

 

 

I accept the terms of the license agreement 클릭 후 Finish 클릭

 

 

Finish를 클릭 하면 설치 진행

 

 

경고창이 뜨면 OK 클릭 후 설치 계속 진행

 

 

설치 완료 후 재시작

 

Window -> Preferense 클릭

 

 

General -> Appearance -> Theme : MooRise 선택

 

 

테마를 선택 하면 다음과 같이 변경

 

 

참고 : http://marketplace.eclipse.org/content/eclipse-moonrise-ui-theme#.U9u22UhVXIE


WRITTEN BY
whitewave
WhiteWave의 Blog

,

* 이미지가 잘 보이지 않으면 클릭하세요. 

 

이클립스에서 Help -> Eclips Marketplace... 을 클릭

 

 

Find 검색란에 theme 입력 후 검색 -> 목록 중에 Eclipse Color Theme 1.0.0 Install

 

 

체크 확인 후 Confirm 클릭

 

 

i accept the terms of the license agreement 선택 후 Finish 클릭

 

 

설치 진행

 

 

경고 창이 뜨면 OK를 누름

 

 

설치 계속 진행

 

 

이클립스 재시작

 

 

재시작 후 Window -> Preferenes 클릭

 

 

General -> Color Theme 선택 후 원하는 테마로 변경

 


WRITTEN BY
whitewave
WhiteWave의 Blog

,

자세한 내용은 첨부 파일을 확인 하세요

이클립스 디버그모드 사용법.pdf



처음 이클립스 실행 후 네모부분을 클릭



새로운 윈도우창 목록중 "Debug"를 선택한 후 Ok를 클릭


메뉴바에서 벌레모양 아이콘의 "Debug"항목이 생성됨




Breakpoint(종단점)을 걸고 싶은 라인을 선택한 후 라인번호를 더블클릭함.

 (또는, 해당라인 선택 후 단축키 Control + Shift + B를 누름)

 (파란색원이 생긴 라인이 Breakpoint가 걸린 위치임)



벌레모양 아이콘을 클릭



아래와 같은 경고창이 뜨면 "Proceed"항목을 클릭



아래 그림과 같이 실행이 진행되다가 BreakPoint를 만나면 해당 줄코드를 실행하기 직전에 진행이 멈춤



코드가 진행되다가 멈춘 후에 아래 그림에서 네모부분에 있는 버튼을 이용해 단계별로 코드를 진행할 수 있음




단축키는 왼쪽부터 F7, F6, F5


 - 각 버튼 설명 -

  F5 : 현재 상태에서 한 단계아래 코드로 진입.

  F6 : 한 줄 아래 코드 실행

  F7 : 함수의 return까지 실행



현재 코드에서 Breakpoint는 computerSpec Method를 호출 하는 부분에 걸었고 현재 컴퓨터 수량을 입력 받은 후 Breakpoint위치에서 코드가 일시정지됨



F5를 누른 경우 computerSpec Method부분안으로 코드실행 위치가 변경됨

(계속해서 F5를 누를 경우 해당 코드의 한 단계 더 아래 코드를 실행함)



그 다음 F7을 누른 경우 코드가 한줄씩 실행이 아니라 해당 Method의 끝부분 까지 실행됨



F6을 누른 경우 해당 Method내부코드를 보여 주지 않고 바로 실행됨



다음과 같이 코드를 실행 한 후 변수에 저장된 값을 확인 할려면



위 그림에서 네모 부분을 보면 아래와 같이 같이 각각에 저장된 값을 확인하고 코드가 실행될때마다 값이 어떻게 바뀌는지 확인




WRITTEN BY
whitewave
WhiteWave의 Blog

,

-Server- 


- Client-


-대화방-


-최종-



WRITTEN BY
whitewave
WhiteWave의 Blog

,