본문 바로가기

Tech

(55)
[iOS]Day37 - TableView+CollectionView 아무튼 더 해보자 더하기도 해보고 더 공부도 하고 TableView안에 CollectionView를 넣어보자 (ex) Netflix, banner 광고) TableView 안에 CollectionView를 잘 보면 똑같은 셀이 계속 재사용 되는 것을 볼 수 있다. UIView Xib를 만들어주자 사이즈를 자유롭게 지정하려면 Size는 Freeform으로 Safe Area Layout Guide는 해제해주자 View를 재사용할 것이기 때문에 View자체에 UIView를 지정하는게 아니라 File's Owner에 UIView를 지정해준다 Class 부분에 UIView를 지정해준 것이 보인다 항상 그랬듯이 ImageView의 IBoutlet을 연결 해준 후 사용하려면 오류가 발생한다 import UIKit c..
[iOS]Day37 - IBInspectable/IBDesignable 비는 오지만 형형색색 우산으로 오늘 주제를 한번 표현.. 해보..ㄱ IBInspectable Storyboard를 통해서 작업을 하다 보면 Inspector 영역에서 Inspector 영역에서 이 작업도 가능하면 좋겠는데 하는 부분이 있다 이런 사항을 해결하기 위해 가능한 작업이 IBInspectable이다 IBInspectable은 인터페이스 빌더 컴파일 시점 실시간으로 객체 속성을 확일할 수 있다 연산프로퍼티를 활용해서 구현할 수 있다 @IBDesignable class NewButton: UIButton { @IBInspectable var cornerRadius: CGFloat { get { return layer.cornerRadius } set { layer.cornerRadius = newV..
[iOS]Day36 - AutomaticDimenssion 미친듯한 비다 취준생 장점 이럴 때 안나가도 됨 AutomaticDimenssion 과제 중에 버튼을 누를 때 마다 Label안에 있는 가려져 있는 텍스트가 보이는 Lable을 구현 해야했다 AutomaticDimenssion을 모른다면 구현을 하는데 상당히 난항을 겪게 된다 쉽게 말하면, 동적인 TableViewCell을 만드는 과정으로 컨텐츠의 양에 따라 Cell의 크기가 달라질 수 있게 한다 *AutomaticDimenssion의 조건 - Label의 NumberOfLines = 0 - tableView height는 AutomaticDimenssion - Layout 조정 필수 var isExpanded = false //false 2줄, true 0으로 override func viewDidL..
[iOS]Day 32 - Pagenation 무한으로 즐기자.. 페이지 말고 과자.. Pagenation 방법 Pagenation? App을 사용한 경험이 있다면 무한 스크롤을 한 경험이 있을텐데 이럴 경우 대량의 데이터와 리소스를 분할해서 가져오는 방식이다 *Offset Based Pagenation 첫번째 방법은 Offset Based Pagenation이다 몇 번째 페이지에서 몇개의 데이터를 보여줄지 QueryString으로 전달해준다 서버 데이터의 변화가 적은 환경에서 사용하는 기술이다 -> 데이터를 가지고 오는 도중에 새로운 데이터가 추가 된다면 추가된 데이터가 중복으로 보일 수 있다 -> 실시간으로 게시글이 많은 웹사이트에서 3페이지를 읽고 다시 목록으로 갔을 때 페이지를 넘겼을 때 아까 봤던 3페이지의 게시글이 보이는 경험을 해봤을 것..
[iOS] Day 31 - Device Network Condition 전세계 위성을 다 업데이트 하러 갈수는 없다.. 다 한국 같으면 좋을텐데 Device Network Condition 전세계의 인터넷 상태가 한국 같이 엄청 빠르고 퀄리티가 좋으면 좋겠지만 그렇지 않다 인터넷 상태가 안좋다? 우리가 Xcode 내에서 Device를 연결했을 때 Run을 했을 경우 빠르게 실행이 되는 것과 다르게 타국가에서는 한국에서의 앱의 Run 속도와 다르다는 것을 시사한다 난 다른 나라에서도 사용할 수 있는 앱을 출시할건데 다른 나라의 네트워크 상태를 반영해서 Run을 할 수 있을까? 비행기 표를 끊자 생각보다 Apple은 야박하지 않다 Xcode 내에서 Device Network Condition 조절을 통해 실행할 수 있다 Xcode 실행 후 상단의 Window 탭 -> Devic..
[iOS] Day 31 - Xcode에서 gitignore 생성하는 간단한 방법 ??? : 내가 사라져 볼게 오늘은 gitignore에 대해 배워보자 GitIgnore Git에 파일을 Push할 때 개인 API KEY나 개인 정보까지 Push가 된다면 차후에 앱이 출시 됐을 때 보안에 문제가 생긴다 개인 정보나 다른 사람들에게 유출이 되면 안되는 정보들을 Xcode 상에서는 사용하지만 Git에서는 보이지 않는 방법을 알아보자 주의사항 : Gitignore는 꼭 파일 생성전에 설정해주자! 1. cmd + n을 눌러 스크롤을 내리다 보면 Empty File이 있다 생성해주자 2. 파일명을 .gitignore로 하고 create 눌러준다 3. 숨기파일인데 괜찮냐고 물어보는 Alert이 나온다 무서워 말고 Use 눌러준다 4. .gitignore에서 git 상에서 숨길 파일명을 적어준다 -..
[iOS] Day30 - Rest API 새로운 개념은 항상 새롭다 오늘도 달려보자 Rest API *Uniform Interface - 자원에 대한 식별이 가능해야함 - HTTP Method를 통해 자원을 조작 *Stateless(무상태) - HTTP의 특징이므로 REST 또한 가짐 - 클라이언트와 통신을 한 후, 상태가 서버에 저장되지않고 종료됨 *Cacheable(캐시 가능) - HTTP의 특징이므로 REST도 사용 가능 - 서버의 부하를 감소시킬 수 있음 *Self-descriptiveness(자체 표현 구조) - 쉽게 이해할 수 있는 자체 구조를 가져야함 *Client - Server 구조 *계층형 구조 단점 *Overfatching - 필요한 정보값 보다 더 많은 정보가 들어올 수 있다 *Underfatching - 필요한 정보보다 ..
[iOS] Day29 - Api 통신 지금은 통신중 API 통신은 너무 중요하니 꼭 알아가자 HTTP Hyper Text Transfer Protocol 인터넷에서 데이터를 주고 받을 수 있는 Protocol 프로그램 간 정보 교환 가능 * 단반향 통신 - Client가 요청을 해야만 Server에서 응답하는 구조 - 역은 성립 안됨 * Connectless - 비연결성 - 모든 클라이언트 요청에 대해 연결하고 해체하는 과정이 반복됨 * Stateless - 무상태성 - Server가 Client의 정보를 기억하지 못 한다 - 웹에서는 쿠키를 통해 식별하고 앱에서는 토큰을 통해 Client를 식별한다 * HTTP Status Code Client와 Server 간의 성공 여부와 오류를 알려주는 코드 * Get - Server에 데이터 요청하..
[iOS]Day 29 - Singleton Pattern 싱글이다 Singleton Pattern 자기 자신의 인스턴스를 type property 형태로 저장하여 별도의 인스턴스 생성없이 공용으로 사용할 수 있다 class 내에서 보통 인스턴스명으로 shared, standard를 많이 사용함 왜 쓰는가? 인스턴스를 사용할 때 마다 남발하면 메모리의 사용량이 증가할 수 밖에 없다 싱글톤 패턴은 하나의 인스턴스만 메모리에 올려놓고 필요할 때 꺼내 쓰기 때문에 메모리 낭비를 줄일 수 있다 주의점 싱글톤 패턴을 사용할 때 private init() {} 을 이용하여 초기화 구문이 동작하지 않게 해주어야 한다. 싱글톤 패턴을 만들어 놓은 파일내에서가 아닌 다른 파일에서 동일한 인스턴스를 만들면 싱글톤 패턴 자체가 깨진다 처음에는 왜 쓰지? 했다가 요즘에는 없으면 왜 ..
[iOS] Day 26 - Custom Font 최근 시간이 없어서 방송은 못 보지만 클립은 항상 챙겨보는 드라마인데 내가 울컥했던 장면이다 주인공을 뒤에서 챙겨주고 지켜주는 서브 주인공은 순수한 시선을 가진 주인공에게 봄날의 햇살 같은 존재다 오늘 오프라인 멘토링을 다녀왔다 평일 주말 가리지 않고 오프라인에서 조금이나마 힘내라고 챙겨주시고 시간내서 질문 받아주시고 시간이 언제든 조언을 성심성의껏 해주시는 멘토분들이 나에겐 봄날의 햇살 같다 감성적인건 이제 그만하고 달려보자 Custom Font SFSymbol, SystemFont를 Xcode에서 쓰지만 다양한 Font를 쓰고 싶다면 Custom Font를 활용한다 쓰고 싶은 Font를 다운 받아서 Xcode에 Add 해준다 Project -> Build Phases -> Copy Bundle Res..