분류 전체보기
-
Router가 필요한 이유와 작동 과정 살펴보기CS💻/Network🛰️ 2023. 12. 22. 00:16
Layer 3계층과 Layer 2계층을 연결하기 위해 사용하는 프로토콜이다. 주로 IP 주소만 아는 경우 ARP Request를 통해 해당 IP 주소에 해당하는 기기의 MAC 주소를 알아온다. 이렇게 함으로써 Layer 2계층은 MAC 주소로 Layer 3계층은 IP 주소로 통신이 가능해진다. [ARP : IP 주소와 MAC 주소를 매핑해준다. 허브와 스위치의 작동방식 차이를 OSI 7 Layer 랑 같이 알아보자. 스위치는 기기들 사이에서 데이터의 전달을 중개해주는 기기이다. 서로 연결하고자하는 기기들에 아래와 같이 생긴 이더넷 케이 people-analysis.tistory.com](https://people-analysis.tistory.com/293) 라우터가 필요한 이유 이번에는 쿠루루가 본부와..
-
ARP : IP 주소와 MAC 주소를 매핑해준다.CS💻/Network🛰️ 2023. 12. 21. 14:55
허브와 스위치의 작동방식 차이를 OSI 7 Layer 랑 같이 알아보자. 스위치는 기기들 사이에서 데이터의 전달을 중개해주는 기기이다. 서로 연결하고자하는 기기들에 아래와 같이 생긴 이더넷 케이블을 이용해 한쪽은 기기, 한쪽은 스위치의 구멍(포트)에 꽂으면 people-analysis.tistory.com 이전 포스트에서 탐구해봤던 허브와 스위치의 차이를 OSI 7 layer와 관련지어 간단하게 다시 정리하면 허브는 Layer 1, 물리 계층에 속하는 기기이기 때문에 전기적 신호의 전달만 할 뿐 전달하고 있는 데이터의 목적지를 알 수가 없다. 따라서 허브를 이용해 기기간의 데이터를 전달하면 해당 허브에 연결되어 있는 모든 기기에게 데이터가 전달 된다. 스위치는 Layer2, 데이터 링크 계층에 속하는 기..
-
허브와 스위치의 작동방식 차이를 OSI 7 Layer 랑 같이 알아보자.CS💻/Network🛰️ 2023. 12. 17. 12:54
스위치는 기기들 사이에서 데이터의 전달을 중개해주는 기기이다. 서로 연결하고자하는 기기들에 아래와 같이 생긴 이더넷 케이블을 이용해 한쪽은 기기, 한쪽은 스위치의 구멍(포트)에 꽂으면 이제 스위치를 통해 연결된 기기들간의 통신이 가능해진다.스위치가 있기 전에는 기기간의 연결을 위해서는 허브라는 것을 사용했다. 허브는 스위치와 겉모습은 아주 비슷하게 생겼지만 작동방식은 아주 멍청한 녀석이다.지금부터 허브와 스위치가 각각 어떻게 기기들 사이에서 데이터를 전달하는지 작동방식의 차이에 대해서 알아보자. 허브와 스위치의 작동과정을 보기에 앞서 커맨드 프롬프트에 ping 명령어에 대해서 알아보자. ping 은 현재 네트워크에 통신하고자 하는 기기가 연결되어 있는지 확인하는 명령어로 ping + ip address(..
-
TDD가 뭔지 한번 해보기Apple🍎/Test 2023. 12. 15. 23:15
TDD 워크 플로우 - Red, Green, Refactor Red 요구사항에 대해 실패하는 테스트를 작성하는 것으로 시작 원하는 기능과 엣지 케이스 대해 아직 구현하지 않은 상태 돌려서 IDE에서 빨간불 확인하기 작성한 테스트가 처음에는 실패하는지 확인하는 것은 테스트가 정상적으로 작동하는지를 확인하는 중요한 절차이다. 항상 성공하는 의미없는 테스트거나 이미 원하는 기능이 구현되어 있지는 않은지 확인하는 절차. Green 테스트를 간신히 통과할 수 있을 정도로만 간단하게 코드를 작성. 이 단계에서는 코드의 퀄리티를 신경쓰지 않고 일단 기능 구현에만 집중. IDE에서 파란불 확인할 때까지 진행. 테스트 통과가 가능한 가장 간단한 코드를 작성함으로써 기능 구현을 위해 진짜 필요한 부분만 작성하게 된다. 읽..
-
IOS 단위 테스트 살짝 맛보기Apple🍎/Test 2023. 12. 13. 23:21
Unit test 예제 Xcode 실행 -> File | New | Project. iOS | Application | App 에서 Next ProductName : FirstDemo / Interface : Storyboard / Language : Swift Include Tests 체크 Next FirstDemoTests 폴더에서 FirstDemoTests.swift 선택해서 editor에 띄우기 가장 먼저 test framework와 test의 대상이 되는 target을 import 해주어야한다. 모든 test case는 XCTest 프레임 워크의 import가 필요하다. XCTest는 XCTestCase 클래스와 Assertion을 정의한다. Test의 대상이 되는 모듈인 FirstDemo를 i..
-
TDD를 포기하는 이유와 그럼에도 해야하는 이유Apple🍎/Test 2023. 12. 13. 00:32
TDD가 뭔지? 겪을 수 있는 어려움은 무엇이 있는지? 어려움을 해결하는 방법은 무엇이 있는지? 무엇을 테스트해야 하는지? TDD를 함으로써 얻을 수 있는 장점이 뭔지? TDD(Test Driven Development)란? TDD란 각 요구사항에 대해 다음과 같은 과정을 거쳐 기능을 구현해 나가는 개발 방식을 말한다. 먼저 요구사항에 대하여 실패하는 Test를 작성한다. -> 실행하면 당연히 fail Test를 통과시키기 위한 최소한의 코드 작성한다. (멋지게 짜는 게 아니라 겨우 통과만 할 수 있게) 통과한 Test 코드를 개선하며 코드의 퀄리티를 높인다.! TDD를 포기하는 이유 : 빌드 시간이 너무 많이 걸려요. TDD는 빌드를 최소 3배 더 함 TDD 방식으로 개발을 하면 실패단계에서 한번, 최..
-
[Swift] Property 제대로 써보자.Apple🍎/Swift 2023. 12. 12. 15:22
간단한 함수를 계산 프로퍼티로 바꿔보자. 계산 프로퍼티(computed properties)는 겉보기에 인스턴스의 속성 값을 들고 있는 일반 프로퍼티처럼 보인다. 하지만 실제로는 계산 프로퍼티는 어떠한 값도 내부에 저장하지 않고 함수처럼 기능한다. 예를 들어 cookingTimer 라는 객체를 만들고 cookingTimer 안에는 남은 시간을 나타내는 secondsRemaining이라는 프로퍼티를 만들었다고 하자. 이 프로퍼티의 값을 get 해보면 다음과 같이 프로퍼티 값이 계속 변경되는 것을 볼 수 있다. cookingTimer.secondsRemaining // 409 // wait a bit cookingTimer.secondsRemaining // 404 // wait a bit cookingTi..
-
[Swift] Enum을 다양하게 활용해보자.Apple🍎/Swift 2023. 12. 11. 15:59
모델이 가지는 상태값이 OR 일 때는 Struct대신 Enum을 쓰자. 아래와 같은 채팅앱의 메세지가 가질 수 있는 유형은 다음과 같다. 참여 메시지 : “철수 님이 대화에 참여했습니다.” 일반 메시지 : “지금 롤 할 사람” 이모티콘 떠남 메시지 : 철수님이 대화방에서 떠났습니다. 작성중 메시지 : 작성중입니다….. 위와 같은 메시지를 strcut를 통해 모델링 해보면 다음과 같이 작성할 수 있다.import Foundation struct Message { let userId: String. // 참여자 식별자(ID) let contents: String? // 메시지 내용 let date: Date. // 시간 let hasJoined: Bool. // 참여 let hasLeft: Bool. // ..