본문 바로가기

전체 글131

요리도감 프로젝트를 진행하면서 느낀점 7월초부터 9월초까지 "요리도감" 이라는 요리 커뮤니티 앱을 개발해보았고, 진행하면서 배웠던 점, 아쉬웠던 점 그리고 느꼈던 감정 등에 대해서 기록을 하고자 한다. 1. 배웠던 점 1) 어떤 기능을 구현할 때 기능 실행이 안되는 등의 문제가 발생할 때 앱의 수명주기를 고려하는 것이 중요하다. ex) 컬렉션뷰에 1번, 2번, 3번사진들이 나열되어 있다. 이 중 2번 사진을 선택했을 때 확대할 수 있는 detailview가 나오면서 내가 선택한 사진이 나와야 하는 기능을 구현할 때 scrollToItem이라는 메서드를 사용했다. 문제는 해당 메서드를 viewWillApppear메서드 안에 넣었는데 작동이 되질 않았다. 문제 해결은 수명주기의 문제였구나를 깨닫고 viewDidAppear에 해당 메서드를 넣었더.. 2022. 9. 19.
요리도감 이용약관 ('https://iosjiho.tistory.com/'이하 '요리도감')은(는) 「개인정보 보호법」 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리방침을 수립·공개합니다. ○ 이 개인정보처리방침은 2022년 9월 7부터 적용됩니다. 제1조(개인정보의 처리 목적) ('https://iosjiho.tistory.com/'이하 '요리도감')은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며 이용 목적이 변경되는 경우에는 「개인정보 보호법」 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다. 제2조.. 2022. 9. 7.
@escaping에 관하여 @escaping 함수를 파라미터로 받는 함수가 있다고 한다. ex) func doSomething(completion : () -> ()) { print( "start" ) DispatchQueue.main.asyncAfter( deadline : .now() + 10{ completion() } print( "end" ) } 이 함수는 error가 발생한다. 왜냐하면 함수의 실행흐름이 끝나고 나서 completion이 실행되기 때문이다. 이렇게 non-escaping closure 형식은 함수 내에서 모든 실행을 맞춰야 한다. 하지만 파라미터 앞에 @escaping을 붙여준다면 모든 함수가 종료되고 나서 10초 후에 completion이 실행된다. 여기서 "@escaping을 붙여준다면 파라미터로 받.. 2022. 8. 25.
모든 ios개발자가 알아야 할 중요한 사항 1. Reactive Programming(반응형 프로그래밍) -어느 회사에서든 면접을 볼 때 Reactive Programming에 대해 경험이 있는 지 물어보는 경우가 반드시 올 것이기 때문에 배워두어야한다. -정의, 구현 방법, RxSwift, 결합 라이브러리 배우기. 2. Asynchronous Programming(비동기 프로그래밍) -비동기 확인 / 대기, DispatchQueues 이해, Grand Central Dispatch 이해 3. Networking(네트워킹) -컴퓨터 네트워크를 통해 통신이 가능한 프로그래밍을 하는 것이 중요하다. -URLSession -Moya(라이브러리) - Kingfisher(이미지 로드 전문) - HTTP(일반적으로 작동하는 방식) - JSON(데이터 형식).. 2022. 8. 13.
Class와 Struct -class와 struct의 차이에 관한 질문이 정말 많다. 이 질문의 목적은 단순하게 class와 struct의 특성차이, 장*단점 등에 관해 이해하는 것이 아니라, class와 struct에 대해 정확하게 이해하여 어떤 상황이 주어졌을 때 적절하게 사용하여 프로그램 성능을 개선할 수 있는 지가 질문의 요점이라고 생각한다. -struct는 class와 다르게 상속이 불가능하지만 상속을 제외하면 class와 기능이 유사하다. -struct과 class는 객체 지향 프로그래밍을 위한 필수요소로 추상화에 이용된다. -오늘은 두 가지의 개념에 대해서 deep diving해 볼 것이다. Class -class는 청사진으로 어떤 집단의 속성과 행위를 정의해 놓은 것이다.(속성과 행위는 property와 metho.. 2022. 7. 4.
getter와 setter 그리고 willSet과 didSet -get과 set은 연산 프로퍼티로 클래스, 구조체, 열거형에서 사용된다. 저장 프로퍼티와 다르게 저장공간을 갖지 않고, 다른 저장 프로퍼티의 값을 읽어 연산을 실행하거나, 프로퍼티로 전달받은 값을 다른 프로퍼티에 저장하는 역할을 한다. 또한 연산 프로퍼티는 값을 저장하지 않기 때문에 타입추론이 불가능하다. 따라서 선언할 때 var와 타입 어노테이션을 통해 자료형을 명시해주어야 한다. -get은 읽기 전용으로 리턴값이 있고, set은 파라미터로 받은 값을 조건에 맞게 연산해준다. 여기서 set의 파라미터명은 생략해도 되고 우리가 파라미터로 접근할 때 newValue라는 set에 지정해놓은 이름으로 사용할 수 있다. -willSet과 didSet은 observer property로 프로퍼티의 값을 관찰하고.. 2022. 7. 1.