하나의 큰 application을 여러 개의 작은 application으로 나눠서 변경과 조합이 가능하게 만든 구조반대의 말로는 Monolithic Architecture가 있다.배포 관점에서 서비스별 개별 배포 가능 (하나 배포할 때 모든 서비스 중단 없음)요구사항을
java 실행 환경자바 프로그램을 개발하는 것이 아니라, 실행을 원하면 설치compiler, debugger 없음Java Application을 개발하는 키트JRE, Compiler(javac), javadoc, jar등 개발에 유용한 도구가 포함되어있음.
Java 8 PermGen -> MetaSpace 업로드중.. Perm Generataion은 Java 8 이전에 Class 의 Meta 정보나 Method 의 Meta 정보, Static 변수와 상수 정보들이 저장되는 공간, 흔히 메타 데이터의 저장 영역을 말했
Java 11 String Method 추가 isBlank() : 문자열이 비어있거나, 공백만 포함일 때 true 값 return strip() : 앞 뒤 공백 제거 stripLeading() : 문자열 앞의 공백 제거 stripTrailing() : 문자열 뒤의 공
기존 String 을 여러 줄 작성할 때 사용가능한 기능가독성 있는 코드를 지원한다.무분별한 상속을 막기 위해 등장지정한 클래스 외 상속을 허용하지 않는다.immutable 객체를 생성하는 새로운 유형의 클래스로 기존 toString, equals, hashCode m
메모리 상에 데이터가 연속적으로 저장순차적으로 저장된 데이터를 참조할 때는 인덱스가 활용된다.고정된 크기를 갖는다. (데이터 개수가 정해져있다.)논리적 저장 순서와 물리적 저장 순서가 동일하다.cache hit rate( cpu가 참조하고자 하는 메모리가 캐시에 존재하
List + Array의 자료 구조크기가 가변적인 배열이라고 생각하는 것이 편하다.실제 내부도 배열로 구현데이터 접근 및 변경시 성능이 좋음 (o(1))데이터를 추가하거나 삭제하는 경우 시간 복잡도는 o(N)그 이유는 배열의 시간복잡도와 동일 (데이터를 밀거나 땡겨야하
출처 : https://data-flair.training/blogs/java-exception/Throwable 클래스는 예외처리를 할 수 있는 최상위 클래스이다. Error는 컴퓨터 하드웨어의 동작의 오작동 또는 고장으로 인해 응용프로그램 실행 오류가 발생
프로세스 수행 순서 보장에 대한 메커니즘을 말한다.작업을 어떤 흐름으로 처리할지에 대한 관점이라고 생각하면 편할 듯 하다.동기 처리 방식은 요청된 작업에 대해서 완료 여부를 따져서 순차적으로 실행하는 것을 말한다.아이스크림을 주문하면 다음 사람은 앞선 사람의 아이스크림
객체 내부에서 직접 필요한 클래스의 객체를 생성하지 않고 다른 객체에 위임함으로써 객체에 대한 제어권, 즉 프로그램의 흐름을 제 3자에게 넘기는 것을 IoC 모델이라고 한다.이러한 모델을 통해서 객체 지향 프로그램에서는 객체를 캡슐화하고, 높은 응집도와 낮은 결합도를
Spring framework를 사용하면 서비스 추상화를 통해 특정환경이나 서버, 기술에 종속되지 않으며 유연한 애플리케이션을 개발할 수 있다.대표적인 예시로 Servlet 기반의 어플리케이션을 만들고 있음에도 불고하고 Servlet 코드를 볼 수 없다.단순하게 @Co
AOP (Aspect Oriented Programming) 공통 관심 기능을 분리해서 반복되는 부분을 추출, 핵심 로직에 영향을 미치지 않고 중복을 줄이는 방법이다. 기존 OOP 에서 공통되는 기능을 여러 모듈에 적용해서 발생하는 중복된 코드 양산의 한계를 극복하기
mySQL을 써봤다면 위의 단어들을 들어봤을 것이다.둘 다 mySQL의 Storage Engine이며, 아마 가장 흔하게 사용되는 것들일 것이다. 두 디비의 특징은 다음과 같다. MyISAM 스토리지 엔진은 다음과 같은 특징을 갖는다.mySql의 5.5 버전 이전에는
보통 우리가 new 명령어로 객체를 생성하면 계속 다른 객체가 생성되지만 싱글턴 패턴을 적용한 클래스는 생성자가 여러번 호출되더라도 정작 생성되는 객체는 단 하나이고, 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다.이러한 싱글턴 패턴은 불필요
팩토리 메서드 패턴은 객체 생성을 팩토리 클래스로 캡슐화 처리해서 대신 생성하게 하는 생성 디자인 패턴이다.클라이언트가 직접 new 연산자를 통해 제품 객체를 생성하는게 아니라, 하위 클래스에서 어떤 객체를 생성할지 결정하도록 위임한다고 생각하면 된다.즉, 오버라이드된
프록시는 '대리자'라는 의미로 실제 대상인 것 처럼 client의 요청을 대신 받아주는 것을 말한다.이를 통해서 client는 구체 클래스에 대해 알 필요가 없어진다.프록시의 조건은 client가 타켓인지 프록시인지 몰라야 한다.즉, 타겟과 프록시는 같은 인터페이스를
썬 마이크로 시스템즈에서 지원하는 자바 표준 APIJDBC 구현체는 다양한 JDBC Driver 구현체를 통해 동일한 인터페이스로 구현한다.Connection과 Statement를 가져오는 등, 반복적인 코드가 많아지고 복잡해진다. (그렇기에 Spring에서는 JDBC
ACID는 DB내에서 일어나는 하나의 트랜잭션의 안전성을 보장하기 위해서 필요한 성질이라고 한다.트랜잭션은 여러개의 작업을 하나로 묶은 것을 말한다.즉, 데이터베이스의 상태를 변환시키는 기능을 수행하기 위한 하나 이상의 쿼리를 여러개로 모아놓은 것이라고 할 수 있다.그
lock 은 DB에서 사용하는 개념으로 트랜잭션 처리의 순차성을 보장하기 위한 방법 중 하나이다.이러한 DB의 특징을 Atomic하다고 할 수 있다. (앞선 글에서 봤던 원자성)현재 데이터를 사용하는 스레드를 제외하고, 나머지 스레드의 접근을 막아 순차적으로 데이터에
Runnable과 Callable 모두 멀티스레드에서 작업을 수행할 수 있게 설계되어있습니다.Runnable 작업들은 Thread 클래스 또는 ExecutorService 에서 실행할 수 있으나, Callable은 오직 ExecutorService 에서 만 실행할 수