전체 글

전체 글

    생성자 주입 방식을 써야하는 이유

    스프링의 다양한 의존성 주입 방식 스프링에는 다양한 DI(Dependency Injection) 의존성 주입 방식이 있습니다. 종류는 다음과 같습니다. - 수정자 주입(Setter 주입) - 필드 주입 - 생성자 주입 여러 방법 중 스프링에서는 생성자 주입 방식을 권장합니다. 왜 DI를 할 때 생성자 주입을 해야 될까요? 각각의 의존관계 주입 방식의 특징과 차이에 대해서 자세히 살펴보도록 하겠습니다. 수정자 주입(Setter 주입 방식) @Getter @Controller public class MyController { private ServiceA service; @Autowired public void setService(ServiceA serviceA) { this.service = service..

    연속 메모리 할당의 문제점은?

    연속 메모리 할당이란? 연속 메모리 할당이란 아래 그림과 같이 프로세스에 연속적인 메모리 공간을 할당하는 방식을 뜻합니다. 연속 메모리 할당 방식 프로세스는 메모리의 빈 공간에 할당되어야 합니다. 연속 메모리 할당 방식에는 빈 공간에 메모리를 할당하는 방식에 따라 3가지로 구분 됩니다. 최초 적합 최초 적합은 운영체제가 메모리 내의 빈 공간을 순서대로 검색하다 적재할 수 있는 공간에 프로세스를 배치하는 방식을 뜻합니다. 위 그림과 같은 경우 빈 공간인 A - B - C 순서대로 탐색을 진행하게 되는 것이죠. 실제로는 A에 적재할 수 있기 때문에 B와 C까지 탐색을 하지 않고 빈 공간 A에 프로세스를 적재하게 됩니다. 즉, 최초 적합 방식은 프로세스가 적재될 수 있는 빈 공간을 발견하는 즉시 메모리를 할당..

    RAID란?

    RAID RAID는 Redundant Array of Independent Disk (독립된 디스크의 복수 배열) 혹은 Redundant Array of Inexpensive Disk(저렴한 디스크의 복수 배열) 의 약자를 뜻합니다. 간단히 말하면 RAID는 여러개의 디스크를 묶어 하나의 디스크 처럼 사용하는 기술을 말합니다. 하나의 큰 디스크를 사용하면 될텐데, 왜 굳이 여러 개의 디스크를 묶어 하나의 디스크 처럼 사용하는 것일까요? 우리가 사용하고 있는 하드디스크, 플래시메모리 같은 저장장치들은 소모품에 속합니다. 5 ~ 10년 정도 많이 쓰다보면, 더 이상 데이터를 읽고 쓸 수 없는 불량섹터가 발생하게 됩니다. 이러한 경우 데이터가 손상되는 것도 문제2지만, 데이터의 무결성을 보장할 수 없기 때문에..

    Inner class에 Static을 붙이는 이유

    Inner Class에 Static을 붙여줘야 하는 이유는? Inner Class를 생성할 때 흔히 Static을 붙여주는 이유는 무엇일까요? 예를 들어 다음과 같은 예시가 있다고 가정해봅시다. public class OuterClass { int field = 10; class InnerClass { int inner_field = 20; } } 해당 클래스를 컴파일 후에 만들어지는 .class 파일을 살펴보면 다음과 같습니다. 해당 파일을 인텔리제이로 다시 열어서 디컴파일을 해보면 class OuterClass$InnerClass { int inner_field; OuterClass$InnerClass(OuterClass this$0) { this.this$0 = this$0; this.inner_f..