분류 전체보기 110

[HIG] Accessing User Data and Resources

Accessing User Data and Resources 사용자 개인 정보는 가장 중요하다 사용자들이 당신의 앱을 신뢰하기위해선 당신이 필요로 하는 사생활 관련 데이터 및 자원과 그것들을 어떻게 사용하는 지를 투명하게 공개하는 것이 중요하다. (ex. 액세스 권한 요청) 위치, 건강, 재무, 연락처 및 기타 개인 식별 정보를 포함한 개인 데이터 이메일, 메시지, 캘린더 데이터, 연락처, 게임 플레이 정보, Apple Music 활동, HomeKit 데이터, 오디오, 비디오 및 사진 콘텐츠와 같은 사용자 생성 콘텐츠 Bluetooth 주변 장치, 홈 자동화 기능, Wi-Fi 연결 및 로컬 네트워크와 같은 보호된 리소스 카메라 및 마이크와 같은 장치 기능 Important iOS 14.5 및 iPad부터..

IOS/HIG(UI,UX) 2022.05.29

[HIG] Modality

Modality는 명시적 작업이 필요한 임시 모드에서 콘텐츠를 표시하는 디자인 기술입니다. 콘텐츠를 모달로 표시하면 다음을 수행할 수 있습니다 : 사람들이 독립적인 작업 혹은 관련된 옵션 집합에 집중할 수 있도록 돕습니다. 사람들이 중요한 정보를 받고 필요한 경우 조치를 취하도록 합니다. Alert vs Modal View 다양한 시스템 정의 모달 경험을 가능하게 하기 위해 iOS 는 경고, 활동 뷰, 공유 시트 및 액션 시트를 제공합니다. 앱에서 사용자 지정 모달 콘텐츠를 표시하려면 다음 프레젠테이션 스타일 중 하나를 사용할 수 있습니다. Automatic 기본 프레젠테이션 스타일 (일반적으로 시트)을 사용합니다. Fullscreen. 이전 뷰를 덮고, 닫기 버튼을 요구합니다. (필요합니다.) Popo..

IOS/HIG(UI,UX) 2022.05.29

[운영체제] System Call

fork(), exec(), wait()와 같은 것들은 Process 생성과 제어를 위한 System call이다. fork, exec는 새로운 Process 생성과 관련이 되어 있다. wait는 Process(Parent)가 만든 다른 Process(child)가 끝날 때까지 기다리는 명령어이다. Fork : 새로운 Process를 생성할 때 사용한다. (근데 좀 이상함....) #include #include #include int main(int argc, char *argv[]) { printf("pid : %d", (int) getpid()); // pid : 29146 int rc = fork();// 주목 if (rc < 0) { exit(1); }// (1) fork 실패 else if (..

CS/운영체제 2022.05.24

[운영체제] 인터럽트(Interrupt)

프로그램을 실행되는 도중에 예기치 않은 상황이 발생할 경우 현재 실행 중인 작업을 즉시 중단하고, 발생한 상황을 우선 처리가 필요함을 CPU에게 알려준다. 지금 수행 중인 일보다 더 중요한 일(ex. 입출력, 우선 순위 연산 등)이 발생하면 그 일을 먼저 처리하고 하던 일을 처리 하여야 한다. 외부/내부 인터럽트 : CPU의 하드웨어 신호에 의해 발생 외부 인터럽트 : 입출력 장치, 타이밍 장치, 전원 등 외부적인 요인으로 발생 -> 전원 이상, 기계 착오, 외부 신호, 입출력 내부 인터럽트 : Trap이라고 부르면서, 잘못된 명령이나 데이터를 사용하여 발생 -> 0으로 나누기가 발생, 오버플로우, 명령어를 잘못 사용한 경우(Exception) 소프트웨어 인터렙트 : 명령어의 수행에 의해 발생, 프로그램..

CS/운영체제 2022.05.24

[운영체제] 프로세스의 주소 공간

프로그램이 CPU에 의해 실행된 -> 프로세스가 생성되고 메모리에 프로세스 주소 공간이 할당됨 프로세스 주소 공간에는 코드,데이터,스택으로 이루어져 있다. 코드 Segment: 프로그램 소스 코드 저장 데이터 Segment: 전역 변수 저장 스택 Segment: 함수, 지역 변수 저장 구역을 나눈 이유?? 최대한 데이터를 공유하여 메모리 사용량을 줄여야 한다. Code는 같은 프로그램 자체에서는 모두 같은 내용이기 때문에 따로 관리하여 공유한다. Stack과 데이터를 나눈 이유는, 스택 구조의 특성과 전역 변수의 활용성을 위한 것!! 프로그램의 함수와 지역 변수는, LIFO특성을 가진 스택에서 실행이 된다. 따라서 이 함수들 안에서 공통으로 사용하는 '전역 변수'는 따로 지정하면 메모리를 아낄수 있다.

CS/운영체제 2022.05.24

[네트워크]UDP란?

UDP 통신이란? User Datagram Protocol의 약자로 데이터를 데이터그램 단위로 처리하는 프로토콜이다. 비연결형, 신뢰성 없는 전송 프로토콜이다. 데이터그램 단위로 쪼개면서 전송을 해야하기 때문에 전송 계층이다. Transport layer에서 사용하는 프로토콜 TCP와 UCP는 왜 나오게 됐는가? IP의 역할은 Host to Host (장치 to 장치)만을 지원한다. 장치에서 장치로 이동은 IP로 해결이 가능하지만 하나의 장치에서 수많은 프로그램을 통신하기에는 IP만으로는 한계가 있다. 또한, IP에서 오류가 발생한다면 ICMP에서 알려준다. 다만, ICMP는 처리를 못 하므로 IP보다 위에서 처리를 해주어야 한다. 1번을 해결하기 위해서 포트 번호가 나오게 됐고, 2번을 해결하기 위해 ..

CS/네트워크 2022.05.23

[네트워크]TCP (흐름제어/혼잡제어)

TCP 통신이란? 네트워크 통신에서 신뢰적인 연결방식 TCP는 기본적으로 unreliable network에서, reliable network를 보장할 수 있는 프로토콜 TCP는 network congestion avoidance algorithm을 사용 reliable network를 보장한다는 것은 4가지 문제점 존재 손실: packet이 손실될 수 있는 문제 순서 바뀜: packet의 순서가 바뀌는 문제 Congestion: 네트워크가 홈잡한 문제 Overload: receiver가 overload 되는 문제 흐름제어 / 혼잡제어란? 흐름제어 (endsystem 대 endsystem) 송신측과 수신측의 데이터 처리 속도 차이를 해결하기 위한 기법 Flow Contorl은 receiver가 packe..

CS/네트워크 2022.05.23

[네트워크]TCP 3 way handshake & 4 way handshake

[TCP] 3 way handshake & 4 way handshake 연결을 성립하고 해제하는 과정을 말한다. 3 way handshake - 연결 성립 TCP는 정확한 전송을 보장해야 한다. 따라서 통신하기에 앞서, 논리적인 접속을 성립하기 위해 3 way handshake 작업을 진행한다. 1. 클라이언트가 서버에게 SYN 패킷을 보냄 (sequence : x) 2. 서버가 SYN(x)을 받고, 클라이언트로 받았다는 신호인 ACK와 SYN 패킷을 보냄 (sequence : y, ACK : x + 1) 3. 클라이언트는 서버의 응답은 ACK(x+1)와 SYN(y) 패킷을 받고, ACK(y+1)를 서버로 보냄 이렇게 3번의 통신이 완료되면 연결이 성립이 된다. 4 way handshake - 연결 해제..

CS/네트워크 2022.05.23

[네트워크]OSI 7 계층

7계층으로 나누는 이유?? 통신이 일어나는 과정을 단계별로 알 수 있고, 특정한 곳에 이상이 생기면 그 단꼐만 수정하면 되기 떄문이다. 1.물리(Physical) ex) 리피터, 케이블, 허브 등 단지 데이터 전기적인 신호로 변환해서 주고받는 공간 -> 데이터를 전송하는 역할만 진행한다. 2.데이터 링크(Data Link) ex) 브릿지, 스위치 등 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할을 한다. Mac 주소를 통해 통신을 한다. 프레임에 Mac 주소를 부여하고 에러검충, 재전송,흐름제어를 한다. 3.네트워크(Network) ex) 라우터, IP 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 역할 라우터를 통해 이동할 경로흫 선택하여 IP 주소를 지정하고, 해당 경..

CS/네트워크 2022.05.23

[HIG]Loading

Loading 컨텐츠를 불러올 때, 빈 화면이나 고정된 화면을 사용하는 것은 앱이 멈춰있는 것 처럼 보이게 합니다. 로딩 중인 것을 명확하게 하세요. Activity Spinner를 상요해서 어떤 작업이 진행중이라는 것을 표현하거나 진행상태를 보여주어서 사용자들이 얼마나 더 기다려야 하는지 알리는 것이 좋습니다. 컨텐츠를 최대한 빨리 보여주세요. 화면은 곧바로 보여주고 텍스트, 그림, 애니메이션 등을 상용해서 컨텐츠가 로딩중이라는 것을 표현하세요. 로딩시간 동안 사용자들을 즐겁게 하거나 앱에 대해 알려주세요. 게임의 팁을 보여주거나, 영상을 보여주는 것을 고려해보세요. 앱의 스타일과 잘 맞는 로딩 애니메이션을 사용해서 몰입감 있는 경험을 제공하세요. 1. 사용자에게 로딩을 납득할 수 있는 충분한 정보를 ..

IOS/HIG(UI,UX) 2022.05.23