티스토리 뷰
학습내용
프로젝트
팀그라운드룰 작성 - Steven, SJ, Ki
계산기 프로젝트 관련 공부할 내용사이트
논리게이트
- 참고사이트
Over Flow의 이해
- 참고사이트
Stack 자료구조의 이해와 구현
- 스택(Stack)이란?
- 스택이란 자료구조는 사전적 정의인 '쌓다' '더미' 와 같습니다. 쉽게 설명하자면, 밑이 막힌 상자를 생각하시면 됩니다. 밑이 막혔으니 위로만 물건을 집어 넣을 수 있고, 뺄 수가 있겠죠? 이러한 구조 때문에 먼저 들어온 물건은 나중에 나갈 수 있고, 나중에 들어온 물건은 먼저 나갈 수 있게 됩니다. 이러한 구조를 '선입후출' '후입선출' 이라고 합니다.
- first in-last out
- 먼저 쌓인 데이터가 나중에 나간다.
- ex) 뒤로가기 버튼
- 스택 사용법
- 삽입 (Push)
- 삭제 (Pop)
- 읽기 (Peek)
- Stack의 구현 방법
- 배열
- 장점
- 구현 간단
- 원하는 데이터의 접근속도 빠름
- 단점
- 데이터 최대 개수를 미리 정해야 한다.
- 데이터의 삽입 및 삭제에 있어 비효율적 - 시간적, 비용적 손해
- 장점
- 연결리스트
- 장점
- 데이터 최대 개수 한정 X
- 데이터의 삽입 및 삭제 용이(연결리스트의 구조는 배열과 다르게 데이터들이 순차적으로 나열X)
- 단점
- 원하는 데이터의 접근이 불가능 - 연결되어 있는 링크를 따라 차근차근 하나씩 확인하며 데이터를 찾아야 하기 때문
- 장점
- 배열
- 참고사이트
자료구조의 예 - 나무위키
- 혼합 자료구조(Composite Data Structure)
- 배열 (Array)
- 선형 자료구조(Linear Data Structure)
- 추상적 자료구조(Abstract Data Structure)
- 딕셔너리 자료구조 (Dictionaries)
- 연관 배열 (Associative array.) Map이라고 칭하기도 한다.
- 연관 리스트
- 해시 테이블
MVC
- MVC 패턴은 Apple에서 기본적으로 지원하는 디자인 패턴으로 Model + View + Controller 구조의 아키텍터 패턴이다.
- Model: 앱은 데이터와 비즈니스 로직을 가지고 있다.
- View: 사용자에게 데이터를 보여주거나 UI를 담당한다.
- Controller: Model과 View의 중간다리 역할로 View로부터 사용자의 action을 받아 Model에게 어떤 작업을 해야하는지 알려주거나, Model의 데이터 변화를 View에게 전달하여 View를 어떻게 업데이트할지 알려준다
Singleton
- 싱글톤 패턴이란 특정용도로 객체를 1개 생성하여 공용으로 사용하고 싶을 때 사용하는 방법이다.
- 주로 환경설정, 로그인 정보 등을 특정용도로 생성해둔 객체에 넣어두고 여러객체에서 접근 가능하도록 하여 데이터를 사용하는 것이다. 이 객체는 임의로 메모리에서 해제해주지 않는 이상 프로그램이 실행되고 끝날 때까지 메모리에 유지된다.
- 단 하나의 인스턴스를 생성해 사용하는 디자인 패턴으로, 전역 변수처럼 전역 인스턴스 형태로 사용이 가능하다. 인스턴스가 필요할 때 기존의 인스턴스를 사용한다.
- 참고사이트
알고리즘
- 문제해결을 위한 절차/방법
- 대표적 알고리즘 - 정렬, 탐색, 재귀 등
- 여러가지 알고리즘이 있고, 데이터의 양, 데이터 처리방법에 따라 다른 방법을 선택하기도 한다. 우위라는 건 존재하지 않는다.
- 어떠한 문제를 해결하기 위한 여러 동작들의 모음
- 옷
- 양말
- 세면도구
- 신발
- ex) 여행가방 싸기
자료구조
- 자료를 효율적으로 이용할 수 있는 방법론
- 데이터를 구조적으로 표현하는 방식
- 장단점을 가지고 있기 때문에 상황에 맞게 사용한다.
자료구조 - 원시구조 / 선형구조 / 비선형구조
- 원시구조
- 정수, 실수, 문자
- 선형구조
- 배열, 연결 리스트, 스택, 큐, 덱
- 비선형구조
- 트리, 그래프
자료구조 - 물리적 구조 / 추상적 구조
- 물리적 구조
- 정수, 실수, 문자
- 배열, 연결 리스트
- 추상적 구조
- 스택, 큐, 덱, 트리, 그래프
배열의 장점
- Int, String, Double 정해진 자료형만 들어간다.
- 칸/방은 지정되어 있다.
- 가장 간단하고 빠른 자료구조의 형태
배열의 단점
- 칸 수가 정해져 있다.
- 한 번 만들어놓으면 칸만큼 메모리를 차지하고 있다.
연결리스트
- 단순 연결 리스트
- 이중 연결 리스트
- 원형 연결 리스트
스택(Stack)
- 스택이란 자료구조는 사전적 정의인 '쌓다' '더미' 와 같습니다. 쉽게 설명하자면, 밑이 막힌 상자를 생각하시면 됩니다. 밑이 막혔으니 위로만 물건을 집어 넣을 수 있고, 뺄 수가 있겠죠? 이러한 구조 때문에 먼저 들어온 물건은 나중에 나갈 수 있고, 나중에 들어온 물건은 먼저 나갈 수 있게 됩니다. 이러한 구조를 '선입후출' '후입선출' 이라고 합니다.
- first in-last out
- 먼저 쌓인 데이터가 나중에 나간다.
- ex) 뒤로가기 버튼
큐(Queue) - 대기열
- first in-first out
- ex) 은행에 먼저 간 사람이 먼저 일을 본다.
덱(Dequeue)
트리(Tree)
그래프(Graph)
트리 vs 그래프
- 트리: 선이 겹쳐지지 않는다.
- 그래프: 시작과 끝이라는 게 없다.
정렬 알고리즘
- 선택정렬 - O(n²)
- 버블정렬 - O(n²)
- 삽입정렬 - O(n²)
- 병합정렬 - O(nlogn)
- 퀵정렬 - O(nlogn)
- 항상 빠른 건 아니지만, 대체적으로 빠른 편이다.
시간복잡도
- 알고리즘이 실행되는데 소요되는 시간분석
- 점근 표기법(대문자 O 표기법)
탐색 알고리즘의 시간복잡도
- 선형 탐색- O(n)
- 이진 탐색 - O(logn)
수업
야곰의 잔소리
- TIL 꾸준히 쓰자
- 체력 관리 잘하자
- 시간을 꼭 따로 빼두고 하자!
- 기록하는 시간이 중요하다.
- 금요일 - TIL, 일일회고, 주간회고, 프로젝트 회고
Kahoot
- 복습
- iOS 환경에서 Model과 View 사이의 중재자 역할을 하도록 구현된 타입의 종류를 지칭하는 용어는? Controller
- KVO와 Notification은 타입 사이의 결합도를 낮출 수 있다.
- 결합도?
- 응집도?
- 코코아터치 환경에서 앱 전역에 노티피케이션을 관리하는 노티피케이션 센터를 불러오는 방법은? NotificationCenter.default
- 인스턴스끼리 메서드를 호출하는 것은 메시지(Message) 를 보낸다고 표현할 수 있다.
- 타입의 결합도를 낮추는 것은 유지보수를 위해 중요하다 True
- 뷰 컨트롤러가 관리하는 뷰의 상태변화는 UIViewController 클래스의 메서드를 재정의(override)하여 파악할 수 있다.
- 뷰의 생명주기 메서드 중, 여러번 실행될 수 있는 가능성을 내포하는 메서드를 모두 고르세요.
- viewDidLoad
- loadView
- viewWillAppear O
- viewDidAppear O
- 엄밀히 따지면 4개 다 가능성을 내포하고 있다.
UML
코드를 설명할 때, 어떤 방식을 하나요?
- 코드
- 줄글
- 도표 - 시각화, 도식화, 추상화
Language?
- communication(의사소통)
- structured and conventional(구조화된, 양식화된)
UML을 사용하는 유형 3가지
- 나 자신 -> 전체 구조 및 클래스 의존성 파악
- 같이 일하는 사람 -> 의사소통 및 설계 논의
- 미래에 이 프로그램을 맡을 사람(나 포함) -> 문서화
- 구조 다이어그램 → 정적인 구조 : 한순간
- Class Diagrams
- 행위 다이어그램 → 동적인 구조 : 각 요소들 간의 변화와 흐름, 주고 받는 데이터들의 동작
- Sequence Diagrams
문제점/고민한점 → 해결방안
모리가 아프다...나의 메모리가 😱 → 일단 공부를 해봐야할듯
더 공부 해볼 내용
- 2진수 계산법
- 리스트
- 제네릭
- 프로토콜
- Delegation
- Binary
- Unit Test
'TIL' 카테고리의 다른 글
TIL ('21.03.25) (0) | 2021.03.26 |
---|---|
TIL ('21.03.23) (0) | 2021.03.26 |
TIL ('21.03.18) - iOS View Life Cycle (0) | 2021.03.18 |
TIL ('21.03.17) (0) | 2021.03.17 |
TIL ('21.03.15) (0) | 2021.03.16 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- overflow
- enumerations
- playground
- 반복문
- swift
- continue
- 객체지향 생활체조
- 흐름제어구문
- 산술연산자
- RawValues
- variables
- 훈련법
- conditional
- 범위연산자
- datatypes
- Functions
- labeled
- Constants
- 비트연산자
- 오버플로우연산자
- scope
- 옵셔널
- 세자리수마다 콤마넣기
- optional
- 오토레이아웃
- 삼항연산자
- 전산구문 기초용어
- 구문이름표
- iOS View Life Cycle
- 결합성
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함