2021/07

    [iOS] Firebase GoogleService-Info의 파일명 문제

    Firebase Realtime Database를 연결하기 위해서는 GoogleService-Info.plist를 다운로드 받고 프로젝트에 추가시켜야 한다. 다만 여러 프로젝트를 진행하면서 .plist들도 여러 번 다운로드 받게 되면 파일의 이름이 바뀌게 된다. 처음에 받을 때는 GoogleService-Info.plist의 파일명이겠지만, 그 이후부터는 GoogleService-Info.plist (1), GoogleService-Info.plist (2)... 이런 식으로 파일명이 중복되지 않게 생성될 것이다. 그대로 프로젝트에 추가하면 당연히 안된다! 기본적으로 AppDelegate에서 실행되는 FirebaseApp.Configure()은 GoogleService-Info.plist를 찾게된다. 하..

    [iOS] 내가 보려고 쓰는 NotificationCenter 사용법

    NotificationCenter를 직역하면 알림센터가 된다. 사실 말 그대로 "알림을 통해 액션을 통제"하는 역할을 한다. 많은 서적, 영상에서 NotificationCenter를 방송국으로 비유하기도 하는데, 그 이유는 차차 읽다보면 알 수 있다. NotificationCenter : 자자 액션이 수행되었으니, 각 담당자들은 업무 수행 바람~ VC1 : 넵 VC2: 네~ VC3: 네! NotificationCenter가 관제탑이 되는 것이고, 각 VC 1,2,3에게 각 업무를 수행해야하는 시점에 말해주는 것이다. (마치 방송국에서 전파를 쏘고, 각 가정집의 TV에서 이를 수신하여 화면을 보여주는 것과 같아서 그렇게 비유하는 듯 하다.) 만약 VC1이 화면에서 사라질 때, VC2의 버튼을 회전시키고 싶..

    [OS] 1. Computer System Overview 1

    운영체제란? 운영체제란 무엇일까? 사전적 의미를 찾아보면 다음과 같다. 운영 체제 또는 오퍼레이팅 시스템은 시스템 하드웨어를 관리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시스템 서비스를 제공하는 시스템 소프트웨어이다. 운영체제의 주된 목적으로는 하드웨어를 효율적으로 관리하는 것이다. 여러 하드웨어를 잘 관리하여 효율적으로 운영하여야 컴퓨터 성능이 좋아지기 때문에 효율적인 관리가 중요하다. 또한 이를 효율적으로 관리함으로 인해 사용자 혹은 응용 프로그램에게 편의를 제공할 수 있다. 즉 주된 목적인 하드웨어를 관리하는 것이 중요하기에, 하드웨어에는 어떤 것들이 있는지 먼저 살펴보자. 하드웨어 컴퓨터 하드웨어는 프로세서, 메모리(기억장치), 주변 장치로 구성되고 이들은 시..

    2021년 상반기를 되돌아보며,

    작성일 기준으로 상반기 회고를 한다기에는 조금 늦은 감이 있는 것 같지만...ㅎㅎ 그래도 한 번 짚고 하반기로 넘어가는게 좋을 것 같다는 생각에 끄적여봅니다! 즐거운 회고 시간! 팀 이동 상반기에는 기존에 일하던 팀에서 조금 더 온라인에 가까운 업무를 할 수 있는 팀으로 이동했었다. 마찬가지로 B2B였고, 서비스 기획의 업무를 조금이나마 함께할 수 있다는 것에 매력을 느껴 이동하게 되었다. 이동한 후 현재까지 약 6개월 가량 B2B 교육 + 서비스 기획에 기여하며 팀의 성장과 프로덕트의 성장을 보는 것은 뿌듯했다. 하지만 뭔가 자신을 만족시켜줄만 한 포인트가 많지 않았고, 들여다보니 역시 개발에 대한 욕구가 한 켠에 그대로 자리잡고 있음을 확인했다. 지난 2020년 1월 입사했을 당시부터, 개발에 대한 ..

    [iOS] viewForHeaderInSection의 주기에 대하여...

    테이블뷰의 헤더에 다양한 커스텀 뷰를 추가해본 적이 있을 것이다. ScrollView + PageControl로 이미지 슬라이더를 구현했던 적이 있는데, 전체 뷰의 스크롤을 하단으로 내림에 따라 해당 헤더뷰가 화면에서 사리지게 되고, 다시 올라왔을 때 하나의 문제를 발견할 수 있었다... 예를 들어 이미지 슬라이더의 이미지를 3번째까지 슬라이드 해두고, 뷰를 끝까지 내린 후 다시 헤더로 왔을 때 아이템이 0번째로 이동해있는 문제였다... 이유를 찾아보니... viewForHeaderInSection은 단 한 번 호출되는 것이 아니라 여러 번 호출된다는 것 때문이었다! (여러 번의 조건 = "헤더뷰"가 등장할 때 마다) 즉 이를 고려해서 코드를 구현했어야 했는데, 매번 헤더가 등장할 때 마다 해당 메서드가..

    [iOS] UITableViewCell내 UIButton 액션이 작동하지 않을 때 (feat. tag/delegate/closure)

    아무렇지 않게 tableView의 CustomCell에 UIButton을 넣어주고 addTarget을 하여 액션을 넣어주고 있었다. . . 응??🧐 . . 당연히 cell에 넣어주고 action을 주면 작동을 하리라 생각했으나 되지 않았다..! 바로 검색 시작... 정말 다양한 답변들을 찾아볼 수 있었다. 하지만 모든 방법이 문제를 해결해주지는 못했고...😇 여러 가지 방법을 찾아본 결과... 결론을 먼저 이야기하자면 총 세 가지 방법으로 해결을 할 수 있다. 1. cellForRowAt에서 Button의 tag를 이용하는 방법 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { le..