분류 전체보기
-
Programmers Lv2) 캐시Algorithm/Programmers 2020. 8. 24. 19:57
출처: programmers.co.kr/learn/courses/30/lessons/17680 분류: Lv2 접근방식 LRU(Least Recently Used)의 개념을 알면 쉽게 풀 수 있는 문제입니다. LRU란 캐시를 관리하는 방법인데요, 캐시를 비울 때 가장 오래 사용되지 않은 녀석을 지우는 방식입니다. 만약 캐시의 크기가 4이고, [1, 2, 3, 4] 가 들어있을 때, 2가 추가로 들어온다면 2가 가장 최신에 사용된 것이 되므로 캐시는 [1, 3, 4, 2]로 변하게 됩니다. 만약 도시가 이미 캐시에 들어있다면 cache hit 이 되어 시간 1이 추가되고, 캐시에 없다면 chache miss가 되어 5가 추가됩니다. 저는 처음에 시간 복잡도를 생각해서 링크드 리스트와 딕셔너리를 섞어서 굉장히..
-
부스트캠프 챌린지 5기 수료일상/끄적끄적 2020. 8. 24. 17:09
2020.07.27 ~ 08.21 부스트캠프 챌리지 5기를 수료했다. 길고도 짧았던 부스트캠프 챌린지를 수료하고 평온하고도 허전한 월요일 오후를 맞이하고 있다. 원래 같았으면 이 시간엔 과제와 씨름하느라 상상도 할 수 없었던 여유(?)다. 일주일 후면 다시 멤버십 과정으로 정신없을테니, 지난 한 달을 돌이켜보며 정신무장을 해보려 한다. (? 아직 발표도 나지 않았으나 나는 꼭 가야한다.. 그렇게 될거다... 되어야만 한다... 🙏) 결론부터 말하자면, 올 한 해 가장 잘한 일을 꼽으라면 당연 부캠 이다. 나 혼자라면 상상할 수 없었던 기대 이상의 성장을 경험했다. 개인의 성장을 스스로 평가한다는 것이 내 입으로 "실력이 이만큼 늘었어요!" 라고 말하는 것 같아 우습긴 하지만, 그만큼 열심히 했고 이정도 ..
-
[개발자 문서읽기] Concurreny Proramming Guide - 1iOS 2020. 8. 16. 16:27
공부하며 번역한 내용입니다. 오역과 의역이 있을 수 있습니다. 정확한 내용은 원문을 참고해주세요 :) 애플 doccument Introduction Introduction Concurrency is the notion of multiple things happening at the same time. With the proliferation of multicore CPUs and the realization that the number of cores in each processor will only increase, software developers need new ways to take adva developer.apple.com 도입 Concurrency 란 여러가지 일이 동시에 일어나는 개념이다..
-
나는 오늘도 경제적 자유를 꿈꾼다일상/독서 2020. 8. 16. 15:37
2020.08.02 ~ 2020.08.12 이 책에서 부동산 투자를 통해 경제적 자유를 이뤄낸 저자의 경험, 치열했던 삶을 엿볼 수 있다. 나는 아직 부동산 투자에는 별로 관심이 없지만, 단순한 '방법' 보다도 그가 삶을 대하는 '태도'에서 정말 많은 것을 배울 수 있었다. "돈? 너무 많아도 안 좋아. 적당한게 최고지" 라고 말하는 사람을 종종 볼 수 있다. 많은 건 어느정도고, 적당한 건 어느정도일까. 나는 아직 돈을 많이 벌어보지 못했지만, 돈이라는 속성 자체에 적당함은 없다고 생각한다. 부자는 갑자기, 빠르게 되고 점점 부자가 되어간다. 반면 돈이 없는 사람은 계속 돈이 없다. 가난하다. 적당한 부를 생각하면서 부를 일궈내고 유지하는 사람을 아직 내 짧은 식견에서는 본 적이 없다. 저자가 말하듯 ..
-
DispatchQueueiOS 2020. 8. 11. 23:22
iOS의 쓰레드 스케줄링을 처리해줄 DispatchQueue 대해 공부해보겠습니다 :) DispatchQueue 공식 문서의 설명을 간단하게 살펴볼까요? An object that manages the execution of tasks serially or concurrently on your app's main thread or on a background thread. 앱의 메인쓰레드 또는 백그라운드 쓰레드에서 작업의 순차적(serially) 혹은 병렬적(concurrently) 처리를 관리하는 Object 네 설명 끝입니다. 역시 공식문서 답게 완벽한 요약이네요 👏 하지만 이대로 끝낼 순 없으니 이제 이 말 뜻을 조금 더 풀어서 알아보겠습니다 :) 다시한번 DispatchQueue란 iOS의 thr..
-
Process 와 ThreadComputer Science/Operating System 2020. 8. 11. 18:03
Process 와 Thread를 초간단 정리해보겠습니다. Process 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램 실행중인 프로그램의 instance 로 운영체제에서 가장 기본적인 실행단위. 각 프로세스는 Code, Data, Stack, Heap의 구조로 된 독립된 메모리영역을 갖는다. 각 프로세스는 일정 생애주기를 갖는다. 하나의 작업을 여러 프로세스에서 병렬로 처리하는 걸 멀티프로세싱이라고 한다. 멀티 프로세싱 하나의 작업을 여러 프로세스에서 병렬로 처리하는 걸 의미합니다. CPU에서 여러 프로세스를 돌면서 처리합니다. 다음 프로세스로 넘어갈 때 동작중인 프로세스는 현재 상태(Context)를 보관하고, 대기하고 있던 다음 프로세스의 상태(Context)를 복구합니다. 이 과정을 Conte..
-
운영체제 OS (Operating System)Computer Science/Operating System 2020. 8. 11. 17:06
우리가 많이 듣고 사용하는 윈도우, 맥os, iOS, 안드로이드, 리눅스, MS-DOS 등이 바로 운영체제 입니다. 오늘은 운영체제가 뭔지 아주 간단하게 공부해보겠습니다. 운영체제 운영체제(Operating System)란 밑으로는 하드웨어 자원들(cpu, memory, disk, tty)을 관리하고 위로는 프로그램들을 지원(support) 해주는 역할을 합니다. 하드웨어 자원들을 잘 관리해서 프로그램들이 효율적으로 동작할 수 있도록 만들어주는 중간 관리자 입니다. 운영체제의 목적 운영체제가 하는 일을 이해했다면 자연스럽게 그 목적은 프로그램들이 효율적으로 동작하는 데 있습니다. 그렇다면 효율적이라는 건 어떤 걸까요? 크게 다음 4가지의 척도로 판단해볼 수 있습니다. 처리능력(Throughput): 일정..
-
순수함수 Pure functionSwift 2020. 8. 4. 21:42
순수 함수란 수학에서 사용하는 함수를 떠올리시면 좋습니다. f(x) -> y 위 함수의 의미는 아시겠죠? x를 넣으면 y가 나온다. 네 프로그래밍에서 말하는 순수 함수도 정말 순수하게 '수학에서 사용하는 함수처럼' 동작하는 함수에 가깝게 만들자 라는 취지에서 출발했다고 합니다. 프로그래밍에서 순수 함수는 다음 정의를 따릅니다. 동일한 입력에는 항상 같은 값을 반환해야 한다. 함수의 실행은 프로그램의 실행에 영향을 미치지 않아야 한다. (Side effect 가 없어야 한다) 예를 들어, 함수 내부에서 인자의 값을 변경하거나 프로그램 상태를 변경하는 것 수학에서의 함수처럼 동일한 입력에는 항상 같은 값을 반환해야 합니다. 그리고 함수의 결과가 외부에 영향을 주지도, 받지도 않는 함수를 순수함수 라고 합니다..