분류 전체보기
-
허브와 스위치의 작동방식 차이를 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. // ..
-
예제코드 개요 및 구성 파악하기Apple🍎/Architecture pattern 2023. 12. 6. 12:23
화면 Flow 해당 앱은 사용자의 ‘투두리스트’를 관리하는 앱으로 큰 범주의 TaskList가 있으면 각 TaskList안에는 더 작은 단위의 Task가 포함된다. 즉 사용자는 하나의 TaskList를 만든 뒤, 해당 TaskList안에서 여러 Task를 만들어서 관리할 수 있으며 완료된 Task는 check 표시가 가능하다. 1. Home Screen - Home Screen은 사용자가 지금까지 작성한 ToskList를 보여준다. - ToDoList가 아무것도 없을 때 ‘Press Add List to Start’ 라는 문구를 띄워 사용자 행동을 유도한다. - 사용자가 리스트를 작성하면 각각의 TaskList 에 대한 제목,아이콘,Task수를 리스트로 보여준다. 2. Add TaskList Screen..
-
아마도 그때는 절대 오지 않을 것이다.Bull-shit🐶 2023. 11. 22. 22:42
누군가가 무슨 일을 하면서 살고 싶냐 묻는 다면 "모르겠다" 성의 없게 느껴질 수도 있지만 나름 시간을 가지며 질의응답을 해보아도 "모르겠다" 그렇다고 그럼 하고 싶은 게 없는 거네라고 한다면 서운한 말씀 정확히 하고 싶다기보다는 해보고 싶은 게 엄청나게 많다. 다만 꿈이나 목표 같은 단어에 가둘 만큼의 확신은 없어서 지금까지의 흔적들과는 어울리지 않는 일 같아서 계속해서 망설이며 그때가 오기를 기다린다. 하고 싶은 것도 정확히 알고 할 수 있는 시간도 있으며 해야 하는 이유도 있는 적절하고도 미묘한 그 순간만을 계속해서 기다렸다. 온다는 확신은 없지만 언젠가는 오지 않을 까라는 막연한 희망 한줄기 걸치고 삶은 유한하지만 언젠가라는 단어는 아직 무한한 주사위를 손에 쥐고 있는 것처럼 느끼게 해 주기에 한..