TIL15 도커 도커컨테이너 기반의 오픈소스 가상화 플랫폼. 리눅스 컨테이너에 리눅스 어플리케이션을 프로세스 격리기술을 사용하여 더 쉽게 컨테이너로 실행하고 관리할 수 있게 해주는 오픈소스 프로젝트 이다.더보기컨테이너 : 소프트웨어와 그 dependency를 하나로 패키징하는 것으로, 패키징한 소프트웨어는 어느 환경에서도 동일하게 실행할 수 있다.가상머신 vs 도커가상머신가상머신은 Hypervisor 를 통해 여러개의 운영체제를 생성하고 관리한다. (Guest OS)시스템 자원을 가상화하고 독립된 공간을 생성하는 작업은 Hypervisor 를 거치므로 성능 손실이 큼가상머신은 Guest OS 를 사용하기 위한 라이브러리, 커널 등을 포함하므로 배포할 때 용량이 큼도커 컨테이너가상화된 공간을 생성할 때 리눅스 자체 기능.. 2023. 12. 13. Patch & Put 차이점 Patch & PutSpring Boot의 CRUD API update부분에서 PATCH는 일부분만 변경할 때, PUT은 전체 변경할 때 사용하는 것으로 알고 있었는데, 더 정확한 차이점이 궁금해졌다. @PutMapping 자원의 전체 수정, 자원 내 모든 필드를 전달해야 함, 일부만 전달할 경우 오류 요청 경로에 자원이 존재하는 경우 해당 자원을 payload 정보와 교체하는 메서드이다. 즉, PUT 메서드를 사용할 때 전송하는 payload만으로 자원의 전체 상태를 나타낼 수 있어야 한다. 새로운 자원을 생성해야 하는 경우 완전한 상태의 자원을 저장해야 하고 새로운 자원으로 대체하는 경우 대체하는 자원이 완전한 상태를 가지고 있어야 하기 때문이다.만약 PUT의 정의대로 전달 받은 payload가 .. 2023. 12. 7. 통합 테스트, 단위 테스트 Q1) 통합 테스트와 단위 테스트의 차이점 단위 테스트는 전체 코드 중 작은 부분을 테스트하는 것으로 다른 컴포넌트들과 독립적인 반면, 통합 테스트는 단위 테스트와 달리 개발자가 변경할 수 없는 부분(ex. 외부 라이브러리)까지 묶어 검증할 때 사용한다. 단위 테스트 : 매우 간단하고 명확해야 하며 기본적으로 테스트를 위한 입력 값을 주어 그에 대한 함수의 출력 값이 정확 한지를 판단한다. 단일 서버 / 단일 프로세스 / 단일 쓰레드에서 돌아가는 테스트로, Disk I/O가 있어서는 안되고 Blocking call이 있어서도 안된다.통합 테스트 : 단일 서버 / 멀티 프로세스 / 멀티 쓰레드에서 돌아가는 테스트로, H2 같은 테스트용 DB를 사용할 수 있게 된다. DB에 접근하거나 전체 코드와 다양한.. 2023. 12. 4. 메뉴판 프로그램 ※ 전체 코드 : 깃허브 프로젝트 소개메뉴판을 보고 주문할 수 있는 Java 프로그램화면은 System.out.println() 메소드를 사용해서 심플하게 출력 메뉴 클래스와 주문 클래스를 사용하여 Java 의 핵심 기능인 상속을 최대한 사용 요구사항 및 출력 예시Java 클래스 설계 시 필수 요구사항메뉴 클래스는 이름, 설명 필드를 가짐상품 클래스는 이름, 가격, 설명 필드를 가짐상품 클래스의 이름, 설명 필드는 메뉴 클래스를 상속받아 사용하는 구조주문 클래스에서 상품 객체를 담을 수 있도록 함1. 메인 메뉴판 화면메인 메뉴판이 출력되며 메뉴판에는 상품 메뉴가 출력상품 메뉴는 간단한 설명과 함께 출력 되며 최소 3개 이상 출력상품 메뉴 아래에는 Order(주문)와 Cancel(주문 취소) 옵션을 출력.. 2023. 10. 23. 이전 1 2 3 4 다음