목록전체 글 (92)
log.Sehee
디자인 패턴 컴퓨터 공학에서 디자인 패턴이란 무엇인지 알아보자 : 프로그램을 설계할 때 자주 발생했던 문제점들을 피하기 위해 하나의 규약 형태로 만들어 놓은 설계 패턴 각각의 역할을 지정해 책임을 분리하며 결합도를 낮추고 확장, 테스트, 유지 보수에 용이하다. 디자인 패턴의 이점 : 재사용성, 유지보수성, 확장성, 협업에 용이 [디자인패턴] MVC, MVP, MVVM 비교 MVC (Model, View, Controller) : Controller가 여러 개의 View를 선택할 수 있는 1:N 구조, 가장 단순하며 보편적이다. View와 Model 사이의 의존성이 높다. 어플리케이션이 커질수록 유지보수가 어려워진다. Model : View에 표시되기 위해 필요한 데이터이며 비즈니스 로직을 설명하는 클래스..
메모리 계층 구조 운영체제(Operating System) | 메모리(Memory) 레지스터 (Register) : CPU의 데이터 처리 속도를 높이기 위해 도입한 CPU 내부의 작은 메모리. 휘발성이며 속도가 가장 빠르고 기억 용량이 가장 작다. 캐시 (Cache) : CPU의 처리 속도와 주 기억장치의 접근 속도 차이를 줄이기 위해 사용. L1 / L2 / L3 캐시 등 여러 단계로 나누어진다. 휘발성이며 속도가 빠르고 기억 용량이 작다. +) L1 / L2 / L3 : 숫자가 작을수록 용량이 작고 빠르며 숫자가 클 수록 용량이 크고 느리다. 주기억장치 (RAM, Random Access Memory) : 주 기억 장치는 주로 DRAM을 의미한다. CPU가 현재 처리중인 데이터나 명령만을 일시적으로 ..
프로세스 (Process) : 프로그램을 메모리 상에서 실행 중인 작업 스레드 (Thread) : 프로세스 안에서 실행되는 여러 흐름 단위 하나의 프로세스가 생성될 때, 기본적으로 하나의 스레드가 같이 생성된다. 멀티 프로세스와 멀티 스레드의 차이 프로세스 : 자신만의 고유 공간과 자원을 할당받아 사용 각 프로세스가 서로 영향을 주지 않지만 멀티 스레드보다 메모리 공간과 CPU 시간을 차지한다. 스레드 : 다른 스레드와 공간, 자원을 공유하면서 사용 멀티 프로세스보다 적은 메모리 공간, Context Switching이 빠르지만 하나의 스레드 장애로 전체가 종료 될 위험이 있다. + Context Switching : 프로세스의 상태 정보를 저장하고 복원하는 과정 동작 중인 프로세스가 대기하면서 해당 프..
운영체제 (OS, Operating System) : 컴퓨터 하드웨어 위에 설치되어 사용자 및 다른 소프트웨어와 하드웨어를 연결하는 소프트웨어 계층 커널 (kernel) : 운영체제의 핵심. 운영체제가 수행하는 모든 것이 저장되어 있다. 프로세스 관리, 메모리 관리, 저장장치 관리 등 핵심적인 기능을 한다. 명령어 해석기 : 커널(운영체제)에 요청하는 명령어를 해석하여 커널에 요청, 그 결과를 출력한다. 운영체제의 종류 - Window / Mac OS / Linux / Unix 등 운영체제의 목적 컴퓨터 시스템을 편리하게 사용할 수 있는 환경 제공 및 컴퓨터 시스템의 자원을 효율적으로 관리 1. 처리능력 (Throughput) 향상 : 일정 시간 내에 시스템이 처리하는 일의 양 2. 사용 가능도 (Ava..
[프로그래머스] 기능개발 사용 입출력 예제 progresses = [93, 30, 55] speeds = [1, 30, 5] result = [2, 1] 1) 정확성테스트 더보기 테스트 1 〉 통과 (0.01ms, 10.2MB) 테스트 2 〉 통과 (0.04ms, 10.1MB) 테스트 3 〉 통과 (0.03ms, 10.3MB) 테스트 4 〉 통과 (0.03ms, 10.2MB) 테스트 5 〉 통과 (0.01ms, 10.1MB) 테스트 6 〉 통과 (0.01ms, 10.2MB) 테스트 7 〉 통과 (0.03ms, 10.3MB) 테스트 8 〉 통과 (0.01ms, 10.2MB) 테스트 9 〉 통과 (0.02ms, 10.3MB) 테스트 10 〉 통과 (0.02ms, 10.3MB) 테스트 11 〉 통과 (0.01..
[프로그래머스] 올바른 괄호 사용 입출력 예제 s = ")()(" result = False s = "(())()" result = True s = "()())(()" result = False s = "(()())" result = True 1) 정확성 & 효율성 테스트 : 테스트케이스 실패 더보기 정확성 테스트 테스트 1 〉 통과 (0.00ms, 10.3MB) 테스트 2 〉 통과 (0.00ms, 10.1MB) 테스트 3 〉 통과 (0.00ms, 10.1MB) 테스트 4 〉 실패 (0.00ms, 10.3MB) 테스트 5 〉 실패 (0.00ms, 10.2MB) 테스트 6 〉 통과 (0.00ms, 10.1MB) 테스트 7 〉 통과 (0.00ms, 10.2MB) 테스트 8 〉 통과 (0.00ms, 10.3M..