본문 바로가기

전체 글131

lazy variables에 관하여 -Navigation bar에 right button을 두고 클릭했을 때 실행되는 메서드를 적어놓았는데 버튼을 눌러도 메서드가 실행되지 않는 오류를 겪었다. 그 때 button을 lazy var로 구성하니 메서드 실행이 가능해졌다. -이유도 모르고 사용하는 것보다 lazy가 하는 역할이 무엇인지 정확히 개념을 파악하고 사용하는 것이 중요하기 때문에 deep diving 해보고자 한다. lazy -lazy stored property(지연 저장 속성)은 해당 인스턴스가 초기화 될 때 초기화되지 않고, 이 property에 처음 접근하는 시점에 초기화된다. (초기화 시점을 지연시켜주는 역할) -메모리를 관리하기 위해서 코드를 짤 때 메모리 비용이 많이 들어갈 수 있는 작업은 최대한 지양하는 것이 중요하다. .. 2022. 10. 7.
IOS 개발자 로드맵 정리 -독학으로 IOS 개발을 배우다 보니 자신이 어느 지점에 있는지, 앞으로 어떤 것을 배워야 할지 가늠하기가 힘들다. 그래서 로드맵을 찾다보니 좋은 IOS 개발자 학습 로드맵 강의가 있어서 정리해본다.(모두 필수적으로 따라야 하는 길이 아니라 나의 목표와 위치를 파악하거나, 내게 필요한 개념이 무엇일지 등의 생각에 참고용으로 보면 좋을 것 같다.) -로드맵이기도 하지만 이 지도는 앱을 설계하고, 디자인 등의 과정들을 모두 거쳐 앱스토어에 배포하기까지의 과정에 요구되는 정보?들이라고 봐도 될 것 같다. IOS 개발자 로드맵 이전에 모든 개발자가 공통적으로 학습해야 하는 부분 1. 데이터 구조와 알고리즘 2. 기본 터미널 사용방법 3. 깃사용과 버전 컨트롤 사용방법 4. SSH 5. HTTP/HTTPs 그리고.. 2022. 10. 3.
TCP/IP (Transmission Control Protocol/Internet Protocol) -이전 시간에 OSI 7 Layer에 관해서 공부해보았는데, 현재 우리가 사용하고 있는 네트워크 모델은 OSI 모델이 아닌 TCP/IP 모델이라고 한다. (OSI 모델은 단지 네트워크를 묘사해주기 위한 모델) -예전에는 우편을 활용해서 메시지를 주고 받았다. 우편 서비스를 이용하기 위해서 정해진 규칙에 맞게 봉투에 이름과 주소를 기재해야 했다. 이와 같이 인터넷상에도 데이터를 주고 받기 위해 정해진 규칙을 따라야 하고, 우리가 주로 이용하는 규칙이 TCP/IP 모델인 것이다. TCP/IP -TCP는 전송 제어 프로토콜(Transmission Control Protocol)의 약자로 다른 기기로 데이터를 전송하는 것을 담당한다. (TCP는 IP위에서 동작하는 프로토콜) IP는 인터넷 프로토콜(Interne.. 2022. 9. 29.
OSI 7 Layer -OSI 7 계층이란 국제표준기구 iso가 발표한 네트워크 모델이다. -현재 우리는 다른 모든 컴퓨터들과 통신이 가능하다. 하지만 초기에 정보 통신 업체 장비들은 동일 업체 내의 장비끼리만 연결이 되어있어서 다른 장비와의 호환은 불가했다. 이런 문제들을 해결하기 위해, 원활한 통신을 위해 표준을 지정한 것이 1984년 iso에서 발표한 OSI 모델이다. -OSI 7 계층은 Physical, Data Link, Network, Transport, Session, Presentation 그리고 Application 계층까지 총 7개의 계층으로 나누어져 있다. -굳이 왜 7개의 계층으로 나누었나? *전송과 수신의 과정(통신 과정)을 일목요연하게 파악할 수 있다. 따라서 통신의 흐름을 쉽게 보고 이해할 수 있다.. 2022. 9. 29.
순환참조에 관하여 -강한 순환 참조란 두 객체가 서로를 strong(강한) 참조하고 있을 때, 서로가 서로를 참조하기 때문에 둘 다 메모리가 해제되지 않는 현상을 말한다. -강한 순환 참조는 메모리 누수를 발생시킨다. 메모리 누수란 필요 없는 메모리가 해제되지 않고, 계속 남아있는 상황을 말한다. 이것은 앱의 성능을 저하시킨다. -Swift는 ARC를 통해 Reference counting을 해서 메모리를 자동으로 해제시켜준다고 했다. 하지만 ARC는 강한 순환 참조까지 방지해주는 기능은 없다. 따라서 이 문제를 피하기 위한 학습을 해야한다. strong reference(강한 참조) -강한 참조는 Swift에서 가장 기본적인 참조 유형이다. class MyClass { var name: String init(name: .. 2022. 9. 28.
ARC(Auto Reference Counting)에 관하여 -우리는 개발을 할 때 메모리 관리를 통해 앱의 성능을 좋게 만들어주어야 한다. 메모리 영역 중 heap 영역의 특성은 class나 closure 등의 참조형 자료들이 머무는 공간이면서, 개발자가 동적으로 메모리 관리를 해주어야 하는 영역이다. heap영역을 관리하지 않으면, 적절한 시점에 메모리가 소멸되지 않고 -> 메모리가 낭비되고 -> 성능 저하로 이어진다. 따라서 앱의 성능을 위해 메모리 관리가 필요하고, heap 영역을 효율적으로 관리해주기 위해서 ARC라는 도구가 필요한 것이다. 오늘은 IOS개발자라면 필수로 이해해야하는 ARC에 관하여 deep diving 할 것이다. ARC(Auto Reference Counting) -ARC 이름의 뜻 그대로 reference counting을 통해 자동.. 2022. 9. 27.