분류 전체보기
-
어떤 일을 해야할지 방황을 못하는 사람들이 있다. 바로 나다. 정말 진득히 공부해본게 언제인지 기억도 나지 않는다. 이거 찔끔 저거 찔끔하다 포기하고 나 자신에게 실망한다. 그렇지만 이제는 달라진다. 나에게 동기를 부여하는 '문제해결'을 뼈대로 만들어서 학습하는 방법을 연구하고 성장 할 것이다. 알바는 한곳에서 진득히 잘했다. 드럼도 팀에서 쓰임받으니 거의 10년이라는 세월동안 꾸준히 하게 되었다. 나라는 사람은 나의 기술을 꾸준히 쓰임받아야 계속 공부하고 발전하려는 의지와 동기가 생기는 것 같다. 그렇기 때문에 어떤 분야에 대한 '배움'을 궤도에 올려놓으려면 기술을 계속 사용하면서, 적용하면서 공부해야되는 것이다. 이전에는 배움에 대한 부가적인 요소로 적용을 놓았다면. 이제는 적용이 내 모든 배움의 뼈..
돌아왔다.어떤 일을 해야할지 방황을 못하는 사람들이 있다. 바로 나다. 정말 진득히 공부해본게 언제인지 기억도 나지 않는다. 이거 찔끔 저거 찔끔하다 포기하고 나 자신에게 실망한다. 그렇지만 이제는 달라진다. 나에게 동기를 부여하는 '문제해결'을 뼈대로 만들어서 학습하는 방법을 연구하고 성장 할 것이다. 알바는 한곳에서 진득히 잘했다. 드럼도 팀에서 쓰임받으니 거의 10년이라는 세월동안 꾸준히 하게 되었다. 나라는 사람은 나의 기술을 꾸준히 쓰임받아야 계속 공부하고 발전하려는 의지와 동기가 생기는 것 같다. 그렇기 때문에 어떤 분야에 대한 '배움'을 궤도에 올려놓으려면 기술을 계속 사용하면서, 적용하면서 공부해야되는 것이다. 이전에는 배움에 대한 부가적인 요소로 적용을 놓았다면. 이제는 적용이 내 모든 배움의 뼈..
2024.04.10 -
구현 목표 TableView에 할 일을 추가하기 TableView에서 할 일을 삭제하기 TableView에서 할 일을 재정렬하기 할 일들을 데이터 저장소에 저장을 하여 앱을 재실행하여도 데이터가 유지되게 하기 iOS개발 지식 알아보고 구현하기 UITableView, UIAlertController, UserDefaults UITableView 데이터들을 목록 형태로 보여 줄 수 있는 가장 기본적인 UI컴포넌트 특징 UIScrollView를 상속받고 있으므로 스크롤이 가능해 리스트 형태로 많은 정보를 보여줄 수 있다. 여러개의 셀을 가지고 있고 하나의 열과 여러줄의 행을 지니고 있으며, 수직으로만 스크롤이 가능하다 섹션을 이용해 행을 그룹화하여 콘텐츠를 좀 더 쉽게 탐색 할 수 있다. 섹션의 헤더와 푸터에..
[iOS앱개발] #4 To Do List구현 목표 TableView에 할 일을 추가하기 TableView에서 할 일을 삭제하기 TableView에서 할 일을 재정렬하기 할 일들을 데이터 저장소에 저장을 하여 앱을 재실행하여도 데이터가 유지되게 하기 iOS개발 지식 알아보고 구현하기 UITableView, UIAlertController, UserDefaults UITableView 데이터들을 목록 형태로 보여 줄 수 있는 가장 기본적인 UI컴포넌트 특징 UIScrollView를 상속받고 있으므로 스크롤이 가능해 리스트 형태로 많은 정보를 보여줄 수 있다. 여러개의 셀을 가지고 있고 하나의 열과 여러줄의 행을 지니고 있으며, 수직으로만 스크롤이 가능하다 섹션을 이용해 행을 그룹화하여 콘텐츠를 좀 더 쉽게 탐색 할 수 있다. 섹션의 헤더와 푸터에..
2023.03.21 -
구현 목표 계산기 키패드 UI구성 계산기를 통해 나누기, 곱하기, 빼기, 더하기 연산 누적연산 가능 AC버튼을 누르면 계산 초기화. iOS개발 지식 알아보고 구현하기 UIStackView, IBDesignables, IBinspectable UIStackView 열 또는 행에 View들의 묶음을 배치할 수 있는 간소화된 인터페이스 스택뷰는 오토레이아웃을 이용하여 디바이스의 스크린 사이즈나 혹은 일어날 어떤 변화에 맞춰 동적인 UI를 구성 할 수 있다. 스택뷰를 사용하면 오토레이아웃의 제약조건을 많이 사용하지 않아도 쉽게 UI를 구성 할 수 이다. UIStackview Attribute 속성 Axis : 스택뷰의 방향을 결정(가로 또는 세로) Distribution : StackView 안에 들어가는 뷰들..
[iOS앱개발] #3 계산기 앱구현 목표 계산기 키패드 UI구성 계산기를 통해 나누기, 곱하기, 빼기, 더하기 연산 누적연산 가능 AC버튼을 누르면 계산 초기화. iOS개발 지식 알아보고 구현하기 UIStackView, IBDesignables, IBinspectable UIStackView 열 또는 행에 View들의 묶음을 배치할 수 있는 간소화된 인터페이스 스택뷰는 오토레이아웃을 이용하여 디바이스의 스크린 사이즈나 혹은 일어날 어떤 변화에 맞춰 동적인 UI를 구성 할 수 있다. 스택뷰를 사용하면 오토레이아웃의 제약조건을 많이 사용하지 않아도 쉽게 UI를 구성 할 수 이다. UIStackview Attribute 속성 Axis : 스택뷰의 방향을 결정(가로 또는 세로) Distribution : StackView 안에 들어가는 뷰들..
2023.03.21 -
구현목표 : LED전광판 화면을 표시하고 전광판에 표시할 텍스트, 텍스트 컬러, 배경색상을 설정화면에서 설정한다. iOS개발 지식 알아보고 구현하기 UINavigationController, 화면전환개념, ViewController Life CyCle, 화면간 데이터전달하기, 에셋 카탈로그 UI Navigation Controller Content View Controller 스토리보드 생성시 기본으로 생성되는 View Controller로 화면을 규성하는 뷰를 직접 구현하고 관련된 이벤트를 처리 Container View Controller 하나 이상의 Child View Controller을 가지고 있다. 하나 이상의 Child View Controller 를 관리하고 레이아웃과 화면 전환을 담당한다..
[iOS앱개발] #2 LED전광판 앱구현목표 : LED전광판 화면을 표시하고 전광판에 표시할 텍스트, 텍스트 컬러, 배경색상을 설정화면에서 설정한다. iOS개발 지식 알아보고 구현하기 UINavigationController, 화면전환개념, ViewController Life CyCle, 화면간 데이터전달하기, 에셋 카탈로그 UI Navigation Controller Content View Controller 스토리보드 생성시 기본으로 생성되는 View Controller로 화면을 규성하는 뷰를 직접 구현하고 관련된 이벤트를 처리 Container View Controller 하나 이상의 Child View Controller을 가지고 있다. 하나 이상의 Child View Controller 를 관리하고 레이아웃과 화면 전환을 담당한다..
2023.03.17 -
프로토콜 프로토콜 : 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항등의 청사진 구조체, 클래스, 열거형은 프로토콜을 채택해서 특정기능을 실행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있다. 이때 프로토콜이 요구하는 사항을 모두 충족하면 해당 타입이 채택한 프로토콜을 준수한다고 한다. 프로퍼티 요구사항 프로토콜은 자신을 채택한 타입이 어떤 프로퍼티를 구현해야 하는지 요구할 수 있다. 프로토콜이 프로퍼티에 준수하도록 정의할 때 저장프로퍼티인지 계산프로퍼티인지 지정하지 않고 프로퍼티 이름과 타입만 지정하면 되며 이때 프로퍼티에 읽기만 가능한지 읽기 쓰기 둘다 가능한지 get과 set을 이용해 지정해야 한다. 프로토콜에서 읽기만 가능한 프로퍼티를 요구하는 경우에는 모든 종류의 프로퍼티를 설정 ..
[기본문법] 프로토콜프로토콜 프로토콜 : 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항등의 청사진 구조체, 클래스, 열거형은 프로토콜을 채택해서 특정기능을 실행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있다. 이때 프로토콜이 요구하는 사항을 모두 충족하면 해당 타입이 채택한 프로토콜을 준수한다고 한다. 프로퍼티 요구사항 프로토콜은 자신을 채택한 타입이 어떤 프로퍼티를 구현해야 하는지 요구할 수 있다. 프로토콜이 프로퍼티에 준수하도록 정의할 때 저장프로퍼티인지 계산프로퍼티인지 지정하지 않고 프로퍼티 이름과 타입만 지정하면 되며 이때 프로퍼티에 읽기만 가능한지 읽기 쓰기 둘다 가능한지 get과 set을 이용해 지정해야 한다. 프로토콜에서 읽기만 가능한 프로퍼티를 요구하는 경우에는 모든 종류의 프로퍼티를 설정 ..
2022.12.28 -
assert와 guard assert - 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력하게 하는 함수 assert 함수는 디버깅 모드에서만 동작하고 주로 디버깅 중 조거느이 검증을 위하여 사용한다. guard문 어떤 것을 검사하여 그 결과에 따라 다음에 오는 코드를 실행할지 말지 결정하는 것 guard 문에 주어진 조건문이 거짓을 때 구문이 실행된다. assert import Foundation var value = 0 assert(value == 0) //통과 value = 2 assert(value == 0, "값이 0이 아닙니다.") //에러, 메세지 출력 ---------------------------------------------------- __lldb_expr_18/MyPl..
[기본문법]assert와 guardassert와 guard assert - 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력하게 하는 함수 assert 함수는 디버깅 모드에서만 동작하고 주로 디버깅 중 조거느이 검증을 위하여 사용한다. guard문 어떤 것을 검사하여 그 결과에 따라 다음에 오는 코드를 실행할지 말지 결정하는 것 guard 문에 주어진 조건문이 거짓을 때 구문이 실행된다. assert import Foundation var value = 0 assert(value == 0) //통과 value = 2 assert(value == 0, "값이 0이 아닙니다.") //에러, 메세지 출력 ---------------------------------------------------- __lldb_expr_18/MyPl..
2022.12.21 -
타입캐스팅 : 인스턴스의 타입을 확인하거나 어떠한 클래스의 인스턴스를 해당 클래스 계층 구조의 슈퍼클래스나 서브클래스로 취급하는 방법 is : 타입을 체크해서 Bool타입으로 리턴한다. as? : 조건부형식, 다운캐스팅하려는 타입의 옵셔널값으로 반환한다. as! : 강제형식, 강제로 언래핑하여 값을 반환, 항상 성공할 것 이라고 확신 할 때만 사용해야하며 성공하지 못할 시 런타임 에러가 발생하면서 프로그램이 강제 종료된다. 코드로 확인 import Foundation class MediaItem { var name: String init(name: String) { self.name = name } } class Movie: MediaItem { var directer: String init(name: ..
[기본문법]타입캐스팅타입캐스팅 : 인스턴스의 타입을 확인하거나 어떠한 클래스의 인스턴스를 해당 클래스 계층 구조의 슈퍼클래스나 서브클래스로 취급하는 방법 is : 타입을 체크해서 Bool타입으로 리턴한다. as? : 조건부형식, 다운캐스팅하려는 타입의 옵셔널값으로 반환한다. as! : 강제형식, 강제로 언래핑하여 값을 반환, 항상 성공할 것 이라고 확신 할 때만 사용해야하며 성공하지 못할 시 런타임 에러가 발생하면서 프로그램이 강제 종료된다. 코드로 확인 import Foundation class MediaItem { var name: String init(name: String) { self.name = name } } class Movie: MediaItem { var directer: String init(name: ..
2022.12.21 -
상속 : 부모가 자식에게 재산을 물려주는 행위 클래스가 다른 클래스로부터 메소드 프로퍼티 또는 다른 특성들을 상속받는것 상속받는 클래스 : 자식클래스, 서브클래스 상속하는 클래스 : 부모클래스, 슈퍼클래스 코드로 확인 상속 상속받은 서브클래스는 부모클래스로 부터 물려받은 메소드 프로퍼티 서브스크립트를 호출하거나 접근할 수 있다 import UIKit //슈퍼클래스 class Vehicle { var currentSpeed = 0.0 var description: String{ return "traveling at \(currentSpeed) miles per hour" } func makeNoise(){ } } //상속 /* class 클래스이름: 부모클래스이름 { //하위클래스 정의 } */ //서브클..
[기본문법] 상속상속 : 부모가 자식에게 재산을 물려주는 행위 클래스가 다른 클래스로부터 메소드 프로퍼티 또는 다른 특성들을 상속받는것 상속받는 클래스 : 자식클래스, 서브클래스 상속하는 클래스 : 부모클래스, 슈퍼클래스 코드로 확인 상속 상속받은 서브클래스는 부모클래스로 부터 물려받은 메소드 프로퍼티 서브스크립트를 호출하거나 접근할 수 있다 import UIKit //슈퍼클래스 class Vehicle { var currentSpeed = 0.0 var description: String{ return "traveling at \(currentSpeed) miles per hour" } func makeNoise(){ } } //상속 /* class 클래스이름: 부모클래스이름 { //하위클래스 정의 } */ //서브클..
2022.12.16 -
공통점 값을 저장할 프로퍼티를 선언할 수 있다 함수적 기능을 하는 메서드를 선언할 수 있다 내부 값에 . 을 사용하여 접근할 수 있다 생성자를 사용해 초기 상태를 설정할 수 있다 extension을 사용하여 기능을 확장할 수 있다 Protocol을 채택하여 기능을 설정할 수 있다 차이점 클래스 참조타입 ARC로 메모리를 관리 상속이 가능 타입 캐스팅을 통해 런타임에서 클래스 인스턴스의 타입을 확인할 수 있음 deinit을 사용해여 클래스 인스턴스의 메모리 할당을 해제할 수 있음 같은 클래스 인스턴스를 여러개의 변수에 할당한 뒤 값을 변경시키면 모든 변수에 영향을 줌(메모리가 복사됨) 구조체 값타입 구조체 변수를 새로운 변수에 할당할 떄마다 새로운 구조체가 할당 즉 같은 구조체를 여러개의 변수에 할당한 뒤..
[기본문법]클래스와 구조체 비교공통점 값을 저장할 프로퍼티를 선언할 수 있다 함수적 기능을 하는 메서드를 선언할 수 있다 내부 값에 . 을 사용하여 접근할 수 있다 생성자를 사용해 초기 상태를 설정할 수 있다 extension을 사용하여 기능을 확장할 수 있다 Protocol을 채택하여 기능을 설정할 수 있다 차이점 클래스 참조타입 ARC로 메모리를 관리 상속이 가능 타입 캐스팅을 통해 런타임에서 클래스 인스턴스의 타입을 확인할 수 있음 deinit을 사용해여 클래스 인스턴스의 메모리 할당을 해제할 수 있음 같은 클래스 인스턴스를 여러개의 변수에 할당한 뒤 값을 변경시키면 모든 변수에 영향을 줌(메모리가 복사됨) 구조체 값타입 구조체 변수를 새로운 변수에 할당할 떄마다 새로운 구조체가 할당 즉 같은 구조체를 여러개의 변수에 할당한 뒤..
2022.12.14 -
오신분들 모두
좋은하루 되세요오신분들 모두
2022.11.17 -
구현 목표 : 버튼을 누를 때마다 랜덤한 명언을 보여준다. iOS개발 지식 알아보고 구현하기 UIKit, UIViewController, AutoLayout, IBOulet & IBAction UIKit Cocoa touch Framework : iOS개발환경을 구축하기 위한 최상위 프레임워크로 그 중 가장 많이 사용되는 것은 UIKit와 Foundation Foundation : 기본적인 데이터타입부터 자료구조, 각종 구조체, 타이머, 네트워크통신, 파일관리등 기본적인 프로그램의 중심을 담당 UIKit : 사용자의 인터페이스를 관리하고 이벤트를 처리하는 프레임워크 인터페이스 : 테이블뷰, 슬라이더, 버튼, 텍스트필드, 알럿창 등 이벤트 : 제스쳐, 애니메이션, 그림그리기, 이미지처리, 텍스트처리 등 U..
[iOS앱개발] #1 명언생성기(UIKit, UIViewController, AutoLayout, IBOulet & IBAction)구현 목표 : 버튼을 누를 때마다 랜덤한 명언을 보여준다. iOS개발 지식 알아보고 구현하기 UIKit, UIViewController, AutoLayout, IBOulet & IBAction UIKit Cocoa touch Framework : iOS개발환경을 구축하기 위한 최상위 프레임워크로 그 중 가장 많이 사용되는 것은 UIKit와 Foundation Foundation : 기본적인 데이터타입부터 자료구조, 각종 구조체, 타이머, 네트워크통신, 파일관리등 기본적인 프로그램의 중심을 담당 UIKit : 사용자의 인터페이스를 관리하고 이벤트를 처리하는 프레임워크 인터페이스 : 테이블뷰, 슬라이더, 버튼, 텍스트필드, 알럿창 등 이벤트 : 제스쳐, 애니메이션, 그림그리기, 이미지처리, 텍스트처리 등 U..
2022.11.16 -
프로퍼티 : 클래스, 구조체 또는 열거형등에 소속된 값 저장프로퍼티 : 인스턴스의 변수나 상수 #1 구조체는 값타입이기 때문에 상수로 선언하면 변수로 선언된 프로퍼티라고 해도 값이 변경되지 않는다 #2 클래스는 참조타입이기 때문에 상수로 선언해도 프로퍼티의 값을 변경할 수 있다. 물론 상수 프로퍼티는 변경 불가. //저장프로퍼티 //구조체 선언 struct Dog{ var name: String let gender: String } //구조체 사용 var dog = Dog(name: "dak", gender: "Male") dog.name = "buk" //dog.gender = "female" // Error 상수는 초기화 불가능 //출력 print(dog) //#1 상수 구조체 let dog2 = D..
[기본문법] 프로퍼티프로퍼티 : 클래스, 구조체 또는 열거형등에 소속된 값 저장프로퍼티 : 인스턴스의 변수나 상수 #1 구조체는 값타입이기 때문에 상수로 선언하면 변수로 선언된 프로퍼티라고 해도 값이 변경되지 않는다 #2 클래스는 참조타입이기 때문에 상수로 선언해도 프로퍼티의 값을 변경할 수 있다. 물론 상수 프로퍼티는 변경 불가. //저장프로퍼티 //구조체 선언 struct Dog{ var name: String let gender: String } //구조체 사용 var dog = Dog(name: "dak", gender: "Male") dog.name = "buk" //dog.gender = "female" // Error 상수는 초기화 불가능 //출력 print(dog) //#1 상수 구조체 let dog2 = D..
2022.10.28 -
초기화: 클래스 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비과정(생성자 정의) /* init(매개변수: 타입,...) { //프로퍼티 초기화 // 인스턴스 생성시 필요한 설정을 해주는 코드 작성 */ //클래스 선언 class User { var nickname: String var age: Int //생성자 a init(nickname: String, age: Int){ self.nickname = nickname self.age = age } //생성자 b init(age: Int){ self.nickname = "sue" self.age = age } //소멸자 deinit{ print("deinit user") } } //생성자 a 사용 var user = User(nickname: "ha..
[기본문법]초기화 구문 init초기화: 클래스 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비과정(생성자 정의) /* init(매개변수: 타입,...) { //프로퍼티 초기화 // 인스턴스 생성시 필요한 설정을 해주는 코드 작성 */ //클래스 선언 class User { var nickname: String var age: Int //생성자 a init(nickname: String, age: Int){ self.nickname = nickname self.age = age } //생성자 b init(age: Int){ self.nickname = "sue" self.age = age } //소멸자 deinit{ print("deinit user") } } //생성자 a 사용 var user = User(nickname: "ha..
2022.10.28 -
클래스 : 사용자 정의 데이터타입 /* class 클래스이름{ 프로퍼티와 메서드 } */ //클래스 정의 class Dog { var name: String = " " var age: Int = 0 func introduce(){ print("name \(name) age \(age)") } } //클래스 사용(인스턴스 생성) var dog = Dog() //프로퍼티 초기화 dog.name = "coco" dog.age = 3 //프로퍼티 확인 dog.name dog.age //메서드 사용 dog.introduce() ------------------------------ name coco age 3
[기본문법] 클래스클래스 : 사용자 정의 데이터타입 /* class 클래스이름{ 프로퍼티와 메서드 } */ //클래스 정의 class Dog { var name: String = " " var age: Int = 0 func introduce(){ print("name \(name) age \(age)") } } //클래스 사용(인스턴스 생성) var dog = Dog() //프로퍼티 초기화 dog.name = "coco" dog.age = 3 //프로퍼티 확인 dog.name dog.age //메서드 사용 dog.introduce() ------------------------------ name coco age 3
2022.10.28 -
구조체 : 구조체를 사용하여 사용자 정의 데이터 타입을 만들 수 있다. /* struct 구조체 이름{ 프로퍼티와 메서드 }*/ //구조체 선언 struct User { //프로퍼티 var nickname: String var age: Int //메서드 func information(){ print("\(nickname) \(age)") } } //구조체 사용(인스턴스 생성) var user = User(nickname: "harry", age: 23) //값 확인 user.nickname //"harry" user.age //23 //값 변환 user.nickname = "sue" user.nickname //sue //메서드 함수 사용 user.information() -----------------..
[기본문법]구조체구조체 : 구조체를 사용하여 사용자 정의 데이터 타입을 만들 수 있다. /* struct 구조체 이름{ 프로퍼티와 메서드 }*/ //구조체 선언 struct User { //프로퍼티 var nickname: String var age: Int //메서드 func information(){ print("\(nickname) \(age)") } } //구조체 사용(인스턴스 생성) var user = User(nickname: "harry", age: 23) //값 확인 user.nickname //"harry" user.age //23 //값 변환 user.nickname = "sue" user.nickname //sue //메서드 함수 사용 user.information() -----------------..
2022.10.28 -
옵셔널 옵셔널: 값이 있을 수도 있고 없을 수도 있게 만드는것 nil : 값이 없음을 나타내는 키워드 옵셔널 맛보기 아래의 예시에서 name1과 name2 변수생성은 값이 있거나 오류가 난다. 옵셔널을 이용한 name3와 name4 변수생성이 값이 없는 변수를 만들 수 있다. var name0: String = "" //값이 없는게 아니라 빈문자열 이라는 값을 가지고 있다. var name1: String = nil //Error(문자열에 nil을 저장할 수 없다) //문자열에 nil을 적용하려면 옵셔널을 사용해야 한다. var name2: String? = nil // nil //또는 var name3: String? //nil 옵셔널 선언과 출력값 확인 var lable1: String? // nil..
[기본문법]옵셔널옵셔널 옵셔널: 값이 있을 수도 있고 없을 수도 있게 만드는것 nil : 값이 없음을 나타내는 키워드 옵셔널 맛보기 아래의 예시에서 name1과 name2 변수생성은 값이 있거나 오류가 난다. 옵셔널을 이용한 name3와 name4 변수생성이 값이 없는 변수를 만들 수 있다. var name0: String = "" //값이 없는게 아니라 빈문자열 이라는 값을 가지고 있다. var name1: String = nil //Error(문자열에 nil을 저장할 수 없다) //문자열에 nil을 적용하려면 옵셔널을 사용해야 한다. var name2: String? = nil // nil //또는 var name3: String? //nil 옵셔널 선언과 출력값 확인 var lable1: String? // nil..
2022.10.26 -
반복문 : 반복적으로 코드를 실행하고 싶을 때 사용 for-in 반복문 /* for 루프상수 in 순회대상 { 실행할 구문 } */ //순회대상을 범위데이터로 하는 반복문 for i in 1...4 { print(i) } ____________________ 1 2 3 4 5 //순회대상을 배열로 하는 반복문 let array = [1, 2, 3, 4, 5] for i in array{ print(i) } ____________________ 1 2 3 4 5 while 반복문 /* while 조건식 { 실행 할 구문 } */ var number = 5 //number가 8보다 작으면 실행하면서 number에 1을 더하는 반복문 while number < 8 { number+=1 print("스위프트")..
[기본 문법] 반복문반복문 : 반복적으로 코드를 실행하고 싶을 때 사용 for-in 반복문 /* for 루프상수 in 순회대상 { 실행할 구문 } */ //순회대상을 범위데이터로 하는 반복문 for i in 1...4 { print(i) } ____________________ 1 2 3 4 5 //순회대상을 배열로 하는 반복문 let array = [1, 2, 3, 4, 5] for i in array{ print(i) } ____________________ 1 2 3 4 5 while 반복문 /* while 조건식 { 실행 할 구문 } */ var number = 5 //number가 8보다 작으면 실행하면서 number에 1을 더하는 반복문 while number < 8 { number+=1 print("스위프트")..
2022.10.26 -
조건문 : 주어진 조건에 따라서 어플리케이션을 다르게 동작하게 만들어준다 if 조건문 기본적인 if문 /* if 조건식{ 실행할 구문 } */ let age = 12 if age < 19 { print("미성년자 입니다.") } _______________________________________ 미성년자 입니다. if else 조건문 /* if 조건식 { 조건식이 만족하면 해당 구문 실행 } else { 만족하지 않으면 해당 구문 실행 } */ let age = 21 if age < 19 { print("미성년자") } else { print("성년자") } _______________________________________ 성년자 else if 를 통한 2가지 이상의 조건문 활용 /* if 조건..
[기본문법] 조건문조건문 : 주어진 조건에 따라서 어플리케이션을 다르게 동작하게 만들어준다 if 조건문 기본적인 if문 /* if 조건식{ 실행할 구문 } */ let age = 12 if age < 19 { print("미성년자 입니다.") } _______________________________________ 미성년자 입니다. if else 조건문 /* if 조건식 { 조건식이 만족하면 해당 구문 실행 } else { 만족하지 않으면 해당 구문 실행 } */ let age = 21 if age < 19 { print("미성년자") } else { print("성년자") } _______________________________________ 성년자 else if 를 통한 2가지 이상의 조건문 활용 /* if 조건..
2022.10.26 -
함수: 작업의 가장 작은 단위이자 코드의 집합으로 반복적인 프로그래밍을 피하고자 사용한다. 함수 선언과 사용 호출 시 매개변수 기본값 설정 반환값이 없는 함수 /* func 함수명(파라미터 이름: 데이터타입) -> 반환타입 { return 반환 값 } */ // #두개의 값을 더하는 함수 func sum(a: Int, b: Int) -> Int{ return a+b } //사용 sum(a: 5, b: 3) // 8 // #호출되면 hello 를 반환하는 함수 func hello() -> String{ return "hello" } //사용 hello() //"hello" // #호출 시 매개변수 기본값 설정 func greeting(friend: String, me: String = "Sue") { pr..
[기본문법] 함수함수: 작업의 가장 작은 단위이자 코드의 집합으로 반복적인 프로그래밍을 피하고자 사용한다. 함수 선언과 사용 호출 시 매개변수 기본값 설정 반환값이 없는 함수 /* func 함수명(파라미터 이름: 데이터타입) -> 반환타입 { return 반환 값 } */ // #두개의 값을 더하는 함수 func sum(a: Int, b: Int) -> Int{ return a+b } //사용 sum(a: 5, b: 3) // 8 // #호출되면 hello 를 반환하는 함수 func hello() -> String{ return "hello" } //사용 hello() //"hello" // #호출 시 매개변수 기본값 설정 func greeting(friend: String, me: String = "Sue") { pr..
2022.10.24 -
컬렉션타입 Array : 데이터 타입의 값들을 순서대로 저장하는 리스트 참고)배열의 인덱스는 0부터 시작하기 때문에 첫번째 값에 접근하려면 인덱스 0을 지시해야 합니다. //Array 선언 //var(또는 let) Array명: Array = Array() var array1: Array = Array() //Array에 값 추가 array1.append(1) // [1] array1.append(2) // [1, 2] array1.append(3) // [1, 2, 3] //원하는 인덱스에 값 추가 array1.insert(4, at: 2) // [1, 2, 4, 3] array1.insert(5, at: 0) // [5, 1, 2, 4, 3] //원하는 인덱스의 값 제거 // 두번째 값 제거 인덱스 ..
[기본문법]컬렉션타입(Array, Dictionary, Set)컬렉션타입 Array : 데이터 타입의 값들을 순서대로 저장하는 리스트 참고)배열의 인덱스는 0부터 시작하기 때문에 첫번째 값에 접근하려면 인덱스 0을 지시해야 합니다. //Array 선언 //var(또는 let) Array명: Array = Array() var array1: Array = Array() //Array에 값 추가 array1.append(1) // [1] array1.append(2) // [1, 2] array1.append(3) // [1, 2, 3] //원하는 인덱스에 값 추가 array1.insert(4, at: 2) // [1, 2, 4, 3] array1.insert(5, at: 0) // [5, 1, 2, 4, 3] //원하는 인덱스의 값 제거 // 두번째 값 제거 인덱스 ..
2022.10.22 -
오신분들 모두
좋은 하루 되세요오신분들 모두
2022.10.21 -
다시 보기 쉽게
공부한 것들을 기록합니다.다시 보기 쉽게
2022.10.21 -
H's Code
H의 개발블로그입니다H's Code
2022.10.21 -
상수와 변수 상수 let : 변하지 않는 일정한 값 변수 var: 변할 수 있는 값 //상수 //let 상수명: 데이터 타입 = 값 let num1: Int = 100 //변수 //var 변수명: 데이터 타입 = 값 var num3: Int = 10 num2 = 100 //변수 num2의 값을 100으로 초기화 //생성 후 나중에 할당 가능 let num2: Int num2 = 4 기본데이터 타입 Int : 64bit 정수 정수가 아닌 실수를 저장하려고 하면 오류 발생 UInt: 부호가 없는 64bit 정수형 음수를 저장하려고 하면 오류 발생 var aInt: Int = -100 aInt = 100 // aInt = 1.1 //Error var aUInt: UInt = 200 // var aUInt: U..
[기본문법]상수와 변수, 기본데이터 타입상수와 변수 상수 let : 변하지 않는 일정한 값 변수 var: 변할 수 있는 값 //상수 //let 상수명: 데이터 타입 = 값 let num1: Int = 100 //변수 //var 변수명: 데이터 타입 = 값 var num3: Int = 10 num2 = 100 //변수 num2의 값을 100으로 초기화 //생성 후 나중에 할당 가능 let num2: Int num2 = 4 기본데이터 타입 Int : 64bit 정수 정수가 아닌 실수를 저장하려고 하면 오류 발생 UInt: 부호가 없는 64bit 정수형 음수를 저장하려고 하면 오류 발생 var aInt: Int = -100 aInt = 100 // aInt = 1.1 //Error var aUInt: UInt = 200 // var aUInt: U..
2022.10.20