iOS/Xcode

[Xcode] Swift 알고리즘 - Xcode 환경 세팅

유정주 2021. 8. 31. 00:10
반응형

Swift 알고리즘 - Xcode 환경 세팅

안녕하세요. 개발하는 정주입니다.

오늘은 Swift로 알고리즘을 하기 전 Xcode에서 알고리즘을 하기 위한 세팅을 먼저 진행하겠습니다.

세팅이라고 해도 복잡한 것은 없으니 어렵게 생각하지 않으셔도 됩니다.


 

개발 환경

MacBook Pro (Retina, 15-inch, Mid 2015)

macOS Big Sur(11.5)

프로세서 : 2.5 GHz 쿼드 코어 Intel Core i7

메모리 : 16GB 1600 MHz DDR3

그래픽 : Intel Iris Pro 1536 MB

Xcode

Xcode 12.5.1


왜 굳이 Xcode로?

힘들게 Xcode의 프로젝트로 알고리즘을 공부하는 이유에 대해 궁금하실 텐데요.

바로 Swift의 입력 함수인 readLine()이 온라인 컴파일러나 Xcode의 Playground에서는 제대로 동작을 하지 않기 때문입니다.

 

Playground는 샌드박스(외부로부터 들어온프로그램이 보호된 영역에서 동작해 시스템이 부정하게 조작되는 것을 막는 보안형태)이기 때문에 input이 존재하지 않습니다.

input이 없으니 알고리즘 결과 테스트를 전혀 하지 못합니다. 

따라서 콘솔 프로젝트를 만들어서 알고리즘을 작성, 테스트하는 것입니다.


프로젝트 생성하기

프로젝트 생성

Xcode를 실행한 뒤 새로운 프로젝트를 생성합니다.

Playground에서는 입력 값을 받는 readLine()이 작동하지 않으니 꼭 Project로 선택해주세요.

알고리즘 연습인데 입력을 받지 않으면 안 되겠죠?


템플릿(template) 선택

macOS - Command Line Tool 선택

다음은 템플릿을 선택합니다.

멀티플랫폼 탭의 macOS를 선택하면 위 사진처럼 창이 나옵니다.

이 중에서 Command Line Tool을 선택하고 Next를 선택합니다.


프로젝트 정보 입력

프로젝트 정보 입력

프로젝트 정보를 입력합니다.

Product Name은 이후에도 변경 가능하니 부담 없이 지으셔도 괜찮습니다.

저는 알고리즘을 이 프로젝트에 계속 작성할 예정이므로 Product Name을 Algorithm으로 지었습니다.

Organization Identifier 이름도 앱스토어에 올릴 프로젝트가 아니니 부담 없이 지으셔도 됩니다.

모든 정보를 입력하고 Next를 눌러주세요.

 

프로젝트가 열린 모습

그럼 성공적으로 열린 프로젝트 화면을 볼 수 있습니다.

 


코드 작성 테스트

main.swift 파일에 테스트 코드를 작성해봅시다.

import Foundation

if let value = readLine() {
    print("input: \(value)")
}

입력한 값을 그대로 출력해주는 프로그램입니다.

 

터미널 모습

하단의 검은 창을 클릭하고 키보드로 입력해주면 정상적으로 출력이 되는 것을 볼 수 있습니다.


파일 관리

알고리즘을 시작한 단계에서 일반적으로 생각할 수 있는 파일 관리 시나리오입니다.

  1. main.swift 파일에서 문제를 푼다.
  2. 완료한 swift 파일 이름을 수정한다. (ex. 1000.swift)
  3. 새로운 main.swift 파일을 생성한다.

하지만 3번까지 진행하고 빌드를 하면 "expressions are not allowed at the top level" 에러가 나면서 빌드가 되지 않습니다.

에러의 이유는 main.swift가 아니기 때문입니다.

 

그렇다고 매번 번거로운 프로젝트 생성을 할 순 없겠죠?

이런 상황에서는 이름을 수정한 프로젝트를 클릭하고 우측 속성 탭을 확인합니다.

중간을 보면 "Target membership"이 있습니다.

처음 파일의 속성을 보면 체크가 되어 있을건데요.

체크를 해제하면 파일 내에서는 에러가 날지언정 빌드는 잘 되서 다음 문제를 진행할 수 있습니다!


마무리

오늘은 알고리즘을 시작하기에 앞서 환경을 세팅해보았습니다.

간단한 알고리즘 공부는 언어에 익숙해지기에 효과적인 것 같습니다.

함께 열심히 공부합시다.

감사합니다!


아직은 초보 개발자입니다.

더 효율적인 코드 훈수 환영합니다!

공감 댓글 부탁드립니다.

반응형