티끌모아 로키산맥 🏔
search

로ᄏl
배움에 끝은 없다... 개발 또한 그러하다.
Today
Yesterday
Computer Science (18)
운영체제 소개 일상 생활 속의 운영체제 일반 컴퓨터나 노트북의 전원을 켜면 가장먼저 만나게 되는 소프트웨어 예시 개인용 컴퓨터: Window, Mac 대형 컴퓨터: Unix, Linux 모바일: iOS, Android MP3, 네비게이션, PMP 등 작은 전자기기: 임베디드 운영체제(or 임베디드 시스템) 임베디드 운영체제는 CPU의 성능이 낮고 메모리 크기가 작은 기계에 설치되기 때문에 일반 운영체제에 비해 몇 가지 기능이 빠져있다. 또한 임베디드 운영체제가 있는 기계는 기능을 계속 향상할 수 있다. 필요성 초기의 컴퓨터는 정해진 계산만 수행했기 때문에 특별한 사용 규칙이 필요 없었다. 그러나 메모리, CPU 등의 성능이 향상되고, 여러 작업을 동시에 할 수 있는 컴퓨팅 환경이 조성되면서 사용 규칙이 ..
Anomaly 정규화를 해야하는 이유는 잘못된 테이블 설계로 인해 Anomaly(이상 현상)가 나타나기 떄문이다. 여기서 Anomaly가 무엇인지 알아보자. ex) {Student ID, CourseID, Department, Course ID, Grade} 1) 삽입 이상(Insertion Anomaly) 기본키가 {Student ID, Course ID}인 경우 Course를 수강하지 않은 학생은 Course ID가 없는 현상이 발생한다. 결국, Course ID를 Null로 할 수 밖에 없는데, 기본키는 Null이 될 수 없으므로 테이블에 추가될 수 없다. 굳이 삽입하기 위해서는 '미수강'과 같은 Course ID를 만들어야 한다. 불필요한 데이터를 추가해야 삽입할 수 있는 상황 → ..
JOIN 조인이란? 두 개 이상의 테이블이나 데이터베이스를 연결하여 데이터를 검색하는 방법 테이블을 연결하려면, 적어도 하나의 컬럼을 서로 공유하고 있어야 하므로 이를 이용하여 데이터 검색에 활용한다. JOIN 종류 INNER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN FULL OUTER JOIN CROSS JOIN SELF JOIN INNER JOIN 교집합으로, 기준 테이블과 join 테이블의 중복된 값을 보여준다. SELECT A.NAME, B.AGE FROM EX_TABLE A INNER JOIN JOIN_TABLE B ON A.NO_EMP = B.NO_EMP; LEFT OUTER JOIN 기준테이블값과 조인테이블과 중복된 값을 보여준다. 왼쪽테이블 기준으로 JOIN을 한..
SQL Injection 해커에 의해 조작된 SQL 쿼리문이 데이터베이스에 그대로 전달되어 비정상적 명령을 실행시키는 공격 기법을 말한다. 공격 방법 1) 인증 우회 보통 로그인을 할 때, 아이디와 비밀번호를 input 창에 입력한다. 예를 들어, 아이디가 abc 비밀번호가 1234일 때, 쿼리는 아래와 같은 방식으로 전송될 것이다. SELECT * FROM USER WHERE ID = "abc" AND PASSWORD = "1234"; SQL Injection으로 공격할 때, input 창에 비밀번호를 입력함과 동시에 다른 쿼리문을 함께 입력하는 것이다. 1234; DELETE * FROM USER WHERE ID = "1"; 보안이 완벽하지 않은 경우, 이처럼 비밀번호가 아이디와 일치해서 True가 ..
SQL과 NoSQL의 차이 웹 앱을 개발할 때, 데이터베이스를 어떤 것을 사용할지 고민하게 된다. MySQL과 같은 SQL을 사용할까? 아니면 MongoDB와 같은 NoSQL을 사용할까? 보통 Spring에서 개발할 때는 MySQL을, Node.js에서는 MongoDB를 주로 사용했을 것이다. 하지만 그냥 단순히 프레임워크에 따라 결정하는 것이 아니다. 프로젝트를 진행하기에 앞서 적합한 데이터베이스를 선택해야 한다. 차이점을 알아보자. SQL (관계형 DB) SQL을 사용하면 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색 할 수 있다. 관계형 데이터베이스에는 핵심적인 두 가지 특징이 있다. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다. 데이터는 관계를 통해 여러 테이블에 분산된다. 데이터..
트랜잭션 데이터베이스의 상태를 변화시키기 위해 수행하는 작업 단위 상태를 변화시킨다는 것은 SQL 질의어를 통해 DB에 접근하는 것이다. SELECT INSERT DELETE UPDATE 작업 단위 → 많은 SQL 명령문들을 사람이 정하는 기준에 따라 정하는 것 ex) 게시판에서 사용자가 글을 작성하고 올리기 버튼을 누른 후 게시판에 다시 돌아오면 게시판에 내가 쓴 글이 업데이트된 상태를 볼 수 있다. 이때 DB 작업 올리기 버튼을 누른다: INSERT문을 사용해 사용자가 입력한 게시글 데이터를 옮김. 게시판 새로 구성: SELECT문을 사용해 최신 정보를 유지. 현재 작업 단위: INSERT문 + SELECT문 이를 통틀어 하나의 트랜잭션이라고 한다. 즉, 하나의 트랜잭션 설계를 잘 만드는 것이 데이터..