목록분류 전체보기 (34)
Geon
Single Responsibility Principle(단일책임 원칙) 하나의 클래스는 하나의 책임만을 가져야 한다. 왜 하나의 책임만을 가져야 할까?? 재사용의 어려움 이해하기 어려워, 유지보수가 힘들어진다. 특정 기능을 변경했는데 객체 일부만 수정되었거나, 원하지 않는 객체들도 수정이 될수도 있다. Bad Case struct Cacao { func 서비스개발() -> APP { let 설계도 = 설계하기() let api = 백엔드개발(설계도: 설계도) return 프론트개발(API: api) } func 설계하기() -> UML { return UML } func 백엔드개발(설계도: UML) { return API } func 프론트개발(API: API) -> APP { return APP } ..
코드 import Foundation struct Queue { private var list: [Int] = [] mutating func push(value: Int) { list.append(value) } mutating func pop() -> Int{ list.isEmpty ? -1 : list.removeFirst() } func size() -> Int { return list.count } func empty() -> Int { return list.isEmpty ? 1 : 0 } func front() -> Int { return list.first ?? -1 } func back() -> Int { return list.last ?? -1 } } var queue = Queue() f..
SOLID 원칙을 왜지킬까?? 코드의 품질을 높이기 위해서 코드의 품질이 무엇인데요?? 가독성 단순성 유연성 Single Responsibility Principle(단일책임원칙) 한클래스는 한가지의 책임만을 가져야한다. 하지만 MVC패턴에서의 ViewController는 이러한 원칙을 어기고 있다. Open-Close Principle 확장에는 열려있고 변경에는 닫혀있어야 한다. Swift에서는 enum은 case가 추가되면 switch문에 모두 추가해줘야하기에 메서드에 대한 행동을 추가할떄 용이 Protocol은 추상화된 인터페이스가 변경될떄는 해당 프로토콜을 준수해야하기에 모두 오류 Liskov Substitution Principle 자식클래스는 부모 클래스로써의 역할을 모두 수행해야 한다. De..
for _ in 0..
import Foundation for _ in 0..
스택 import Foundation struct Stack1 { private var list: [Int] = [] mutating func push(_ value: Int) { list.append(value) } mutating func pop() -> Int{ if list.isEmpty { return -1 } return list.removeLast() } func size() -> Int { return list.count } func empty() -> Int { return list.isEmpty ? 1 : 0 } func top() -> Int { return list.last ?? -1 } } var stack = Stack1() for _ in 0..