전체 글 48

[DB] 데이터베이스(DataBase), DBMS

데이터베이스란? 특정 조직의 업무를 수행하는 데 필요한 상호 관련된 데이터들의 모임 통합된 데이터 : 검색의 효율성을 위해 중복이 최소화된 데이터 저장된 데이터 : 컴퓨터가 접근할 수 있는 저장 매체에 저장된 데이터 운영 데이터 : 조직의 고유한 업무를 수행하는 데 존재 가치가 확실하고 없어서는 안 될 반드시 필요한 데이터 공용 데이터 : 여러 응용 시스템들이 공동으로 소유하고 유지하는 데이터 데이터베이스 설계 데이터베이스 설계는 사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것이다. (DBMS : 데이터베이스를 관리해 주는 소프트웨어) 요구 조건 분석 요구 조건 명세서 작성 개념적 설..

DataBase/이론 2023.03.15

[SQL] DDL - 데이터 정의

DDL (Data Defintion Language) - 데이터 정의 언어 데이터베이스의 구조와 테이블, 뷰, 인덱스, 프로시저와 같은 개체를 정의 create 테이블을 생성한다 create table 테이블명( 속성이름 데이터타입(크기) 제약조건, ... ); create table student( sid varchar2(9) primary key, name varchar2(3) not null, age number(3) not null, birth date not null ); create로 학생(student) 테이블을 생성했다. 속성은 [학번(sid), 이름(name), 나이(age), 생일(birth)] 이다. 학번은 기본키(primary key)로 지정하고 나머지 속성은 도메인 무결성을 위해 ..

DataBase/SQL 2023.03.15

[애플리케이션] 배포

운영환경의 특징 네트워크 관점 일반적으로 인터넷망과 분리되어 직접적인 연결을 허용하지 않고, 별도의 내부망을 구성하고 방화벽을 통해서 인과된 IP를 통해서만 접근을 허용한다. 기업 서버에 접근하기 위해서는 사전에 방화벽 허용 신청을 통해서 배포 서버의 IP가 접근 가능하도록 설정되야 한다. 계정 관리 부분 접근 계정을 별도 IP 관리시스템을 통해서 관리하고 있으며, 정부의 보안 관리 기준에 따라 정기적으로 패스워드(Password)를 변경하는 형태로 관리된다. 애플리케이션 배포 전에 운영 서버에 접근 가능한 계정, 프로토콜, 접근 디렉터리를 정해서 신청해야 한다. 아이디, 패스워드가 소스코드 또는 빌드 스크립상에 하드코딩 되지 않도록 주의해야 한다 (하드코딩 : 변수의 값을 고정하여 코딩) 보안 취약점 ..

[애플리케이션] 빌드

지속적인 통합(CI: Continuous Integration) 환경 애플리케이션 개발 과정 중 지속적으로 개발된 프로그램을 통합, 빌드, 배포하여 애플리케이션의 개발 내역을 검증, 테스트할 수 있는 환경 빌드 도구 애플리케이션의 배포 단위, 형식에 따라 소스코드를 컴파일, 패키징하며, 배포하는 스크립트를 제공하고 수행하는 도구 (Ant, Maven 등) 테스트 도구 개발된 소스코드를 테스트할 수 있는 테스트 코드를 작성, 동작시킬 수 있는 도구로, 통합 빌드 수행시 연결할 수 있다 (Junnit, DBUnit, StrutsTestCase 등) 소스코드 품질 측정도구(코드 인스펙션) 정해진 소스코드 작성 규칙에 따라 소스코드를 점검하고 규칙 위반 여부를 체크하는 도구. 통합 빌드 수행 시 연결할 수 있다..

[pandas] 데이터프레임 (DataFrame)

사용 데이터 : http://bit.ly/ds-korean-idol pandas는 데이터 분석을 위한 패키지이다. 개발, 엑셀로 할 수 있는 모든 것들 처리 가능, DB, 엑셀 파일, 데이터베이스 핸들링 가능 import pandas as pd Series 1차원, 1개의 column은 Series라 한다 a = [1, 2, 3, 4] pd.Series(a) # S 대문자 DataFrame 2차원으로 이루어진 데이터 배열을 의미한다. Series가 여러 개 모이면 DataFrame df1 = pd.DataFrame([['삼성', 2000, '스마트폰'], ['현대', 1000, '자동차'], ['네이버', 500, '포털']]) dict로 생성할 때 df_dict = {'기업명': ['삼성', '현대',..

Python/Pandas 2023.03.13

[Numpy] ndarray

Numerical Python을 의미하는 넘파이는 파이썬에서 선형대수 기반의 프로그램을 쉽게 만들 수 있도록 지원하는 대표적인 패키지이다. 대량 데이터 기반의 과학과 공학 프로그램은 빠른 계산 능력이 매우 중요하므로 파이썬 기반의 많은 과학과 공학패키지는 넘파이에 의존하고 있다. 많은 머신러닝 알고리즘이 넘파이 기반으로 작성돼 있음은 물론이고 이들 알고리즘의 입력 데이터와 출력 데이터를 넘파이 배열 타입으로 사용하고 있다. numpy를 사용하는 방법은 매우 간단하다. 'import numpy'로 라이브러리를 불러오고 'as np'로 코드를 쉽게 쓰도록 한다. # 별칭(alias) 지정 (넘파이를 불러올 때 보통 np로 줄여서 표현한다.) import numpy as np ndarray 기본 생성하기 # ..

Python/NumPy 2023.03.10

[애플리케이션] 배포환경 구성

컴파일 언어 기계어로 바로 변환되어 실행되기 때문에 가장 속도가 빠르고 보안에 유리하다. 하지만 소스 변경 시마다 컴파일 과정을 통해서 빌드 작업을 수행하기 때문에 빌드 과정이 오래 걸린다. ex) C, C++ Byte Code 언어 컴파일의 결과물이 실행파일이 아닌 'class'라는 바이트 코드 파일로 생성, 가상 실행환경인 JRE(Java Rutime Environment), CLI(Common Language Infrastructure)에서 한 줄씩 실행하는 방식으로 빌드된다. JRE, CLI 환경에서 실행될 때 기계어로 변환되며, 컴파일 언어에 비해 빌드 과정이 빠르다. ex) Java, C# 인터프리터 언어 한 줄 씩 번역되어 실행된다. 컴파일 과정에서 메모리가 훨씬 적게 소모되고 빠른 시간에 ..

[애플리케이션] 소스 검증

소스코드 검증도구 검증도구의 용도 정적 테스트 도구는 테스트하기 전에 코딩 오류, 성능 저하, 보안 취약점 등의 결함을 조기에 발견할 수 있도록 지원. 개발의 생산성을 향상시키고, 운영환경에서 프로그램의 품질 향상을 제고한다 동적 테스트 도구는 테스트 미수행 코드를 확인하고 분기(결정)문 등 특정 유형의 코드 구조가 충분히 테스트 되었는지를 확인하여 추가적인 테스트를 진행하여 애플리케이션의 안정성을 제고한다 검증도구의 구분 소스코드 검증도구는 구현된 SW를 실행하지 않고 테스트하는 정적 테스트, 도구와 구현된 SW를 실행하여 동작을 보면서 테스트하는 동적 테스트 도구로 구분한다. 동적 테스트 방법 ( 블랙박스 테스트, 화이트박스 테스트) 블랙박스 테스트 블랙박스 테스트는 소프트웨어의 내부 구조나 작동 원..