자바 IO 자바 애플리케이션의 입•출력 작업을 의미한다. java.io 패키지의 클래스를 사용하여 작업할 수 있다. java.io 패키지는 크게 바이트 스트림 클래스와 문자 스트림 클래스 로 나뉜다. 네이밍에 따른 특성 Stream 으로 끝나는 클래스 바이트 단위 IO Reader 로 끝나는 클래스 문자 단위 Input 클래스 Writer 로 끝나는 클래스 문자 단위로 출력하는 클래스 File 로 시작하는 경우 파일을 입출력 하는 클래스 ByteArray 로 시작 바이트 배열을 읽거나 출력하는 클래스 CharArray로 시작 문자 배열을 읽거나 출력하는 클래스 Filter로 시작 상속을 통해 구현해 필터링 목적으로 커스텀해 사용 Data로 시작 다양한 데이터 형식을 입출력 하는데 사용. 특히 기본형(pr..
절차지향과 객체지향 프로그래밍 패러다임의 진화 과정에서 애플리케이션이 점점 커지면서 그 코드가 복잡하고 이해하기 힘들며 변경에 불리했던 절차지향 프로그래밍에 단점을 해결하고자 객체지향 프로그래밍이 탄생하였다. 두 패러다임은 다양한 차이가 존재 하지만 이 글은 캡슐화와 정보은닉 내용을 중심으로 살펴본다. 절차지향 프로그래밍 방식의 단점 1. 데이터와 그 프로세스가 흩어져 있어 데이터 구조 변경이 생겼을 때 흩어져 있는 프로세스들을 찾아 수정하기 힘들다. 2. 데이터를 다양한 프로세스들에서 쉽게 참조할 수 있다보니 데이터 구조 변경시 수정 해야할 프로세스가 너무 많았다는 단점있다. 위와 같은 절자치향 패러다임의 단점을 캡슐화와 정보은닉을 통해 해결하였다. 캡슐화 캡슐화는 데이터와 그 로직(method)를 클..
JVM( Java Virtual Machine ) 한 문장으로 설명하는 JVM OS에 종속적이지 않은 바이트 코드를 각 OS에 맞게 컴파일하고 실행하는 가상 머신 JVM은 클래스 파일(바이트 코드)을 메모리에 적재하고 실행(네이티브 코드로 컴파일)한다. 자바 언어에는 의존하지 않고 바이트 코드에 의존하는데 그렇기 때문에 바이트 코드로 컴파일될 수 있는 모든 언어(코틀린, 스칼라..)는 JVM위에서 실행될 수 있다. 자바 언어가 OS에 독립적일 수 있는 이유도 이 플랫폼에 종속적인 JVM이 중간단계로 있어 Java언어를 OS에서 분리하기 때문이다. JVM은 Java언어에 대해 알고 있지 않고, 바이트코드인 class 만 알고 있다. 바이트코드로 변환될 수 있는 모든 언어는 JVM위에서 실행 가능하다. j..
프로세스와 스레드 프로세스 ( Process ) 자신만의 메모리 영역을 가지고, 작업을 처리하는 동적인 프로그램. 스레드 ( Thread ) 프로세스 내부에서 작업을 나누어 처리하는 작은 프로세스로, 자신만의 메모리와 프로세스 내부의 스레드가 공유하는 공유 메모리를 가지고 작업을 처리한다. 동시성 문제 예상하는 순서및 결과 스레드 01 이 공유 데이터 a = 1 저장 스레드 01 가 pring(a) 를 통해 콘솔에 1를 출력함 스레드 02 이 공유 데이터 a = 2 저장 스레드 02 가 pring(a) 를 통해 콘솔에 2를 출력함 실제 동작될 수 있는 예 스레드 01 이 공유 데이터 a = 1 저장 스레드 02 이 공유 데이터 a = 2 저장 스레드 02 가 pring(a) 를 통해 콘솔에 2를 출력함 ..
- Total
- Today
- Yesterday
- 컴포짓 패턴
- 수직 분할
- 객체 풀
- 육각형 아키텍처
- 클린 아키텍처
- 장애 해결기
- 내부 단편화
- OOP
- java
- 뾰족함
- pool
- 동적 타입 언어
- 정적 타입 언어
- 동적 디스패치
- ATDD
- 메모리 파편화
- Clean Architecture
- Sticky Session
- 수평 분할
- 메모리 단편화
- RestAssured
- pass by value
- SpringBoot 2.2
- pass by reference
- Object Pool
- Memory Fragmentation
- multimap
- 세션 불일치
- 외부 단편화
- Session
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |