[Swift5] 화면 전환하기

(storyboard와 show함수 사용)


Android에서 화면전환을 할때에는 Intent를 생성하여 startActivityForResult 함수를 사용하여 다른 액티비티로 전환을 했습니다. (Manifest도 적용을 해줘야 에러가 안난다는건 잊지말아야 하구요!)

 

하지만 iOS에서는 화면전환시 어떠한형식으로 전환을 하면 좋을까요?

사실 화면전환 방법은 다양한 방법이 있지만, 오늘은 storyboard에 id를 입력해주고, controller클래스에서 show 함수를 사용하여 화면을 전환하는 형식을 배워보도록 하겠습니다.

사실 storyboard의 경우 저는 Android의 xml에 대응한다고 생각을 하고 있습니다. (조금 다른면이 많이 있지만)

때문에 Android에서의 Intent 형식과 비슷한 형식을 취하는 방법을 알려드릴까 합니다.

 

요약해서 보기

프로젝트를 생성하시고,

Main.storyboard에서 기본생성된 ViewController에는 버튼을 생성하고(다음화면으로 이동할 이벤트 발생용),

이동할 ViewController를 추가로 생성합니다.

이동할 ViewController를 선택하시고 Identity의 Storyboard ID input 상자를 입력해줍니다.

입력된 Storyboard Id를 잘 기억하고 계시고,

초기 생성된 ViewController의 class로 이동합니다.

class에서 Button의 멤버생성 및 action이벤트를 생성합니다.

생성된 action이벤트에 아래와 같은 코드를 생성합니다.

//생성된 Main.storyboard와 연동작업 (변수에 담는 작업)
let myStoryBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
//aController에 이동할 storyBoard의 ID를 지정합니다. (다음화면의 ID)
let aController = myStoryBoard.instantiateViewController(widthIdentifier: "여기에 기억하고 계신 StoryBoard ID를 입력")
//show함수에 생성한 aController 변수를 매개변수로 넘겨줌으로써 클릭이벤트가 발생하면 이동할 storyBaord ID와 매칭되어 화면이 전환됩니다.
self.show(aController, sender: self)

 

따라해보기

0. 프로젝트를 생성하시고,

1. Main.storyboard로 이동하여 기본 생성된 ViewController와 별개로 두개의 ViewController를 생성하겠습니다.

  -> 기호에 따라 저처럼 NavigationController를 붙이셔도 됩니다!

ViewController를 추가합니다.

 

2. View를 이동하기 위한 이벤트를 걸어줄 Button을 생성합니다.

Button을 생성하고 Title를 지정합니다. (저의 경우 A Controller, B Controller라고 지었습니다.)

 

 2.1. Button에 Title을 지정하는 방법입니다.

버튼을 더블클릭해도 쉽게 변경이 가능합니다.

 - 생성된 버튼 클릭

 - 우측 상단의 Show the Attributes inspector 아이콘을 선택합니다. (선택되어있는지 확인)

 - 하단의 Title input 상자에 버튼에 보여질 Title을 입력하시면 됩니다.

 

3. 알아보기 쉽게 생성된 Controller에 각각 Label을 추가합니다.

저의 경우 A와 B로 입력했습니다. (Label의 추가 및 Title변경도 위 Button 추가하시는것처럼 진행하시면 됩니다.)

4. A를 입력한 Controller를 선택하시고,

    우측 상단의 Show the Identity Inspector 아이콘을 클릭하신 후,

    Storyboard ID input 상자를 입력해줍니다. (입력한 Storyboard ID는 잘 기억해둡니다.)

왼쪽 상자부터 클릭해가면서 차근히 따라해봅니다.

 

5. B를 입력한 Controller도 4번과 동일하게 만들어줍니다.

   단, Storyboard ID는 고유해야하므로 B는 BController등의 형식으로 입력해줍니다.

Label에 B를 입력한 Controller도 A와 동일한 작업을 해줍니다. (Storyboard ID는 다르게)

 

 -> 여기까지 Storyboard ID를 지정해 줌으로써 Android에서 xml의 android:id="@+id/~~~"와 동일한 작업을 했다고 생각하시면 되겠습니다.

 

6. 기본 생성되었던 View에 연결된 ViewController class를 storyboard와 함께 보이게 합니다.

   - 함께 보이는 방법은 우측 상단의 Add Editor on Right 버튼을 찾아 클릭하신 후, 하나는 class를 선택하시고, 하나는 storyboard를 선택하시면 됩니다.

Add Editor on Right 버튼은 이미지에 표시된 상자입니다.

7. 버튼을 우클릭한 상태로 클래스로 드래그하여 변수로 연결시켜줍니다.

여기서는 편리상 btn_a, btn_b로 생성하였습니다.

8. 7번처럼 동일한 방식으로 Action(onClick) 이벤트 함수도 생성시켜줍니다.

여기서도 편리상 onClick_a, onClick_b로 생성하였습니다.

 

9. 아래와 같이 myStoryBoard 변수의 추가와, onClick 이벤트 내 코드를 추가합니다.

여기까지 따라오셨다면 끝!

10. 실행을 해보시면 A와 B button을 누름에 따라 다른 화면(A, B)이 나옴을 확인할 수 있습니다.

 

기본 Main View
A Controller 버튼을 클릭했을때 나오는 A View

 

B Controller 버튼을 클릭했을때 나오는 B View

 

완성된 코드

class ViewController: UIViewController {


    @IBOutlet weak var btn_a: UIButton!
    @IBOutlet weak var btn_b: UIButton!
    
    //추가
    let myStoryBoard : UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }
    
    
    @IBAction func onClick_a(_ sender: Any) {
        //추가
        let aController = myStoryBoard.instantiateViewController(withIdentifier: "AController")
        
        self.show(aController, sender: self)
    }
    
    @IBAction func onClick_b(_ sender: Any) {
        //추가
        let bController = myStoryBoard.instantiateViewController(withIdentifier: "BController")
        
        self.show(bController, sender: self)
    }
    
}

 

금방 정리할 줄 알았더니 시간이 좀 걸려버렸네요.ㅠㅠㅠ

 

테스트 장비 : 맥미니(2020)

 

버전정보 (v1.0)

 - v1.0 2020.07.02 배포

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Karzin

abbeea@naver.com


Project.다원 Ensemble_

개발동기 - 개발목표 - 기대효과 - 벤치마킹


오늘은 Ensemble ERP의 개발동기 - 개발목표 - 기대효과 - 벤치마킹을 해볼까 합니다.

 

사실 설계를 함에 있어서 개인적으로 정리해둔 설계방식(링크)을 보통은 따르고, 그렇기 때문에 지키려고는 했지만,

마음이 앞서다보니 자꾸 앞단은 건너뛰고 얼른 분석해서 설계하고 개발진행하려고만하네요 ㅋㅋ..


개발동기

저희 회사는 작은 중소기업이다보니 그룹웨어나 ERP가 없습니다.

아직도 Word의 문서화를 진행하고있고 (물론 ERP가 있어도 문서화의 진행은 계속되겠지만,)

조금이라도 간략화하고 싶었고, 체계적인 정보시스템을 구축함으로써 다들 좀더 편리해졌으면 싶은 생각에서 시작되었습니다. 특히 문서프로그램 자체가 워낙 이것저것 다 쓰다보니 복잡하기도하고, 양식을 한 프로그램으로 최대한 맞춘다고해도 결국 또 다른 양식의 무언가가 나오는..

또한, 저희 회사처럼 작은 회사들은 그룹웨어나 ERP를 사용하기 부담스럽겠다는 생각도 많이 하게 되었어요.

그래서 조금이나마 짐을 덜어주는 다원 Project가 되길 바래서 개발을 시작하게 되었습니다. (모두가 다 원하고 사랑하는 프로젝트로 나아갔으면 해서..)

 

진심을 말하자면, 무엇보다도 제 입맛따라 만들어야지 이게 또 나중에 커스텀하는 재미가 있지 않겠습니까? 핳하핳ㅎ.. <- 누가 개발자 아니랄까봐 사실은 정말로 이쪽이 좀 더 진심입니다 핳하ㅏㅎ핳...

 

 -> 조금 진심내서 제대로 개발동기를 그려보자면..

 

Project.다원의 Ensemble ERP는 체계적인 정보시스템의 구현을 통하여 복잡하고 다양한 문서화 작업을 획기적으로 줄여 작업의 능률을 향상시킵니다.


개발목표

목표는 심플합니다.

 - 누구나 간편하게! 편리하게! 를 기본으로 두고,

 - 버그의 최소화

 - UI / UX의 간편화

 - 문서 자동화

를 목표로 두고 있습니다.

하다보면 하게되는 공부는 덤이네요.

 

 -> 개발목표도 조금 진심내서 제대로 그려보자면..

 

Project.다원의 Ensemble ERP는 누구나 간편하고, 누구나 편리하게 사용할 수 있습니다!


기대효과

기대효과는 저의 문서화 작업이 최소화 될 것입니다.

편리해지고, 무엇보다 작업능률이 그만큼 오르게 되겠죠?

또 외부 스토리지에서 관리하는 만큼 사무용 PC의 용량도 확보가 되고,

접속만 하면 원하는 시간에 열람도 가능하고 (내부망 한정 - 일과시간 - 이후에는 VPN 등)

문서를 찾아보는 시간도 줄일 수 있습니다.

 

 -> 점점 졸려오지만 제대로 그려보겠습니다.

 

우리는 Ensemble ERP System의 도입을 통해 문서작업의 최소화, 사무용 PC 스토리지 확보, 작업 능률의 향상, 시간의 절약까지 경험할 수 있습니다.


벤치마킹

벤치마킹은 고민을 많이 했습니다.

다들 아시겠지만, ERP를 검색하면 나오는 회사들 엄청 많고, 심지어 오픈된 소스도 인터넷을 찾아보다보면 나와요.

다만, 그 오픈소스 라이센스가 일반적인 기업에서 사용해서 문제가 생기지 않는 라이센스일지가 가장 큰 문제겠지만 말이죠.. 나중에 문제가 생길 수 있는 라이센스는 어느 기업이든 사용하고 싶지 않을테니 말이죠.

여기서 제가 만든 ERP로는 유료나 이미 만들어진 Open Source ERP에는 비비지도 못하는건 당연히 알고 있는 사실입니다. (또 많이 변칙적일 거구요.)

단지 제가 이 시스템을 구축하려는 큰 이유 중 하나는 그저 누군가에게 조금이나마 도움이 되도록 만들어보자 (우선은 저부터) 라는 생각에서 이루어진거기 때문에 벤치마킹은 적당히 넘기도록 하겠습니다.

 

다만, 어차피 이왕 만들고 쓰는거라면, 다른 ERP보다 변칙적일 순 있지만, 좀 더 사용자 친근하게, 여러 플랫폼(PC, 모바일, 태블릿 등)에서도 지원이 가능하도록 하자는게 저의 생각입니다.

 

 -> 수기작성(????), 문서화(?), Ensemble ERP System의 벤치마킹

 

우리는 Ensemble ERP System을 사용함으로써 더욱 풍요롭고(자원 절약), 자유롭고(시간절약), 편하고(간편도), 작업 능률의 향상을 느낄 수 있습니다.


 

여담으로 조금 장난삼아 작성은 되긴 했지만, 그래도 나름 여러가지 생각하고 담아내려 노력하면서 작성한다고는 했습니다. (요즘 개그감이 떨어졌는지 갈수록 부장개그를 연발..)

글들이 워낙 재미없는 분석, 설계 관련만 나오다보니 조금은 재미있게 진행하려고는 했는데 의도적으로 잘 전달되었는지는 모르겠네요..ㅠㅠ

 

그림에 사용된 템플릿이나 아이콘같은거 물어보시는 경우 있던데, 제가 직접 수작업입니다.

이래보여도 나름 행정병 출신이라.. (약 2년 동안 엑셀,워드,파워포인트,한글 밤낮으로 뼈빠지게 만진것만 생각하면 아직도 치가 후덜덜....)

어쩌면 행정병 때 매일같이 문서작업하면서 자동화를 염원했던게 지금 표출되는거일지도 모르겠네요 ㅎㅎ

 

굿밤입니다.

 

버전정보 (v1.2)

 - v1.0 2020.07.02 배포

 - v1.1 2020.07.02 수정 (이미지 변경 및 문장 추가)

 - v1.2 2020.07.02 수정 (문장 수정)

 

* 본 게시글의 이미지에 들어간 글씨체는 네이버 나눔 글씨체인 나눔스퀘어 Bold를 사용했습니다.

* 본 게시글의 이미지는 전부 (이미지 내의 픽토그램 등) 직접 제작했음을 명시합니다.

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Project.다원은 개인(karzin)이 기획, 분석, 설계, 디자인, 개발, 유지보수 등

모든 부분을 혼자 맡아 진행하는 개인 프로젝트입니다.

Project.다원 Ensemble

Karzin

abbeea@naver.com


[Swift5] 버튼 보이게 / 보이지 않게 하기

(Android와 비교)


iOS 앱 개발을 하다보면 버튼을 보이게 하거나 보이지 않게 해야하는 경우가 있습니다.

이런 경우 코드로는 어떻게 표현을 해야하는지를 알아보겠습니다.

 

우선 안드로이드에서 사용하는 버튼을 보이거나 보이지 않게하는 방법입니다. (setVisibility함수 사용)

 

Android에서 사용하는 방법(Java)

private Button btn_test

//init
btn_test = findViewById(R.id.btn_test);

//버튼을 보이지 않게
btn_test.setVisibility(View.INVISIBLE);

//버튼을 보이게
btn_test.setVisibility(View.VISIBLE);

 

iOS에서는 @IBOutlet으로 Storyboard에서 간단하게 드래그로 변수 선언을 해주시고, layer의 isHidden을 이용해 컨트롤합니다.

 

iOS에서 사용하는 방법입니다.(Swift5)

@IBOutlet weak var btn_test: UIButton!

//버튼 보이지 않게
btn_test.layer.isHidden = true

//버튼 보이게
btn_test.layer.isHidden = false

 

단, 위 코드는 UIBarButtonItem 컴포넌트에서는 먹히지 않습니다. (layer가 선언이 되는 컴포넌트는 전부 가능 - Button, View 등)

 

컴포넌트가 UIBarButtonItem인 경우(Swift5)

@IBOutlet weak var navigation_btn_test: UIBarButtonItem!

//버튼 보이지 않게
navigation_btn_test.isEnabled = false
navigation_btn_test.tintColor = UIColor.clear

//버튼 보이게
navigation_btn_test.isEnabled = true
navigation_btn_test.tintColor = UIColor.black

 

UIBarButtonItem 컴포넌트의 경우 아무래도 isHidden을 사용할 수 없는 모양입니다.

(객체 내에서 Hidden을 시킬 수 있는 함수나 멤버가 없는 모양)

따라서 위의 소스는

1. 버튼을 사용하지 못하게 막음.

2. 색상을 없애버려 없는 버튼처럼 만들어 줌.

두가지를 이용했다고 보시면 됩니다.

 

단, 이는 제가 아직 부족한 부분이 많아서 다른 좋은 방법이 있을 수 있으므로, 좋은 방법이 있다면 업데이트 해두도록 하겠습니다.

(소스의 표현방식은 각양각색이니까요!)

 

 

테스트 장비 : 맥미니(2020)

 

버전정보 (v1.0)

 - v1.0 2020.07.01 배포

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Karzin

abbeea@naver.com


[Xcode] sotryboard에 UI Component 추가하기


솔직히 이건 아실분들은 다 아시겠지만..

Xcode 10부터는 UI Component의 위치가 달라졌습니다.

(저는 이거 몰라서 헤맸다죠 ㅋㅋㅋㅋㅋㅋ)

 

예전엔 분명 우측 하단에 존재했을 UI Component의 위치가 이제는 우측 상단 + 버튼으로 변경되었습니다.

(간만에 iOS개발하느라 바뀐걸 몰랐...)

 

- UI Componet 버튼의 위치

 -> 우측 상단 + 버튼을 찾아보세요. 아래 이미지의 파란색 상자

UI Component는 우측 상단의 + 버튼으로 변경되었습니다.

 

- UI Component 추가하는 방법

 -> 예전처럼 추가하기 원하시는 Component를 마우스로 클릭하신 상태로 드래그 해주시면 됩니다.

Label, Button 등 원하시는 Component를 클릭해서 그대로 드래그하시면 됩니다.

 

예시) Label 추가

Label을 추가한 화면

 

사실 다들 숙지하고 계시리라고는 생각하는데, 저처럼 간만에 Xcode를 만지거나, 옛날 책으로 Xcode에 입문하시는 분들이 아까운 시간을 버릴까봐 작성해봤습니다.

(이러는 저도 저거 하나 찾겠다고 진짜로 뻥아니고 몇십분 날려먹었습..)

 

테스트 장비 : 맥미니(2020)

 

버전정보 (v1.0)

 - v1.0 2020.07.01 배포

 

* 본 게시글의 이미지 및 사진의 출처는 전부 작성자 본인이 직접 제작 및 촬영하였습니다.

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Karzin

abbeea@naver.com


[20200701] 애견호텔 학대 뉴스를 보고..


어지간하면 뉴스 보고 적당히 넘기지만,

오늘은 정말 뭐라도 쓰지 않으면 화가나고 답답하다는 생각이 들어서 써내려갑니다.

(가슴안에서 자꾸 뭉글뭉글 응어리처럼 남아서 도저히 잠도 못자겠더라구요..)

차라리 보지 않았고 모르고 있었다면 이 시간에 잠을 못자고 뒤척이거나, 답답해하진 않았을 텐데..

 

일 마치고 저녁식사를 하며 뉴스를 보고있었는데 애견호텔 학대에 대해서 나왔습니다.

 

뉴스 보는 내내 저도 반려견과 함께하는 입장에서 보자마자 경악했습니다.

 

보고 있던 우리 가족도 앞으로 애견호텔 알아보는것도 하면 안되겠다는 의견이 나올 정도였습니다.

(여행을 다닐때에도 같이 다니던가(반려동물 가능 숙박 등), 해외를 나가야한다던가 등

어쩔수 없을 때에는 서로 시간맞춰서 돌봐줄 사람을 한명 있다던가 등..)

아마 뉴스나 기사 보신분들은 비슷한 생각 하셨을 것 같아요..ㅠㅠ

 

저도 뉴스 보면서 아무말도 못하고 뉴스에 나오는 CCTV영상, 사진을 보며 그저 얼마나 아팠을까 하는 생각만 들더라구요..

얼마나 아팠을까..

 

정말 자신의 아이처럼 대해줬다면,

혹은 누군가 자신의 아이를 저런식으로 대한다면 어떨지 생각을 하고 행동했다면 그런 행동을 했을지 정말 화가 나네요.

물론, 기사에 이유가 있었다고는 써있지만 이유에 대한 행위가 너무 심하진 않았나 싶네요..

(제가 잘못 생각했을수 있지만, CCTV보면 그저 학대로밖에는..) 하...

 

몸에 생긴 상처는 언젠가는 사라질지 몰라도, 마음에 생긴 상처는 언제가 되어도 사라지지도 않을테고..

이제는 애완이 아닌 반려로 인식이 바뀌고 있는 만큼, 자신의 가족처럼, 

그게 힘들다면 하다못해 타인의 가족이지만 이쁜 아이로 대해줬으면 좋겠네요.

 

단순히 반려견을 키운다는 이유만으로 작성했다기보다는 사람으로써 저게 과연 맞을까 싶어서 작성해봅니다.

그저 이 밤중에 잠도 못자고 가슴에 두고 썩히는것보다는 이렇게나마 글이라도 써내려가면서 속 좀 풀어볼까 해서 작성해봅니다.

저도 충격을 먹긴 먹었나봅니다.. ㅠㅠ

 

부디 다친 아이도 금방 나았으면 좋겠네요.

몸의 아픔도, 마음의 병도 싹 다 나아서 다시 활기찬 성격으로 되돌아 올 수 있도록 바래봅니다..

 

 

참조 기사

http://news.jtbc.joins.com/article/article.aspx?news_id=NB11957434 

 

'믿고 맡겼는데…' 애견호텔 학대로 온몸에 피멍든 강아지

커다란 막대기로 강아지를 수차례 찌르더니, 마구 내리칩니다.겁에 질린 강아지가 바닥으로 숨자 억지로 끄집어내 던지고 소파에 앉..

news.jtbc.joins.com

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

 

Karzin


[Mac]맥미니(2018-2020) 기본형으로 개발하기 괜찮을까?


우선 결론부터 먼저 말씀드리면 충분합니다.

 

얼마전 맥미니 구입 게시글을 작성하고 블로그 검색 키워드를 찾아보니 '맥미니 기본형 개발'이 눈에 보이더군요.

아무래도 가격대가 높은 맥북 시리즈보다는 맥미니를 알아보고 계신분들이 많은 모양입니다.

저 또한 마찬가지였고, 맥미니 기본형에 들어간 CPU자체도 i3지만 쿼드코어이다보니 쓸만해서 맥미니 기본형으로 선택했습니다.

 

- 스펙정보

 - CPU : i3 (8세대)

 - RAM : 8GB

 - SSD : 256GB

 

구매사유

추가로 저에게는 맥북 프로 13인치 (2012), 맥북 에어 13인치 (2013)을 가지고 있습니다.

맥북프로 13인치는 기본형으로,

맥북에어 13인치의 경우 CTO로 CPU를 i7으로 올렸으며, RAM은 8기가를 가지고 있습니다.

 

두 제품 모두 Xcode를 못돌릴 정도는 아니지만, 에뮬레이터는 정말 커피나 차 한잔 타와야할 수준으로 기다려야하고,

무엇보다 화면이 작고 해상도가 낮다보니 코딩으로는 어려운면이 많이 있습니다.

 

때문에 많은 고민 끝에 맥미니 기본형의 구매를 결정했습니다.

 

개발을 해보면서

맥미니 기본형에서 Xcode를 돌려본 결과 확실히 빠른 속도를 느낄 수 있고,

특히 에뮬레이터는 몇초만에 구동되는 모습을 눈으로 확인할 수 있었습니다.

(맥북에어 13인치의 경우 체감상 몇분 걸리는 느낌)

또한 모니터 3대까지 연결이 가능해 (저는 기본적으로 모니터 3대를 이용중에 있습니다. - 윈도우, 개인 리눅스 서버 함께)

맥북 에어나 프로에서 노트북 모니터 1대 외에 추가로 1대(썬더볼트 사용)를 연결할 수 있다면 큰 화면3대는 나름 개발에 있어서 중요한 이점이기도, 큰 메리트이기도 합니다.

 

구매시 팁 (Tip) 

* 개인적인 생각입니다. 각자 자신만의 취향이 있으실테니, 참고용으로만 읽어주세요!

 

CPU 추천 - i3 (기본)

알아본 결과로는 인텔 CPU 8세대 제품들이 워낙 뜨겁다보니 맥미니에서도 발열을 잡기가 어려웠다는 평이 많습니다.

그러다보니 적재적소라고 타 블로그에서도 i3를 많이 추천해주더라구요.

개발에도 큰 문제가 없으며, 특히 발열생각하면 i3가 가장 낫다는 평입니다.

무엇보다 한단계 위인 i5로 올리고 큰 작업이 있으면 쓰로틀링이 심해 i3보다 오히려 좋지 못한 성능을 낸다는 평까지 보였습니다.

물론 코어가 많으면 많을수록 좋겠지만, i3도 쿼드코어로 어느정도 헤비한 작업도 충분하며, 사용자가 원하는 성능은 충분히 뽑아준다고 보시면 되겠습니다.

여담이지만 개인적으로 i5 8세대 윈도우 태블릿을 사용중에 있지만, 진짜 뜨겁습니다. 뜨거워지면 쓰로틀링 당연히 걸리구요......

 

RAM 추천 - 8GB (기본)

어쩌다보니 CPU 다음으로 RAM까지 기본으로 추천해드리게 되네요.

RAM을 기본형으로 가는 큰 이유중 하나는 맥미니(2018-2020) 모델의 경우 RAM의 확장이 가능합니다!

자신이 컴퓨터를 어느정도 케어가 가능하다면 기본형으로 구입하셔서 추후 RAM을 추가 확장하시는걸 추천드립니다!

인터넷을 잘 활용하시면 램 교환방법이 많이 나와있어서 차근차근 작업하시다보면 RAM확장도 어렵지 않게 가능하시리라 봅니다.

(저는 추후 16GB로 업그레이드 할 생각입니다. 32GB는 의미없다 생각하고 있구요. - 다다익램도 적당히.._저의 사용패턴에 맞춰서 고려한겁니다.)

* 물론 맥미니를 분해하면 워런티(보증기간)가 깨질겁니다. 그렇기 때문에 신중하게 선택을 하시고, 애플케어 가입하시려면 처음부터 업그레이드를 하시거나, 애플케어 기간이 끝나고 업그레이드 하심을 추천드립니다. 솔직히 애플케어 하시는 분들은 그냥 공홈에서 업그레이드 추천드립니다. (자신의 상황에 따라 업그레이드 하시면 될 것 같습니다!)

* 추가로 사용하시는 분들에 따라 분해과정이 난해(어려울 수)하실 수 있으니, 고민되시는 분들은 그냥 공홈을 통한 업그레이드를 추천합니다. (특히 만졌다하면 고장나는 그런분들..)

 

SSD 추천 - 512GB (한단계 업!)

대세는 512GB입니다! 

우선 말씀드리지만, 맥미니(2018-2020)의 경우 SSD의 업그레이드가 불가능합니다. (납땜되어 있음)

업그레이드가 불가능 하다보니 추후에 용량이 부족할 때 난처한 상황이 발생할 수 있습니다!

때문에 개발용으로 쓰신다면 그만큼 프로젝트에 많이 사용하시게 될 것 같으니 256GB보다는 512GB를 추천드립니다.

추가로 저는 기본형인 256GB 용량으로는 많이 아쉽다고 보고 있고 (윈도우도 256GB 금방씁니다..),

지금 사용중인 맥미니는 256GB이지만, 512GB를 살껄 하는 생각도 있었습니다.

다만, 저의 경우 언젠가 제가 가진 맥북 프로 (2012)를 업그레이드 해야지 싶은 생각이 있어서 256GB로 두었습니다.

한가지 말씀드리자면, 저의 경우 윈도우도 이래저래 설치만해도 256GB는 금새 쓰는 타입이라서 512를 추천해드리고 있습니다.

개발 때문에 사용하는 IDE(설치용량이 무식함)나 프로젝트 공간(프로젝트 년단위로 10개씩만 나와도..)만으로 엄청 사용합니다.

하지만! 자신이 윈도우 PC에서 256GB로 충분하고 남았다! 싶으시다면 256GB로도 충분하시리라 생각합니다.

또한 외장하드 등 용량 운용에 자신이 있으시다면 256GB로 충분할 것 같습니다.

여유가 있으시다면 그냥 1테라로..

 

결국 구매는 자기의 선택이라 봅니다.

때문에 제가 쓴 글은 참고용으로만 생각하시고 구매하시면 좋을 것 같습니다!

 

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Karzin




[2020.06] 자전거 현황

(6월 출퇴근 자전거 정산)


6월은 조금 더워도 나름 타고다닐만 했습니다.

아낀 버스금액은 36,250원! 

생각보다 많이 아꼈습니다!!

다만, 이번주는 비가 많이 올 예정인 듯하여 7월 초는 비로 인하여 자전거로 출퇴근이 어려울 것 같네요 ㅠㅠ

 

참!! 자전거타도 마스크 꼭 착용하고 자전거타세요~

저도 조금 더 힘들어도 마스크는 필수로 착용하고 자전거 타고 있습니다~

(안에 습기차고, 힘들어도 자전거 탑니다!!)

 

그나저나 저의 일과는 매일 집-회사-집 뿐인데, 심지어 날씨 여건만 괜찮다면 자전거를 타는 생활인데

코로나라도 걸린다면 경로가 집-회사-집에 출퇴근 자전거 뜰텐데ㅋㅋㅋㅋㅋ 걸릴사유가.. 암튼 조금 불쌍한 사람이 되겠네요 ㅠㅠ

반대로 그만큼 코로나 방역수칙을 잘 지켰...(은 무슨 그냥 불쌍한 사람이지)

다시금 돌아다니고 여행다니는 일상이 돌아왔으면 좋겠네요 ㅠㅠ


2020년 6월 자전거 현황 (회사-집 편도 대략 6Km)

 

- 아낀 버스 금액 : 36,250원 (2020년도 6월 - 대전 기준 - 카드 - 편도 1250원 계산)

 

- 라이딩 못한 사유

저녁 약속(1)

회식(1)

비(5)

 

2020

6월

라이딩

 

 

날짜

요일

출근

퇴근

라이딩 못한 사유

1

1

1

 

2

1

1

 

3

1

1

 

4

1

0

저녁 약속

5

0

1

 

6

0

0

 

7

0

0

 

8

1

1

 

9

1

1

 

10

1

0

11

0

1

 

12

1

0

13

0

0

 

14

0

0

 

15

0

1

 

16

1

1

 

17

1

1

 

18

1

1

 

19

0

0

회식

20

0

0

 

21

0

0

 

22

1

1

 

23

1

1

 

24

0

0

25

0

0

26

1

0

 

27

0

0

 

28

0

0

 

29

1

1

 

30

0

0

7월달도 화이팅!

'취미 > 운동' 카테고리의 다른 글

[2020.07] 자전거 현황  (0) 2020.08.05
[2020.05] 자전거 현황  (0) 2020.06.10

[Swift5] intro 화면 만들기

LaunchScreen.storyboard에서 x초간 딜레이 주기


어플을 만들다보면 초기화면에서 x초간 딜레이 후 메인화면으로 이동하는 경우가 있습니다.

 

그런 경우에는 여러 방법이 있겠지만,

제가 사용하는 방법은 LaunchScreen.storyboard에서 1초정도 딜레이를 주는 방법을 사용하고 있습니다.

 

1. LaunchScreen.storyboard 작업

LaunchScreen.storyboard 클릭

 1.1. ViewController에 원하는 로고 등 작업을 합니다.

Image View를 추가한다던가 작업을 진행합니다.

 

2. AppDelegate.swift 작업

AppDelegate.swift 클릭

 2.1. // Override point for customization after application launch 주석을 찾고, 해당 주석 아래에 sleep(1); 코드를 추가

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        sleep(1)
        return true
    }

  --> sleep 함수는 파라미터로 받아온 시간동안 딜레이를 생성 시켜주는 함수입니다. 여기서는 1을 넣었으니 1초가 됩니다.

 

3. 실행 

 --> 실행을 해보시면 1초간 LaunchScreen.storyboard의 내용이 나오고 이후 Main.storyboard로 넘어감을 확인할 수 있습니다.

 

 

 

테스트 정보

 - 맥 미니 (2020) - iPhone SE (1st Gen)

 

버전정보 (v1.0)

 - v1.0 2020.06.30 배포

 

* 저작권에 위반될 수 있는 컨텐츠(이미지, 동영상 등)나 게시글은 삭제되거나 수정될 수 있습니다.

* 문제의 여지가 될 수 있는 컨텐츠의 경우 댓글 달아 주시면 빠른 시일 내에 조치하도록 하겠습니다.

* Karzin은 항상 공부중입니다. 설명이 틀리거나 잘못된 부분이 있다면 의견내주시는대로 수정하도록 하겠습니다.

 

Karzin

abbeea@naver.com



 

+ Recent posts