23.10.31 화
·
iOS/🌱 SeSAC
💡 알고리즘 ✅ 그래프 노드와 간선으로 구성된 자료구조 이를 통해 연결된 노드간의 관계를 표현할 수 있다. 노드(정점) ✔️ 인접행렬 장점: 노드의 연결 상태를 바로 알 수 있음 단점: 노드의 개수가 N이라고 하면 이 배열의 크기는 N*N이 된다. 특정 노드에 연결된 노드를 찾으려면 N번만큼 확인해줘야 한다. ✔️ 인접 리스트 노드별로 연결된 노드를 기록 장점: 실제로 연결된 노드의 정보만 알면 된다. 단점: i와 j 노드의 연결 상태를 바로알 수 없다. ✅ 트리 사이클이 없고 방향이 없는 그래프 특징: 두 점을 연결하는 경로는 유일하다. 루트 노드 - 부모가 없는 최상위 노드 부모 노드 - 루트노드 방향으로 직접 연결된 노드 자식 노드 형제 노드 - 같은 부모를 갖는 노드 리프 노드 - 자식이 없는 노..
23.09.01 금
·
iOS/🌱 SeSAC
화면 전환 시 서버 통신 화면 전환 시 서버 통신 후 값 전달화면 전환할 때 응답을 받은 후 전환해야 하기 때문에 사용자 입장에서 불편함을 느낄 수 있음(속도) 통신에 실패할 시 얼럿 등의 메세지를 띄우는 대처 필요 화면 전환 후 viewDidLoad 통신 실패 화면을 준비하는 것이 필요하다 💡 URL Session 타임아웃 시간 걸기 let request = URLRequest(url: url!, timeoutInterval: 10) error가 발생하지 않는다면 error 값은 nil일 것이다. let result = try? JSONDecoder().decode(, from: data) 오류가 발생했을 때 result에 nil값이 들어가버리면 어디에서 문제가 발생했는지 알 수 없다. let resu..
23.08.31 목
·
iOS/🌱 SeSAC
✅ deinit 메모리 상에서 뷰컨이 필요 없어져서 메모리 상에서 사라졌는지 확인할 때 사용 deinit { print("deinit", self) } 메모리 누수를 찾아볼 수 있는 방법이다. back button 클릭하여 뷰가 사라질 때 deinit 호출 됨 viewcontroller에 작성했던 collection view의 설정들을 view 파일에서 작성하기 🚨view에서 화면 전환이 불가능 화면 전환 관련 코드들은 viewController가 가지고 있기 때문에 view에서 작성 시 didSelectItem에서 화면 전환을 구현할 수 없다. 값 전달 활용 - protocol protocol을 활용하여 셀을 선택 함을 알려줌 1. protocol 생성 2. delegate 생성 3. 셀 선택 시 vi..
23.08.30 수
·
iOS/🌱 SeSAC
💡 싱글톤 패턴 클래스는 어디서든 인스턴스 생성을 할 수 있다 init이 internal로 선언되어 있기 때문 아무 곳에서나 생성이 되지 않게 하기 위해 private으로 접근 제어 수준을 높이자 💡 convenience init searchBar, button 등은 왜 초기화 할 때 frame 지정을 안해줘도 동작이 될까? 초기화 구문을 구현할 때 convenience를 붙인다면 디폴트 값을 지정해줄 수 있다. 초기화 시 매개변수를 안보이게 내부적으로 디폴트 값이 구현되어 있고, 초기화 시 디폴트 값으로 초기화를 한다. 💡 webView 웹 뷰에서 네비게이션 컨트롤러가 처음에는 투명, 스크롤 하면 불투명 ✅ NavigationBar Custom 스크롤x / 스크롤 내렸을 때 navigationContr..