일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 수학
- Kadane's Algorithm
- SpringBoot 2
- hash table
- 사칙연산
- R
- 자바 thread 실행 순서 제어
- 카데인 알고리즘
- Easy
- 자바입력
- array
- input
- heroku
- scanner
- 자바 스레드 실행 순서 제어
- JAVA11
- Today
- Total
목록분류 전체보기 (192)
DeFacto-Standard IT
차이 Java C 언어적 구조 객체지향 절차지향 메모리 접근방식 레퍼런스 포인터 데이터 구조 클래스 구조체, 공용체(Union) 구성 단위 파일 새로운 Type 정의 불가 가능 형 변환 명시적 자동 상속 단일상속 없음(C언어), 다중상속(C++) 실행환경 가상머신(JVM) 하드웨어
S - Single Responsibility Princile, SRP, 단일 책임 원칙 하나의 클래스(객체)는 하나의 역할만 책임진다.(클래스를 변경하는 이유는 단 한 개여야 한다) 응집도는 높게, 결합도는 낮게 설계 DB의 정규화 과정을 거치는 것도 SRP를 적용하는 것과 마찬가지 지켜지지 않으면 이 클래스가 무슨 클래스인지도 모르며, 다른 클래스에서 했어야할 책임인데 여기서 수행하므로 전혀 상관없는 클래스를 고치게 되는 꼴이 되어버린다. 소스가 엉망이 된다는 소리. https://defacto-standard.tistory.com/110 O – Open Closed Principle, OCP, 개방 폐쇄 원칙 기능을 확장하는 것에는 열려있지만(다형성), 주변의 변화(코드 수정)에 대해서는 닫혀있다...
클래스(Class) = 타입(Type) 표현 대상들의 공통적인 특징에 대한 서술. 인스턴스를 만들 때 이를 참조하여 만들게 된다. 따라서 클래스를 객체를 만들기위한 '틀'이라고도 한다. 객체(Object) = 실체(Instance) 클래스가 실체로 만들어진 것. 캡슐화(Encapsulation) 데이터와 데이터를 다루는 방법을 묶는 것 상속(Inheritance) 하나의 클래스가 가지고 있는 특징들을 그대로 다른 클래스가 물려받는 것. is-a 관계라고 한다. 다형성(Polymorphism) 한 가지 명령에 의해 서로 다른 작업을 수행 조상 클래스의 인스턴스를 이용하여 자손 클래스에 정의된 메서드에 따라 행동하거나 메서드 오버로딩, 오버라이딩을 통해 동일 이름의 메서드를 이용하여 다양한 형태의 파라미터를..
- 연속 메모리 할당 : 고정 분할, 가변 분할(동적 분할) - 비연속 메모리 할당 : 페이징, 세그먼트, 페이지화 세그먼트 연속 메모리 할당의 단편화의 문제를 최소화하기 위해 비연속(분산) 메모리 할당 개념이 나옴. 처리할 작업을 동일한 고정 크기의 페이지로 나누어 처리. 메모리 역시도 페이지 프레임이라는, 페이지와 동일한 고정된 크기 단위로 분할한다. 전체 용량에 페이지가 모두 들어가면 딱 맞는 사이즈이기 때문에 외부 단편화가 발생하지 않음. 만약 1바이트라도 모자른 경우 프레임 하나가 더 할당이 되기 때문에 내부 단편화는 존재한다. 이는 페이지의 크기를 조절하여 낭비를 줄일 수 있으나 페이지는 테이블에 의해 관리되고 크기가 작아진다면 페이지 테이블이 늘어나므로 적당한 크기로 조절하여야 한다. 장점 ..
프로세서를 실행시키기 위해 메모리를 할당, 해제하는 과정에서 나타나는 현상. 내부단편화와 외부단편화가 있다. 내부단편화 : 프로세스에 할당된 메모리의 크기가, 프로세스가 요구하는 양보다 많아서 남는 상태. 실질적으로 쓰이지는 않지만 이미 할당되어 다른 프로세스가 사용 못해 공간이 낭비되는 상태. 외부단편화 : 메모리가 프로세스가 할당이 되지 않은 상태라 사용 가능한 상태이지만, 그 크기가 너무 작아서 실질적으로 이를 사용할 수 있는 프로세스가 없는 경우. 할당기법에 따른 단편화 발생 여부 연속 메모리 할당기법 비연속 메모리 할당기법 내부단편화 고정분할 가변분할(동적분할) 페이징 세그먼트 외부단편화 O X O X O X O 설명 내부단편화 메모리를 일정한 크기로 할당하므로 보통 프로세스가 요구하는 메모리보..
요즘 PC환경은 대부분 멀티프로그래밍 환경. 멀티프로그래밍은 여러 개의 프로세스를 수행하는 것. 사실 순차적으로 돌아가면서 조금씩 수행되나 속도가 빠르므로 동시에 프로세스를 처리하는 것처럼 보인다. 여기서 현재 프로세스를 다른 프로세스로 교환한다는 것은, 이전 프로세스의 상태 레지스터 내용을 보관하고 다른 프로세스의 레지스터를 적재하는 일련의 과정을 Context Switching이라고 한다. 프로세스가 ‘준비->실행’, ‘실행->준비’, ‘실행->대기’ 상대로 변할 때 발생한다. PCB(Process Control Block)라는, 프로세스를 관리하기 위해 유지되는 데이터 블록 구조를 사용한다. 실행중인 프로세스의 내용을 PCB에 저장하고, 다음에 실행할 프로세스에 대한 내용을 PCB로부터 얻어와 CP..
한정된 자원을 여러 프로세스가 동시에 사용하려고 할 때, 자원을 얻지 못하고 상대의 작업이 끝나기만을 기다리는 상태. 4가지 조건이 모두 성립해야 발생하며, 해결하려면 하나라도 성립하지 않도록 하면 해결할 수 있다. - 상호 배제(Mutual Exclusion) : 자원은 한 번에 한 프로세스만 사용 가능 - 점유 대기(Hold and Wait) : 최소한 하나의 자원을 점유하고 있으면서, 다른 프로세스에 할당되어 사용되고 있는 자원을 추가로 점유하기 위해 대기하는 프로세스가 있어야 함 - 비선점 (No Preemption) : 다른 프로세스에 할당된 자원은 사용이 끝날 때 까지 강제로 빼앗을 수 없다. - 순환 대기(Circular Wait) : 프로세스의 집합 P0...Pn에서 p(n-1)은 pn이 ..
Thread Process - 프로세스 내에 존재 - 하나의 프로그램 내에서 실행 단위 - 메모리를 공유해서 사용할 수 있다.(프로세스 내에서 공유) - 쓰레드간 전환 속도가 프로세스간 전환 속도보다 빠름 - 완전한 병렬 처리가 아니면 때로는 동기화 하여야 하고, 이럴 경우 개발이 복잡해짐 - OS내에 존재 - 레지스터, 스택, 포인터 등을 가짐 - 실행중인 프로그램 - 각각 별개의 메모리 공간을 가짐.공유를 위해서는 IPC(Inter Process Communication)과 같은 방식이 필요 - PCB(Process Control Block) 형태로 존재. - 프로세서가 할당하는 개체 - 디스패치가 가능한 대상 - 프로세스간 전환 속도가 쓰레드간 전환 속도보다 느리다
이번에 누나 노트북을 포맷해주다가, 포맷화면 직전에 검은화면에 커서만 깜빡이는 일이 발생했다. 아무리 기다려도 포맷을 할 수가 없다. 검은화면에 커서만 깜빡이고 넘어가지 않는다. 구글링을 해본결과 해결방법을 찾았다. 참고로 이 방법은 포맷하려는 PC가, 포맷하기 전에 정상적으로 윈도우 부팅이 되는 상황을 전제로 한다. 안전모드에서도 되는지는 모르겠음. 부팅 USB는 3.0, 삼성노트북 R580으로서 USB포트가 2.0밖에 없었다. 설치하려는 OS는 윈도우10 64bit Pro이다. 1. 부팅 USB 만들기 - USB를 PC에 꽂음 - rufus라는 프로그램을 다운받는다 - iso를 로드하면 기본적인 세팅이 자동적으로 이루어지는데 이상태에서 그냥 시작을 누르면 된다. 다른설정 건드리지 말고 그냥 그대로 -..
maven project에서 라이브러리를 사용할 때, pom.xml에 Dependency를 기술하여야 한다. pom.xml에서 Dependency를 검색할 때 다음과 같이 검색이 되지 않는 경우가 있다. "index downloads are disabled, search results may be incomplete" 라는 경고가 뜬다. 1. Eclipse의 Windows - Preferences - Maven - Download repository index updates on startup 을 체크 2. Window - Show view - Maven - maven Repositories - OK (하단에 Repositories라는 View가 생김) - Global Repositories - cent..