권한을 요구하는 작업을 수행할 때, 사용자에게 권한을 요청하는 알람을 뛰운다. 또, 사용자가 권한을 거절해 버리면, 설정으로 가서 권한을 부여하도록 Alert 창을 띄운다. 또한 HIG에서는 권한 요청이 필요한 타이밍에 권한을 요청하라고 하고 있다. 즉 시작하자마자 필요한 권한을 모조리 요구하지 말라는 말. 따라서 여러 화면마다 권한 요청을 해야한다면 많은 중복코드가 생길 것이다. 그래서 protocol을 이용하여 권한 요청/각 권한에 따른 설정 이동 Alert를 표시하는 기능을 채택하면 사용할 수 있게 구현해 보았다. Alert를 화면에 띄우는 작업을 protocol의 extension을 이용해 구현했다. protocol Alertable {} extension Alertable where Self: ..
시스템 콜 응용 프로그램이 IO장치에 접근 (ex: 파일을 디스크에서 읽어오려고 할 때)하려고 할 때, IO장치에 접근하는 명령어는 특권명령어로 응용프로그램은 해당 명령어를 실행시킬 수 없다. 때문에 응용 프로그램은 이런 작업을 인터럽트를 발생시켜 OS에게 CPU 사용권을 넘김으로써 이를 수행하는데, 이렇게 응용 프로그램이 운영체제의 서비스를 받기 위해 커널 함수를 호출하는 것을 시스템 콜이라 한다. 이렇게 소프트웨어가 인터럽트를 발생시키는 것을 소프트웨어 인터럽트(Trap)라 하고, IO 장치가 인터럽트를 발생 시키는 것을 하드웨어 인터럽트라 한다. 보통 인터럽트라 하면 하드웨어 인터럽트를 말하는 것이 일반적. Device Controller/ Device driver IO장치의 연산을 작동을 담당하는..
본 글은 kocw에서 제공해주는 이화여자대학교 반효경 교수님의 운영체제 강좌를 정리한 내용입니다. 운영체제란? 컴퓨터 하드웨어 위에 설치되어서 사용자 또는 다른 응용 프로그램과 하드웨어를 연결 및 관리를 해주는 소프트웨어 주기능 / 목적 각 프로그램들이 독자적 컴퓨터에서 수행되는 것 같은 환경을 제공. 하드웨어를 직접 다루는 부분은 운영체제가 관리 프로세스, 파일, 메세지 등을 관리 자원 (CPU, 메모리 등등), I/O 장치들의 효율적 관리 주어진 자원으로 최대한의 성능 → 효율성 특정 사용자/프로그램의 지나친 불이익이 발생하지 않도록 → 형평성 커널 운영체제의 핵심적인 부분으로, 컴퓨터 부팅시부터 종료까지 항상 메모리에 상주해 있는 부분 운영체제 분류 작업 방식 단일 작업 (single tasking..
MVVM Inout패턴 ViewController -> ViewModel로 데이터나 이벤트를 Input으로 전달, ViewModel -> ViewController로 데이터나 이벤트를 Output으로 전달하는 구조. Input, Output으로 입출력이 명확하게 나뉘어지기에 유지보수나 가독성을 향상시킨 디자인 패턴 예시 - 아이튠즈 검색 구조 Input: SearchBarText, SearchBarTapSearchButton 이벤트 Output: isLoading, searchError, Search Result 시행착오 tapSearchButton 이벤트 스트림으로 에러처리 한 경우 func transform(input: Input) -> Output { let searchResult: Publis..
Pieline Register 파이프라인은 각 스테이지에서 나온 값을 저장할 레지스터가 필요. 그래서 각 스테이지 사이에 레지스터를 둠 Single-clock-cycle pipeline diagram 파이프라인이 싱글 사이클일 때, 특정 사이클을 보여줄 때 사용 예시) Load 명령어의 파이프라인 기존 Mips의 Pipe에서 Load 명령어를 실행한다면 WB스테이지에서 값을 가져온 후 레지스터로 되돌아온 후, 주소에 값을 저장하게 된다. 하지만 파이프라인을 사용할 시 해당 레지스터에는 다른 명령어의 주소값이 들어가 있게 되므로, 이를 해결하기 위해 load의 datapath(푸른 선)를 추가하여 문제를 해결. dataPath를 추가함으로써 단계가 진행될 때, 같이 데이터가 넘어가는 방식 Multi-clo..
기획 의도 내 취미는 양서류, 절지류, 파충류 같은 희귀 애완동물을 키우는 것이다. 요즘은 취업 준비 때문에 대부분 분양 보냈지만... 아무튼 이런 취미를 가졌기에 희귀 애완동물 커뮤니티에 자주 들어가는데 보통 한두 마리를 키우는 게 아닌 몇십 ~ 수백 마리 단위로 키우는 사람들도 자주 보이고, 자신의 개체 관리 기록 (먹이 급여나 탈피 같은 기록할 사항)을 메모장에다가 기록해 두는 사람들도 종종 보았다. 그래서 이런 희귀 애완동물을 관리한 기록을 저장할 수 있는 앱이 있으면 좋겠다고 생각했고, 희귀애완동물을 관리하는 것을 목적으로 앱을 기획했다. 앱 디자인 일단 우리나라에서 희귀동물하면 보통 파충류, 양서류, 절지류로 나눠지고 가장 많이 키워진다. 그래서 펫 리스트 화면에서 이 3가지의 종을 필터링해서..