본문 바로가기

분류 전체보기

(207)
HTTP 메서드 활용 그동안 글자색이 너무 흐리멍텅하길래 #000000으로 바꿔봄요 블로그는 서론 쓸 때 제일 재밌어요. 왜냐면 제가 하고 싶은 말만 쓰거든요. 딱히 말하는 대상은 없지만. 그냥 주저리 하는 것입니다. 혼잣말입니다. 시작할게요? HTTP 메서드 활용 목차 - 클라이언트에서 서버로 데이터 전송 - HTTP API 설계 예시 클라이언트에서 서버로 데이터 전송 데이터 전달 방식은 크게 2가지 (쿼리 파라미터냐 / 메시지 바디냐) 쿼리 파라미터 GET 주로 정렬 필터 (=검색어) 메시지 바디 POST, PUT, PATCH 회원 가입, 상품 주문, 리소스 등록, 리소스 변경 4가지 상황 클라이언트에서 서버로 데이터를 전송하는 네가지 상황에 대해서 알아보자. 정적 데이터 조회 : 이미지, 정적 텍스트 문서 동적 데이터 ..
[Memo] 메모 앱을 만들어보자. (절정) 난 개발이 아니라 두더지 잡기를 하는걸까? 하나를 잡으면 다른 하나가 튀어나오는 .. 욱겨? 내가 고통받는게 욱겨?! #Scene 1. - 검색 뷰 취소 버튼 눌렀을 때 다시 초기 메모 리스트 화면으로 돌아오시오. 멍청한놈 .. 알아서 돌아올 것이지 ... 내가 매번 갱신해줘야해?! ㄴ 응 ~ 해야 해. ㄴ ㅇㅋ염. 어떤 문제였냐면, 메모 리스트 화면 > 검색 화면 > 검색 후 취소 버튼 > 0개로 초기화 됨요 ㅋ.. 문제가 있다면 일단 break point 찍고 보자. // MARK: - UISearchBar Protocol extension ListViewController: UISearchResultsUpdating { func updateSearchResults(for searchControlle..
[Memo] 메모 앱을 만들어보자. (위기) 위기가 꼭 있어야할까? 첫번째 위기 - 메모 데이터 고정/미고정 구분 메모 데이터에서 고정된 것과 고정되지 않은 것을 어떻게 처리할까? Realm에서 한번에 갖고 온 다음에 로컬에서 나눠서 저장한다. Realm에서 갖고 올 때 filter로 처리해서 갖고 온다. 두 가지 방법 중에서 무엇이 더 좋은? 효율적인? 방법일까? 물론 난 둘다 해봄. 이유는 삽질하느라. 첫번째 방법으로 했을 때는 (Realm에서 한번에 데이터를 갖고 온 다음 로컬에서 나누기) private var tasks: Results! { didSet { totalCount = tasks.count var pinned: [Memo] = [] var unPinned: [Memo] = [] for item in tasks { if item.i..
[Memo] 메모 앱을 만들어보자. (전개) 사실 전개 + 위기 + 절정이 한번에 있음 .. 그럼에도 전개를 써보자. 인생은 단계별로 가야하는 것 .. 초기세팅 제일 설레면서 제일 귀찮은 작업이랄까. 여기서 꼬이면 정말 하기 싫어짐. (이런 내가 개발자를 해도 될까?) 초기세팅은 사실 별거 없고 .. 크게 두가지로 나뉘어지는데 .. (나같은 경우엔) Github 레포지토리 만들고 .. (과제 기간 중이라서 Private인데 .. 북흐러우면 계속 Private으로 할 것임. 그렇다고 지금 Public인 프로젝트가 .. 자랑스럽다 .. ? 는 아니고 ㅋㅋ .. 제 master piece는 WAL 그리고 Dear today뿐.) 그리고 라벨을 만듭니다. 사실 안만들어도 됨. 솝트 습관임. 프로젝트도 만들어요. 이것도 역시 솝트 습관임. *이번에 프로젝트..
[Memo] 메모 앱을 만들어보자. (발단) 28기 뿌클하는 기분이다 .. 아니 그것보다 더 어려운 느낌이다 .. 갑자기 왜 메모 앱을 만들어? 라고 물어본다면 .. 네. 그렇습니다. 2차 과제입니다. (1차는 뭐였는데? 쉿. 조용.) 일단 조건을 보자. 이번 과제는 조건이 조금 많다. (아니 조금 많이) 고려사항 1. 아이폰 용으로 앱 제작 2. 코드 베이스 UI 구현 3. 다크/라이트 모드 대응 4. Realm, Singleton/Repository Pattern, BaseView/BaseViewController, Access Control 사용/고려할 것 5. 기능 세분화 및 공수산정 후 개발 작업 진행 이렇게 있었고 .. 각 화면에 대한 분기처리는 아래와 같다. 최초 팝업 화면 사용자가 최초 앱을 실행할 경우, 팝업 화면(WalkThro..
동기 VS 비동기 (+ Blocking VS Non-Blocking) 동기야~!~! 이 개념을 잘 알고 있어야 추가적으로 GCD 관련된 개념들도 잘 이해할 수 있음 .. Blocking VS Non-Blocking Blocking 자신의 작업을 진행하다가 다른 주체의 작업이 시작되면 다른 작업이 끝날 때까지 기다렸다가 자신의 작업을 시작하는 것 예를 들어서) 소깡이가 상사에게 서류를 전달하는 상황이라고 가정해보자. 이 때 이 상사의 이름이 blocking 이다. (블로킹 상사인 것.) 블로킹 상사의 경우, > 서류를 제출하면, 그 앞에서 기다리라고 한다. > 소깡이는 기다린다. > 블로킹 상사가 서류를 모두 확인하면, > 소깡이는 돌아가서 본인의 일을 한다. Non-Blocking 다른 주체의 작업에 관련없이 자신의 작업을 하는 것 위의 예시와 같은 상황이라고 생각해보자...
[질문] 프로세스 스케줄링 & CPU 스케줄링 프로세스 스케줄링 관련 질문 프로세스 스케줄링이란? 프로세스 스케줄러에는 어떤 것들이 존재하나요? 사용자와 시스템 관점에서 어떤 기준을 선호하게 되나요? 1. 프로세스 스케줄링이란? 프로세스가 작업을 수행할 때 언제, 어떤 프로세스에 CPU를 할당할 것인지 결정하는 작업을 의미 기본적으로 멀티 프로그래밍과 시분할에 기반, 메모리 내에 실행 준비된 프로세스 중 하나를 선택해서 CPU 할당 2. 프로세스 스케줄러에는 어떤 것들이 존재하나요? 스케줄러란? 어떤 프로세스에게 자원을 할당할지를 결정하는 운영체제 커널의 모듈 을 지칭 세가지 종류가 존재. (장기 / 중기 / 단기 스케줄러 존재) 장기 스케줄러의 경우 어떤 프로세스를 준비 큐에 넣을 것인지 결정 중기 스케줄러는 메모리에 적재된 프로세스의 수를 관리 ..
CPU 스케줄링 프로세서 스케줄링 기법 크게 선점 방식과 비선점 방식으로 나눠 볼 수 있다. 비선점 이미 할당된 CPU를 다른 프로세스가 강제로 빼앗아 사용할 수 없는 스케줄링 기법이다. 프로세스가 CPU를 할당 받으면 해당 프로세스가 완료될 때까지 CPU를 사용하지 않는다. 매우 공정한 방법이지만 우선순위가 높은 프로세스에 대응하기에는 비효율적인 방법이다. 비선점 스케줄링 기법의 종류는 아래와 같다. ⬇️ ⚪️ FCFS (First Come First Serve / FIFO) CPU를 먼저 요청한 프로세스가 먼저 CPU를 배정 받는 스케줄링 방법 예를 들어서 P1(24ms), P2(3ms), P3(3ms) 프로세스가 있다 가정하면, CPU 스케줄링의 결과는 다음과 같이 표현된다. 가장 간단한 방법이지만 평균 대기 시간..