컴퓨터 구조를 알아야 하는 이유
실력 있는 개발자가 되려면 반드시 알아야 할 기본 지식이다. 컴퓨터 구조를 이해하면 얻을 수 있는 이점이 많다. 문제해결 컴퓨터 구조를 이해하고 있다면 문제 상황을 빠르게 알 수 있으며, 문제 해결의 실마리를 다양하게 찾을 수 있고, 더 좋은 해결책을 고민할 수 있는 능력이 생긴다. 이러한 사고가 가능하면 미지의 대상이 아닌 분석의 대상이 된다. 이러한 역량은 업무를 수행 할 때 필요하며 기업의 각종 기술 면접에서 컴퓨터구조에 관한 소양을 검증하거나 반드시 알아야 하는 분야로 명시하기도 한다. 성능, 용량, 비용 만약 웹 사이트를 개발하였고, 사용자들에게 선보이려면 서버 컴퓨터가 필요한데, 다양한 종류의 서버컴퓨터가 있고, 그마다 CPU, 메모리등이 다르고 그에 따라 성능, 용량, 비용이 다양하다. 만약..
BeakJoon - 10812번: 바구니 순서 바꾸기
문제 도현이는 바구니를 총 N개 가지고 있고, 각각의 바구니에는 1번부터 N번까지 번호가 순서대로 적혀져 있다. 바구니는 일렬로 놓여져 있고, 가장 왼쪽 바구니를 1번째 바구니, 그 다음 바구니를 2번째 바구니, ..., 가장 오른쪽 바구니를 N번째 바구니라고 부른다. 도현이는 앞으로 M번 바구니의 순서를 회전시키려고 만들려고 한다. 도현이는 바구니의 순서를 회전시킬 때, 순서를 회전시킬 범위를 정하고, 그 범위 안에서 기준이 될 바구니를 선택한다. 도현이가 선택한 바구니의 범위가 begin, end이고, 기준이 되는 바구니를 mid라고 했을 때, begin, begin+1, ..., mid-1, mid, mid+1, ..., end-1, end 순서로 되어있는 바구니의 순서를 mid, mid+1, ....
해시 테이블(hash table)
해시 테이블(hash table) 대부분의 프로그래밍 언어는 해시 테이블(hash table)이라는 자료 구조를 포함한다. 빠른 읽기라는 놀랍고 엄청난 장점이 있고, 해시, 맵, 해시 맵, 딕셔너리, 연관 배열 등의 이름을 갖는다. 다음은 해시 테이블을 사용해 파이썬으로 구현한 메뉴이다. (파이썬에서는 딕셔너리라 부른다.) menu = { "one" : 1, "two" : 2, "three" : 3, "four" : 4, "five" : 5 } 쌍으로 이루어져 있으며, 첫번째 항목을 키(key)라 부르고, 두 번째 항목을 값(value)이라 부른다. 파이썬에서는 다음과 같은 문법으로 키의 값을 룩업할 수 있다. print(menu["two"]) # 2 해시 테이블의 값 룩업은 딱 한단계만 걸리므로 평균적..
DCL(Data Control Laguage)
DCL(Data Control Laguage)란 데이터베이스 사용자에게 권한을 부여 및 회수하는 언어이다. GRANT 사용자에게 접속권한, 오브젝트 생성 등을 부여할 수 있는 명령어 이다. REVOKE 사용자에게 부여한 권한을 다시 회수하는 명령어이다. 권한의 종류 SELECT, INSERT, UPDATE, DELETE, REFERENS, ALTER, INDEX, ALL 등이 있다. 먼저 권한부여 및 회수를 하는 방법이다. GRANT 권한 ON 테이블 TO 유저; REVOKE 권한 ON 테이블 TO 유저; 한 유저가 컬럼을 업데이트 하고 싶어 한다. 그에 맞는 권한을 부여해보자. GRANT SELECT, UPDATE ON 테이블 TO 유저; UPDATE 문과 WHERE문을 사용하기 위해 SELECT, U..