Anaconda만 설치하면 모든 개발환경 설치가 한 방에 끝나는 마법의 설치라고 들었다.

 

하지만...

하지만...

나는...............  ( Ĭ ^ Ĭ )  왜죠....... 파이썬 설치하고 하루만에 멘붕에 빠졌다...


다행히 강제 업데이트를 시켜 재설치 함으로써 쉽게 해결이 되었다.

터미널에 아래와 같이 입력한다.

pip install --upgrade pandas

그래도 안 되면 설치 경로가 잘못된거라는데... 그때는 그냥 CleanMyMac으로 깨끗히 지우고 재부팅 한 다음 다시 설치하자.

Toad for Oracle이 예전엔 맥용이 있었다는 것 같은데 지금은 홈페이지 가봤지만 윈도우즈용만 나온다...

그래서 대체 프로그램이 필요한데...

앱스토어에도 있고, 'DBTA 독자들이 뽑은 최고의 데이터베이스 관리 솔루션'이라는 어마어마한 프로그램은 무려...

그렇다...

 

그래서 찾아본 무료 프로그램!

우선 가장 좋은 평을 받고 있는건 DBeaver이다. GPL 오픈소스라 무료다.

그 외에도 dbVisualizer,  Oracle SQL Developer,  SQuirrel SQL,  Execute Query, TOra,  Toad Extension for Eclipse,  SQL Workbench/J,  Eclipse SQL Explorer 등이 있다는 것 같다.

써본 적도 없고 그림을 봐도 난 아직 배우질 않아서 뭐가 좋은지는 모르겠다 ㅠㅠ

File System과 DBMS의 비교

유형 FIle System DBMS
데이터 정의 및 저장 데이터 정의 :

Application Program

데이터 저장 : File System
데이터 정의 :

Database Management System

데이터 저장 : Database
데이터 접근 방법 응용 프로그램이 파일에 직접 접근 응용 프로그램이 DBMS에 파일 접근을 요청
사용 언어 C, C++, Java etc... C, C++, Java, SQL etc...
CPU/Ram 사용 적음 많음
장점 구현이 간편하고 처리 속도가 빠르다

(단, 자료량이 많아지면 매우 느려짐)

비용이 저렴하다
자료의 독립성

데이터 무결성 보장

표준 SQL문 사용으로 개발 생산성 보장
단점 자료의 중복 발생

데이터의 무결성 보장 X

개발 생산성이 떨어짐
구현이 어렵고 시스템 부하가 큼

별도의 구축/관리 비용이 발생


 

왜 DBMS를 쓸까?

데이터 양이 방대해짐에 따라 파일시스템은 자료량이 적을 때는 빠르지만 많아질수록 느려진다. 또한 모든 사람이 동일한 데이터 일관성을 가지기 위해 중앙관리가 필요해졌다.

 

Database의 특징

 

       
    1. 실시간 접근성 (Real time accessibility) : 데이터 요청 시 결과를 수초 내에 서비스 한다.

 

       
    1. 계속적인 변화 (Continuous change) : 데이터는 시간에 따라 항상 변한다. Insert, Update, Delete 작업.

 

       
    1. 동시 공유 (Concurrent sharing) : 다른 업무 또는 사용자에게 동시에 공유된다. Insert, Update, Delete 작업.

 

       
    1. 효율적 접근이 가능하고 질의 요청(Query) 가능 : 질의 요청(Query)에 따른 결과 반환

 


Database 사용자

유형 역할
일반 사용자 · 데이터를 다루는 업무를 하는 사람. i.e. 은행원, 공무원

· 프로그래머가 개발한 프로그램을 이용하여 데이터베이스에 접근.
프로그래머 · 일반 사용자가 사용할 수 있도록 프로그램을 개발하는 사람.

· 자바, 파이 등의 프로그램 언어와 SQL을 사용하여 일반 사용자를 위한 데이터를 관리하는 로직 개발.
SQL 사용자 · SQL을 사용하여 업무를 처리하는 IT부서 담당자

· 응용 프로그램으로 구현되어 있지 않은 업무를 SQL을 활용하여 처리
데이터베이스 관리자 · 데이터베이스 운영 조직의 데이터베이스 시스템을 총괄.

· 데이터 설계, 구현, 유지보수의 전 과정을 담당.

· 데이터베이스 사용자 통제, 보안, 성능 모니터링, 데이터 관리 등 제반 업무를 담당.


Database 사용자와 Database 시스템은 다르다!

 

CRUD란?

Creat, Read, Update, Delete를 일컫는 말로 Database 관리의 기본이다.

SQL : Structured Query Language는 DBMS에서 데이터를 저장하거나 얻기 위해서 사용되는 표준화된 언어.

이름 기능 SQL
Create 생성 INSERT
Read 읽기 SELECT
Update 갱신 UPDATE
Delete 삭제 DELETE


CRUD가 SQL문의 무엇에 대응하는지 꼭 기억하자!

그럼 CRUD중에서 어떤게 가장 힘들까? 데이터가 방대해지면 Read(SELECT)에 조건이 엄청나게 붙기 때문에 가장 힘들다!



SELECT   DATE, STOCK_NAME, PRICE 을 읽어라

FROM       SOTCK_MGMT 테이블에서

WHERE   DATE > 201703 조건 1

AND          STOCK_NAME = 'A_TELECOM' 그리고 조건 2

 

Q1) 다음 STOCK_MGMT 테이블에서 PRICE가 12,000 이상인 데이터를 조회하세요. (단, DATE, STOCK_NAME 컬럼 자료만)

A1) 다음 STOCK_MGMT 테이블에서(FROM) PRICE가 12,000 이상(WHERE)인 데이터를 조회하세요. (단, DATE, STOCK_NAME 컬럼 자료만)(SELECT)

SELECT   DATE, STOCK_NAME

FROM       STOCK_MGMT

WHERE   PRICE >= 12000

결과 :

DATE STOCK_NAME
201701 A_TELECOM
201702 A_TELECOM


 

Q2) 다음 STOCK_MGMT 테이블에서 PRICE가 9,000 미만인 모든  데이터를 조회하세요.

A2) 다음 STOCK_MGMT 테이블에서(FROM) PRICE가 9,000 미만(WHERE)인 모든 데이터(SELECT)를 조회하세요.

SELECT   *     ← 모든 것을 조회할 때는 '*'을 쓰면 된다.   // 하지만 가급적 * 대신 모든 항목을 넣자. (DB가 변경될 수도 있으니까)

FROM       STOCK_MGMT

WHERE   PRICE < 9000

결과 :

DATE STOCK_NAME PRICE PLUS_ARTICLE MINUS_ARTICLE
201705 A_TELECOM 6,000 0 3

 

소프트웨어에도 여러 저작권이 존재한다.

GPLApache, BSD, MIT 등...

GPL : 절대로 사용하지 않는다!!!

'상업적 이용이 가능한 오픈소스'지만 해당 코드를 사용시 모든 코드를 공개해야 한다. 따라서 회사에서는 절대라 사용하지 않는다.

물론, GPL이 회사에서 사용하면 안 된다는거지 나쁜 것은 아니다. 예를 들면 'https://dbeaver.io" target="_blank" rel="noopener noreferrer">DBeaver'라는 프로그램은 GPL 이라 무료로 이용할 수 있는 훌륭한 툴을 제공한다. 실제로 홈페이지에도 이렇게 적혀있다.

Legal

DBeaver is free and open source (GPL) product.

Just Download and start using it.

Apache, BSD, MIT 등은 사용해도 된다. 다만, 언제든 검사 요구를 받을 수 있다는 것을 기억하자.

'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글

핀테크(FinTech) & 블록체인(BlockChain)  (0) 2020.03.25
약어 정리  (0) 2020.03.25
개발 프로세스  (0) 2020.03.25
3 Tier Architecture  (0) 2020.03.25
SRS  (0) 2020.03.25

 

개발자다! 뭔가 내가 이러이러한걸 할 수 있어! 내 생각엔 괜찮다 생각해! 이걸 고객한테 팔고 싶어! 그럼 어떻게 해야할까?

  1. 기획         : 제품기획서(홍보물)을 만들어 고객을 찾는아 판촉한다.
  2. 요구분석 : 고객과 이러이러하게 제품을 만들기로 요구명세서(계약서)를 작성한다.
  3. 설계         : 어떻게 만들지(설계명세서), 어떻게 테스트 할지(테스트 설계서), 설명서를 어떻게 만들지(사용자 매뉴얼)을 설계한다.
  4. 구현         : 개발 시작! 소스코드를 작성한다!
  5. 테스트     : 테스트 시작! 버그 수정과 소스코드 작성의 반복!
  6. 유지보수 : 사용자가 인수 검사(UAT : User Acceptance Testing)하면 시스템을 Open(Go Live)한다.

기요설 구테유

'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글

핀테크(FinTech) & 블록체인(BlockChain)  (0) 2020.03.25
약어 정리  (0) 2020.03.25
Copyright 보호  (0) 2020.03.25
3 Tier Architecture  (0) 2020.03.25
SRS  (0) 2020.03.25

Web : Front end . 눈에 보이는 영역.

WAS : Back end. 그걸 누르면 작동하는 영역. 눈에 보이지 않음.

DB : WAS가 작동을 위해 요청을 하면 답을 주는 데이터 저장소

 

이 3계층을 모두 다룰 줄 아는 사람을 Full Stack Engineer라 부른다.

능력과 경력까지 모두 다 갖춘 Full Stack Engineer는 Software Architect라 하며 초 고연봉!!

'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글

핀테크(FinTech) & 블록체인(BlockChain)  (0) 2020.03.25
약어 정리  (0) 2020.03.25
Copyright 보호  (0) 2020.03.25
개발 프로세스  (0) 2020.03.25
SRS  (0) 2020.03.25

Software Requirements Specification  (SRS 대신 Spec이라 부르기도 한다.)

: 고객과 어떤걸 어떻게 개발하고, 어떤거는 개발하지 않는지를 결정하여 문서화한 계약서

→ 이게 있어야 고객이 마지막에 프로젝트를 뒤집어 기한이 연장되고 금액 마이너스 시키거나, 개발하지 않기로 한 것을 개발하지 않았다고 금액 마이너스 시키는 등의 책임을 전가하는 갑질을 막을 수 있다!

그 프로젝트에 대해 법적인 보호를 받을 수 있는 '근로계약서'와 같다!

또한 Bug의 60%는 SRS(Spec)가 충실하지 않아서 발생한다.

★★★ SRS는 반드시 작성한다 ★★★

 

소규모 SI 회사는 SRS를 자세히 하지 않는 경우가 많다. 이런 경우는 반드시 '회의록'과 '이해 당사자의 확인 or 사인'을 꼭 받도록 한다.

'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글

핀테크(FinTech) & 블록체인(BlockChain)  (0) 2020.03.25
약어 정리  (0) 2020.03.25
Copyright 보호  (0) 2020.03.25
개발 프로세스  (0) 2020.03.25
3 Tier Architecture  (0) 2020.03.25

+ Recent posts