본문 바로가기

분류 전체보기179

[Docker] docker image & container 스프링 프로젝트를 Docker로 다루고 관리하기 위해 필요한 이미지 생성, 빌드, Docker Hub 활용, Dockerfile 최적화와 Docker 컨테이너 관리 방법에 대해 설명하겠습니다. 3. Docker 이미지 다루기 Docker 이미지 생성과 빌드 스프링 프로젝트의 Docker 이미지를 생성하려면 Dockerfile을 사용하여 애플리케이션을 빌드하고 실행할 환경을 정의합니다.  1. Docker 이미지 생성: • Docker 이미지는 프로젝트 디렉터리에 작성된 Dockerfile을 바탕으로 생성됩니다. • 예를 들어, 스프링 애플리케이션을 빌드한 .jar 파일을 Docker 이미지로 포함하려면, Dockerfile에 .jar 파일을 복사하고 Java 명령어로 실행하도록 설정해야 합니다. 2. 이.. 2024. 10. 28.
[Docker] CI/CD CI/CD(Continuous Integration/Continuous Delivery 또는 Continuous Deployment)는 소프트웨어 개발에서 코드의 통합과 배포를 자동화하여 개발 속도와 품질을 높이는 방법입니다. CI/CD 파이프라인은 소스 코드의 변경 사항을 자동으로 빌드, 테스트, 배포하여, 코드가 안정적으로 유지되면서도 빠르게 릴리스될 수 있도록 돕습니다. CI/CD의 주요 구성 요소  1. CI (Continuous Integration, 지속적 통합) • 목적: 개발자가 코드 변경 사항을 자주 통합하여 코드 품질을 검증하는 단계입니다. • 과정: 개발자가 코드를 변경하여 Git에 푸시하면 CI 도구가 이를 감지하고 자동으로 빌드와 테스트를 수행합니다. 이를 통해 코드에 문제가 있는.. 2024. 10. 28.
[Docker] docker의 기초 Docker는 애플리케이션을 개발, 배포, 실행하는 방식을 간편하게 만들고, 다양한 환경에서 동일한 애플리케이션을 실행할 수 있게 해주는 컨테이너 기반 플랫폼입니다. 이를 통해, 개발 환경과 배포 환경의 차이에서 발생하는 문제를 해결하고 애플리케이션이 어디서든 일관되게 동작하도록 보장할 수 있습니다. 아래는 Docker의 기본 개념과 필요성에 대해 자세히 설명합니다. Docker가 왜 쓰이는지 Docker는 애플리케이션의 일관성, 이식성, 효율성을 높이기 위해 사용됩니다. 여러 환경에서 동일하게 애플리케이션이 작동해야 하는데, 기존에는 개발 환경과 실제 배포 환경이 달라서 발생하는 문제가 잦았습니다. Docker는 애플리케이션과 필요한 모든 설정, 라이브러리를 컨테이너에 묶어, 개발, 테스트, 배포 환경.. 2024. 10. 28.
[Spring] CustomError 작성법 스프링에서 커스텀 에러 컨트롤러를 작성하여 에러 처리를 커스터마이징하는 방법은, 스프링의 기본 에러 처리 동작을 대체하거나 확장할 수 있는 중요한 기능입니다. 아래에서는 그 과정을 자세히 설명하고, 주요 개념 및 코드 예시를 제공합니다. 1. 기본 에러 처리 동작 스프링 부트는 기본적으로 에러가 발생하면 /error 엔드포인트로 리다이렉트하거나 포워딩합니다. 이때, BasicErrorController라는 클래스가 기본적으로 이 엔드포인트의 요청을 처리하며, 기본적인 에러 페이지(HTML 또는 JSON)를 제공하게 됩니다. 하지만, 우리는 이 기본 동작을 오버라이드하여 커스텀 에러 페이지를 보여주거나, 더 복잡한 에러 처리 로직을 작성할 수 있습니다. 2. 커스텀 에러 컨트롤러 작성 방법 2.1 Erro.. 2024. 10. 20.
[Spring] 주요 Annotation 스프링 프레임워크에서는 다양한 어노테이션을 사용하여 애플리케이션의 구성 요소를 정의하고, 빈(Bean) 등록, 트랜잭션 관리, 요청 처리 등을 수행합니다. 주요 어노테이션들을 각 역할별로 나누어 설명하겠습니다. 1. 컴포넌트 스캔과 빈 등록 관련 어노테이션 스프링은 어노테이션을 통해 자동으로 빈(Bean)을 등록할 수 있습니다. 주로 계층을 명확히 구분하는 데 사용됩니다. 1.1. @Component  • 스프링에서 가장 기본적인 어노테이션으로, 스프링 컨테이너에 빈으로 등록됩니다. • 모든 일반적인 클래스에 사용할 수 있으며, 구체적인 역할보다는 **컴포넌트(구성 요소)**로서 등록될 클래스를 나타냅니다.@Componentpublic class MyComponent { // 일반적인 스프링 빈으로.. 2024. 10. 19.
[AWS] SSH 호스트 키 변경으로 인한 경고 “WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!” 오류는 SSH 클라이언트가 연결하려는 서버의 호스트 키가 이전에 저장된 호스트 키와 달라졌을 때 발생합니다. 이는 보안 경고로, Man-in-the-Middle (MITM) 공격을 방지하기 위해 SSH 클라이언트가 서버의 호스트 키를 ~/.ssh/known_hosts 파일에 저장하고, 다음 연결 시 이를 비교해 확인합니다. 이 경고가 발생하는 주요 이유는 다음과 같습니다:  • 서버가 변경되었거나, 재설정되면서 호스트 키가 바뀐 경우 (예: EC2 인스턴스를 새로 만들거나 재설정). • SSH 터널링을 설정하면서 IP 주소나 포트가 바뀐 경우. • 아주 드물게, MITM 공격 가능성을 경고하는 상황일 수도 있습니다.. 2024. 10. 16.