전체 글282 [Network] 04. 데이터 링크 계층 : 랜에서 데이터 전송하기 데이터 링크 계층의 역할과 이더넷 이더넷이란 랜에서 데이터를 주고받으려면 OSI 7계층의 두 번째 계층인 데이터 링크 계층의 기술이 필요하다. 데이터 링크 계층은 네트워크 장비 간에 신호를 주고받는 규칙을 정하는 계층으로, 랜에서 데이터를 정상적으로 주고받기 위해 필요한 계층이다. 그 규칙들 중 일반적으로 가장 많이 사용되는 규칙이 이더넷(Ethernet)이다. 이더넷은 허브와 같은 장비에 연결된 컴퓨터와 데이터를 주고 받을 때 사용한다. 허브는 이전 포스팅에서 살펴본 것과 같이 데이터를 주고 받는 컴퓨터 외에도 허브에 연결된 다른 컴퓨터에게도 데이터가 전송된다. 이를 위해 데이터에 목적지 정보를 추가해서 보내고 목적지 이외의 컴퓨터는 데이터를 받더라도 무시하게 되어 있다. 허브는 들어온 데이터를 그래도.. 2021. 11. 30. [Network] 03. 물리 계층 : 데이터를 전기 신호로 변환하기 물리 계층의 역할과 랜 카드의 구조 전기 신호란? 0과 1만으로 이루어진 비트열을 전기 신호로 변환하려면 OSI 7계층의 가장 아래 계층인 물리 계층의 기술이 필요하다. 컴퓨터는 0과 1만 이해할 수 있으며 네트워크를 통해 데이터를 주고받을 때는 0과 1의 비트열을 전기 신호로 변환해야 한다. 전기 신호의 종류에는 아날로그 신호와 디지털 신호가 있다. 아날로그 신호 : 연속되는 값을 표시하는 신호로, 전화 회선이나 라디오 방송에 사용되는 신호 디지털 신호 : 전기적인 두 가지 상태(0과 1)로만 표시하는 신호 데이터 송신 측 컴퓨터가 전송하는 0과 1의 비트열 데이터는 전기 신호로 변환되어 네트워크를 통해 수신 측 컴퓨터에 도착한다. 수신 측 컴퓨터에서는 전기 신호를 0과 1의 비트열 데이터로 복원한다... 2021. 11. 30. [LeetCode] 778. Swim in Rising Water (Swift, Python) Swim in Rising Water - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 우선수위 큐를 활용한 bfs로 해결할 수 있는 문제이다. [0][0]에서 시작해서 [n-1][n-1]로 갈 때까지의 최소 시간을 구해야 한다. 큐에 담을 때 time 값을 해당 좌표의 grid 값을 담아두는데 큐에서 값을 꺼낼 때 time 값이 가장 작은 것을 가져와야 하므로 우선순위 큐를 활용한다. 큐에 있는 값들 중 가장 작은 time을 가진 원소를 꺼내면서 res의.. 2021. 11. 30. [LeetCode] 841. Keys and Rooms (Swift, Python) Keys and Rooms - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 풀이 0번 방부터 탐색하는 dfs를 사용하면 된다. visited 배열을 만들어서 n번 방에 들어갈 수 있는지를 체크한다. 각 방에 들어갈 때마다 방에 있는 열쇠들을 for문을 통해서 아직 방문하지 않은 방의 열쇠일 경우 dfs 함수를 재귀적으로 호출해서 visited 여부를 바꿔준다. 코드 [Swift] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 .. 2021. 11. 29. [iOS] Cocoa Touch 프레임워크 코코아 터치 프레임워크 코코아 터치 프레임워크는 애플 환경에서 터치 기반의 애플리케이션을 제작하기 위한 도구들의 모음이다. 애플리케이션의 다양한 기능 구현에 필요한 여러 프레임워크를 포함하는 최상위 프레임워크 계층이다. 코코아 터치 프레임워크를 이루는 주요 프레임워크에는 다음과 같은 것들이 있다. Foundation Framework : 애플리케이션의 핵심 객체와 네트워크, 문자열 처리 등의 서비스를 제공하는 프레임워크 UIKit Framework : 아이폰이나 아이패드, 애플 워치나 애플TV 등에서 실행되는 애플리케이션의 유저 인터페이스를 제공하는 프레임워크 GameKit Framework : 게임 실행 시 게임 센터를 연동하거나 근거리 P2P 연결을 제공해주는 프레임워크 iAd Framework : .. 2021. 11. 28. [iOS] UILabel UILabel 한 줄 이상의 정보 텍스트를 표시하는 view @MainActor class UILabel : UIView Label 텍스트의 전체 모양을 구성하고, attributed 문자열을 사용하여 텍스트 내에서 substring의 모양을 사용자 정의할 수 있다. Label의 형태 커스터마이즈 NSString 객체를 text 속성에 할당하거나 NSAttributedString 객체를 attributedText 속성에 할당하여 Label의 컨텐츠를 제공한다. Label에 가장 최근에 설정된 속성이 표시된다. attributedText 속성은 NSAttributedString API를 사용하여 개별 문자 및 문자 그룹의 모양을 제어할 수 있다. 아래의 사진은 문자열의 글꼴, 색상 및 정렬을 사용자 정의하.. 2021. 11. 28. [iOS] UISlider UISlider 연속된 값의 범위에서 단일 값을 선택하기 위한 컨트롤 슬라이더의 thumb을 움직이면, 슬라이더에 연결된 모든 작업으로 업데이트 된 값이 전달된다. 슬라이더의 형태는 변경 가능하다. 트랙과 thumb의 색을 변경할 수 있고 슬라이더 끝에 표시할 이미지를 설정할 수 있다. 코드를 사용하거나 인터페이스 빌더를 통해서 슬라이더를 추가할 수 있다. 사용자의 상호 작용에 응답 슬라이더는 Target-Action 디자인 패턴을 사용하여 사용자가 슬라이더를 이동할 때 앱에 알린다. 슬라이더 값이 변경될 때 알림을 받으려면 value Changed 이벤트를 사용한 action 메서드를 등록하면 된다. 실행단계에서, 사용자가 슬라이더의 값을 변경하면 슬라이더가 메서드를 실행한다. 기본적으로 슬라이더는 사.. 2021. 11. 28. [iOS] UIButton UIButton 사용자 상호 작용에 대한 응답으로 사용자 정의 코드를 실행하는 컨트롤 1 2 @MainActor class UIButton : UIControl Colored by Color Scripter cs 버튼을 누르거나 포커스가 있는 버튼을 선택하면 버튼에 연결된 모든 작업을 수행한다. 텍스트 레이블, 이미지 등을 사용하여 버튼 사용 목적을 사용자에게 나타낼 수 있다. 버튼을 눌렀을 때 반응 버튼은 Target-Action 디자인 패턴을 사용하여 사용자가 버튼을 누를 때 앱에 알린다. 터치 이벤트를 직접 처리하지 않고 버튼에 작업 방법을 할당하고 메서드에 대한 호출을 트리거하는 이벤트를 지정한다. 런타임에서, 버튼은 들어오는 모든 터치 이벤트를 처리하고 메서드를 호출한다. addTarget(_:.. 2021. 11. 28. [Network] 프로토콜 데이터 통신에서 데이터를 교환할 때 이를 원활하게 교환할 수 있도록 미리 정해놓은 여러 가지 통신규칙이나 방법 프로토콜의 3가지 구성 요소 프로토콜은 구문(syntax), 의미(semantic), 타이밍(timing)으로 구성되어 있다. 1. 구문(syntax) : 데이터의 형식이나 부호화 및 신호 레벨을 규정한 것 송수신 데이터의 포맷이나 문법과 같은 형식적인 측면을 의미한다. 사람들끼리의 의사소통에서도 정해진 문법과 규칙을 따라야만 원활한 의사소통이 가능하다. 문법과 규칙을 벗어난 말은 상대방에게 혼란을 줄 수 있다. 데이터 통신에서도 이는 마찬가지다. 데이터를 보내고 받는 쪽 모두 데이터에 대한 공통된 형식을 공유하고 있어야 데이터의 원활한 교환이 가능하다. 2. 의미(semantic) : 전송의 .. 2021. 11. 25. 이전 1 ··· 20 21 22 23 24 25 26 ··· 32 다음