일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 애니메이션
- SWIFT
- ARC
- string
- 책 후기
- objective-c
- rxswift
- swift5
- leetcode
- ios
- 책 추천
- ReactiveX
- iOS SwiftUI
- 머신러닝
- wwdc
- stanford SwiftUI
- objc
- Algorithm
- 스위프트UI
- RX
- Xcode
- 알고리즘
- Deep learning
- Animation
- 스위프트
- swiftUI
- 문자열
- 책
- 독서
- 딥러닝
- Today
- Total
목록공부 (75)
THIS IS ELLIE
안녕하세요 :) 오늘은 알고리즘 포스팅이에요 재밌는 문제가 있길래 오랜만에!!!! 가져왔습니다 105번 문제이고 난이도는 Medium, 현재 Acceptance는 63.5%입니다 문제로 넘어갈게요 먼저 두 인티저 배열들인 preorder과 inorder이 주어집니다 preorder은 이진트리의 전위(preorder) 순회이고 inorder은 같은 트리의 중위(inorder) 순회래요 이 두 배열을 보고 우리는 이진트리를 생성하고 반환해야 해요 즉 인풋으로 preorder, inorder 배열들이 주어질 건데 이 정보를 가지고 이진트리를 만들어서 리턴해! 첫 번째 예제 두 번째 예제 제약들도 있으니 참고 자 이제 문제를 풀어봅시다 ⭐️ 문제 풀기 전에 알아야 할 중요한 두 가지 사실이 있어요 ⭐️ 1. p..
안녕하세요 :) 저는 크래시 때문에 메모리 관련해서 딥 다이브를 해보고 있는데요 XCTest 프레임워크를 활용하여 메모리 누수 가능성을 쉽게 확인할 수 있는 방법이 있어서 관련해서 오늘 포스팅을 해보려고 합니다 사용할 함수는 바로 바로 addTeardownBlock이 함수입니다 테스트가 끝날 때 실행할 블록을 등록하고 블록은 현재 테스트 메서드가 끝나면 이후에 실행됩니다 즉 현재 테스트 메서드가 종료될 때 실행되는 코드 블록입니다 ???이걸로 어떻게 메모리 누수 가능성을 판단하냐??? 더 이상 사용되지 않는 객체는 dealloc이 되잖아요 이 걸 addTeardownBlock 여기 블록 내에서 확인해 볼 수 있어요 XCTAssertNil를 활용해서 이 객체 더 이상 사용되지 않으니 nil일 거야!!! 이..
이전 포스트에서 Dependency Injection이 유닛 테스트에 왜 필요한지에 대해 포스팅했다면 오늘은 Dependency Injection이 무엇인지에 대해서 간단히 작성해보려 합니다 그래 Dependency Injection이 도대체 뭔데? 저도 처음 DI를 접했을 때 꽤 많이 혼란스러웠는데요 아직까지도 혼란스러울 수도? 응? Dependency Injection에 대해서 찾아보면 의존관계 주입, 의존성 주입 등등 나오는데 그냥 영어 그대로 받아들여야 이해하기가 더 쉬운 것 같아요 Dependecy를 Inject 한다 ??????????? 그림으로 같이 봐요 A 객체 B 객체가 있다고 생각해 봅시다 A 객체 함수 내부에서 B 객체를 생성하면 아래와 같은 모습이 되겠죠 A 객체의 함수 내부에서 B..
안녕하세요 오랜만이에요 :) (아무도 안 물어봤지만) 요즘 나의 관심사 == 유닛 테스트 오늘은 DI가 유닛 테스트에 왜 필요한지에 대해서 작성해보려 해요 Class A와 Class B가 있다고 생각해 봅시다 우리는 클래스 A의 a 함수가 잘 동작하는지 그리고 예상한 결과가 잘 반환되는지 확인해 본다고 할게요 클래스 A의 a 함수가 다른 코드에 독립적이다면? a가 성공 실패 여부에 따라서 우리는 판단할 수 있겠죠 테스트에 성공했다면 a 함수가 잘 동작하고 있구나 또는 테스트에 실패했다면 a 함수에 어느 부분이 문제가 있구나 아... 수정해야겠다 이렇게요! 하지만 프로젝트가 커질수록 모든 함수가 다른 코드에 독립적이기는 쉽지 않죠? 다른 객체를 생성하고 어떤 작업을 하도록 호출하는 경우가 많을 겁니다 위 ..
1. 프로젝트 생성 시에 유닛 테스트 추가하기 Include Tests를 체크하면 모든 테스트가 다 포함됩니다. 뭐 버전에 따라 다르겠지만, Include Unit Tests으로 표시되는 분은 해당 체크박스 체크해주시면 유닛 테스트만 포함됩니다. 2. 기존에 존재하던 프로젝트에 유닛 테스트 추가하기 기존에 생성할 때 Include Tests를 추가하지 않았다면? 고럼 왼쪽 상단에 프로젝트를 눌러줍니다. 그리고 하단에 + 버튼을 눌러서 Unit Testing Bundle을 검색해 줍니다. 이름 정하고 Finish 하면 됩니다. Unit Testing Bundle이 추가된 것을 확인할 수 있습니다.
안녕하세요 :) 오늘은 유닛 테스트에 대해서 작성해 보겠습니다. 저한테 유닛 테스트는 참 숙제 같은 친구네요. 앞으로 유닛 테스트에 관련된 포스트가 종종? 올라올 것 같습니다. 유닛 테스트가 뭐야(what)? 유닛 테스트는 소스 코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차입니다. 다시 말해 애플리케이션에서 작동하는 하나의 함수 또는 메소드에 대한 테스트 케이스를 작성하는 절차를 말합니다. 그래서 이걸 왜(why) 하는데? 1. 프로그램의 안정성이 높아진다. 유닛 테스트의 목적은 프로그램의 각 부분을 고립시켜 각각이 정확하게 동작하는지 확인하는 것입니다. 즉, 프로그램을 작은 단위로 쪼개서 각 단위가 정확하게 동작하는지 검사하고 이를 통해 문제 발생 시 정확하게 어느 부분이 잘못되었는지..
안녕하세요 오늘은 371 문제를 풀어보겠습니다. 난이도는 Medium, Acceptance는 50.6%입니다. 문제를 봅시다아 두 정수 a,b가 주어지면 두 정수를 더한 값을 리턴해라. 단 +,- 연산자는 쓰지마 Example 1번을 살펴보면 1, 2를 더한 값인 3을 리턴해주고 Example 2번을 살펴보면 2,3을 더한 값인 5를 리턴해줍니다. 마음으로는 advanced(by: ) 함수 써서 끝낼 텐데^^,, func getSum(_ a: Int, _ b: Int) -> Int { return a.advanced(by: b) } 조금 남은 양심이 말리네요. 근데 21년 5월 30일에 그렇게 풀었음ㅋ 심지어 22년 9월 15일에도 동일하게 advanced(by: )로 풀었음ㅋ 이 정도면 잔머리 대마왕..
오늘은 118,119 문제를 풀어보겠습니다. 모두 파스칼 삼각형 관련 문제고 난이도 Easy, Acceptance는 64.3%, 57.4%입니다. 먼저 118부터 ㄲ 정수형 numRows가 주어지면, 파스칼의 삼각형에서 첫 번째 numRows를 리턴하세요. 파스칼의 삼각형에서 각 숫자는 바로 위 두 수들을 더한 값입니다. 3번째 줄에서 2는 바로 위 1과 1를 더한 값입니다. 마지막 5번째 줄에서 6은 바로 위 3과 3을 더한 값입니다. 여기서 파스칼의 삼각형 규칙은? 첫 번째 줄은 무조건 1입니다. 각 row의 시작과 끝은 무조건 1입니다. n번째 row에는 모두 (n)개의 수가 있습니다. (index라고 치면 n번째에 n + 1개) 주어진 예를 보겠습니다. 1번 예제 numRows로 5를 받았으면, ..