MilkTea's DevLog☕

리팩토링을 하는 이유는 무엇일까?

요약 리팩토링은 왜 수행하나요? 리팩토링은 프로젝트에서 존재하는 코드 스멜을 식별하고 이를 개선하여 유지보수성을 향상시키는 작업입니다. 유지보수성을 향상함으로써 제품이나 시스템을 개선하거나 환경, 요구사항이 변화할 때 더 쉽게 대응할 수 있도록 만듭니다. 스멜은 무엇인가요? 스멜은 마틴 파울러의 “Refactoring” 저서에서 소...

Preview Image

Spring - 위상정렬로 생성자 주입을 지원하는 빈 생성 구현하기

서론 Mini-SpringBoot 프로젝트에서 빈 생성을 구현할 때 생성자 주입을 함께 구현해야 하는 상황이였다. 필드 주입은 모든 빈을 생성한 후 의존성을 연결해도 되지만 생성자 주입은 무조건 생성 시 의존하는 빈들을 같이 전달해야 한다. 이를 위해서는 두 가지 제약사항을 만족해야 한다. 빈을 생성할 때 의존하는 빈들은 이미 생성된 빈이여야 ...

Preview Image

Spring의 등장 배경으로 Spring 알아보기

요약 Spring은 엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해주는 오픈소스 경량급 애플리케이션 프레임워크이다. 기존의 JAVA EE의 EJB가 미리 정의된 기술을 구현하는 방식에서 어노테이션을 이용한 방식으로 전환함으로써 POJO의 장점을 최대한 활용할 수 있도록 하였다. 또한 DI, IoC를 도입하여 개발자는 객체 관리를 Sp...

Preview Image

운영체제 - IPC(InterProcess Communication)

이전 프로세스 포스트들과 이어지는 포스트입니다. 이전 포스트는 여기와 여기를 참고하세요. 요약 IPC는 무엇인가요? IPC는 협력 프로세스 사이에서 다른 프로세스와 통신을 할 수 있게 하는 운영체제 모델입니다. 협력 프로세스는 정보 공유와 계산 속도 향상 등의 이유로 다른 프로세스와 통신을 해야 합니다. 하지만 프로세스는 기본적으로 ...

알고리즘(Java) - 프림 알고리즘을 알아보자.

요약 프림 알고리즘은 그리디 알고리즘을 기본으로 하여 최소 신장 트리를 찾을 수 있는 알고리즘이다. 이 때까지 선택된 정점과 연결된 모든 간선들 중 가장 가중치가 작은 간선을 탐욕적으로 선택한다. 이 후 가장 가중치가 작은 간선의 다른 한 정점을 선택한 후 다시 이전의 과정을 반복한다. 두 정점이 모두 선택된 간선은 포함될 수 없다는 점을 기억하면 어...

Preview Image

운영체제 - 프로세스(Process)의 연산

요약 멀티 프로세스는 어떤 장점을 가지나요? 멀티 프로세스 환경은 여러 프로세스를 병렬로 수행할 수 있습니다. 자식 프로세스를 생성하여 부모 프로세스와 또 다른 프로세스를 생성합니다. 이 과정에서 부모 프로세스와 자식 프로세스는 분리된 자원을 사용하므로 독립성을 유지하고 모듈화할 수 있습니다. 하지만 프로세스 사이 통신 비용과 Context...

알고리즘(Java) - 위상 정렬을 알아보자.

요약 위상 정렬에서 핵심은 진입차수이다. 진입차수가 0인 노드를 큐에 넣고 방문 처리한다. 큐에서 하나를 빼고 이와 연결된 주변 노드의 진입 차수를 1 감소시킨다. 다시 1, 2번 과정을 반복한다. 이러한 위상 정렬로 그래프에 사이클이 포함되어 있는지도 확인할 수 있다. 위상 정렬의 시간 복잡도는 O(V + E)이다. 서론 백준 1...

Preview Image

운영체제 - 운영체제란 무엇일까?

요약 운영체제는 무엇인가요? 유저와 컴퓨터를 중개하는 프로그램으로 사용자는 운영체제로 컴퓨터를 편리하게, 효율적으로 사용할 수 있습니다. 유저와 하드웨어를 중개하기 위해 커널이라는 핵심 요소를 제공하고 있습니다. 그 외 사용자 편의를 위해 시스템 프로그램, 응용 프로그램, 미들웨어를 같이 제공합니다. 서론 운영체제가 어떤 종류가 있는지 대부...

© . Some rights reserved.

Using the Chirpy theme for Jekyll.