개발 관련
-
DI (Dependency Injection 의존성 주입), DIP ( Dependency Inversion Principle 의존 관계 역전 원칙)개발 관련 2022. 3. 23. 12:00
코드에서 Dependency 의존성이란, 동작하는 데에 다른 클래스 등이 필요하고, 이를 사용하는 것이다. 예를 들자면, SomeViewController는 SomeViewModel 타입 private let 변수를 가지고 있고 동작에 viewModel을 사용하고 필요로 하며 의존하고 있다. 의존성 주입이란 - SomeViewModel 과 같은 필요한, 의존하고 있는 객체를 - 외부에서 넣어주는 것이다. 의존성 주입 방법 - 프로퍼티 주입, 메서드 주입, 생성자 주입 소개한 주입 방법 중에선 생성자 주입을 보통 선호한다. SomeViewController의 생성 시 viewModel의 주입을 강제하고, 코드 단계에서 오류를 잡아주기 때문이다. 활용 목적 - DI는 테스트 용이한 코드를 작성하기 위해서도 ..
-
Reactive Programming, 반응형 프로그래밍개발 관련 2021. 8. 4. 17:13
반응형 프로그래밍은 비동기, 함수형 프로그래밍의 이해가 먼저 필요하다. 비동기 링크 함수형 링크 반응형 프로그래밍은 비동기 처리에 관련해 나온 아이디어다. - 비동기 동시 처리 (async concurrent) 처리 시, 데이터의 처리와 Thread-safe 때문에 고안 - 데이터 처리 방식은, 데이터를 관찰하며 데이터의 변화에 따른 처리를 함 ( 변화에 따라 반응해서 반응형 ) - 선언적 프로그래밍 개념 함수형 프로그래밍과 궁합이 좋다. - 둘 다 선언적 프로그래밍이고 - thread-safe를 위해 side-effect를 제거해야 하기 때문에 - Functional Reactive Programming, 함수형 반응형 프로그래밍 개념도 있다. 쉽게 생각하면 함수형 프로그래밍에 따라 비동기 처리 코드를..
-
비동기 async 개념, 키워드 정리개발 관련 2021. 8. 4. 16:26
키워드: 쓰레드, 동기(sync), 비동기(async), 동시(concurrent), 직렬(serial), thread-safe - 쓰레드: 프로그램 안, 프로세스 내에서 실행되는 흐름의 단위. - 멀티쓰레드: 프로세스 내에서 실행될 수 있는 쓰레드가 여러 개인 것이다. 멀티 쓰레드 환경에서 1번 쓰레드가 2번 쓰레드에 작업을 넘겼을 때, 이후 1번 쓰레드는 어떻게 할 것인가에 따라 동기 비동기 개념이 나뉜다. 동기 vs 비동기 - 동기: 작업이 완료되기 까지 기다린다. 1번 쓰레드가 2번 쓰레드에 작업을 넘기고, 2번 쓰레드의 작업 완료까지 기다린다. 즉, 2번 쓰레드 작업 완료까지 1번 쓰레드는 대기한 후, 다음 일을 진행한다. - 비동기: 작업의 완료를 안 기다린다. 1번 쓰레드가 2번 쓰레드에 작..
-
Functional Programming, 함수형 프로그래밍개발 관련 2021. 7. 30. 19:03
데이터는 immutable 하게 취급하며, 데이터 변경이 필요할 때는 새로 만들자 - 데이터를 변경해야 할 경우, 다른 함수에 파라미터로 값을 넘긴 후, 리턴 값을 새로운 변수에 저장하자. side-effect 를 없애기 위해, Pure Function 을 사용하자. - 함수는 외부와 소통하지 않는다. - 함수 외에서 유지, 관리 되는 설정값 등은 없어야 한다. 함수 들의 Composition 과 High-Order Function ( 고차함수 ) 로 프로그램을 구성하자. Data가 아닌 Process에 집중하여 프로그램을 만들자. 명령형 프로그래밍이 아닌, 선언형 프로그래밍 을 하자. - 함수의 사용은 문장과 같이 읽히며, 이를 통해 구문의 인풋-프로세스-아웃풋 을 유추할 수 있다. - 중복은 피하지만..
-
애자일, 익스트림 프로그래밍, 테스트 주도 개발개발 관련 2020. 10. 26. 19:52
애자일 - 처음부터 끝까지 계획을 수립하고 순서대로 이행하는 폭포수 모델과 달리 개발과 함께 즉시, 지속적으로 피드백을 받아 유동적으로 개발하는 방식이다. 애자일 방법론 중 하나로 XP, 익스트림 프로그래밍이 있다. XP, 익스트림 프로그래밍 - 의사소통, 단순성, 피드백, 용기, 존중 키워드를 기억하자. 익스트림 프로그래밍의 실천 방안으로 TDD, 테스트 주도 개발이 있다. 기본 원칙 1. 조금씩, 하지만 자주 발표한다. 2. 사이클을 반복해서 돌리면서 개발한다. 3. 스펙에 없는 것은 절대 집어넣지 않는다. 4. 테스트 코드를 먼저 만든다. 5. 야근은 하지 마라. 항상 정규 일과 시간에만 작업한다. 6. 기회가 생기는 족족 언제 어디서든 코드를 개선한다. 7. 모든 테스트를 통과하기 전에는 어떤 것..