목록분류 전체보기 (11)
수리 공작소
클라우드 컴퓨팅이란? 인터넷을 통해 가상화된 컴퓨터 리소스를 사용할 수 있는 것 개별 사용자/기업은 자체적인 인프라 없이 가상의 리소스를 주문형 제공(on-demand availability) 받을 수 있다. 이 가상 리소스들은 대규모 데이터 센터에 호스팅이 되어있고 필요 시 확대, 축소할 수 있다. -> 확장성이 좋다. 덕분에 하드웨어를 직접 구매할 필요가 없어 초기 투자 비용을 줄일 수 있다. 따라서 인프라에 대한 유지/보수 부담이 줄어든다. 사용한 만큼 돈을 지불하는 pay as you go 모델을 사용한다. 클라우드 컴퓨팅은 다양한 제공 형태가 있다. (다만, 경계가 명확하게 구분되지는 않는다.) IaaS (Infrastructure as a Service) ex) AWS 의 EC2 : 가상 서버..
CSV(Comma-Seperated Values)는 데이터를 쉼표로 구분하여 저장하는 "텍스트" 파일 형식이다. 데이터 셋을 CSV 형식으로 저장하고 읽을 수 있고, Python에서는 csv 모듈을 아용하여 CSV 파일로 데이터를 저장하고 읽을 수 있다. # CSV 파일 형식 data = [ ['이름', '나이', '성별'], ['John', '25', '남성'], ['Alice', '30', '여성'], ['Bob', '28', '남성'] ] CSV의 장점: 간단하고 직관적인 구조 가독성 널리 지원 JSON과 같은 다른 형식에 비해 상대적으로 가벼운 용량 -> 다양한 데이터 타입이 지원되지 않으므로 당연하다. CSV의 단점: 테이블 형태의 데이터를 저장하는데에 적합하고, 계층적인 구조를 표현하는 것에 ..
● stateful과 stateless는 어느 분야에서 사용되는 용어일까? 주로 네트워크 통신에서 사용되는 용어로, 프로토콜의 특성을 나타낸다. ● stateful의 의미와 stateless의 의미 stateful : 서버가 클라이언트의 상태 정보를 가지고 있는 것. 즉, 상태에 따라 다음 요청에 영향을 줄 수 있다. -> 예) 로그인을 한번 하면 상태는 "로그인"이 되고 그것이 계속 유지되는 것 -> TCP에서 connection을 수립하고 만료될 때까지 열어놓으므로 stateful한 프로토콜이다. stateless : 서버가 클라이언트의 상태 정보를 반영하지 않는 것. 매 요청이 독립적이다. -> 예) 웹 사이트에서 검색 결과에 대한 문서를 열어보는 단순한 행동. -> connection 수립이 없는..
[인공지능(Artificial Intelligence)이란?] 인간의 지능적인 능력을 모방하거나 대체하기 위한 기술 [인공지능의 역사 요약] 1950년, 엘런 튜링 (Alan Turing) 의 Turing Test 질의자(사람), 응답자1(사람), 응답자2(컴퓨터) 질의자는 두 응답을 보고 어느 것이 사람이고 어느 것이 컴퓨터인지 판별 -> 여기서 질의자의 판별이 어긋날 수록 컴퓨터는 인간처럼 사고하고 있음을 뜻함. -> 즉, 시스템에 대한 인공지능의 개입을 사람이 눈치 채지 못 할수록 더 완벽한 인공지능이다. 1950-60년대, Perceptron의 등장 및 탐색 추론 영역의 AI 연구 부흥 1958년, Rosenbaltt의 인간의 뇌신경을 모방한 Perceptron 등장 - input과 weight의..
동적 계획법(Dynamic Programming, DP)이란? 동적 계획(Dynamic Programming, DP)이란 주어진 문제를 작은 부분으로 쪼개어 해결해나가는 방법이다. 이러한 부분에서 분할정복(Divide and Conquer, DC) 비슷하지만 두 가지 대표적인 차이점이 있다. 1. 문제 접근 방식의 차이 DC는 top-down approach이고, DP는 bottom-up approach라는 차이점이 있다. (물론 DP도 top-down으로 사용될 수 있지만 대체적으로 그렇다고 한다.) 2. DP의 추가적인 메모리 저장 DP는 DC와는 다르게 이전에 계산한 값을 배열(혹은 다른)에 저장을 하여 재활용한다. 이와 같은 방법을 Memoization이라고 한다. 덕분에 이후에 중복 계산을 피하..
JAVA의 역사 [개발] 선마이크로칩스의 James Gosling이 이끄는 팀 [개요] 당시 미국 대선에 출마한 Al Gore의 공약 중, information highway라는 공약이 있었다. 이에 영감을 얻어 제임스 고슬링의 초기 아이디어로는 가전 제품 부착용 프로그래밍 언어를 만들어보자는 시도를 했음. (왜 기존의 언어를 사용하지 않고? -> 가전 제품과 컴퓨터는 사용 대상 자체가 다르므로 다른 특성을 가져야한다고 생각.) 그래서 제임스 고슬링의 design goal은 다음과 같았다. 컴퓨터용 언어인 C언어보다 쉽고, 안전하고, 객체 지향인 언어를 만드는 것이었다. 하지만 Al Gore가 낙선을 하게 되고 원래 목표하던 가전 제품 대상의 언어로 사용하기 어려워졌다. 하지만 그때 "웹"의 급부상(19..
참고 교재 - 데이터베이스 개론 2판, 김연희 지음 데이터베이스는 다량의 데이터가 있는 저장소이다. 그렇다면 데이터베이스 관리 시스템은 무엇일까? 과거의 데이터베이스 관리 시스템 과거에는 응용프로그램 별로 데이터를 따로 관리했다. 파일 형태로 저장하여 관리하기에 이 시스템을 파일 시스템이라고 한다. 파일 시스템을 운영체제 안에 내제되어있는 소프트웨어이다. 이 시스템에는 다음과 같은 단점이 있었다. 1. 데이터의 중복성 같은 데이터라도 다른 응용 프로그램에서 사용하게 되면 해당 응용 프로그램들이 관리하는 곳에 중복으로 저장이 되어 공간 낭비라 발생했고, 데이터의 무결성 유지가 힘들었다. (데이터 내용 변경 시에 일괄적이 변경이 어려우므로) 2. 응용 프로그램이 데이터 파일에 종속적이다. 응용 프로그램마다 ..
1. Javascript는 HTML의 Element를 변경하고 읽을 수 있다. 2. document는 브라우저의 핵심 object이다. document란 브라우저에서 이미 설정되어있는 객체이다. 역할은 우리가 작성한 html에 접근할 수 있다. document의 내용을 보면 이렇게 우리가 설정한 값들이 포함되어 속성으로 들어가있고 이 object 객체를 통해 우리는 다음과 같이 값에 접근할 수 있다. 또한, 1번에서 말했다시피 접근뿐만 아니라 값을 변경할 수도 있다. 3. document.getElementById 라는 프로퍼티는 우리가 설정하나 태그의 id로 값을 가져올 수 있다. 이러한 작업은 app.js에서도 가능하다. (javascript니까) 객체 안의 속성을 모두 바꿀 수 있고 접근할 수 있다..