본문 바로가기
iOS 앱 개발자 윤기사🍎

[SeSAC iOS 앱개발자 데뷔과정 2기] 레벨테스트 합격!! _ 1

by 개발하는윤기사 2022. 6. 13.
728x90
반응형

이웃님들 안녕하세요~~ 개발하는 윤기사입니다~ 오랜만에 게시글을 쓰게 되었는데요! 

 

저번에 청년취업사관학교 SeSAC iOS 앱 개발자 과정에 지원해서 서류합격해서 레벨테스트 준비하는 게시글 올렸었는데요, 

 

기초 레벨테스트를 합격했습니다~~ 이제 최종 면접만 남겨놓은 상태구요...

 

그래서 이번 게시글에서는 면접 준비좀 할 겸,

 

스위프트 기초 문법 공부했던 것들 정리를 좀 해보도록 하겠습니다~

 

요새는 문법 뿐만 아니라, 오토레이아웃에 대해서도 공부하고 있는데, 오토레이아웃 관련 게시글은 천천히 올려드리겠습니다!

 

이번 게시글에서는 가장 기본인 변수와 상수, 연산자, 문자열과 문자에 대한 내용은 빼고!

 

Enum, Control Flow, 마지막으로 구조체와 클래스에 대한 내용을 다뤄보겠습니다~

 

 

 

- 열거형 (Enumerations) -

 

Enumeration는 관련된 값으로 이루어진 그룹을 타입으로 선언해 타입의 안정성을 보장하는 방법으로 코드를 다룰 수 있게 해줍니다. Swift에서는 case값이 string, character, integer, floting 값들을 사용할 수 있습니다. 열거형은 1급 클래스 형(first-class types)이어서 계산된 프로퍼티(computed properties)를 제공하거나 초기화를 지정하거나, 초기 선언을 확장해 사용할 수 있습니다.

 

스위프트 언어 가이드에 있는 내용을 한 번 가져와 보았습니다. enum 문법을 보시기 전에, switch 구문을 먼저 보도록 하겠습니다.

 

Swtich_Case 문

 

Swtich문은 변수 혹은 상수를 선언해준 다음, 그 선언해준 값이 Switch_Case문 안에 일치하는 값이 있을 때, 그 일치하는 패턴을 실행시켜 주는 겁니다.

 

위에 예시문에서 상수 Yun을 문자 "Y"로 선언해주고, Switch_Case문 안에 문자 "Y"에 해당하는 Case값을 실행 시키는 모습을 볼 수 있습니다.

 

 

enum_case의 예시

 

Switch_case 와 enum_case는 같이 사용할 수도 있습니다!! 아래 예시문을 보시죠.

 

enum과 switch 합성구문

 

enum_case를 이용하여 Yun을 설정해주고, case를 4가지로 설정해줍니다.

 

그리곤 변수 Y를 Yun의 윤기사를 선언하고, 만약 변수 Y가 Yun의 윤기사 라면, Switch문 안에 .윤기사를 실행시켜서 

 

"개발하는 윤기사"가 출력되는 결과를 얻을 수 있습니다! 

 

 

- 제어흐름 (Control Flow) -

 

다양한 제어흐름 명령문 중, For_in 구문과 while 구문 두가지를 살펴보도록 하겠습니다!

 

For_in 구문은 배열의 항목, 숫자 범위 혹은 문자열, 문자를 반복할 수 있습니다.

 

for_in 구문과 닫힌 범위 연산자를 이용한 예시

 

for_in 구문은 SeSAC 기초레벨테스트를 공부하는 중에도 많이 공부했던 내용으로 많이 중요합니다!

 

 

while 구문은 조건이 거짓이 될 때까지 명령을 수행합니다.

 

while 구문과 repeat-while 구문으로 나뉘는데, 

  • while은 루프를 통과할 때마다 시작 시 상태를 평가하는 것이고 (조건이 안맞으면 애초에 실행 X)
  • repeat-while은 루프를 통과할 때마다 종료 시 상태를 평가하는 것입니다. (조건이 안맞아도 최소 1번은 실행)

while 구문의 기본 형태는 단일 조건을 평가하는 것으로 시작합니다! 만약 조건이 참이면, 거짓이 나올 때 까지 반복합니다.

 

while 구문의 예시

 

조건 자체가 거짓이라 실행조차 안한 모습

 

 

repeat-while 문을 쓰자 최소 1번은 실행되는 모습

 

 

- Struct와 Class -

Struct ( 구조체 ) - 값 타입

  • 구조체 변수를 새로운 변수에 할당할 때마다 새로운 구조체가 할당됩니다.
  • 즉 같은 구조체를 여러 개의 변수에 할당한 뒤 값을 변경시키더라도 다른 변수에 영향을 주지 않습니다. (값 자체를 복사)

 

Class ( 클래스 ) - 참조 타입.

  • 상속 (Inheritance) : 클래스의 여러 속성을 다른 클래스에 물려줌 (메모리만 복사)
  • 타입 캐스팅 (Type casting) : 런타임에 클래스 인스턴스의 타입을 확인
  • 소멸자 (Deinitializers) : 할당된 자원을 해제(free up) 시킴
  • 참조 카운트 (Reference counting) : 클래스 인스턴스에 하나 이상의 참조가 가능

 

Struct는 값 타입이므로 항상 새로운 메모리를 할당

 

Class는 참조 타입이므로, Struct와는 다르게 변경되는 모습

 

즉, 값 타입은, 함수에서 상수나 변수에 전달될 때 그 값이 복사되서 전달된다는 의미입니다.

 

참조 타입은 변수나 상수에 값을 할당을 하거나 함수에 인자로 전달할 때 그 값이 복사되지 않고 참조됩니다.

 

참조된다는 의미는 그 값을 갖고 있는 메모리를 바라보고 있다! 라고 이해하시면 될 것 같습니다.

 

 

 

이상 오늘 포스팅은 여기서 마치도록 하고, 꼭 SeSAC 2기 개발하는 윤기사가 되고 싶습니다 ㅎㅎ

 

우리 이웃님들도 오늘 하루 화이팅입니다!! 

 

 

728x90
반응형