목록분류 전체보기 (61)
전성빈의 사리사욕
함수 종속성이란? 완전 함수 종속 (Full Functional Dependency) 부분 함수 종속 (Partial Functional Dependency) 이행적 종속 (transitive Dependency) 함수 종속성이란? 함수 종속성은 DB에서 속성들간 종속 관계를 말합니다. 우리가 테이블의 필드들의 종속 관계를 알아야하는 이유는 불필요한 데이터 중복을 줄이고 더욱 논리적으로 만들 수 있게 해줍니다. 즉, 데이터 베이스 정규화에 필요한 개념입니다. 데이터 베이스에서의 함수 종속성을 정의하는 말은 다음과 같습니다. 어떤 테이블 R에 존재하는 필드들의 부분 집합을 각각 X와 Y라고 할 때, X의 한 값이 Y에 속한 하나의 값에만 매핑 될 경우 Y는 X에 함수 종속적이다 라고 하며 X -> Y라고 ..
정규화란? (what is Normalization) 비정규화의 문제 1NF 2NF 3NF BCNF --필요한 사전 지식 -- 함수 종속성 ------------------------ what is Normalization in DB? Normalization이란 데이터 베이스에서 데이터 중복, 변칙적인 삽입,변경,삭제 등을 피하기 위한 방법입니다. 예제와 함께 변칙적인 데이터들에 대해 알아봅시다. 정규화의 목표 1. 데이터의 중복성을 제거한다. 2. 데이터를 논리적으로 저장한다. Anomalies in DBMS 데이터베이스가 정규화가 되어 있지 않을때 발생하는 3가지의 변칙들이 있습니다. 삽입, 변경, 삭제 등 입니다. emp_id emp_name emp_address emp_dept 101 Rick ..
깃을 사용해보자 git의 개념과 간단한 명령어를 배웠으니 실제로 사용하는 시간을 가지려 합니다. 다른 블로그의 글이나 정식 문서를 보며 지식을 얻었고 블로그에 정리하며 간단한 실습을 하고 얻은 지식을 사용해보았습니다. 깃은 생각한것보다 단순해보였고 손쉽게 사용할 수 있을 것 같습니다. 자신감을 얻고 일단 가볍게 나의 로컬 컴퓨터에 있는 코드를 다른 컴퓨터로 옮기는 작업을 해봤습니다. 결론부터 말하자면 실패했습니다. 글을 따라가면 잘 되지만 내가 얻은 지식으로만 이렇게 저렇게 다양하게 접근해보고 만져보니 제대로 이해한것이 하나도 없는것 같아 어떠한 도전을 했고 어떻게 실패했는지 적어보렵니다. 에러 코드를 보고 원인을 분석하며 해결해 나가면 언젠가 깃을 잘 사용할 수 있게 되어 더이상 어렵고 공부해야 할 것..
추가하기 확인하기 Pull 과 Fetch Push 살펴보기 이름 변경하기 삭제하기 리모트 저장소 리모트 저장소는 인터넷등 네트워크 어딘가에 있는 다른 저장소를 이야기 합니다. 리모트 저장소를 관리할 줄 알아야 다른 사람과 함께 일할 수 있습니다. 저장소는 여러 개가 있을 수 있습니다. 부여 받은 권한에 따라 읽기, 쓰기 등이 가능하며 Push나 Pull을 통해 데이터를 다룹니다. 저장소를 관리한다는 것은 저장소를 추가, 삭제하는 것 뿐 아니라 브랜치를 관리하고 추적할지 말지 등을 관리하는 것을 말합니다. 추가하기 처음에는 원격 저장소가 존재하지 않습니다. 그럼 일단 깃헙 등 원격 저장소로 사용중인 곳에서 내용을 가져와야 합니다. git clone 명령을 사용하면 원격 저장소의 내용을 복사해옵니다. $ g..
깃은 파일의 변경 내용을 추적하는 것이다. 깃은 폴더의 어떠한 파일이라도 모두 추적할 수 있다. CLI 환경에서 사용하는 git 기초사용법 1. local에서 git 사용 사용자 설정 초기화 스테이징 커밋 로그 브랜치 헤드 사용자 설정 깃을 설치하고 나서 가장 먼저 해야할 일은 사용자 이름과 이메일 주소를 설정하는 것이다. 커밋을 할 때마다 이 정보를 사용하는데 한 번 커밋한 후에는 정보를 변경할 수 없다. git config --global user.name "name" git config --global user.email "email_address" git config --list //설정한 모든것을 확인할 수 있다. --global 옵션을 통해 글로벌로 저장하면 모든 프로젝트에 동일한 정보가 적용..
DNS 설정하기 aws ec2 인스턴스를 만드니 public IPv4 주소와 IPv4 DNS 주소를 준다. 내 서버에 접속을 하려면 IP주소나 DNS주소를 적어서 접속해야 하는데 IP주소는 기억하기 어렵고 인스턴스를 재부팅 할 때 마다 변한다. DNS주소를 보니 굉장히 길고 DNS 주소의 가장 앞에 위치한 field가 IP주소이다. 얘도 인스턴스를 재부팅 할 때 마다 변한다. 이렇다 보니 접속하기에 불편하다. 나의 도메인을 새로 만들어서 내 웹 서버(aws ec2 인스턴스)를 등록시키기로 했다. 많은 도메인 서비스 회사들이 있다. 그 중 편하게 사용할 수 있고 무료로 1년간 도메인을 제공해주는 곳도 있으니 찾아보자. 나는 freenom.com을 이용하기로 했다. 가서 회원가입을 하고 삽질을 해보니 나의 ..
what is apt? APT(Advanced Package Tool)는 Debian계열의 패키지 관리 프로그램인 dpkg와 상호작용하는 커맨드 라인 도구입니다. apt-get apt-get은 패키지에 대한 설치, 검색, 업데이트 및 삭제등 여러 작업을 수행합니다. 오래된 패키지를 사용하는것은 보안 이슈가 생길 수 있으니 패키지를 가급적 최신의 상태를 유지하는 것이 좋습니다. apt-get은 시스템의 핵심 측면을 다루기 대문에 su 권한이 필요합니다. ubuntu 등에서 사용할 때는 sudo를 붙여줘야 합니다. sudo apt-get update 설치 되어있는 패키지들의 최신 버전이 있는지 확인합니다. Hit : 새로운 버전이 없습니다. Get : 새로운 버전에 대한 정보를 가져옵니다. Ign : 오류가..
서버를 AWS EC2에 위치 시킨 후 DNS를 등록해서 배포 하려 찾아보는 도중 WEB Server는 nginx를 사용하는게 좋다는 글을 봤다. 분명 내가 Node.js 에서 express를 사용하며 만든 작지만 소중한 나의 서버가 있는데 nginx를 사용하란다. 도대체 내가 만든 서버는 뭐고 nginx는 뭐고 둘의 차이는 뭐고 역할은 무엇일까 궁금해서 찾아본다. 개념 nginx 란? nginx란 웹 서버 제품중 하나이다. Web Server란? 웹서버의 개념 웹 클라이언트로부터 HTTP Request를 받아 Static file(html, css, js)을 제공하는 프로그램이다. web server의 기능 HTTP을 기반으로 하여 클라이언트의 요청을 서비스 하는 기능을 담당한다. 요청에 따라 2가지 기..
컴퓨터 사용하기 AWS EC2를 만들었다. OS는 ubuntu를 사용하기로 했는데 그 이유는 시스템프로그래밍을 공부할때 리눅스를 공부했고 그 중 우분투가 그나마 익숙하기 때문이다. 나중에 CLI만 지원하는 다른 종류로 바꿔볼 생각이다. AWS EC2 instance로 빌린 컴퓨터를 사용하기 위해선 해당 컴퓨터에 접속을 해야한다. OS를 리눅스로 설정하니 SSH(Secure Shell Protocol)을 사용해야 한다고 한다. 난생 SSH란걸 처음들어보니 당연히 공부를 해야한다. 먼저, 우리가 사용할 수 있을 만큼만 공부한 뒤 디테일은 나중에 더 찾아보자. been2.tistory.com/38?category=819117 [AWS] AWS 인스턴스 접속하기(Linux, SSH) 인스턴스 접속하기 AWS의 ..
서버를 돌릴 컴퓨터 정하기 공부를 할땐 항상 서버를 local에 올려 간단하게 다뤘는데 컴퓨터를 꺼버리면 서버가 닫히니 과제할 때 만드는 단순한 프로그램 같고 서버같은 느낌이 나지않았다. 여러 수업을 듣고 글과 영상, 친구들을 통해 어디선가 들어본 바로는 AWS에 서버를 올려 사용한다고 한다. 일단 나도 로컬에 올리는것보단 다른 곳에 두고 관리하는게 더 좋을거 같아서 AWS를 이용하기로 했다. 물론 AWS가 무엇인지, 어떻게 서버를 올린다는것인지 몰라 공부를 좀 하였다. been2.tistory.com/36?category=819117 [AWS 알아보기]AWS란 무엇일까? AWS란? AWS(Amazon Web Services)란 다양한 기능의 서비스를 제공해주는 클라우드 플랫폼입니다. AWS는 컴퓨팅, ..