안녕하세요.

이들러입니다.

오늘은 코딩 작업 협업시 유의해야할 사항을 이야기하고자 합니다.

이러한 사항은 아래의 제품들을 제작하면서 겪었던 사항을 정리한 것입니다.

쉬운환율계산 : https://goo.gl/YUbPqd

쉬운환율계산무료버젼 : https://goo.gl/FhVBSl

모노리얼 다이어리(무료) : https://goo.gl/Ti93mz

오늘 이야기할 부분은 습관적인 부분입니다.


프로그램 관련해서 작업을 하다보면 협업은 불가피합니다.

그 어떤 사람도 규모가 큰 프로젝트를 혼자서 처음부터 끝까지 해낼 수는 없습니다.

만약 혼자서 처음부터 끝까지 해냈다면 규모가 크지 않은 프로젝트였거나, 아주 긴 기간이 걸렸거나, 

또는 개발자가 초초초천재! 개발자였을 것입니다.

따라서 협업은 개발에 있어서는 어쩔 수 없이 따라오는 부분입니다.


협업에는 도구가 필요합니다.

소스관리 시스템이라던지, 아니면 태스크관리 시스템, 이슈 트랙커 등 다양합니다.

이러한 도구를 안쓴다고 운영이 불가능한 것은 아니지만 쓴다면 실수를 줄이며 여러가지 면에서 더없이 좋습니다.


제가 오늘 말씀 드릴 부분은 이러한 관리적인 툴 부분이 아닙니다.

개발자가 사람으로서 실수할 수 있는 습관적인 부분을 말씀드리려고 합니다.

이미 조직문화나 정규화가 잘 되어 있는 규모있는 팀에서는 없는 일일 수도 있으나,

저희처럼 작은 조직에서는 흔히 일어나는 일입니다. 이 글은 저희 스스로의 경각심을 위해 작성하였습니다.

소설 처럼 내려읽어가는 형태를 취하다보니 코드는 의미만 통하도록 작성하였습니다.


1. 정해진 규칙을 따르지 않는다.

의외로 많습니다. 많은 개발자들이 종이 또는 화면 상의 문서를 보는 것을 좋아하지 않습니다.

물론 저도 좋아하지 않습니다. 이유는 잘 모르겠습니다.^^;;

빨리 뭔가를 따닥따닥 쳐서 눈에 보이고 손으로 만질 수 있는 무엇인가를 만들기를 바랍니다.

그래서 팀내부에 이미 정해져있는 문서를 제대로 읽지 않는 경우가 많습니다.

예를 들어 생활코딩이라는 커뮤니티에서도 가끔 올라오는 질문 중에 if 의 형태에 대한 것이 있습니다.

//if의 형태
// 1번
if ( isExistIdea() == true ) {
    print("존재함")
}

// 2번
if ( isExistIdea() == true )
{
    print("존재함")
}

if 의 두 형태 중 어떤걸 주로 사용하냐의 질문입니다. {} 의 시작지점에 대한 이야기인데 당연히 정답은 없습니다. 그냥 사람따라 다르고 팀따라 다릅니다. 

문제는 1번 형태로 쓰자고 모든 팀원이 논의가 끝난 상태에서 혼자 2번 형태를 사용하는 사람입니다. 정답이 없다보니 누가 뭐라고 하지도 않습니다. PSR 등의 코딩 스타일 가이드가 있긴 한데 강제는 아닙니다. 안따라도 오류가 나진 않으니, 잘 따르다가도 시간이 지나면 스멀스멀 하나씩 올라오기도 합니다. 자동으로 신텍스를 조정해주는 툴을 사용하거나 환경세팅을 통일하거나 하는 방법도 있습니다. 하지만 역시나 중요한 것은 개발자 스스로 끊임없이 자신의 코딩스타일이 가이드에 어긋나지 않았는지 확인하는 것입니다. 예시를 if로 들었을 뿐이고, 실제로 개발시에는 더 많은 논의가 생깁니다. 변수의 작명부터 클래스의 작명, 제어문의 형태, _의 쓰임, 공백의 활용 여부, 라인의 길이까지도 모두 논의 대상입니다. 위에 예시를 든 if문의 경우 팀이 둘 다 허용한다고 하면 둘 다 쓰면 그만입니다. 다만 협업시 이러한 부분은 한 번쯤은 꼭 체크하시길 바랍니다.


2. 있는걸 또 만든다.

반복적인 업무에 사용하는 함수는 참으로 편리합니다. 당연히 이런저런 유지보수를 하다보면 기능이 추가되고 그래서 필요한 함수를 추가할 경우가 생깁니다. 클래스의 메소드 등을 만들다 보면 다른 사람이 만든 클래스나 모듈을 수정하는 일도 있습니다. 급하게급하게 진행하는 경우 문서가 제대로 작성되어 있지 않으니, 코드를 위부터 아래로 쭈욱 훑어본 후에 자신이 원하는 함수가 없으면 함수를 만들기 시작합니다. 문제는 업무를 하다보면 이미 있는 함수를 다시 만드는 경우가 생깁니다. 물론 완전히 같은 함수를 두 번 만드는 경우는 별로 없습니다. 어설프게 같은 함수가 중복되는 경우가 문제입니다.

// 1번
func isBrake(Car) {
    if Car.brake == true {
        return true
    } else {
        return false
    }
}

// 2번
func isNotStopPedal(Car) {
    if Car.brake == false {
        return true
    } else {
        return false
    }
}

위의 두 함수는 같은 일을 하는 함수입니다. 함수명만 다르고 true, false가 뒤집혀 있습니다. 위에 예시는 매우 극단적이지만 조금 확장해서 생각해보면 이러한 경우는 꽤 많습니다. 위의 두 함수가 각각 따로따로 쓰여지게 되면 어느 순간 함수를 고쳐야할 순간에 혼동이 오기 시작합니다. 이러한 경우는 사실 개발자들 사이에서는 그냥 쉬쉬하는 일입니다. 일단 지금 당장 내가 짠 코드는 돌아가니 리팩토링 같은 코드 갱신 작업도 하지 않습니다. 괜시리 만졌다가 문제를 일으키고 싶지 않은 것이죠.^^;; 이 함수들의 문제는 나중에 리팩토링 등을 할 때도 꽤 많은 고민을 하게 만든다는 것입니다. 초기에 빠르게 성장하는 팀에서는 자주 발생하는 일입니다. 이 상태에서 어느 정도 성장 후에 코드를 정리하고자 하면 이미 더욱 커져버린 코드에 짊어져야할 출혈도 만만치 않습니다. 함수든 클래스든 생성 전에 반드시 문서를 확인하시고, 또한 다른 사람과의 크로스체크도 꼭 하시기 바랍니다.


3. 내꺼만 소중하다.

새로 추가된 인력이 주로 하는 실수입니다. 내가 하는 일은 너무너무 중요해서 눈에 잘 띄게 해야지 라는 강한 의식을 가지고 있을 때 발생합니다. 가령 클래스에 새로운 메소드를 추가한다면

//Car Class
Class Car() {
    var brake: Bool = flase

    func setBrake(bool) {
        self.brake = bool
    }

    /////////////////////////////////////////////////
    // isBrake : 브레이크의 존재여부를 알려줍니다
    // 시작
    ////////////////////////////////////////////////
    func isBrake() {
        if self.brake == true {
            return true
        } else {
            return false
        }
    }
    /////////////////////////////////////////////////
    // isBrake : 종료
    ////////////////////////////////////////////////
}

우리는 당신이 짠 소스가 얼마나 대단한 것인지 잘 알고 있습니다. 그러니 그냥 다른 함수 또는 변수들과 같은 형태의 정렬 또는 형태를 사용하세요. 그렇게 눈에 띄게 크게 표시 하지 않아도. 해당 모듈에 문제가 있다면 당신에게 가겠습니다.

이는 1번 규칙을 따르는 문제와 연관이 있습니다. 실제 운영을 하다보면 이러한 형태를 많이 보게 됩니다. 물론 코드는 잘 돌아가고 눈에 띄니 보기도 좋습니다. 하지만 개발 때 뿐입니다. 시간이 지나면 해당 함수는 다른 함수들과 같은 함수이며, 가령 다른 사람이 다른 함수를 수정하기 위해 저 코드를 열어보기라도 한다면 그 사람은 잠시 깊은 사색에 잠길지도 모릅니다.^^



4. 주석을 함께 수정하지 않는다.

주석은 잘못 사용하면 독입니다. 잘못된 주석은 주석이 없는 것보다 훨씬 위험합니다.

최근에는 문서를 자동으로 작성해주는 좋은 프로그램들도 있으니 문제가 안일어날 수도 있겠지만,

저는 여전히 웹소스 등을 수정할 때 에디터툴을 많이 사용하며 코드 중간중간에 주석을 넣기도 합니다.

//Car Class
Class Car() {
    var brake: Bool = false
    var smartKey: Bool = false

    func setBrake(bool) {
        self.brake = bool
    }

    /////////////////////////////////////////////////
    // 브레이크의 존재여부를 알려줍니다
    // 시작
    ////////////////////////////////////////////////
    func isSmartKey() {
        return self.smartKey;
    }
    /////////////////////////////////////////////////
    // isBrake : 종료
    ////////////////////////////////////////////////
}

또다시 극단적인 예이긴 하지만 3번 예시의 코드를 수정해 보았습니다. 관련 코드의 수정은 곧 관련 주석의 수정을 의미합니다. 위의 주석은 차라리 없는게 낫습니다. 주석을 수정할 여유가 없었다면 차라리 주석을 지워버리세요. 그러면 다음 사람은 코드만으로 함수를 이해하려고 노력할 것입니다. 코드가 명확하면 주석이 필요 없다는 말이 있습니다. 물론 그렇긴 하지만 이런저런 일을 하는 모듈일 경우 설명 한 줄 없이 모든 코드가 명확하기란 사실 쉽지 않습니다. 바쁘다보면 코드의 주석은 수정하지 않은 채 코드만 수정하는 일은 사실 굉장히 흔한 일입니다. 그러나 이 작은 실수가 추후 커다란 재앙이 되어 돌아오리라는 것을 ....... 개발자들은 다 알고 있지만 잘 안합니다. -_-ㅋㅋㅋ

따라서 주의해야 합니다.^^



정리

오늘은 흔히 하는 습관적인 실수에 대해서 이야기했습니다. 이러한 사항들은 협업 시에 특히 도드라지는데요. 혼자서 작업할 때는 잘못된 주석도 다 이해하면서 넘어가기 때문입니다. 하지만 한 두 달만 지나면. 자신이 작성해놓은 코드도 타인이 작성해 놓은 코드인것처럼 새록새록했던 기분은 누구나 다 겪어보셨을 것입니다.^^;

이 모든 글은 저 자신에게 하는 말이며, 저 역시 이런 부분이 잘 안되기 때문에 명심하고자 하는 마음에서 작성하는 것입니다.

저 역시 이러한 실수를 자주합니다. 오늘 이런 글을 작성하고, 한 두 시간 후에 또 실수를 하곤 합니다.

하지만 중요한 것은 점점 더 나아지고 있으며, 어제보다 나은 오늘이었고, 내일은 오늘보다 더 좋아질 것이라는 것입니다.

이상 이들러 개발팀이었습니다.^^


쉬운환율계산 : https://goo.gl/YUbPqd

쉬운환율계산무료버젼 : https://goo.gl/FhVBSl

모노리얼 다이어리(무료) : https://goo.gl/Ti93mz

최근 앱 JustOneLIne(https://goo.gl/q5wpte), CCWidget(https://goo.gl/YUbPqd) 을 제작하면서 디자인 관련해서 참고했던 부분들을 기록해놓으려고 합니다.



이들러(eedler)는 1인 개발팀 입니다.

처음부터 디자인관련 일은 해본 적도 없구. 감각이 평균 이하입니다.-_-;

하지만 혼자라도 해보자고 결심한 이상 못한다고 안할 수는 없었습니다.


1인 체계를 생각할 때 가장 먼저 고민했던 부분이었습니다.

디자이너가 없다. 하지만 난 고용할 돈도 없다.

그 때 생각은 '되는대로라도 해보자. 까짓꺼!' 라고 생각했지만... 힘든건 사실입니다. ^^;;


자금적 여유가 되신다면 라우드서비스(http://www.loud.kr/)를 추천합니다.

라우드는 콘테스트형식으로 디자인을 공모할 수 있습니다. 특정 금액을 제시하고 디자인에 관한 사항을 설명하면,

여러 명의 디자이너가 응모하는 방식입니다. 여러 개의 디자인 중 마음에 드는 디자인을 선택하면 공모 금액이 디자이너에게 전달되며, 해당 소스파일도 받을 수 있습니다. 계속적으로 디자인 요소가 필요한게 아니라면 단순 로고나 아이콘, 특정 색상 패턴 등을 구하고자 할 때 유용합니다.


하지만 저희는 자금적 여유가 없으므로 ^^;;

할 수 있는 방법은 최대한 외부의 다양한 자료를 참고하는 것이었습니다.

그 동안 사용했던 서비스 및 참고사항들을 정리해보았습니다.

역시나 이 포스트의 목적도 공유라기 보다는 추후 다른 팀원이 생겼을 때 저희의 궤적을 손쉽게 알리고, 추후 유지보수 시 참고하기 위함입니다.


순서

0. 홈페이지

1. 홈페이지 레이아웃 및 디자인

2. 색상

3. 폰트아이콘

4. UI

5. 이미지


0. 홈페이지

부트스트랩 http://getbootstrap.com/



부트스트랩은 트위터에서 시작한 html, css, js 프레임워크입니다. mit라이센스라서 더 없이 감사할 따름입니다.

저희는 웹에서 작업시 부트스트랩기반의 테마는 선택의 여지가 없었습니다.

개발자나 디자이너 사이에서는 부트스트랩을 써야한다, 쓰지 말아야 한다. 의견이 분분하지만 저희 같은 소규모 그룹에서는 쓸 수 밖에 없습니다.

독창적이고 개성이 넘치는 디자인과 인터페이스는 당연히 있으면 좋지만 그런 것까지 고려할만큼 여력이 없었습니다.

그래서 웹 작업시 부트스트랩 기반의 테마들을 주로 사용하였습니다.

저희의 홈페이지 http://www.eedler.com 또한 부트스트랩 기반으로 작업되어 있습니다.



1. 홈페이지 레이아웃 및 디자인

홈페이지가 필요했습니다. 디자이너가 없는 것이 형편없는 홈페이지를 가져도 고객들이 용납한다는 뜻은 아닐겁니다.

그래서 찾은 곳이 http://startbootstrap.com/ 입니다.

부트스트랩 테마 & 템플릿이 있습니다. 이곳에서 무료 템플릿을 받아서 약간만 수정하면 화려하진 않지만 단일 페이지짜리 구색은 갖출 수 있겠다고 생각했습니다.

소규모 그룹일 경우 홈페이지를 완전히 새로 만드는 것은 사실 쉽지 않습니다. 더군다나 요즘따라 모바일 접속자가 굉장히 많은 경우 디바이스 크기에 따라 반응적인 화면을 구성해야 하는데, 그걸 처음부터 직접 작업한다는 것은 홈페이지 작업만 해도 상당 시간 공을 들여야 합니다. 모바일 대상의 웹 html, js, css를 직접적으로 다뤄본 개발자라면 다들 공감하실겁니다.

최근엔 자신들의 본연의 서비스에 집중하기 위해 고객과의 소통은 소셜채널, 페이스북 페이지, 블로그 서비스, 트위터, 블로거, 텀블러 등의 서비스 등을 이용하는 스타트업도 상당히 많습니다. 기존에 잘 구성되어 있는 서비스를 이용하는 것은 다방면에서 저희에게 큰 매력입니다.

물론 그런 서비스로도 어느정도는 커버가 되지만... 저희도 홈페이지 하나가 갖고 싶었습니다. >,.<;;


디자인과는 약간 동떨어진 이야기지만 잠시 홈페이지 구축에 관한 이야기를 하겠습니다.

그래도 홈페이지 화면이라도 하나 띄워놓고 싶다면 최근 무료로 웹사이트를 만들어주는 빌더들을 사용하시는 것도 고려해 보시기 바랍니다.

저는 사용해본적이 없으나 다들 좋다고 난리인  https://wix.com  가 있습니다.


어느정도 학습이 가능하시다면 워드프레스를 추천드립니다.

https://ko.wordpress.org/



블로그나 홈페이지 구축시 상당히 시간을 단축시킬 수 있으며, 사실 매우매우 좋습니다. 저희는 구색을 위해 한 페이지 짜리 홈페이지가 필요해서 특별히 사용하진 않았지만 자기만의 독특한 기능이 있지 않고 표준적인 형태의 홈페이지를 구축하길 원하신다면 추천드립니다. 그 안에서의 플러그인들과 테마들은 워드프레스를 선택할 충분한 이유입니다.



http://www.eedler.com

eedler 홈페이지의 경우 저희는 카페24의 가장 저렴한 웹호스팅 서비스를 이용하고 있습니다. 특별한 기능은 없이 랜덤한 테마 변경과 founder에게 메일만 보낼 수 있고, 사용자들의 사용 언어를 판별하여 앱스토어 주소를 언어에 맞게 연결해주는 단순한 기능만 들어가있습니다. 홈페이지 언어는 php로 작성되어 있는데 php 언어의 선택 이유는 그 서비스가 가장 싸기 때문이었습니다.^^;;

지금 읽고 계신 해당 블로그는 http://www.tistory.com/ 서비스를 이용하고 있습니다. 네이버 블로그보다 자유도가 높고 단순한 형태라서 마음에 들었습니다. 이런 형태를 이용한 이유는 단순히 접근하기 쉬웠기 때문입니다. 모르는게 있을 때 빠르게 검색해서 빠르게 적용하고 싶었기 때문입니다. 게다가 테마를 이용할 수 있고 그게 이뿝니다. 직접 하는 것보다 훨씬 더 ^^.  없어보이면 안되기 때문에, 그렇지만 유일무이한 페이지를 만들 수는 없었기에 이런 표준적인 서비스가 저희에게 맞다고 판단하였습니다.



2. 색상

색상조합은 디자이너가 없는 저희에게는 최악의 과제입니다.

이것 때문에 여전히 고민하고 생각하고 찾아보고, 물어보고 하면서 하지만... 여전히 저희 팀의 앱이나 웹은 촌스럽습니다. -_-ㅋㅋㅋ

완전 초창기의 앱은 90년 대에 스마트폰앱이 있었다면 나올 법한 디자인이다. 라는 평가를 지인으로부터 들었습니다.^^;;

그 때문에 CCWidget 이라고 하는 환율계산기 앱은 지금 완전히 새로운 형태의 2.0을 작업 중입니다.

그래서 참고할 자료를 열심히 찾았지만 ... 하지만 알게 됐죠. 참고할 자료가 있어도 그걸 조합할 능력이 있지 않다면 소용 없다는걸요 -_-ㅋㅋㅋ

결국 JustOneLIne(https://goo.gl/q5wpte) 이라는 앱은 흑백을 바탕으로 나왔지만 그 흑백바탕도 다양한 조합을 찾아보고 색상을 선택하였습니다.

어찌됐건 저희는 색 조합에 대해서 많은 고민을 했고 자료를 찾았습니다. 찾아봐서 참고했던 목록들을 소개합니다.

색상 조합은 http://www.colourlovers.com/ 에서 참고하였습니다. 

인기순, 선호도순으로 정렬도 지원해서 이런저런 생각들을 다양하게 볼 수 있습니다.


또다른 색상세트는 https://color.adobe.com 에서 찾으면 많습니다.

역시나 처음부터 직접 하는 것보다는 사람들의 검증을 통한 색상세트를 참고해서 재창조 하는게 훨씬 낫습니다.



3. 폰트아이콘

저희는 사실 글꼴이 그리 민감한 편이 아니라 시스템글꼴만 사용하기로 결정하였습니다. 제일 유명한 글꼴은 역시나 나눔글꼴입니다. 어디서나 유용하고 대부분의 개발자 및 디자이너 분들은 알고 계신 폰트일테니 따로 설명할 필요가 없을 것입니다. 글꼴을 찾아볼까 했으나 사용할 수 있는 라이센스 등을 찾아서 확인하는 것도 저희에겐 과제라 그 부분은 무시하고 싶은 마음도 있었습니다. JustOneLIne 같은 경우 랜덤으로 변하는 카드 형식의 상세보기가 글꼴도 바뀌었으면 하는 초반의 기획도 있었으나, 작업시 이리저리 바뀌는 레이아웃, 글씨 사이즈에 글꼴까지 바뀌니 정신이 없어서 글꼴의 랜덤작업은 제외되었습니다.

Font Awesome  http://fontawesome.io/ : 앱, 웹 등에서 아이콘 작업을 할 때 필수입니다.

FontAwesome의 경우 추후 다른 포스트로 다시 다룰 생각입니다.


iconfinder  https://www.iconfinder.com/ 말 그대로 아이콘 찾아줍니다. ㅋㅋ 

찾아보면 무료도 있어서 무료에서만 잘 활용하셔도 더 없이 좋은 곳입니다.



4. UI

UI는 http://ui-cloud.com/ 의 도움을 많이 받았습니다.

여기서 UI를 보고. 이런저런 기획을 변경하고 바꿀 수 있었습니다.

저희는 여기서 어떤 특정 UI를 채택해서 다운받거나 하진 않았지만 다양한 발상을 해볼 수 있는 곳으로 상당히 도움을 받았습니다.

그리고 디자인셋이 있다고 해도 그걸 자신의 제품에 적용하는건 또 다른 문제라는걸 여기서 절실히 느끼고 안타까워했었습니다. ^^;;



5. 이미지

https://unsplash.com/, https://pixabay.com/

사진관련 내용은 http://blog.eedler.com/9 에 정리해놨습니다.


물론 잘 나가는 팀은 외주도 주고 직원도 쓰고 하면 제품의 퀄리티가 확 올라가지만 저 같은 초기에 시작하는 입장에서는 외주는 쉽지 않습니다.

1인 기업은 대부분 리소스가 부족합니다. 저희도 마찬가지구요. 그에 따라 최선을 다해 외부 자료나 참고자료를 뒤져서 최대한의 효과를 보기 위해 노력했습니다.

이 글이 혼자서 뭔가를 해보려고 하는 다른 개발자 분들에게 도움이 되었으면 좋겠습니다.

이상 eedler였습니다. 감사합니다.^^


ps.

 https://color.adobe.comhttp://ui-cloud.com/https://www.iconfinder.com/ 등의 사이트는 더데이비포 라는 디데이 앱을 만들고 운영하는 ibillstudio의 이선재 대표님으로부터 추천 받았습니다. 이 사이트 외에도 다양한 관련 정보를 주셔서 늘 감사하고 있습니다.^^;


앱스토어 주소

JustOneLine : https://goo.gl/q5wpte

CCWidget : https://goo.gl/YUbPqd

  1. nekodearu 2017.05.24 19:44 신고

    좋은 글이네요. 즐찾해둬야겠어요.

EzCurrency : How to add EzCurrency to your iPhone's Notification Center


한국어 : http://blog.eedler.com/2


EzCurrency is an awesome widget to help you with calculating the currency exchange rate.

Way of use is simple and easy and it is applicable for various currencies.

After installation of the app, you can also use calculating feature through the widget.

Here is how to add the widget on your iPhone


1. Open "Notification Center" by sliding down the upper screen.


2. Tap "Today" button on the top of the page.



3. Scroll down and tap "Edit" button at the bottom.



4. At Do Not Include section tap the green "+" button at the left of EzCurrency.



5. Now you can check EzCurrency at the top screen widget list.



6. If you want to change the order of widget list, drag the three line button on the right of widget name and put it on the spot you want.



7. Tap "Done" button on top of the screen



That's all for adding the widget


From Now you are able to easily calculate the exchange rate at the Notification Center during the usage of iPhone.

Thank you.


AppStore : http://goo.gl/Nd51U3


EzCurrency : iPhone 위젯 등록 방법


English : http://blog.eedler.com/3


EzCurrency(쉬운환율계산)은 굉장히 멋진 환율계산위젯입니다.

사용법은 단순하고, 쉬우며, 다양한 통화를 지원합니다.

App 설치 후 환율계산은 앱과 위젯을 통해서 할 수 있습니다.


이제부터 iPhone 위젯 추가 방법을 안내하겠습니다.


1. 아이폰 상단 화면에서 쓸어내려 iPhone의 Notification Center를 엽니다.



2. 화면 상단의 Today 버튼을 탭합니다.



3. 스크롤 다운 후 하단의 Edit 버튼을 탭합니다.



4. 'Do Not Include 에서 EzCurrency 의 왼쪽 녹색 + 기호를 탭합니다.



5. 이제 화면 윗부분의 위젯목록에서 EzCurrency를 확인할 수 있습니다.



6. 만약 당신이 위젯의 정렬순서를 변경하고 싶다면, App 이름 오른쪽에 세 줄 아이콘을 드래그하여 원하는 위치에 놓으십시오.



7. 화면 상단의 Done 버튼을 탭합니다.



이것이 위젯등록을 위한 전부입니다.

이제 아이폰 사용 중 Notification Center에서 환율을 손쉽게 계산하세요.

감사합니다.


앱주소 : http://goo.gl/YUbPqd

+ Recent posts