일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- spring
- JPA
- Real MySQL
- Stream
- 보조스트림
- IntellJ
- K8s
- 자바 ORM 표준 JPA 프로그래밍
- 자바
- 백준
- Java
- jvm
- mysql
- 토비의 스프링 정리
- 쿠버네티스
- SpringBoot
- gradle
- Collection
- list
- thread
- redis
- 이스티오
- GC
- 스프링
- 토비의 스프링
- Kotlin
- 스트림
- OS
- Stack
- MSA
- Today
- Total
목록Java (58)
인생을 코딩하다.
바이트 단위 스트림 InputStream : 바이트 단위 입력 스트림 최상위 클래스 OutPutStream : 바이트 단위 출력 스트림 최상위 클래스 추상 메서드를 포함한 추상 클래스로 하위 클래스가 구현하여 사용 주요 하위 클래스 스트림 클래스(입력) 설명 FileInputStream 파일에서 바이트 단위로 자료를 읽는다. ByteArrayInputStream Byte 배열 메모리에서 바이트 단위로 자료를 읽는다. FilterInputStream 기반 스트림에서 자료를 읽을 때 추가 기능을 제공하는 보조 스트림의 상위 클래스. 스트림 클래스(출력) 설명 FileOutputStream 바이트 단위로 파일에 자료를 쓴다. ByteArrayOutputStream Byte 배열에 바이트 단위로 자료를 쓴다. ..
입출력 스트림이란? 네트워크에서 자료의 흐름이 물과 같다는 의미에서 유래 다양한 입출력 장치에 독립적으로 일관성 있는 입출력 방식제공 입출력이 구현되는 곳에서는 모두 I/O 스트림을 사용 : 키보드, 파일 디스크, 메모리 등 입출력 스트림 구분? I/O 대상 기준 : 입력 스트림, 출력 스트림 자료의 종류 : 바이트 스트림, 문자 스트림 스트림의 기능 : 기반 스트림, 보조 스트림 입출력을 동시에 할 수 있는 스트림은 없다. 어떤 스트림이 하나 있으면 그 스트림은 입력 or 출력 스트림이다. 마찬가지로 바이트 or 문자 스트림, 기반 or 보조 스트림 자바의 I/O는 데코레이터 패턴으로 구현이 되어 있다. 입출력 스트림과 출력 스트림 입력 스트림 : 대상으로부터 자료를 읽어 들이는 스트림 출력 스트림 :..
Java Collection Framework의 Generic programming Java Collection Framework은 java에서 여러가지 자료구조와 알고리즘을 구현해놓은 라이브러리라고 할 수 있다. 제네렉 프로그래밍이란? "클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법" - 변수의 선언이나 메서드의 매개변수를 하나의 참조 자료형이 아닌 여러 자료형을 변환 될 수 있도록 프로그래밍 하는 방식 - 메소드 호출시 리턴값으로 넘어오는 타입과 다를 때 각각 형변환을 해주는 문제점이 있다. 그래서 타입 형 변환에서 발생할 수 있는 문제점을 "사전에' 없애기 위해서 만들어졌다 - 실제 사용되는 참조 자료형으로 변환은 컴파일러가 검증하므로 안정적인 프로그래밍 방식 - java5 부터 추가..
String class클래스의 내부 Object 클래스를 확장하고, 직렬화 Serializable, 매개변수로 넘어가는 객체와 현재 객체가 같은지를 비교하는데 사용하는 Comparable, 문자열을 다루는CharSequence 를 구현하고 있다. 또 위에 보면 final로 선언이 되어있다. 그래서 상속해서 사용할 수 없다. String 문자열을 byte로 변환하기 같은 프로그램 내에서 문자열을 byte 배열로 만들 때에는 getBytes() 메서드 사용 다른 시스템에서 전달 받은 문자열을 byte 배열로 변환할 때에는 두번째나 세번째에 있는 메소드를 사용하는 것이 좋다 -> 문자열이 다른 캐릭터 셋으로 되어 있을 수도 있기 때문에 byte[] array1 = korean.getBytes(StandardC..
Multi-thread 프로그래밍 동시에 여러 개의 Thread가 수행되는 프로그래밍 Thread는 각각의 작업공간 (context)를 가짐 공유 자원이 있는 경우 race condition이 발생 critical section에 대한 동기화(synchronization)의 구현이 필요 쓰레드들이 공유하는 자원 = 쉐어드 리소스 이런 자원의 영역을 critical section 이라고 한다. 이 critical section을 2개의 쓰레드가 접근하게 되었을 때, 만약 critical section 에서 어떤값을 가져와서 더하고 뺀다라고 하면 나중에 더해서 오버라이드 한 값이 무시가 될 수 있다. 그래서 더한 다음에 빼야한다. 결국엔 이런 영역에 관해 순서를 지켜주자는게 동기화다. 이 critical s..
Process 실행중인 프로그램 OS으로부터 메모리를 할당 받음 Thread 실제 프로그램이 수행되는 작업의 최소 단위 하나의 프로세스는 하나 이상의 Thread를 가지게됨 Thread는 CPU를 점유해서 돌아가게 되는데, CPU를 점유할 수 있는 것은 스케쥴러라는 것이 있다. 스케쥴러가 쓰레드의 CPU를 할당을 해서 쓰레드가 수행 되도록 역할을 한다. java 명령어를 사용하여 클래스를 실행시키는 순간 자바 프로스세가 시작되고, main() 메소드가 수행되면서 하나의 쓰 레드가 시작되는 것이다. 아무런 쓰레드를 생성하지 않아도 JVM을 관리하기 위한 여러 쓰레드가 존재한다. 예를 들면 자바의 쓰레기 객체를 청소하는 GC 관련 쓰레드가 여기에 속한다. 그런데 왜 Thread를 만들었을까? 프로세스가 하나..
자바의 입출력 스트림은 데코레이터 패턴을 사용한다. 데코레이터 패턴이란? 실제 입출력기능을 가진 객체(컴포넌트)와 그 외 다양한 기능을 제공하는 데코레이터(보조스트림)을 사용하여 다양한 입출력 기능을 구현한다. 상속보다 유연한 확장성을 가진다. 지속적인 서비스의 증가와 제거가 용이하다. ConcreteComponent 실질적으로 기반이 되는 클래스(입 출력 관련) Decorator 기능을 제공해주는 클래스 위 2개의 클래스는 같은 클래스로부터 상속을 받는다. Decorator는 혼자 돌아갈 수가 없다. 그래서 항상 다른 Component를 가지고 있다. 이 Component는 또다른 Decorator일 수도 있고, 기반 클래스 일수도 있다. Decorator의 종류는 여러가지 일 수도 있다. 그래서 이 ..
static 관련해서 응용할 수 있는 singleton pattern은 디자인 패턴의 일종이다. 디자인 패턴... 우리가 시스템을 만들때, 객체 지향 프로그램으로 설계할 때, 어떻게 하면 효율적이고 유지보수 하기 좋게 만들 수 있는가를 일종의 패턴으로 만들어 놓은 23가지 패턴 그 중 싱글톤 패턴이란? (아주 기본적인 틀만 설명) 회사가믄 프로그램에서 많이 쓰는데, 새로 만들 때도 있고, 이미 구현된 것을 가져다 쓰는 경우도 많다. 그래서 가져다 쓸 때, new해서 갖다쓰지 않고 인스턴스로 가져다 쓴다. 그럴때 이게 싱글톤 패턴이구나? 라고 이해하면 좋겠죠? 단 하나만 존재하는 인스턴스 - sigleton pattern 생성자는 private으로, static으로 유일한 객체 생성 외부에서 유일한 객체를..