본문 바로가기

전체 글

(139)
CS Study 1주차 : OSI 7계층 OSI 7계층이란? 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다. OSI 7 계층을 나눈 이유 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문인다. 흐름을 한눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있기 때문이다. OSI 7 계층 단계 1계층 - 물리계층(Physical Layer) 주로 전기적, 기계적, 기능적인 특성을 이용해서 통신 케이블로 데이터를 전송하는 물리적인 장비이다. 단지 데이터 전기적인 신호(0,1)로 변환해서 주고받는 기능만 할 뿐 오류제어 기능은 없다. 이 계층에서 사용되는 통신 단위는 비트(Bit)이며 이것은 1과 0으로 나타내어지는, 즉 전..
CS Study 1주차 : TCP 3way, 4way handShake TCP란? 연결 지향형 프로토콜로, 연속성 있는 데이터 패킷을 주고 받을 때 사용한다. 특징 전송되는 데이터의 신뢰성 보장(흐름 제어, 혼잡 제어, 오류 제어) 파일전송에 주로 사용 가상 회선을 만들어 신뢰성 보장 TCP 3 way Handshake 연결하고자 하는 두 장치 간의 논리적 접속을 성립하기 위해서 사용하는 연결 확인 방식으로, 3번의 확인 과정을 거친다고 해서 3 way handshake라고 부른다. TCP 3-way HandShaking 역할 - 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제 데이터 전달이 시작하기 전에 한쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 한다. - 양쪽 모두 상대편에 대한 초기 순차일련번호를 얻을 수 있도록 한다. TCP의 3-way Han..
iOS-study : 1주차 내용 정리 iOS vs Android 1. 프로그래밍 언어 - iOS : Objective-C / Swift - Android : Java 2. 테스팅 - iOS 실뮬레이터를 사용, 안드로이드보다 훨씬 빠르다. Apple 장치의 정확하고 사실정인 표현을 렌더링 하지 못하는 경우가 많다. - Android 에뮬레이터 사용, CPU를 포함하는 효과적인 가상 머신이라 더 현실적이다. 3. 상호작용 iOS는 홈 버튼이 존재하지만 안드로이드는 홈, 뒤로가기, 멀티태스킹 버튼이 항상 존재한다. 따라서 iOS의 UI를 안드로이드에 그대로 쓸 수 없다. 4. 앱개발 기간 - iOS : 애플에 호환되는 기기로 구축하기 대문에 안드로이드 보다 짧다. - Android : 삼성, LG 등 다양한 안드로이드 기기에 호환되는 앱을 구축하..
Swift 정리 : protocol(프로토콜) 특정 클래스와 관련없는 함수(메서드)들의 선언 집합 함수(메서드) 정의는 없음 protocol 프로토콜명{ //프로토콜 정의 프로퍼티명 메서드 선언 //메서드는 선언만 있음 } protocol 프로토콜명 : 부모1프로토콜, 부모2프로토콜{ // 프로토콜은 다중 상속도 가능 } protocol Runnable { //대리하고 싶은 함수 목록 작성, 정의 var x : Int {get set} //읽기와 쓰기 가능 프로퍼티(필수적으로 있어야 함) //{get}은 읽기 전용 func run() //메서드는 선언만 있음 } class Man : Runnable { //채택, adopt, 상속 부분 참고 var x : Int = 3 //준수, conform func run(){print("달린다~")} //준수,..
Swift 정리 : Type Property class SClass { var storedProperty = 2 static var storedTypeProperty = 1 static var computedTypeProperty: Int { //static이 붙으면 오버라이드 불가능 return 10 } class var overrideableComputedTypeProperty: Int { //class가 붙으면 오버라이드 가능 return 100 } } var x = SClass() print(x.storedProperty) print(SClass.storedTypeProperty) //static이 들어가면 클래스가 다룸 print(SClass.computedTypeProperty) print(SClass.overrideableCompute..
Swift 정리 : extension(익스텐션) class, struct, enum, protocol에 새로운 기능을 추가 extension은 하위 클래스를 생성하거나 참조하지 않고 기존 클래스에 메서드,생성자(initializer), 계산 프로퍼티 등의 기능을 추가하기 위하여 사용 클래스(구조체, 열거형, protocol)는 다음과 같은 형태로 확장(익스텐션)함 extension 기존타입이름 { // 새로운 기능 } extension Double { var squared : Double { //기존 Double형 구조체에 계산 프로퍼티 추가 return self + 1.0 } } let myValue: Double = 3.0 print(myValue.squared) //4.0 print(2.0.squared) //3.0
Swift 정리 : override : 부모와 자식에 같은 메서드가 있으면 자식 우선 부모와 자식에 display()라는 메서드가 있어서 Student클래스는 display() 메서드가 두 개임 Student클래스의 인스턴스 lee가 display()를 호출할 때, 자식클래스가 새로 만든 display() 메서드가 우선적으로 호출되려면 func 앞에 override키워드 씀 class Man{ var age : Int var weight : Double func display(){ print("나이=\(age), 몸무게=\(weight)") } init(age: Int, weight : Double){ //1 self.age = age self.weight = weight } } class Student : Man { var name : String override func display..
Swift 정리 : 스위프트 상속 class 자식:부모 { } 부모 클래스는 하나만 가능 콜론 다음이 여러 개이면 나머지는 프로토콜 class 클래스명:부모명, 프로토콜명1,프로토콜명2 {} 부모가 있으면 부모 다음에 표기, 프로토콜은 여러 개 사용 가능 부모가 없으면 바로 프로토콜명 표기 가능 상속은 클래스만 가능 class Man{ var age : Int var weight : Double func display(){ print("나이=\(age), 몸무게=\(weight)") } init(age: Int, weight : Double){ self.age = age self.weight = weight } } class Student : Man { //Man을 상속 받음 var name : String func displayS() ..