본문 바로가기
728x90
반응형

공부/CS10

[CS] Swift로 의존성 주입 이해하기 오늘은 의존성 주입(DI; Dependency Injection)의 개념과이를 활용한 코드 예제를 통해 결합도를 낮추고, 유지보수성을 높이는 방법을 알아봅시다. 1. 의존성우리가 어떤 클래스를 만들고 나면 실제로 사용할땐 아래의 예시코드처럼 인스턴스를 생성해서 씁니다.class InkjetPrinter { func printDocument(content: String) { print("Inkjet Printer: \(content)") }}class LaserPrinter { func printDocument(content: String) { print("Laser Printer: \(content)") }}class Document { private .. 2025. 2. 26.
[CS]Swift로 다형성 이해하기 이번 글에서는 다형성의 개념을 설명하고, 이를 이해하기 위한 예시 코드를 함께 살펴보겠습니다.다형성(Polymorphism)은 객체 지향 프로그래밍(OOP)의 중요한 개념 중 하나로,같은 프로토콜을 채택하여 서로 다른 타입의 객체를 다룰 수 있게 해줍니다. 1. 다형성의 정의다형성(Polymorphism)을 직역하면 '여러 형태를 가질 수 있다는 성질을 뜻합니다.진정한 의미는같은 메서드나 프로퍼티가 다양한 객체에서 다르게 동작할 수 있는 능력을 말합니다.주로 두 가지의 경우를 의미하는데요,오버로딩(Overloading) : 같은 이름의 메서드를 매개변수의 타입이나 개수에 따라 다르게 정의하는 것.오버라이딩(Overriding) : 자식(서브)클래스에서 부모(슈퍼)클래스의 메서드를 재정의하는 것.2. 오버.. 2025. 2. 21.
[CS] 비즈니스 로직과 서비스 로직 프로그래밍의 여러 분야에서 좀 더 딥하게 파다 보면 "~로직"이라는 단어를 많이 보게 되는데요,이번에는 비즈니스 로직과 서비스 로직에 대해 알아보고자 합니다. 1. 비즈니스 로직비즈니스 로직이라고 하면 뭔가 비즈니스적인또는 내가 하려는 일과 관련된것 같은 느낌이 들죠?사실 이 정도만 느껴도 어느 정도 맞습니다. 하지만 좀 더 정확히 알아볼까요?여기서 비즈니스는 '업무'또는 '일'을 뜻하고, 로직은 '논리'를 말합니다.즉, 비즈니스 로직이란 '일을 해결하는 논리(방법)'라는 뜻입니다. 소프트웨어 입장에서 보면 이는현실 세계의 작업을 해결하기 위한 실질적인 코드사용자의 요구사항을 해결하기 위한 실질적인 코드라고 할 수 있습니다.은행 앱으로 예시를 들어보자면,계좌 잔액 확인, 송금 가능 여부 결정, 수수료 계.. 2025. 1. 30.
[CS] OOP(객체 지향 프로그래밍)(feat. Swift) 일단 OOP를 왜 공부하게 됐는지부터 설명해 드리자면...일단은 Moya를 공부하고 있었는데요... 하다 보니까 DIP에 대해서 공부하게 되는데 이제 DIP를 이해하는 데에 OOP에 대한 기본적인 개념부터 다시 정리하고 넘어가는 게 좋겠다는 생각이 들어서 여기까지 오게 되었습니다...아무튼! OOP는 프로그램 설계 방법론 중 하나입니다.Object-Oriented Programming의 약어이며 명령형 프로그래밍에 속합니다.한국어로 하면 객체지향 프로그래밍.프로그램을 데이터, 처리방법 두 가지로 나누는 것이 아닌 객체(Object)라는 단위로 나누고 객체 간의 상호작용으로 설계하며대표적으로 C++, 파이썬, Objective-C 가 지원합니다. 객체지향 프로그래밍에는 3가지 요소가 있습니다.캡슐화, 상속.. 2024. 11. 25.
[CS] final, static, class(feat.Swift) 이번 시간에는 제일 헷갈릴수 있는 세가지를 알아봅시다.이전에 같은 내용으로 글을 쓴적이 있죠? 그걸 보강겸 다시 새로 좀 확실하게 공부하면서 새로 쓴 글입니다! 이전글간단요약static과 class는 메서드나 프로퍼티를 인스턴스화 하지 않고 하나만 존재하도록 하기 위해 사용한다.이 말인 즉슨 타입 프로퍼티, 타입 메서드로 만들어 버린다는 뜻.또한 static은 상속을 막을때도 쓴다.finalfinal은 딱봐도 느낌이 오죠? 끝! 이라는 느낌이 오실텐데요,final은 오버라이딩을 막기위해 사용됩니다.오버라이딩이란?인스턴스 메서드, 인스턴스 프로퍼티, 타입 메서드, 타입 프로퍼티, 서브스크립트의 재정의를 막는것입니다.잘 모르겠으면 아래 보시면 바로 아실거에요override func viewDidLoad() .. 2024. 10. 19.
[CS] 인스턴스화란 무엇일까?(클래스, 객체, 인스턴스) 이번시간에는 "인스턴스화"에 대해서 알아보려고 한다. 아마 다들 여기저기서 수업을 듣거나 강좌를 볼때 인스턴스화한다 라는 말은 들어봤을 것이다. 근데 정확한 뜻은 모르고 그냥 느낌상 어떻다 라고만 알수있는데 이번에 확실히 알아보자. 인스턴스화란 객체지향에서 나오는 단어인데 주로 붕어빵틀과 붕어빵으로 얘기가 돌아다니는것을 확인할 수 있다. 하지만 이는 좀 부정확한 비유라는게 최근에 나오고 있다. 나도 동의한다. 그래서 나는 이왕 붕어빵틀로 얘기를 했으니까 붕어빵틀에서 크게 벗어나지 않으려 한다. 그래서 붕어빵틀의 설계도와 붕어빵틀로 얘기를 하려고 한다. 클래스(Class)와 구조체(Struct) 우리가 클래스나 구조체(스위프트에서는 주로 구조체(Struct)를 기본적인 구조와 내부 작동방식(메소드)등으로 .. 2024. 1. 2.
728x90
반응형