Functions(함수)- 특정 기능을 수행하는 코드 조각- 언제든지 다시 사용이 가능하다.쉽게 말해서 나만의 함수를 만드는 것! calling Functions 함수를 가져다 쓰는 것. SyntaxfunctionName(parameters) Defining Functions함수를 직접 만들어 쓰는 것. Syntaxfunc name(parameters) -> ReturnType { statments}ReturnType에는 함수가 return하는 값의 형식을 선언한다.그리고 함수의 이름은 lowerCamelCase로 지어야 한다.parameter는 생략할 수 있다. 아래의 코드가 예가 될 수 있다.func sayHello() { print("hello, swift")}sayHello()위처럼 sayHe..
과제물의 조건. 조건은 위와 같았다. 완성된 코드를 먼저 보자import UIKitvar balance: Double = 0.0 { willSet(newValue) { if newValue >= 0.0 { print("\(newValue)원을 입금하겠습니다.") print("기존 잔액: \(balance), 입금 후 잔액: \(newValue)\n\n") } else { print("🚨 경고: 잔액은 음수가 될 수 없습니다. 잔액을 0원으로 설정합니다.") balance = 0.0 print("최종 잔액: \(balance)원") } } didSet {..
직사각형의 넓이와 둘레를 계산해보자!!width = 10height = 5 로 가정하고 만들어보겠다. let width: Int = 10let height: Int = 5var nn = width * heightvar dd = (width + height) * 2print("넓이: \(nn)")print("둘레: \(dd)")넓이를 구하는 방법은 가로 X 세로둘레를 구하는 방법은 가로 + 세로 X 2그래서 넓이를 구하는 nn이라는 변수를 선언하고둘레를 구하는 dd라는 변수를 선언했다. 그리고 width와 height가 0 이하일때, 넓이와 둘레를 0으로 출력하는 코드를 작성했다.if width >= 0 && height 코드에 보이는 &&은 반드시 둘다 해당이 되어야만 한다는 뜻이다. "그리고" 라는 ..
오늘은 위의 과제물을 수행해 볼 것이다! 첫번째 문제 - 학생 관리학생의 이름을 등록한다. 이름과 ID를 입력받아 Dictionary에 등록되도록 한다!var students: [String: String] = ["001": "배추", "002": "뭉치"]내가 직접 짜본 코드다.빈 Dictionary를 만들지 않고 직접 바로 넣었더니, 보기도 좋지 않고, 출력했을때 "뭉치"부터 거꾸로 나왔다. var students: [String: String] = [:]students["001"] = "배추"students["002"] = "뭉치"뭔가 다른 방법이 있지 않을까 싶어서 답지를 한번 보고 구현해봤다.답지에는 빈 Dictionary를 선언하고 직접 값을 넣는 방법을 사용했다.조금 더 깔끔한 코드가 된 것..
Initializer- 객체를 생성할 때 초기 상태를 설정하는 메소드- 클래스, 구조체(Structure), 열거형(Enumeration)을 만들 때 호출됨- 주 용도는 속성 값을 초기화 하는 것 // Syntaxinit() {} Initialization이 굳이 왜 굳이 필요한지 찾아보았다.처음 사용되기 전에, 타입의 새로운 인스턴스가 올바르게 초기화되는 것을 보장하기 위해서 필요한 과정이라고 한다.즉 초기화 없이 사용하다가 올바르지 않은 값이 사용되는 것을 막고 안전성을 보장하기 위한 기초공사라고 생각하면 된다. 그럼 실제로 사용해보겠다. class car { var model: String var hp: Int init(model: String, age: Int) { ..
Type Casting타입 캐스팅은 아래와 같은 역할을 한다.- 인스턴스의 타입을 확인한다- 해당 인스턴스를 자신의 클래스 계층에 있는 상위 또는 하위 클래스로 처리한다. 타입 캐스팅 연산자expression is type // 타입 확인 연산자expression as type // 업캐스팅 연산자expression as? type // 다운캐스팅 연산자expression as! type // 다운캐스팅 연산자 두 다운 캐스팅 연산자들의 차이를 보자면,as?는 옵셔널이다. 성공하면 옵셔널을 반환, 실패하면 Nil을 반환as!는 강제로 캐스팅한다. 실패하면 당연히 에러가 발생한다.
문자열보간문자열보간이란, 문자열 내부에 변수 var를 배치하여 좀 더 유용하게 사용할 수록 하는 기능이다. // Syntaxvar exInt: Int = 2024var sti = "올해의 연도는 \(exInt)"// 아래와 같이 출력 될 것이다.// 올해의 연도는 2024 문자열 내부에서 \(변수이름) 을 넣어서 사용한다. 문자열 보간은 변수 배치에만 한정되는게 아니라 그 안에서 코드를 실행할 수도 있다.문자열 보간이 존재하는 이유는정적인 문자열만이 아닌, 사용자 지정 데이터와 결합된 형태로 제공할 수 있다.즉 실제 사용자 데이터를 표시할 수 있다.자주 변하거나 실시간으로 변하는 값을 출력할 때 사용하면 좋다. 예제를 하나 만들어 보자.var model = "RTX3070"var ea = 2var p..
실습을 하기 전, 아래의 글을 읽고 시작하면 좋다. Swift 기본 문법 - 데이터 타입Data Types데이터 타입의 컨셉은- 자료형을 데이터 타입 또는 줄여서 타입이라고 함.- 저장한 데이터에는 타입이 존재- 다양한 타입들에 다양한 쓰임새- 자료형은 메모리에 저장되는 메모리의 종류quaker.tistory.com 오늘 네가지의 과제를 수행하였다. 첫번째 문제.첫번째 문제는 어려울 것이 없었다. 데이터 타입을 선언하고 내가 임의로 값을 넣으면 된다.var age: Int = 27var interestRate: Float = 0.27var balcance: Double = 20_000_000var isLoggedIn: Bool = truevar userName: String = "Jay"var f..
Data Types데이터 타입의 컨셉은- 자료형을 데이터 타입 또는 줄여서 타입이라고 함.- 저장한 데이터에는 타입이 존재- 다양한 타입들에 다양한 쓰임새- 자료형은 메모리에 저장되는 메모리의 종류와 크기를 결정함.- Swift는 계산을 할 때 자료형을 통일시켜야 한다.// ex)Int + Double = X // 👎🏻Int + Int = Int // 👍🏻Double + Double = Double // 👍🏻 내장 자료형- Interger Types : 정수 자료형 Int- Floating-Point Types : 32비트 부동 소수점 자료형 // ex. 3.14와 같은 실수 Float - Double Types : 64비트 부동 소수점 자료형- Boolean Types : 참과 거짓 Bool..
https://medium.com/@justfaceit/i-왜-모바일-앱-개발에서도-아키텍처가-중요한가-b6616d586575 최근 수년간 스마트폰 하드웨어 사양의 급격한 향상과 다양한 모바일 비즈니스의 출현으로 인해, 과거와는 비교하기 어려울 정도로 모바일 앱의 복잡도가 높아지게 되었다.그런데 잘 생각해보면 아무리 모바일 개발이 복잡하다 한들, 백엔드 서버 시스템에 비해서 엄청난 코드량을 쓰지도 않는 것 같은데 왜 이렇게 다양한 아키텍처에 대한 요구가 생기게 된걸까? 1. 백엔드 프리젠테이션 로직이 단순해지고 있다 -> 프론트는 더 복잡해지고 있다.모바일 실행환경의 성능 향상과 동시에 웹 프론트엔드도 Angular를 시작으로 소위 Single Page Application의 형태가 일반화 되면서 서버에..