본문 바로가기

728x90
반응형
SMALL

전체 글

(195)
네트워크 계층 : 목적지에 데이터 전달하기 - 2 목표 IP를 이해한다 라우터를 이해한다 IP주소를 이해한다 서브넷을 이해한다 라우팅을 이해한다 공인 IP 주소, 사설 IP 주소 공인 IP 주소와 사설 IP 주소는 인터넷에서 사용되는 IP 주소의 종류를 나타냅니다. 공인 IP 주소 인터넷 서비스 제공자(ISP)로부터 할당받은 고유한 IP 주소를 의미하며, 인터넷 상에서 공개적으로 사용됩니다. 공인 IP 주소는 인터넷 상에서 유일하며, 모든 인터넷 사용자들이 해당 IP 주소를 통해 해당 장치에 접속할 수 있습니다. 사설 IP 주소 개인이나 기업 내부에서 사용되는 IP 주소를 의미합니다. 사설 IP 주소는 인터넷 상에서 직접적으로 접속이 불가능하며, 해당 네트워크 내에서만 사용됩니다. 사설 IP 주소는 공인 IP 주소와는 달리 중복 사용이 가능합니다. 사설..
네트워크 계층 : 목적지에 데이터 전달하기 - 1 목표 IP를 이해한다 라우터를 이해한다 IP주소를 이해한다 서브넷을 이해한다 라우팅을 이해한다 네트워크계층 네트워크 계층(Network Layer)은 OSI 7계층에서 3번째 계층으로, 데이터의 전송 경로를 설정하고 데이터를 목적지까지 전달하는 역할을 합니다. *( 데이터링크계층도 데이터를 전달하지만, 같은 네트워크 내에서만 가능하며 다른 네트워크와는 불가능합니다. ) 이를 위해 IP(Internet Protocol) 프로토콜을 사용하며, 네트워크 계층의 주요 기능으로 라우팅(Routing)과 패킷 전송(Packet Forwarding)이 있습니다. 라우팅: 최적의 경로를 설정하는 과정으로, 패킷이 목적지에 도달하기까지 거치는 경로를 결정 패킷 전송: 은 경로를 결정한 후, 목적지로 패킷을 전송하는 과정..
TCP, UDP TCP와는 UDP는 모두 인터넷 프로토콜 스위트(IP 스위트)의 일부로, 네트워크 통신에서 사용되는 프로토콜입니다. TCP(Transmission Control Protocol) 연결형 프로토콜로, 신뢰성이 높고 데이터의 전송 순서가 보장됩니다. 데이터 전송 중 손실이 발생하면 재전송을 하여 정확한 데이터 전송을 보장합니다. *3-way-handshaking과정을 통해 연결을 설정하며, 웹 브라우저나 이메일과 같은 애플리케이션에서 사용됩니다. UDP(User Datagram Protocol) 비연결형 프로토콜로, 신뢰성이 낮고 속도가 빠릅니다. 데이터 전송 중 손실이 발생하더라도 재전송을 하지 않고 그대로 진행됩니다. 주로 오디오나 비디오 같은 실시간 데이터를 전송하는 데 사용됩니다. *** 3-way-..
강한순환참조 iOS에서 강한 순환 참조가 발생하는 경우는 대부분 뷰 컨트롤러나 뷰, 델리게이트 등에서 발생합니다. 이러한 상황에서는 메모리 누수 문제가 발생할 수 있으므로, 강한 순환 참조를 해결해야 합니다. 강한순환참조 코드예제 class ViewController: UIViewController { var model: Model? override func viewDidLoad() { super.viewDidLoad() model = Model() model?.delegate = self } } class Model { var delegate: ViewController? func updateData() { delegate?.updateView() } } 위 코드에서는 ViewController 클래스와 Model..
AppDelegate iOS 앱에서는 앱의 생명 주기(lifecycle)를 관리하는 객체로 UIApplicationDelegate 프로토콜을 따르는 AppDelegate 클래스를 사용합니다. AppDelegate 클래스에는 앱 실행, 백그라운드 전환, 종료 등의 이벤트 발생 시 자동으로 호출되는 여러 개의 함수가 있습니다. 대표적인 AppDelegate 함수 func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { print("willFinishLaunching") // 앱이 실행되기 직전에 수행할 작업들을 여기에 작성합니다. r..
ViewController Life Cycle ViewController Life Cycle 예제 코드 import UIKit class NewViewController: UIViewController { override func loadView() { print("loadView") // 뷰 계층 구조를 만드는 코드 // 이 메서드에서는 반드시 super.loadView()를 호출해야 합니다. super.loadView() } override func viewDidLoad() { super.viewDidLoad() print("newVC_viewDidLoad") view.backgroundColor = .blue // 뷰 컨트롤러의 뷰가 메모리에 로드된 후 실행되는 코드 } override func viewWillAppear(_ animated: ..
iOS 면접 질문 중복 많습니다. Delegate(델리게이트)란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. MVC 패턴이란 무엇인가요? iOS 앱 개발에서 이 패턴을 사용하면 어떤 이점이 있을까요? 프로토콜(Protocol)이란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. Codable 프로토콜이란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. Optional(옵셔널)이란 무엇이고, 왜 사용되는지 설명해주세요. 클로저(Closure)란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. GCD(Grand Central Dispatch)란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. Autolayout(오토레이아웃)이란 무엇이고, 어떤 상황에서 사용되는지 설명해주세요. ARC(Automatic Refer..
iOS 프레임워크 VS 라이브러리 진짜진짜진짜 chatGPT에게 감사하는 마음으로 씁니다. 혼자서 공부하는 것이 진짜 쉽지 않은 데...그나마 ㅠㅠㅠ... 지금까지 제대로 이해하지 않았던 개념을 잡으려고 정리합니다. 프레임워크란? 프레임워크란 애플리케이션의 전체적인 아키텍처를 구성하는 라이브러리 집합체이며, 앱 개발에서 필수적인 여러 기능들을 제공합니다. 라이브러리와의 차이 프레임워크와 라이브러리의 가장 큰 차이는 제어 흐름의 주도성입니다. 라이브러리는 개발자가 필요할 때마다 호출하여 사용하는 방식으로, 개발자가 제어 흐름을 가지고 있습니다. 즉, 개발자가 필요한 기능을 호출하여 사용하는 방식입니다. 반면에 프레임워크는 제어 흐름이 프레임워크에게 있으며, 개발자가 프레임워크에게 필요한 정보를 제공하고 필요한 기능을 호출하는 방식입니다. ..

728x90
반응형
LIST