목록전체 글 (212)
개발자 끄적끄적
- Spring Boot Maven Plugin은 다음과 같은 Spring Boot 지원을 제공한다 1. 프로젝트를 실행가능한 jar 파일이나 war 파일로 패키지(package) 2. Spring Boot 애플리케이션 실행 3. Build 정보 생성 4. 통합 테스트를 하기 전에 Spring Boot 애플리케이션을 시작 - Spring Boot Plugin은 다음과 같은 goal들을 가지고 있다 - spring-boot:build-image : OCI imae로 패키지 - spring-boot:build-info : build-info.properties 파일 생성 - spring-boot:repackage : Repackage, Jar 나 War 파일로 재패키지 - sp..
- 블랙 박스 테스트케이스 설계 - 프로그램 코드의 정보를 이용하지 않고 또는 이용할 수 없을 때 테스트 케이스를 설계하는 방법 - 코드 정보 이외의 명세 정보나 시스템 인터페이스 정보 등을 이용하여 테스트 케이스를 설계하는 방법 - 기능 누락 오류 검출 - 테스트의 기본 - 프로그램의 입력/출력 영역을 몇 개의 동등 클래스(equivalent class)라 불리는 영역으로 분할하여 각 클래스로부터 대표 값을 선택하여 테스트 케이스로 이용 - 동등 클래스는 시스템에 의해 동일하게 처리되고 같은 출려고가 결과를 생산하는 입력 조건 또는 입력 데이터 값들의 모임 - 각 동등 클래스로부터 선정된 입력 값에 의하여 오류가 발견되면 클래스에 속한 다른 값들에 의해서도 동일한 오류가 발견 - 만약 각 동등..
1. Association(연관) - 클래스 간의참조 관계 - A->B는 A가 B를 참조한다는 의미 - ex) class Engine { }; class Car { public : void setEngine(Engine *newEngine { engine = newEngine; } private : Engine *engine; }; - Car class는 Engine 클래스를 참조하고 있지만 두 클래스 사이에는 연관 관계가 있지만 포함관계는 아니다2. Inheritance(상속) - ex) class Vehicle{ public: void drive() { ... } }; class Car : public Vehicle{ public: void honk() { ... } }; - Car 클래스는 Ve..
- 한 프로세스의 논리 주소 공간을 동떨어진 공간들에 배정할 수 있도록 지원 - 연속 할당에서처럼 연속적인 메모리 공간을 찾거나 만들 필요 없음 - 외부 단편화 문제를 해결할 수 있는 메모리 관리 기술 - 동적 할당의 한 형태 - 모든 논리 주소는 페이징 하드웨어에 의해 물리 주소로 매핑 - 대부분의 컴퓨터 시스템에서 채택 - (Page) Frame - 물리 메모리를 고정된 크기의 블록으로 분할 - Page - 논리 주소 공간을 하나의 frame과 같은 크기의 블록으로 분할 - OS는 모든 free frame들을 관리 - Frame table : 각 frame의 할당 정보 기록 - n page 크기의 프로그램 실행 위해서는 n개의 free frame을 차고, 그 곳에 적재 - 논리 주소를 물리 주소로 변..
- 스프링으로 애플레케이션을 만들 때에 필요한 '설정'을 '간편하게' 처리해주는 별도의 프레임워크 - '자체적인 웹 서버'를 내장하고 있어(=No need to install a separately) 빠르고 간편하게 배포 진행 가능 - 독립적으로 실행 가능한 Jar 파일로 프로젝트를 빌드할 수 있어(Perfom auto-configuration based on props files and JAR classpath), 클라우드 서비스 및 도커와 같은 가상화 환경에 빠르게 배포 가능 - ex) 예를 들어 쿠키나 세션 처리, 로그인/로그아웃 처리, 권한 처리, 데이터베이스 처리 등 웹 프로그램을 완성하기 위해 만들어야 할 기능이 정말 산더미처럼 많다. 하지만 웹 프레임워크를 사용하면 이런 기능들을 여러분이 일..
- 소프트웨어가 문제가 생기면? - http://cafe.naver.com/softwarequality/480 - 이스라엘의 텔아비브 대학(Tel Aviv)의 웹 사이트 - 어떻게 해야 하는가? - 소프트웨어가 오작동이 발생할 위험(risk)를 줄여야 한다 - 위험: (발생확률) X (발생했을 때 끼치는 손실) - 소프트웨어 테스팅은 위험에서 발생 확률을 줄이는 작업 - 테스팅 목적 - 결함 발견 - 품질과 잔존 위험(residual risk)에 대한 정보 제공 - 정적 테스팅 - 프로그램 실행을 하지않고 프로그램 코드나 산출물(문서) 결함을 찾는 활동 - IEEE 1024 (리뷰) - 관리 리뷰 (Management Review) - 기술 리뷰 (Technical Review) - 인스펙션 (Inspe..
- 주기억장치(Main memory) - 저장 공간(words or bytes)들의 배열로 구성 -> RAM - CPU 이용률(utilization)을 높이기 위해서는 multi-tasking 필요 - 주기억장치에서 다수의 프로그램을 탑재하고 각각을 번갈아 가며 수행 - 주기억장치를 관리하는 여러 기법 소개 - Paging, Segmentation, ... -> 대부분 하드웨어 지원이 필요 - CPU 메모리 접근 시간을 줄이기 위해 - '가격대비 성능'을 위해 계층적으로 구성 - 정의 - 프로그램이 실행되는 동안 CPU가 액세스 하는 기억장치는 몇몇 특정 영역에 '집중되는' 경향이 있다 - =참조의 지역성(Locality of Reference) - 근거 - 반복루프와 서브루틴 - 표나 데이터 배열에 대..
- Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다 - @Controller : 전통적은 Spring MVC 컨트롤러 - 'View'를 반환하기 위해 사용 - @RestController d: HTTP ResponseBody가 생성 - Spring MVC의 컨트롤러를 사용하면서 'Data를 반환해야 하는 경우'가 생기는데 컨트롤러에서는 데이터를 반환하기위해 @ResponseBody 어노테이션을 활용한다 이를 통해서 Controller로 JSON 형태로 데이터를 변환 할 수 있다 즉, JSON의 형태로 객체 데이터를 반환하는 것이다 - 클라이언트의 요청(url)에 맞는 클래스나 메서드를 연결시켜주는 어노테이션이..
- 상위수준에서 소프트웨어를 설계하는 기본 틀을 제공 - 아키텍처를 결정할 때 기능보다도 '품질 속성'이 보다 많은 비중을 차지한다 같은 기능을 구현한 두 개의 구조가 다를 수 있는 것은 달성하고자 하는 품질 속성이 다르기 때문이다 - 모든 품질 속성을 만족시키는 아키텍처를 구성하기는 사실상 어렵기 때문에 품질 속성에 우선순위를 두어 아키텍처를 결정한다 - 보안성, 성능과 같은 품질 솏성은 아키텍처 결정에 많은 영향을 준다 - 가장 일반적으로 많이 사용되는 아키텍처 시스템을 여러 계층으로 나누어 설계하여 구현한다 - 계층 아키텍스에서 보통 계층 N은 N+1 계층의 서비스를 제공하는 역할을 수행한다 즉, 계층(Layer)은 보다 상위에 위치한 계층들에게는 서비스를 제공하고, 하위 계층들로부터..
- 교착상태 - 자원을 자유롭게 할당한 결과 자원부족 상태 - 기아상태(Starvation) - 교착상태를 예방하기 위해 무한히 기다림 - 작업이 결코 사용할 수 없고 계속 기다려야 하는 자원을 할당할 때 발생하는 결과 - 교착상태나 기아회피 필요를 단순하게 표현하는 고전적인 동기 문제 - 철학자 5명은 대부분의 시간을 생각하고 먹는데 소비 - 한 철학자가 생각 중일 때에는 다른 철학자가 간섭하지 않음 - 철학자는 한 번에 하나의 젓가락만 들 수 있음 - 왼쪽 먼저, 오른쪽 나중 - 이웃 철학자가 들고 있는 것은 취할 수 없음 - 식사를 마치면 모두 내려놓고 다시 생각함 - 공유 데이터: - Bowl of rice(data set) - S..