TIL

[Sesac IOS] 23일차 TIL

23일차 수업 내용을 정리한 글입니다.


Learned

.gitignore

  • 의도적으로 git에서 변경사항을 추적하지 못하도록 등록해놓은 파일 또는 폴더 목록
  • xcode에서 Empty 파일 형식으로 생성할 수 있음.
  • 이미 추적 중인 파일을 나중에 gitignore에 추가했다면
    git에서 해당 파일을 제거하는 작업이 필요함.
git rm --cached file_name 명령어로 제거 후 commit, push
프로그래밍 언어, OS에 따라 .gitignore 파일을 만들어주는 사이트
https://www.toptal.com/developers/gitignore

 

Pagenation

1) 개요

  • 대량의 데이터와 리소스를 분할해서 가져오는 방법을 말하며,
    주로 서버의 데이터와 리소스를 다룰 때 사용한다.
  • 쇼핑 사이트에서 판매하는 모든 물품들을 한번에 보여주지 않고 
    스크롤을 내리는 시점에 데이터를 추가로 가져오는 기능

2) Offset Based Pagenation

  • 특정 인덱스 또는 페이지를 기준으로 일정한 수(Offset) 만큼 데이터를 가져오는 방법
  • 오프셋 정보를 쿼리스트링이나 매개변수로 서버에 전달
  • 그 종류로 PageNumberPeganation, LimitOffsetPagenation이 있음.
  • 커뮤니티 사이트처럼 새로운 데이터가 빠르게 추가되는 환경에서는
    데이터를 요청한 사이에 데이터가 갱신되어 사용자가 중복된 데이터를 볼 수도 있음.
  • 따라서 데이터의 변화가 적은 환경에서 사용하는 것이 적절함.

3) Cursor Pagenation

  • 클라이언트가 가진 마지막 데이터를 기준으로 다음 데이터를 가져오는 방법
  • 항상 현재 데이터의 위치(커서)가 기준이기 때문에 최신 데이터를 조회하기
    힘들 수 있고 특정 위치에 대한 데이터를 가져오기 어렵다.
  • 예를 들어 커뮤니티 사이트에서 10번째 페이지를 보다가
    곧바로 70번 페이지로 건너뛰기가 어렵다.


First Class Object

1) 스위프트 언어의 특징

  • 객체 지향 프로그래밍 (OOP)
  • 함수형 프로그래밍
  • 프로토콜 지향 프로그래밍

2) 일급 객체의 특징

  • 변수와 상수의 값으로 넘겨줄 수 있다.
  • 함수의 반환값으로 사용할 수 있다.
  • 매개변수의 값(인자)으로 넘겨줄 수 있다.
Swift에서 함수는 일급 객체이기 때문에 이런 특징을 모두 가진다.

3) 클로저 (이름없는 함수)

  • 함수는 호출 형식이 확장되어 함수 호출 연산자 없이도 사용이 가능하며,
    매개변수, 반환값, 실행 구문으로 구성된 하나의 타입으로 사용이 가능하다.
  • 여러 함수들이 오버로딩으로 이름이 같다면 함수 타입으로 구분할 수 있고,
    함수 타입도 같다면 매개변수 이름을 명시한 함수 표기법으로 구분할 수 있다.
  • 함수 타입을 반환값으로 사용할 때 가장 왼쪽에 위치한 "->"를 기준으로
    매개변수와 반환값을 구분한다.
  • 함수의 매개변수로 함수 타입이 들어가서 실질적인 연산을 담당할때
    매개변수로 들어간 함수를 브로커라고 한다.

 

기타

  • 타입 추론이 타입 어노테이션보다 빌드 및 컴파일 속도가 빠르다.
관련 링크
  • Xcode에서 네트워크 환경을 설정하여 테스트하는 기능이 존재
    주로 네트워크가 느린 환경에서 테스트할 때 사용하고
    보통 디바이스에서 테스트하지만 시뮬레이터에서도 가능하다.
  • 인터넷 브라우저는 URL에 한글을 입력했을 때
    자동으로 UTF-8 인코딩을 해준다.
  • 국가에서 운영하는 공공 데이터 센터 웹 페이지가 있다.
관련 링크

 


이상입니다.

'TIL' 카테고리의 다른 글

[Sesac IOS] 25일차 TIL  (0) 2022.08.07
[Sesac IOS] 24일차 TIL  (0) 2022.08.05
[Sesac IOS] 22일차 TIL  (0) 2022.08.03
[Sesac IOS] 21일차 TIL  (0) 2022.08.01
[Sesac IOS] 20일차 TIL  (0) 2022.07.29