Buffer라는 개념은 일반적으로 데이터를 제공하는 곳과 제공받는 곳의 성능의 차이를 매꾸기위해 사용되며 한가지의 예로 저속장치가 작업을 처리하는 동안 고속장치가 기다리는 현상이 줄어듭니다. 저속의 장치의 작업을 기다려야 할 경우 만약 프린터의 성능을 저속 컴퓨터의 성능을 고속이라고 가정하면 프린터의 작업이 끝날때까지 컴퓨터를 사용할 수 없습니다. 또한 I/O요청이 줄어드는 결과가 생깁니다. I/O란? Input(입력)과 Output(출력)의 약자입니다. 컴퓨터 외부(Keyboard, Mouse)또는 내부(HDD, SSD)와 데이터를 서로 주고 받는 것 BufferInputStream? 보조스트림인 BufferInputStream을 사용해보기 BufferInputStream이 생성되면 내부 버퍼배열(기본..
Stream 연속적인 데이터의 흐름을 의미 Java 응용프로그램과 입출력 장치를 연결해줍니다. Java 응용프로그램은 입출력 Stream하고만 연결, Stream이 입출력에 관한 System call을 합니다. 1. 단방향이며 입력과 출력이 정해져있다. 입력스트림은 입력장치만 제어 출력스트림은 출력장치만 제어 2. 선입선출 구조 3. Java의 Stream은 바이트, 문자로 구분 바이트스트림은 바이트단위로 데이터를 다룹니다. 스트림에 들어오고 나가는 데이터를 바이너리로 다루기때문에 모든형식의 데이터를 취급이 가능합니다. 문자스트림은 2byte 유니코드 문자단위로 데이터를 다룹니다. 문자가 아닌정보들은 다룰수없는 특징이 있습니다. Java Stream의 동작 🌊 InputStream Byte기반 입력 최상..
meta data : 데이터를 위한 데이터, 사진 데이터를 위한 시간, 장소, 플래시 유무등을 meta data라 말함 annotation : 주석이라는 사전적인 의미를 가지며 java에서 주석이라는 개념을 표현하기 위한 방식 중 하나 Java 5부터 제공되는 기능입니다. 데이터 유효성검사등을 제공하며, annotation을 잘 활용할 경우 코드가 깔끔해집니다. annotation이 제공해주는 것 1. 코드 생성 2. 런타임 처리 3.컴파일러 지시문 Java 표준 주석 (built in annotation) @Override 슈퍼클래스의 메서드를 재정의한 메서드라는 것을 알려줍니다. compile때 @Override annotation이 설정된 method가 슈퍼클래스에서 찾을 수 없다면 컴파일이 불가능..
😀 engine mysql engine asni sql 문법을 지원합니다. storage engine 실제 데이터를 디스크에 저장하거나 읽어오는 부분을 담당 mysql engine은 1개이지만 storage engine은 여러 개를 동시에 사용 가능 storage engine들은 성능 향상을 위해 myisam keycahe, innoDB bufferPool 같은 것들을 지원합니다. (특정 테이블을 선택하여 다른 storage engine의 사용도 가능합니다.) 😀 handler API mysql engine의 쿼리 실행기에서 데이터를 읽거나 써야 할 때 storage engine에 요청을 해야 합니다. 😀 mysql threading mysql server는 thread기반으로 동작합니다. 크게 포그라운..
enum, 열거형 어떤 내용에 관련된 상수들의 집합 왜 enum을 사용해야 할까? 📗성격별로 상수를 분리 enum을 사용하지 않고 상수값을 관리하고 싶으면 아래처럼 사용해도 된다. public class OldEnumClass { public static final int MOUSE = 1; public static final int KEY_BOARD = 2; public static final int MONITOR = 3; } public class OldEnumClass2 { public static final int RUN = 1; public static final int JUMP = 2; public static final int STOP = 3; } 하지만 논리적으로 다른 성격인 상수임에도 같..
💬 Thread 클래스와 Runnable 인터페이스의 차이 Runnable은 추상 메서드인 run() 하나만을 가진 functionalInterface이며 단독으로는 아무 기능이 없습니다. Thread는 Runnable의 구현체입니다. 스레드를 위한 실직적인 기능은 해당 클래스에 정의되어있습니다. 💬 Thread의 상태 자세한 내용은 링크 참고 https://dogg.tistory.com/203 💬 Thread의 우선순위 OS의 스케쥴링 정책에 상이하며 때에 따라서 다릅니다. thread1 -> thread2 -> thread3 순서대로 처음에 실행이 종료되었다면 두 번째에는 thread2 -> thread3 -> thread1 순서로 종료될 수 있습니다. Java 수준에서 우선순위를 지원해줄 수 있으나..
프로그램을 메모리에 할당하는 방식은 2가지가 존재합니다. 1. contiguous allocation 2. non-contiguous allocation 연속적 할당과 비연속적 할당으로 나뉩니다. 조금 더 자세히는 코드를 물리적으로 연속적인 위치에 할당할 것인가? 파편화시켜 나누어서 할당할 것인가?입니다. 📗1. contiguous allocation(연속적 할당) P1(Program1)이 메인메모리에 연속적인 위치에 적재됩니다. 연속 할당에서는 고정 분할, 동적 분할 방식이 존재합니다. 고정 분할 미리 메모리를 고정적으로 분할하여 분할된 파티션마다 하나의 프로세스만 올라올 수 있습니다. 메인 메모리를 3의 크기로 조각하였습니다. P1(process) 크기 2 P2(process) 크기 5 P1 크기 <..
프로그램이 실행되어 종료되기까지의 생명주기입니다. 상태 created : 프로세스가 생성되는 상태 ready : 메모리에 프로그램이 올라가 프로세스가 만들어진 상태 running : 프로세스가 cpu를 점유한 상태 block(sleep) : 프로세스가 자원을 할당받지 못한 상태 suspended block : 자원도 할당받지 못하고 메모리에도 올라가지 못한 상태 suspended ready : 자원은 할당받았으나 메모리에 올라가지 못한 상태 terminated : 프로세스가 종료된 상태 전이 dispatch : 정해진 스케줄링 방식(보편적 시분할)에 따라 cpu를 점유 timeout : 정해진 스케줄링 방식(보편적 시분할)에 따라 cpu 점유시간이 종료 block : 외부 요인에 의하여 자원을 빼앗김 w..
- Total
- Today
- Yesterday
- 문제
- 관계설정
- springboot
- 알고리즘
- jre8
- 프로그래머
- jvm
- 자바
- JDK
- 다대일
- boot
- 개발자채용
- 코딩테스트
- JDK8
- jre
- 스타트업
- java8
- 백준 제로
- boot 일대다
- 백준
- Spring
- ㅃ
- jre11
- 스택
- JPA
- mappedby
- 백엔드
- 자사서비스
- jdk11
- 백준 제로 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |