개요ArrayList arrayList = new ArrayList();HashSet hashSet = new HashSet();HashMap hashMap = new HashMap(); Java에서 컬렉션을 사용할 때 위와 같이 구현체로 직접 선언하는 경우가 있습니다. 하지만 실제로는 인터페이스를 사용해 선언하는 것이 더 좋은 방법입니다. List list = new ArrayList();Set set = new HashSet();Map map = new HashMap(); 본 글에서는 이러한 차이점과 인터페이스를 사용해 선언해야 하는 이유에 대해 정리하고자 합니다. 주요 컬렉션 인터페이스와 구현체1. List 인터페이스List list = new ArrayList(); // 인터페이스로 선언List..
전체 글
좋은 성과를 얻으려면 한 걸음 한 걸음이 힘차고 충실하지 않으면 안 된다. -단테문제설명입력 & 출력나의 풀이문제 접근 방법"백준 - 치킨 배달" 문제는 NxN 크기의 도시를 배경으로, 다음 조건을 만족하며 도시의 최소 치킨 거리를 구하는 문제입니다.도시의 각 칸은 비어 있는 곳(0), 집(1), 치킨집(2) 중 하나로 구성됩니다.치킨 거리는 한 집과 가장 가까운 치킨집 사이의 거리를 의미합니다.도시의 치킨 거리는 모든 집의 치킨 거리의 합입니다.도시에는 여러 치킨집이 있지만, 최대 M개의 치킨집만 유지하고 나머지는 폐업해야 합니다.이 조건에서, 도시의 치킨 거리가 최소가 되도록 치킨집을 선택하는 방법을 구하는 것이 목표입니다. 두 가지의 예제를 가지고 접근 방법을 살펴보겠습니다.예제 입력 15 30 0 1 0 00 0 2 0 10 1 2 0 00 0 1 0 00 0 0 0 2 위와..
개요Docker 컨테이너를 활용할 때 개발 환경과 프로덕션 환경에서는 요구사항이 다르기 때문에, 설정 방식 또한 달라집니다. 본 글에서는 개발 환경에서는 바인드 마운트를 활용하고, 프로덕션 환경에서는 COPY 명령어를 사용하는 이유와 차이점에 대해서 정리하고자 합니다. 개발 환경: 바인드 마운트로 실시간 코드 반영개발 환경에서는 애플리케이션 코드를 지속적으로 수정하고 테스트하는 것이 중요합니다. 이 경우, 바인드 마운트(bind mount)를 사용하면 다음과 같은 이점이 있습니다.바인드 마운트란❓ 바인드 마운트는 호스트 머신의 디렉토리를 컨테이너에 직접 연결하여, 컨테이너 내부에서도 호스트 디렉토리의 파일을 사용할 수 있도록 합니다.개발 중에 파일을 수정하면, 해당 변경사항이 컨테이너 내부에도 실시간으..
개요도커(Docker)와 데이터베이스(DB)는 서로 다른 철학을 가진 기술입니다. 도커는 "불변성"과 "일회성"을 강조하며, 컨테이너를 언제든 생성하고 파괴할 수 있는 유연한 환경을 지향합니다. 반면 데이터베이스는 "영속성"과 "일관성"을 최우선으로 하며, 데이터의 안전한 보관과 신뢰성 있는 처리를 중요시합니다. 이러한 근본적인 철학의 차이는 "데이터베이스를 도커로 운영해도 될까?" 라는 고민으로 부터 시작하여 본 글을 작성하게 되었습니다. 본 글에서는 각 기술의 특성을 살펴보고, 상황별로 적절한 선택이 무엇인지 알아보겠습니다. 도커(Docker)의 철학과 특성도커의 핵심 철학은 "불변성(Immutability)"과 "일회성(Disposability)"에 있습니다.1. 컨테이너의 불변성컨테이너는 언제든..