어느새 5주차가 되었다. 그 동안 수많은 프로젝트를 진행하였고 역시나 이번주에도 새로운 두가지 프로젝트가 있었다. 그런데 그동안의 프로젝트와 달리 스토리보드를 이용하지 않고 코드로만 앱을 구현하는 방식이였다. 
다음 사진은 마지막 프로젝트인 코드로 테이블뷰를 작성한 모습이다.
코드로 구현하는 방식은 난이도는 확실히 더 어렵지만 스토리보드에서 생길수 있는 에러를 줄일 수 있고 메모리적으로도 코드가 더 적어 현업에서 주로 사용되는 방식이라고 해 코드위주로 공부를 조금더 할 계획이다.
원래는 스토리보드에서 constraints를 넣어주며 auto layout으로 css부분을 해결하였지만 스토리보드가 없이 코드로만 하는 경우에 autolayout방식을 사용하기 위해 만들어진 패키지이다. cocoapods방식으로도 받을수 있다.
객체.snp.makecontrainst(eqaulto: _)
이런방식으로 이루어지는데 저 매개변수안에는 다른 객체를 넣어 constraints를 넣어주는 방식이다.
"현재 뷰 constraint = 슈퍼뷰 constraint + offset 값"으로 offset은 leading,top등 모두 각각 설정해주어야하지만
inset방식은 그냥 한번에 inset(50)하면 적용.
leading trailing방식을 이용하면 right-to-left순서로 읽는 지역에서 화면이 거꾸로 표시,!!! 그럴경우 right, left방식으로 snp설정해주면됨
thread란 한프로세스내에서 이루어지는 곳이다.
기본적인 ui, 그리고 행동하는 것은 모두 메인 스레드에서 실행된다.
둘이상의 쓰레드 방식으로 이루어지는 것이 멀티쓰레드!상태 감시할경우사용
메인쓰레드만 일하고 나머지는 노는 비효율적인 상황이 이루어질수도 있다. 그래서 나온것이 GCD. 우리 앱과 시스템의 요구들을 모두 받아 균형잡인 쓰레드가 가능하게 한다. 앱의 메인쓰레드나 백그라운드쓰레드에서 이루어지는 작업을 관리하는 객체가 dispatch queue인데 FIFO방식으로 내보낸다. 동기방식은 디스패치 큐에 작업이 남아있는 경우 해당작업이 끝날때까지 다음작업을 진행하지않는다. 비동기는 큐에 작업에 상관없이 그냥 한다. url session관련코드는 내부적으로 비동기로 돌아간다.하지만 메인쓰레드에서 돌아갈수 있게 설정해야 한다.