'분류 전체보기' 카테고리의 글 목록 (9 Page)
본문 바로가기
728x90

분류 전체보기354

관계대수 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) 관계대수 관계대수 relational algebra 릴레이션에서 원하는 결과를 얻기 위해 수학의 대수와 같은 연산을 이용하여 질의하는 방법을 기술하는 언어 관계대수와 관계해석 관계대수 : 어떤 데이터를 어떻게 찾는지에 대한 처리 절차를 명시하는 절차적인 언어이며, DBMS 내부의 처리 언어로 사용된다 관계해석 : 어떤 데이터를 찾는지 명시하는 선언적인 언어로 관계대수와 함께 관계 DBMS 의 표준 언어인 SQL 의 이론적인 기반을 제공한다 -> 관계대수와 관계해석은 모두 관계 데이터 모델의 중요한 언어이며 실제 동일한 표현 .. 2021. 10. 29.
무결성 제약조건 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) 키 특정 투플을 식별할 때 사용하는 속성 혹은 속성의 집합 릴레이션은 중복된 투플을 허용하지 않기 때문에 각각의 투플에 포함된 속성들 중 어느 것은 값이 달라야 한다. 즉 키가 되는 속성, 집합은 반드시 값이 달라서 투플들을 서로 구별할 수 있어야 한다. 키는 릴레이션 간의 관계를 맺는 데도 사용된다. 슈퍼키 투플을 유일하게 식별할 수 있는 하나의 속성 혹은 속성의 집합 (식별할 수 있는 값은 모두 슈퍼키가 될 수 있다.) 후보키 투플을 유일하게 식별할 수 있는 속성의 최소 집합 (2개 이상의 속성으로 이루어진 키는 복합키라.. 2021. 10. 22.
데이터베이스 시스템 구성 및 구조 오라클로 배우는 데이터베이스 개론과 실습 | 박우창, 남송휘, 이현룡 지음 | 한빛아카데미| 2020년 07월 30일 출간된 책을 통해 개념을 정리한 글 (문제시 삭제 하겠습니다.) DB 기본 지식 데이터:관찰의 결과로 나타난 실제 값 정보:데이터에 의미를 부여한 것 지식:사물이나 현상에 대한 이해 데이터베이스:필요한 정보를 얻기 위해 논리적으로 연관된 데이터를 모아 구조적으로 통합해 놓은 것 데이터베이스 시스템 DBMS 사용자와 데이터베이스를 연결시켜 주는 소프트웨어 데이터베이스 데이터를 모아 둔 토대 데이터 모델 데이터가 저장되는 기법에 관한 내용 DBMS가 설치되어 데이터를 가진 쪽을서버, 외부에서 데이터 요청하는 쪽을 클라이언트 데이터베이스 언어 SQL DDL ( Data Definition La.. 2021. 10. 15.
Oracle, MySQL, PostgreSQL 차이점 이름 Oracle Mysql PostgreSql 비용 유료(비싸다) 무료(상업은 유로) 무료 종류 관계형 DBMS(RDBMS) 관계형 DBMS(RDBMS) 객체 관계형 DBMS(ODBMS) 장점 최고의 성능, 고성능 트랜잭션 처리를 제공, SQL문을 실행하는 가장 효율적인 방법을 선택한다.(데이블과 인덱스를 분석) 무료로 사용이 가능하고, top n개의 레코드를 가지고 오는 케이스에 특화 무료로 사용이 가능하고, 다양한 join 방법을 제공 처리 속도를 빠르게 하기 위해 여러 CPU를 활용하여 쿼리를 실행 데이터베이스 *클러스터 백업 기능을 제공 고도로 확장 가능, 임시 테이블과 구체화 된 뷰를 제공 단점 비싸다 Nested Loop Join만 지원, 복잡한 알고리즘은 가급적 지원하지 않는다 문자열 비교.. 2021. 10. 8.
macOS) Oracle DB 권한 설정 및 부여 실행중인 도커 확인 $ docker ps -a 도커 start $ docker start oracle12c 오라클 쉘 접속 (sqlplus) $ docker exec -it oracle12c bash -c "source /home/oracle/.bashrc; sqlplus /nolog1 로그인 SQL> conn SYS / as SYSDBA Enter password : Oracle_db1 계정 생성 및 권한 부여 계정 규칙 제한 풀기 $ alter session set "_ORACLE_SCRIPT"=true; 계정생성 (test1 / 1234) SQL> create user test1 identified by 1234; 권한 추가 SQL> grant connect, resource, dba to test.. 2021. 10. 1.
macOS) github blog with jekyll -(1) 로컬에 jekyll 설치 중에 마주하는 오류 로컬에 jekyll 설치하기 github 를 이용한 블로그를 운영하기 위한 설정 github는 시차가 있어서 즉각적으로 확인할 수 없어 불편하다. 그래서 블로그에 새로운 테마 혹은 플러그인이 적용했을 때 어떻게 변화하는지 바로 확인하기 위해 jekyll를 사용 Install Command Line Tool 사전에 Native 확장 기능을 컴파일할 수 있게 Command Line Tools 설치를 해야 한다. $xcode-select --install Install Ruby Jekyll 는 Ruby 2.4.0 버전 이상을 필요. Homebrew 사용 $brew install ruby 최신 버전 설치 Ruby의 경로를 쉘 환경 설정에 추가 bash 사용시 $echo 'export PATH="/usr/loca.. 2021. 9. 24.
macOS) Docker, Oracle DB설치, 설정 (ORA-12547 오류 해결) 및 user 생성, user 권한 부여 oracle12c 를 임시로 사용하고 추후에 18c로 변경할 예정. terminal 에서 도커 로그인 $ docker login docker hub oracle database 위 링크에서 docker pull $ docker pull store/oracle/database-enterprise:12.2.0.1-slim run docker image $ docker run --name oracle12c -d -p 5050:22 -p 5051:1521 store/oracle/database-enterprise:12.2.0.1-slim docker start $ docker start oracle12c start sql developer DBeaver The default password to connect .. 2021. 9. 17.
Spring Security Spring Security는 Spring 기반 애플리케이션에 인증과 권한 부여를 모두 제공하는 데 중점을 둔 프레임워크. 사실상 Spring 기반 애플리케이션 보안의 표본이다. Spring Security는 "인증"과 "권한(인가)"에 대한 부분을 Filter의 흐름에 따라 처리합니다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다. Spring Security는 기본적으로 인증 절차를 거친 후에 인가 절차를 진행하게 되며, 인가 과정에서 해당 리소스에 대한 접근 권한이 있는지 확인을 하게 된다. Spring Security에서는 이러한 인증과 인가를 위해 Principal을 아이디로.. 2021. 9. 10.
JPA & PostgreSQL 연동 JPA(Java Persistence API)란 ORM에 대한 자바 API 규격 ORM(Object Relational Mapping)이란 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 Hibernate는 JPA를 구현한 ORM 프레임워크 중 하나 설정 dependency org.springframework.boot spring-boot-starter-data-jpa org.postgresql postgresql runtime DB 연결정보 (postgresql은 미리 설치되어 있어야하며, DB에서 설정한 값을 가져와야한다.) # resources/application.properties # Datasource Settings spring.datasource.url=jdbc:postgresql://12.. 2021. 9. 3.
JPA의 Entity 정의 JPA에서 사용되는 엔티티 클래스는 테이블과 매핑되는 클래스이다. 테이블에 대응하는 하나의 클래스 선언 ***엔티티 클래스의 선언***은 XML 파일에 작성하는 방법과 Java 파일에 직접 애노테이션으로 작성하는 방법이 있다. 어노테이션이 읽기 편하다. Entity Manager 엔티티를 관리하는 객체 매니저의 책임이 전부 영속성 엔티티의 CRUD에 관련 엔티티의 저장 엔티티의 수정 엔티티의 삭제 엔티티의 조회 특징 엔티티 매니저는 영속성 상태의 엔티티 관리를 위해 DB 세션과 밀접한 연관을 가지기 때문에, 여러 스레드에서 공유하여 사용하면 위험하다. 엔티티 매니저 팩토리로부터 엔티티 매니저 생성 각 스레드마다 엔티티 매니저를 생성하는 방식이 권장된다. 획득한 커넥션을 통해 엔티티 CRUD 관리 데.. 2021. 8. 27.
JPA의 Entity와 DTO를 구분하여 사용해야하는 이유 이유 view, service와 통신하는 DTO 클래스는 자주 변경된다. 반면 Entity는 그에 비해 변경도 적고, 영향범위는 매우크다 테이블에 매핑되는 정보가 실제 View,service에서 원하는 정보와 다를 수 있다 DTO를 사용하지 않고 Entity를 넘기다 보면 원하지 않은 정보까지 전달하게 되어 문제가 발생할 수 있다. Entity 테이블에 대응하는 하나의 클래스 DTO 계층간 데이터를 교환할 때 사용하는 객체 로직을 갖고 있지 않은 데이터 객체, getter/setter 메소드만 갖음 DB외에서 사용 ex)Service, View DTO와 Entity간의 데이타전달객체의 매핑은 ModelMappper를 활용하자. ModelMapper를 적극적으로 활용하면 DTO와 Entity간의 객체전환 .. 2021. 8. 20.
ORM(Object Relational Mapping)이란 ORM이란 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 객체를 통해 간접적으로 데이터베이스를 조작 Object Relational Mapping의 약자로 관계형 데이터베이스 관리 시스템(RDBMS(Relational Database Management System))와 객체 지향 프로그래밍 언어(OOP(Object Oriented Programming))간 불일치가 존재(클래스→테이블)한다. ORM을 통해 객체 간의 관계를 바탕으로 SQL문을 자동으로 생성하여 불일치를 해결하며 자동으로 연결(Mapping)해준다. 즉, SQL문을 짤 필요없이 객체(Class)를 통해 간접적으로 데이터베이스를 조작할 수 있다. 객체가 테이블이 되도록 매핑 시켜주는 프레임워크 ex) 클래스로 스키마를 매핑하고 메소드로 .. 2021. 8. 13.
JPA(Java Persistence API)란 JPA(Java Persistence API)란 자바 진영의 ORM 기술 표준 Persistence는 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미 JPA는 자바에 있는 데이터를 영구히 기록할 수 있는 환경을 제공하는 API이다.(DB Mapping) ORM을 사용하기 위한 인터페이스를 모아둔 것 ORM 이란 Hibernate(ORM 프레임 워크) 다양한 ORM 프레임워크 중 가장 많이 사용되는 프레임워크, Open Source SW 이러한 Hibernate 기반으로 만들어진 ORM 기술 표준이 바로 JPA JPA를 사용하려면 Hibernate를 사용하면 된다. 장단점 장점 JPA는 반복적인 CRUD 작업을 생략가능 JPA는 영속성(영구적) 컨텍스트를 가지고 있다. 불.. 2021. 8. 6.
맥 최소화 후 다시 제자리(복구)로 돌리는 단축키 최소화 - command+m command+tab 최소화한 프로그램 선택 tab 떼고 option 키 누르고 commend랑 option 같이 떼면 해결 만약 최소화한 프로그램이 여러 윈도우 즉 여러 창을 띄우고 있다면 다른 윈도우 창을 띄워준다. command+tab 한 부분이 스크린샷이 찍히지 않아서 사진은 패스했다. 이해가 안 간다면 댓글 부탁드려요~ 개인적으로 안쓰지만 불편하다 최소화 단축키로 눌려서 복구하는 법을 찾아볼게 아니라 최소화 단축키를 무효화시키는 게 빠른 거 같다. 2021. 7. 30.
REST API REST(Representational State Transfer) 정의 자원(resource)의 표현(representation)에 의한 상태(state) 전달(transfer) 구성 요소 자원(Resource) : URI 행위(Verb) : HTTP Method HTTP 프로토콜은 GET, POST, PUT, DELETE 와 같은 메서드를 제공 표현(Representation of Resource) Client가 자원의 상태(정보)에 대한 조작을 요청하면 Server는 이에 적절한 응답(Representation)을 보낸다. 하나의 자원은 JSON, XML, TEXT, RSS 등 여러 형태의 표현으로 나타내어 질 수 있다. JSON 혹은 XML를 통해 데이터를 주고 받는 것이 일반적이나 JSON을 주.. 2021. 7. 23.
JSON vs XML JSON(JavaScript Object Notation) 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 포멧 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐 JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서 최근에는 XML을 대체해 데이터 전송 등에 많이 사용 특징 서버와 클라이언트 간의 교루에서 일반적으로 많이 사용 js의 객체 표기법과 아주 유사 js를 이용하여 JSON 형식의 문서를 쉽게 js 객체로 변환할 수 있는 이점이 있다. JavaScript에서 객체를 만들 때 사용하는 표현식을 의미(json은 js기반) 특정 언어에 종속되지 않으며, 대부분 프로그래밍 언어에서 JSON 포멧의 데이터를 핸들링 할 수 있는 라이브러리 제공 .. 2021. 7. 16.
Spring Boot MVC Pattern(Service, DAO, DTO, VO) Spring Boot Framework에서의 MVC Pattern은 일반 MVC Pattern과 조금 다르다. 스프링에서는 유저의 요청을 받는 DispathcerServlet이 핵심이며 이것이 Front Controller의 역할을 맡는다. Reference : https://chanhuiseok.github.io/posts/spring-3/ Front Controller Pattern Spring framework used Front Controller Pattern 요청을 분석하여 세부 컨트롤러들에게 필요한 작업을 분배 모든 리소스(Resource) 요청을 처리해주는 하나의 컨트롤러(Controller)를 두는 패턴 MVC(Model-View-Controller) Pattern과 함께 사용하는 패턴 .. 2021. 7. 9.
MVC pattern MVC패턴은 디자인 패턴 중 하나이다. 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하며 특정한 "규약"을 통해 쉽게 유지보수하고 또 다른 이들과 공유할 때 쉽게 하기 위함 MVC는 Model, View, Controller의 약자로 크게 세 가지 역할로 구분한 패턴이다. Model 사용자가 원하는 모든 데이터를 가지고 있어야 하며, 어떤 데이터를 보여 줄지 정의 데이터 변경이 일어났을 때 뷰를 참조하는 내부 속성 값(모델에서 직접 수정)을 가지면 안 된다. 데이터 변경이 일어났을 때 이벤트를 발생시켜야 하며, 이를 수신할 수 있는 처리 방법을 구현 재사용 가능하게 구현 CRUD 작업 담당 View 데이터를 보여주는 방식을 정의 모델이 가지고 있는 데이터를 따로 저장해서는 안된다. 데이터를 받으면.. 2021. 7. 2.
Keras Tuner 딥러닝에 입문후 모델을 가져다 사용하다가 이제 어느정도 모델을 구성할 수 있다면, 어떻게 이 모델의 성능을 높일까 고민하게 된다. 최적의 모델을 위해 모델의 요소 값을 찾는 과정을 "하이퍼파라미터 튜닝"이라고 한다. 한 모델의 하이퍼파라미터 요소의 개수가 많을수도 적을 수도 있어 모델 구성에 따라 성능의 차이는 천지차이이며 어렵다. 그래서 구글이 이러한 캐라스 모델을 쉽게 튜닝하기 위해 "Keras Tuner" 프레임 워크를 개발했다. Cutting Edge TensorFlow: New Techniques (Google I/O'19) "Keras Tuner"에 관한 발표 - 7분 20초 까지 공식 문서 기준으로 부분부분 이해해 보자. - https://keras-team.github.io/keras-tu.. 2021. 6. 4.
C언어 - 힙 정렬 구현 코드 #include #define num 8 int node[] = {2,1,33,21,6,42,50,5}; void heapify(int n, int start, int *node) { int l,r,tmp; l = start*2+1; r = start*2+2; if(r>n) { return; } if(node[l] > node[start] || node[r] > node[start]) { if(node[l] > node[r]) { tmp = node[start]; node[start]=node[l]; node[l]=tmp; return heapify(n,l,node); } else { tmp = node[start]; node[start]=node[r]; node[r]=tmp; return heapify.. 2021. 5. 21.
하이퍼밴드(Hyperband), Successive Halving Algorithm(SHA)의 흐름 이해하기 하이퍼 밴드는 Kerads Tuner 에서 사용되는 탐색 방법(알고리즘)의 하나이다. 가끔 요약을 미리 보면 이해하기 수월할 때가 있다. 요약 HYPERBAND는 SHA를 이용해 탐색하며 SHA의 B와 n을 일정 비율로 정해준다. SHA는 B/n번 탐색 B*(2^0) -> b/2(1)*(2^1) -> ... -> b/2(n-1)*(2^(n-1)) -> 1*(2^n) ex) B =32 n=8 일 경우 32개중 랜덤하게 8개를 뽑아 1번 학습 후 4개 추출 -> 추출된 4개 2번 학습 후 2개 추출-> 추출된 2개 4번 학습 후 1개 추출 -> 1개 8번 학습 -> 결과!!!! 하이퍼 밴드 알고리즘은 keras tuner 프레임 워크에서 사용되는 알고리즘 중 하나이다. keras tuner는 모델을 쉽게 튜.. 2021. 5. 19.
힙 정렬(Heap Sort) 힙 정렬(Heap Sort)은 큌 정렬(Quick sort)과 병합 정렬(Merge Sort)과 같은 시간 복잡도 O(N*logN)를 가지고 있다. 힙 트리를 이용하는 정렬 방법이다. 힙 트리란 힙 트리의 조건 중 부모 노드의 값은 항상 자식 노드(하위 노드)의 값보다 크거나 작아야 한다. 힙 트리는 위의 조건은 만족하는 정렬은 두가지 뿐이다. 최대 힙(Max Heap), 최소 힙(Min Heap) 힙 트리 구조의 자녀 트리 사이에는 대소관계는 정해지지 않는다. 또한 힙 트리는 완전 이진 트리를 조건으로 가지고 있어야 한다. 왼쪽부터 차근차근 채워나가며 1~n까지 만들어지는 트리구조이다. 완전 이진 트리의 장점은 트리를 배열로 쉽게 구현이 가능하며, 부모 노드와 자식 노드 간에 관계를 수식화 할 수 있다.. 2021. 5. 14.
c언어 - 이진 트리 레벨 순회 (LevelTraverse) 이진트리 레벨 순회란. 트리를 레벨이 낮은 순으로 순회하는 검색 방식 중 하나이다. 같은 레벨에 있다면 왼쪽부터 오른쪽으로 나열된다. (ex. 1, 2, 3, 4, 5, 6, 7) 레벨 순회를 하기 위해서는 트리를 큐 자료구조에 넣어주면 된다. 이런 식으로 첫 root를 넣으면 그 root의 왼쪽 자식과 오른쪽 자식 순으로 넣어준다. Queue는 FIFO 방식으로 먼저 넣은 값이 우선으로 나오기 때문에 부모-자식 순으로 자식-자식의 자식 순으로 레벨 순회를 하게 된다. 사실 이진 탐색 트리(BST) 포스팅에서 다룬 트리와 Queue 포스팅에서 다룬 내용을 합치면 루트 노드를 넣으면 그 노드의 자식 노드를 넣고 그 노드의 자식을 넣는 하는 방식이다. 트리 노드를 큐에 넣어야 하는데 큐를 선언할 때 '트리노.. 2021. 4. 16.
macOS) Oracle SQL Developer 설치, 연결! 아래 링크에서 Oracle SQL Developer 을 다운로드한다. www.oracle.com/tools/downloads/sqldev-downloads.htmlwww.oracle.com/tools/downloads/sqldev-downloads.html 다운로드하고 정상적으로 작동이 된다면 연결하면 된다. 혹시 정상적으로 작동이 되지 않는다면 아래에 내가 겪은 문제와 해결방법을 적어두었다. 이런 화면이 보이면 좌측 상단에 초록색으로 + 모양이 있을 것이다. 새 접속이라는 것인데 전 포스팅에서 설치한 DB서버를 연결해주는 작업이다. 버튼을 정상적으로 눌렀다면 이런 식으로 새로 만들기/데이터베이스 접속 선택 이 있을 것이다. Name은 자신이 원하는 값을 입력하고 사용자 이름과 비밀번호는 전 포스팅에서 .. 2021. 4. 9.
macOS) Docker, Oracle DB설치, 설정 (ORA-12547 오류 실패기록) ORA-12547 오류 해결은 여기로! macOS) Docker, Oracle DB설치, 설정하기(ORA-12547 오류 해결) 및 user 생성, user 권한 부여 oracle12c 를 임시로 사용하고 추후에 18c로 변경할 예정. terminal 에서 도커 로그인 $ docker login docker hub oracle database 위 링크에서 docker pull $ docker pull store/oracle/database-enterprise:12... iyk2h.tistory.com 글을 작성하기 앞서 일단 필자는 user-name과 Password 부분에서 ORA-12547라는 오류가 생겨 접속을 하지 못했다. 이 오류를 해결하신 분은 저에게도 도움을 주시면 감사하겠습니다! Oracl.. 2021. 4. 2.
728x90