목록대학교/BE (26)
SW
0. DBMS의 발전 배경 DBMS DataBase Management System 데이터베이스를 관리해주는 소프트웨어 화일 중심 데이터 처리 시스템(System) 각 응용 프로그램이 논리적 화일 구조를 정의하고 직접 물리적 화일구조로 표현 각 응용 프로그램이 물리적 데이터 구조에 대한 접근 방법을 구현 각 사용자가 데이터와 이를 처리하는 프로그램을 모두 관리 유지 응용 간의 데이터 공용이 불가능 화일 시스템에서 응용 프로그램과 화일과의 관계 1:1 관계 => 데이터의 종속성(dependency)와 중복성(redundancy)을 야기 문제점 : 주소, 사원번호, 이름과 같은 것이 각 화일에 공통으로 들어가 있을 수 있음. 만약 하나의 프로그램에서 어떤 직원의 주소를 바꾸면 다른 부서에서 봤을 때 바뀐 주..
0. Database란? "한 조직(enterprise)의 여러 응용 시스템들이 공유(shared)하기 위해 통합(integrated), 저장(stored)한 운영 데이터(operaional data)의 집합 공용 데이터(shared data) 한 조직의 여러 응용 시스템들이 공동으로 소유, 유지, 이용하는 데이터 통합 데이터(integrated data) 최소의 중복(minimal redundancy) 통제된 중복(controlled redundancy) 수강신청 시 필요한 정보들이 학생정보처리과, 수업정보처리과, 00과에 중복되어 있으면 효율성이 떨어지므로 한곳에 데이터들을 모아두고 갖다 쓴다. 저장 데이터(stored data) 컴퓨터가 접근 가능한 저장 매체에 저장 플래시 메모리, 하드디스크, 클..
0. 관계 데이터 모델 수학에서의 집합(set)과 릴레이션(realtion) 이론에 기초 일반 사용자 입장에서는 테이블(table) 형태로 생각 모든 데이터를 테이블 형태로 저장 및 관리 테이블의 열(column) = 필드(field) = 관계 데이터 모델의 애트리뷰트(attribute) 테이블의 행(row) = 레코드(record) = 관계 데이터 모델의 튜플(tuple) 학번 이름 학년 학과 1234 홍길동 2 컴퓨터공학과 5678 김철수 3 기계공학과 위 테이블은 학생 테이블(릴레이션)이다. attribute는 학번, 이름, 학년, 학과 record 또는 tuple은 (1234, 홍길동, 2, 컴퓨터공학과), (5678, 김철수, 3, 기계공학과) 1. 용어 정리 테이블(table) = 릴레이션(r..
0. RDBMS 관계형 DBMS는 열이 속성을 나타내고 테이블의 각 행이 레코드를 나타내는 테이블 형식으로 데이터를 저장한다. RDBMS는 CRUD(Create, Read, Update, Delete) 조작을 허용한다. SQL(Structured Query Language)은 관계형 데이터베이스 관리 시스템(RDMS)에서 데이터를 쿼리, 업데이트 및 삭제하는 데 사용되는 언어이다. SQL은 표준 쿼리 언어이다. SQL언어의 쿼리는 SQL명령 또는 SQL문이라고도 한다. 가장 인기있는 10가지 DBMS는 다음과 같다.(현재 2020.03.19) 출처: https://db-engines.com/en/ranking 가장 인기있는 10가지 RDBMS는 다음과 같다. 1. 각 RDBMS 특성 Oracle Orac..
0. 플러그인 compile, test, package, jsr, war 위와 같은 구성단계이외에도 많은 단계가 있는데 모든단계가 무조건 실행되는 것이 아니고 원하는 곳까지 실행할 수 있다. 각 단계별로 Plug-in을 가지고 있다. 단계를 수행하는 실질적인 프로그램이다. pom.xml에서 설정이 가능하다. Plug-in은 goal을 가지고 있다. 위와 같은 명령어를 실행하면 단계별 실행을 담당하는 플러그인들을 볼 수 있다.
0. 자바 프로젝트 생성하기 출처 : https://www.youtube.com/watch?v=oPEY7xawQlg&list=PLq8wAnVUcTFWRRi_JWLArMND_PnZM6Yja&index=3 위 영상을 참고하여 Maven Project를 생성하였다. 다음과 같이 javaprj 가 생긴것을 볼 수 있다. 1. Maven 프로젝트 컴파일과 실행 항상 Maven프로젝트에는 root에 pom.xml 파일이 있다. 프로젝트를 컴파일할 때나 실행할 때 pom.xml이 있는 파일에서 명령어를 실행한다. pom.xml에 아래 빨간 부분을 추가해야 Build가 Success 된다. BUILD SUCCESS 후에 /Users/kosangwon/mavenProject/javaprj/target/classes/co..
0. Maven이란? Maven은 Build Tool 이다. 빌드 과정 : 프로젝트 설정 -> 라이브러리 설정 -> 코드 작업 -> 컴파일 -> 테스트 -> 패키지 만들기 -> 배포 -> 레포팅 위 빌드 과정 중 반복되는 내용을 조금 더 효율적으로 개발할 수 있도록 도와주는 빌드 도구이다. 그렇다면 이클립스도 빌드 툴일까? 이클립스에서도 프로젝트 설정 -> 라이브러리 설정 -> 코드 작업 -> 컴파일 등이 가능한데 빌드 툴일까? 아니다. Visual Studio도 그렇고 Build Tool이 아니다. 이클립스나 Visual Studio는 IDE(Integrated Development Environment)이다. 빌드 툴은 프로젝트 생성, 라이브러리 생성등을 담당한다면 IDE는 더 많은 도구들을 결합해서..
0. Delete Mutation movie를 지우는 Mutation을 작성해보겠다. 먼저 resolvers.js를 다음과 같이 작성한다. deleteMovie는 Boolean형을 return 하도록 설정했으므로 schema.graphql을 다음과 같이 작성한다. 아래는 전에 작성했던 db.js중 deleteMovie 내용이다. playground를 보자. 위와 같이 실행을 한 후 다시 movie query를 보면 다음과 같이 id가 3인것이 사라진 것을 볼 수 있다. 위 과정까지 한 것은 영화 정보를 받을 때 Query를 하였고 Database의 상태를 바꾸기 위해서 Mutation을 하였다. server를 다시 껐다 키면 movies는 원래 상태로 돌아갈 것이다. 왜냐하면 이것은 memory에 있는 ..
0. Defining Mutations & Creating Mutations 영화를 몇개의 모의데이터로 만들어 놓았다. 지난 포스팅에 했던 것과 비슷하게 getById함수를 구현하였다. 모의 데이터 배열을 반환해주는 getMovies라는 함수도 다음과 같이 구현하였다. 다음으로, 영화를 삭제하는 deleteMovie를 구현해보겠다. id를 argument로 받고 그 id를 사용하여 delete를 할 것이다. 원리는 같은 id를 가지지 않은 movie의 배열을 만들 것이다. cleanedMovies는 같은 id를 가지지 않은 movie들을 담아놓는다. movies배열의 길이가 cleanedMovies배열의 길이보다 길면 movies = cleanedMovies 를 수행하고 true를 반환한다. 이제 sch..
0. Extending the Schema GraphQL Playground는 다음과 같다. 왼쪽 : Query를 보냈고 Query에는 name을 넣었다. 오른쪽 : GraphQL이 내 서버에서 Query에 맞는 Resolvers를 찾는다. 그래서 GraphQL Playground는 뭘까? Playground는 graphql-yoga에 따라오는 건데 나의 Database를 테스트하게 해주는 것이다. 그게 playground가 하는 일의 전부이다. Query는 JSON data 같은 것이다.이것을 어디론가 보내야 하는데 그것을 POST라고 한다. Query들, Mutation들 모두 항상 POST로 보내야 한다. 왜냐하면, 서버가 받아야 하기 때문이다. 이제 좀 더 확장시킨 예를 보겠다. 다음과 같이 Ob..