목록분류 전체보기 (212)
개발자 끄적끄적
- 객체지향 언어 - 객체지향 특성과 강점. - 객체 내부에 있는 함수를 멤버함수 혹은 메소드, 변수를 멤버 변수라고 한다 - 객체는 능동적 : 자신이 소유한 멤버 함수를 능동적으로 호출 - type : 객체의 클래스를 알려준다 - dir : 사용 가능한 멤버 함수를 알려준다 - numpy는 다차원 배열을 위한 사실상 표준 모듈 - 이런 이유로 OpenCV는 영상을 numpy.ndarray로 표현 - OpenCV가 다루는 영상은 numpy가 제공하는 다양한 기능(함수)을 사용할 수 있다 - 영상의 표현 - 화소(Pixel : Picture Element)의 위치(r,c) 또는 (y,x) - 화소값 조사 - ex) print(img[0,0,0], img[0,0,1], im..
1. MySQL JDBC.Driver=cohttp://m.mysql.jdbc.DriverJDBC.ConnectionURL=jdbc:mysql://URL주소:포트번호/DB명 JDBC.Username=계정명 JDBC.Password=비밀번호 2. Oracle JDBC.DriverClassName=oracle.jdbc.driver.OracleDriver JDBC.url=jdbc:oracle:thin@URL주소:1521:xe JDBC:Username=계정명 JDBC:password=비밀번호 3. MS-SQL JDBC.DriverClassName=cohttp://m.microsoft.sqlserver.jdbc.SQLServerDriverJDBC.url=jdbc:sqlserver://로컬명;DatabaseName=..
1. 깃허브 연결 해제 1) 연결되어 있는 원격 저장소 확인 : git remote -v 2) 원격 저장소 연결 해제 : git remote remove origin 3) 해제 상태 확인 : git remote -v 2. 깃허브 레포지토리 연결 1) 원격 저장소 연결 : git remote add origin http://gitub.com/계정명/레포지토리명.git 2) main(깃허브 기본 저장소 브랜치명) branch 생성 : git branch -M main 3) main branch origin에 push : git push -u origin main git pull git add . git commit -m "~~" git push
- 사용자나 응용 프로그램의 관점 - 정보를 저장하고 관리하는 논리적인 단위 - 저장 형식과 내용은 프로그래머에 의해 결정 - 컴퓨터 시스템의 관점 - 정보를 저장하는 최소 단위의 컨테이너 - 바이트의 나열 - OS에 의해 관리/조작됨 - 응용 프로그램은 파일 내 바이트 주소 사용 - 파일 내 바이트 위치(offset) - 운영체제는 논리 블록 주소(LBA, logical block addr.) 사용 - 저장 매체를 1차원의 연속된 데이터 블록들로 봄 - 저장 매체의 종류와 무관 - 파일을 블록 크기로 분할하고, 디스크에 분산 저장 - 디스크 장치는 디스크 물리 주소 사용 - 디스크의 섹터 위치를 나타내는 주소 - CHS 물리주소 = (실린더번호, 헤드번호, 섹터번호) - 디스크 장치의 펌웨어가 LBA를..
- 화이트박스 테스트 케이스 설계 - 프로그램 결함 식별을 목적으로 프로그램 코드로부터 생성 되는 여러 정보(제어흐름정보, 자료흐름정보, 조건등을 이용하여 테스트 케이스를 설계하는 방법 - Statement Testing(문장 테스팅) - Branch Testing(분기 테스팅) - Decision Testing(결정 테스팅) - Condition Testing(조건 테스팅) - Branch Condition Testing(분기 조건 테스팅) - Multiple Condition Testing(다중조건 테스팅) - MC/DC(Modified Condition/Decision Coverage) - 기본 경로 테스트(Basis path test) - 테스트하려는 프로그램 내의 모든 문장들을 '적어도 한번 이..
보호되어 있는 글입니다.
- 성능에 크게 영향을 미침 - 프레임 할당 알고리즘 - 프로세스 당 할당할 frame의 개수를 결정 - 프로세스의 작업 집합에 포함될 page들을 수용할만한 개수의 frame을 할당하여 페이지 부재를 줄일 수 있도록 - 페이지 교체 알고리즘 - 페이지 부재가 발생했으나 빈 frame이 없는 경우 비울 frame을 결정 - 작업 집합에 속하지 않은 page가 담긴 frame을 선택해서 미래에 사용될 page가 교체되지 않도록 유지 - 각 프로세스 마다 실행에 필요한 최소 page frame수가 확보되어야 한다 - Frame수 감소시 page fault rate 증가 - Page fault 발생 시 instruction cycle의 재실행 필요 - 한 instruction이 참조하는 모든 page는 동시에..
- Java 프로그램에서 데이터를 영구적으로 저장할 때 사용하는 인터페이스 - Java 진영에서 ORM(Object-Relaional Mapping)기술 표준으로 사용하는 인터페이스 모음 - 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스 - 인터페이스이기 때문에 Hibernate, Open JPA등이 JPA를 구현 - 외부에서 Controller를 호출하면 Repository가 Entity를 가지고 처리를 한 후에 반환하는 구조라고 보면 된다 - Controller > Java Logic 수행 - Entity > 테이블 정보 설정 - Repository > 쿼리 정보 설정 - @Builder : SQL 사용 시 파라미터에 값을 쉽게 넣어주기 위한 어노테이션..
- 조합 테스팅은 테스트 대상 프로그램의 동등 분할이나 BVA등을 통해 여러 개의 클래스들로 각 입력 인자를 여러 클래스나 값들로 분할하였을 때 이들을 조합하여 테스트 케이스를 구성하는 방식 - 예제 : 입력 x,y,z를 어떻게 조합하여 테스트 케이스를 만들것인가? 1. one-to-one : 3+4+2=9개의 test case 2. minimized : 4개 3. 모든 입력 인자들 : 3*4*2=24 - Each choice 테스팅(=minimized): 각 입력 인자의 분할된 클래스로부터 최소한 하나의 입력 값이 테스트케이스에 포함 - 페어와이즈 테스팅: 각 인자의 값(또는 클래스)과 다른 인자의 값(또는 클래스)를 최소한 한번은 조합하여 테스트 케이스를 구성 - All combinatio..
- "현재 실행되고 있는 코드들은 반드시 물리적 메모리에 존재해야 한다" - 앞서 다룬 메모리 관리 기법들의 특징 - 방법 - 프로세스 전체를 메모리에 적재 - 가장 손쉬운 방법 - Dynamic Loading - 프로그래머의 특별한 주의와 추가 작업 필요 - 단점 - 프로세스의 크기가 물리적 메모리의 크기로 제한 - 컴퓨터에 설치 가능한 물리 메모리의 한계 - CPU의 주소 버스 크기에 좌우 - 32비트 CPU의 물리 메모리 최대량 : 2^32B = 4GB - 64비트 CPU의 물리 메모리 최대량 : 2^64B = 2^24TB - 실제 설치되는 물리 메모리 - 현재 대부분 8~32GB정도 장착 - 비용적인 한계 - 물리 메모리보다 큰 크기의 프로세스는 실행될 수 없다! - 동시 수행되는 프로세스들의 크..
- 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..