전체 글
-
Cocoa란?(Feat. iOS, macOS)ios/Etc 2022. 3. 5. 23:37
'Cocoa'라는 단어는 objc(Objective-C) 런타임을 기반으로하고, NSObject를 상속받는 모든 클래스 또는 객체를 가리킬 때 사용 코코아 터치 계층(Cocoa Touch Layer) Cocoa Touch Layer는 iOS 애플리케이션 개발에 주 축을 이루는 개발환경으로, 애플리케이션의 다양한 기능 구현에 필요한 여러 프레임워크(UIKit, Foundation 등)를 포함하는 최상위 프레임워크 계층이다.(Cocoa Layer는 macOS 애플리케이션 제작에 사용) iOS용 애플리케이션 개발 환경 Objective-C 런타임과 두 가지 핵심 프레임워크가 포함되어 있음 MVC 소프트웨어 아키텍처를 따름 iOS APP *Cocoa Touch* Media Core Service Core OS ..
-
Blocking & Non-Blocking 그리고 Sync & AsyncCS/OS 2022. 3. 5. 15:33
Blocking & Non-Blocking 제어할 수 없는 대상의 처리 방법이다. (ex: IO, 멀티쓰레드 동기화) 여기서 키워드는 #제어권의 반환에 대한 관점이다. Blocking 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것 예를 들어, c언어의 제어권을 가진 main 함수에서 a라는 함수를 호출 했을 때 a라는 함수가 main 함수로부터 제어권을 받게되고, main 함수는 block 상태에 빠진다. a라는 함수를 실행하고 리턴값과 함께 제어권을 다시 main함수에게 반환을 하면 그때 main함수는 block 상태에서 빠져나오게 된다. Non-Blocking 다른 주체의 작업에 관련없이 자신의 작업을 하는 것 예를 들어, bl..
-
Process & ThreadCS/OS 2022. 3. 4. 15:24
Program - 실행되기 전 상태의 명령어, 코드 및 정적인 데이터의 묶음 Process - 실행 중인 Program - 운영체제로부터 시스템 자원을 할당 받는 작업의 단위 Stack (매개변수, 지역 변수 등 임시적인 자료: return 값) . . . Heap (동적으로 할당되는 메모리: new 등) Data (전역 변수: Static 등) Text (Program의 코드) 운영체제는 process를 관리하기 위해 각 process에 대한 PCB를 갖는다. PCB (Process Control Block) - 특정한 프로세스를 관리할 필요가 있는 정보를 포함하는, 운영체제 커널의 자료구조 - 각 프로세스는 운영체제에서 PCB로 표현 - 프로세스가 생성될 때마다 고유의 PCB가 생성되고, 프로세스가 ..
-
URL에 www.naver.com을 입력하면 무슨 일이 일어날까?CS/네트워크 2022. 3. 2. 20:15
TCP/IP의 흐름 www.naver.com을 주소창에 입력한다면? 1. 네이버 웹서버의 80포트로 HTTP Request 메시지를 보낸다. 크롬 개발자 도구에서 HTTP 요청과 응답을 볼 수 있다. mac -> option + command + i window -> F12 2. 해당 요청을 인터넷을 통해 네이버 서버로 전달하기 위해 패킷을 만들어야 한다. 패킷에는 각 계층에 필요한 정보들이 담겨야 한다. Packet의 구조 네이버 서버로 전달될 때 패킷에 1계층 Ethernet / 2계층 IP / 3계층 TCP / 4계층 HTTP 프로토콜을 사용한다고 가정해보자 4계층 Application Layer HTTP Request/response 3계층 TCP Layer Source Port = 시작 포트번호..
-
TCP/IP 모델CS/네트워크 2022. 3. 2. 18:15
인터넷이란? 전 세계에 걸쳐 파일 전송 등의 데이터 통신 서비스를 받을 수 있는 컴퓨터 네트워크의 시스템 TCP/IP 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 프로토콜의 집합 1Layer -> Network Access Layer == (OSI Physical Layer & DataLink Layer) 네트워크에 직접 연결된 기기 간 전송을 할 수 있도록 함.( MAC주소를 사용함) Ethernet, PPP, Token Ring 2Layer -> Internet Layer == (OSI Network Layer) IP주소를 바탕으로 올바른 목적지로 데이터를 전달하기 위해 사용됨. IP, ARP, ICMP, RARP, OSPF 3Layer - > Transport Layer == (OSI Tr..
-
Clean code #03 함수교양/클린 코드 2022. 2. 28. 15:55
더보기 1. SOLID 2. 간결한 함수 작성하기 3. 안전한 함수 작성하기 4. 함수 리팩터링 함수를 안전하고 간결하게 SOLID 객체지향 설계의 5가지 원칙 SRP(Single Responsibility): 단일 책임 원칙 -> 한 클래스는 하나의 책임만 가져야 한다. 클래스는 하나의 기능만 가지며 어떤 변화에 의해 클래스를 변경해야 하는 이유는 오직 하나뿐이어야 한다. SRP 책임이 분명해지기 때문에, 변경에 의한 연쇄작용에서 자유로워질 수 있다. 가독성 향상과 유지보수가 용이해진다. 실전에서는 쉽지 않지만 늘 상기해야 한다. OCP(Open/Closed Principle): 개방-폐쇄 원칙 -> 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야한다. 변경을 위한 비용은 가능한 줄이고, ..