본문 바로가기

야곰커리어캠프_TIL

(13)
20220314 / D21 / UnitTest & TDD UnitTest 테스트를 하는것은 어떤 의미를 가질까요 ? 안정성을 보장한다. 유지보수에 유리하고 스펙을 문서화할 수 있고 코드에 자신감이 생기고 깔끔한 코드 작성이 가능하다 유닛테스트란 컴퓨터 프로그래밍에서 소스코드의 특절 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차이다. 즉 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 절차를 말한다. 이를 통해 언제라도 코드 변경으로 인해 문제가 발생할 경우, 단 시간내에 이를 파악하고 바로 잡을 수 있도록 해준다. 가짜 객체를 생성하는 것도 좋은 방법이다. 유닛테스트는 개발자뿐만아니라 보다 더 심도있는 테스트를 위해 테스터에 의해 수행되기도 한다. 유닛테스트의 이점 해당 부분(메서드)에 대해서 독립적으로 테스트를 하기 때문에 빠른 리팩토링 반영과 빠른..
20220303 / D15 / 노티피케이션센터 예제코드 만들기 및 viewDidLoad에서 super메서드를 호출해야하는 이유 오늘학습내용 LifeCycle 이해하기 및 학습활동 viewDidLoad및 그외의 로드메서드들에서 super 메서드를 생성해줘야하는 이유 NotificationCenter 이해하기 학습활동에서 배운내용 옵저버를 중단안하고 view를 pop하면 메모리해제가되지않을 수 있어서반드시 해제 해줘야한다. 그런데 최신앱 환경에는 그런점이 개선되겠지만 구버전에는 그런부분을 신경을 써줘야한다. viewDidLoad는 화면과 동떨어질 수 있다라는 말은 데이터는 viewDidLoad에 로드 해두었다가 필요할때 사용할 수도 있는거라서 그런의미에서 얘기한거였다. navigation으로 넘어가서 dimiss를 하면 전화면으로 이동이 안되고 modaility로 넘어가서 pop을 하면 창이 내려지지않는다 이유는 같은 속성을 가지고..
20220225 / D13 / 화면전환(navigation&modality) 구현 및 데이터공유 + Alert구현 # modality 방식 스토리보드 ViewController의 indentifer Inspector로 들어가서 identifier를 기입한다. (본인으로 지정된 class명으로하면 구별이 쉽다) 첫번째 ViewController class내에서 이동하고자하는 secondViewController의 인스턴스를 생성하는 함수를 만든다 실행을한다. (만약 버튼을 클릭시 이동시키고 싶다면 버튼을 끌어와 @IBAction 함수내에 코드를 구현해도 좋을것같다.) // firstViewController에서 작성한 코드이다. func moveSecondViewController() { guard let secondViewController = self.storyboard?.instantiateViewControll..
20220224 / D12 / KVO와 Notification의 장단점 및 Init과 self에대한 궁금증 - Reference - https://docs.swift.org/swift-book/LanguageGuide/Initialization.html#:~:text=Default%20Property%20Values,in%20this%20chapter. - https://www.hackingwithswift.com/example-code/language/what-is-key-value-observing](https://www.hackingwithswift.com/example-code/language/what-is-key-value-observing) - https://leechamin.tistory.com/505](https://leechamin.tistory.com/505) # KVO [정의] - kvo란..
20220222 / D11 / auto 레이아웃 맛보기... 오늘학습내용 navigation bar 학습 autolayout 코드로작성할수있는방법은 3가지? Navigation View Controller 계층적으로 구성된 Content를 순차적으로 보여주는 container view controller stack구조로 구현되어있다. - navigation stack 계층 구조 탐색으로 앱 content를 보여주기에 적절하다 한번에 한 child view controller의 content만 보여진다. tree구조처럼 상위 카테고리에서 점차 하위 카테고리로 넓어져 가는 구조를 표현한다. 다시 상위 카테고리로 돌아가기 위해서는 가장 최근에 보여진 VC부터 역순으로 거쳐가야된다. 즉 LIFO(Last In First Out) 특성의 stack구조가 이를 구현하기에 적..
20220215 / D9 / 재귀함수와 반복문의 차이 - Reference - https://www.tutorialspoint.com/what-are-the-differences-between-recursion-and-iteration-in-java - https://techdifferences.com/difference-between-recursion-and-iteration-2.html 재귀함수와 반복문의 특징 및 차이점 # 재귀함수와 반복문의 특징 [재귀함수] - 재귀함수란 함수가 구문내에서 자기자신을 호출하는 것 [장점] - 형태를 사용하면 코드의 가독성을 높일 수 있다. [단점] - 원하는 값이 도출할때까지 stack에 메모리가 쌓이기때문에 더 많은 메모리를 사용한다. - stack관리의 오버헤드로?인해? 반복보다 속도가 느리다. - 예상치 못한 ..
20200213 / D8 / 일반화,추상화,캡슐화,은닉화 타입 - 개체를 대표하는 표현(명사들의 대명사를 설계하는 것) 일반화 - 연관성 있는 두개 이상의 개체집합을 묶어 상위의 개체집합을 만드는것, 추상화 - 중요한 특징을 추출해서 간단하게 표현할것(타입의 특징들을 추출한다.) 인스턴스 - 설계도를 통해 만들어진 개체를 인스턴스 프로퍼티 - 인스턴스 또는 타입이 공통적으로 갖는 특성 캡슐화 - 객체의 속성과 행위를 하나로 묶고, 실제로 구현 내용 일부를 외부에 감추어 은닉한다. 은닉화 - 데이터와 데이터를 처리하는 행위를 묶고, 외부에는 그 행위를 보여주지 않는 것 추상화랑 은닉화랑 비슷해보이는데 추상화하여 관점만 추출된 것을 굳이 보여줄 필요가 없을때 은닉화를한다? # 은닉화 팁 사용자와 상호작용할 필요없다고 생각되면 은닉화를 진행하자(단, 사용자에게 기능..
20200213 / D8 / 함수명 지을때 명사로..? - Reference - https://blog.naver.com/yysdntjq/222310877579 - https://www.swift.org/documentation/api-design-guidelines/ Swift.org Swift is a general-purpose programming language built using a modern approach to safety, performance, and software design patterns. www.swift.org 오늘 조금 충격적인 사실을 알게되었다. 가이드라인에 함수명은 동사로 시작한다는 말이있는데 대부분 잘 알것이다. 그런데 API 디자인 가이드라인에 보면 아래와 같은 내용이 나온다. 사이드 이펙(Side Effect)이 없..
20200211 / D5 / 인스턴스 끼리 값할당 시 주의사항(feat. 옵셔널체이닝) struct Book { let title: String let genre: Genre? let bookCode: Int var inventory: Int? } struct Genre { let novel: String let selfDeveloping: String let economy: String let finance: Finance? } struct Finance { let A: String? = "안녕클래오 파트라" let B: String? = "세상에서 제일가는" let C: String? = "포테이토 칩" let vestStockAndVestTiming: String? = "최고의 주식 최적의 타이밍" } let book: Book? = Book(title: "최고의 주식 최적의 타이밍"..
20220210 / D4 / 컴퓨터의 구조(Feat. Cs공부방법..?) # 오늘 배운것 요약 # 폰노이만 구조 폰노이만은 CPU, 메모리, 프로그램 구조를 갖는 범용 컴퓨터의 구조를 확립한 인물이다. $ 특징 - 산술 논리 장치와 프로세서 레지스터를 포함하는 처리 장치 - 명령 레지스터와 프로그램 카운터를 포함하는 컨트롤 유닛 - 데이터와 명령어를 저장하는 메모리 - 외부 대용량 스토리지 - 입출력 매커니즘 $장점 다른 작업을 시키려고 할때 굳이 하드웨어를 재배치할 필요없이 소프트웨어만 교체하면되기때문에 범용성이 크게 향상됨 폰노이만구조를 도입하면 프로그램 교체가 쉬워 편의정때문에 많은 컴퓨터들이 폰노이만 구조를 따른다. $단점 병목현상이있음 - 내장 메모리 순차처리방식으로 데이터 메모리와 프로그램 메모리가 구분되있지 않고 하나의 버스를 가지고 있는 구조라서 CPU가 명령어..