반응형 전체 글91 [운영체제] 병렬 처리 기법 컴퓨터에서 병렬 처리는 동시에 여러 개의 명령을 처리하여 작업의 능률을 올리는 방식을 말합니다. 이번 글에서는 이러한 컴퓨터의 병렬 처리에 있어서 어떠한 기법을 사용하는지 알아봅시다. CPU 내에서 명령어는 제어장치가 처리합니다. 제어장치는 명령어를 가져와 해석 후 실행하고 결과를 저장하는 과정을 계속 반복합니다. 이러한 한 사이클을 스레드(thread)라고 합니다. 스레드를 이루는 각 단계는 CPU의 한 Clock에 한 번씩 이루어집니다. CPU에서 명령어 실행되는 과정은 아래와 같이 4단계로 나눕니다. (경우에 따라 더 세분화하기도 합니다.) 명령어 패치 (IF) : 다음에 실행할 명령어를 명령어 레지스터에 저장 명령어 해석 (ID) : 명령어를 해석 실행 (EX) : 해석한 결과를 토애도 명령어 실.. 2021. 8. 30. [Kotlin] Kotlin Collection 관련 유용한 함수 Android 개발을 하다 보면 필연적으로 collection이라는 자료구조를 많이 사용하게 됩니다. collection의 종류로는 List , Map, Set 이 있습니다. Kotlin의 Collection은 기본적으로 Mutable과 Immutable을 별개로 지원합니다. Mutable : 생성하면 추가, 삭제가 가능 Immutable : 생성하면 수정 불가 오늘은 이 collection에서 사용할 수 있는 유용한 함수들에 대해 정리해보려고 합니다. 🟩 sort collection의 각 요소들을 정렬해줍니다. fun main(args: Array) { val a: MutableList = mutableListOf(3, 2, 1) a.sort() //a.sorted() 는 새로운 collection을 .. 2021. 8. 28. [Spring] 단위 테스트를 위한 JUnit 개발에서 테스트는 매우 중요한 부분입니다. 특히 비즈니스 로직을 중점적으로 개발하는 백엔드 개발자에게 있어서 테스트는 언제나 고민이 되는 부분일 것입니다. 그래서 요즈음 TDD(Test-driven Development) , 테스트 주도 개발이라는 소프트웨어 방법론을 많이 사용하고 있습니다. 간략히 설명하면 단위 테스트 케이스를 작성하고 이를 통과하는 개발 코드를 작성하는 방법입니다. Spring에서 단위 테스트를 위해 주로 사용하는 프레임워크인 JUnit에 대해 정리해보려고 합니다. 이 글에서는 어노테이션(annotation)과 Assert을 중점으로 정리를 할 것입니다. 해당 글에서는 테스트를 위해 Junit5를 사용할 것입니다. Junit5는 이전 버전과 다르게 3개의 서브 프로젝트로 이루어져 있습.. 2021. 8. 26. [운영체제] 컴퓨터 성능 향상 기술 (버퍼, 캐시, 인터럽트) 현대 컴퓨터 구조의 가장 큰 문제점은 CPU, 메모리와 주변장치의 작업 속도가 다르다는 것입니다. 메모리는 시스템 버스(FSB)의 속도와 같고 CPU는 내부 버스(BSB)의 속도와 같은데 일반적으로 내부 버스 속도가 더 빠르기 때문에 메모리나 주변장치는 CPU의 속도를 따라가지 못합니다. 이번에는 이러한 장치 간 속도 차이를 개선하고 시스템의 작업 속도를 올리기 위해 개발된 기술 중 운영체제 관련된 기술을 간단히 알아봅시다. 🔷 버퍼(Buffer) 버퍼는 임시 저장 공간입니다. 속도에 차이가 있는 두 장치 사이에서 그 차이를 완화하는 역할을 합니다. 예를 들어 창고에 있는 사과 5개를 도마에 옮긴다고 하면 이때 한 번에 하나씩 옮기면 다섯 번을 왕복해야 하지만 사과를 바구니에 담아서 옮기면 한 번에 옮길.. 2021. 8. 24. [Android] (번역) Comparing Kotlin Coroutines with Callbacks and RxJava 이 글은 https://www.lukaslechner.com/comparing-kotlin-coroutines-with-callbacks-and-rxjava/ 를 번역한 것입니다. (잘못된 부분이나 내용 개선에 관해서 피드백 환영합니다.) Intro 나는 현재 Kotlin Coroutines에 많은 시간을 투자하고 있습니다. 그래서 Android에서 Coroutine을 사용하는 가장 일반적인 사례에 대해 조사하고 오픈소스 예제 프로젝트를 구현했습니다. 현재 16개의 일반적인 Coroutine 사용 사례가 포함되어 있습니다. 이 프로젝트의 샘플이 많은 개발자에게 도움이 될 수 있다고 생각합니다. Coroutine의 실제 이점을 더 잘 이해하기 위해 비동기 프로그래밍에 대한 다른 접근 방식으로 Callbac.. 2021. 8. 20. [운영체제] CPU와 메모리 대부분의 컴퓨터 작업은 CPU와 메모리의 협업으로 이루어지므로 필수 장치로 분류됩니다. 이번 글에서는 CPU와 메모리에 대해 알아봅시다. 🔷 CPU CPU는 명령어를 해석하여 실행하는 장치입니다. 인간으로 치면 뇌에 해당한다고 볼 수 있고 우리가 흔히 운영체제를 이해하는 데 사용하는 요리사 모형에서 요리사에 해당합니다. 컴퓨터의 속도는 CPU의 연산 능력에 따라 달라집니다. 보통 CPU의 속도를 나타내는 단위로 클록(clock)을 사용합니다. CPU의 구성요소는 크게 3가지로 분류할 수 있습니다. 산술 논리 연산장치 (요리) 제어장치 (작업 지시) 레지스터 (재료 임시 보관) 🔴 산술 논리 연산장치 CPU에서 데이터를 연산하는 역할을 하는 장치입니다. 데이터의 덧셈, 뺄셈, 곱셈, 나눗셈 같은 산술 연산.. 2021. 8. 18. 이전 1 ··· 9 10 11 12 13 14 15 16 다음 반응형