분류 전체보기 (24) 썸네일형 리스트형 가상 운영체제와 가상 머신 운영체제는 단지 프로그래밍이기 때문에 이론상으로 직접 작성할 수 있음. 리눅스 또한 핀란드 대학생이었던 리누스 토르발스가 밑바닥부터 새로 만들기를 결심하면서 시작했는데, 초기에는 10,000행도 안되는 작은 단위의 프로그램이었지만 프로그래머들간의 협업으로 인해서 막대한 영향력을 가진 운영체제가 되었음. 하드웨어를 개발할 때 의도한 운영체제가 아닌 다른 운영체제를 설치하여 사용하는 많은 사례가 있는데, 예를 들어 윈도우에 최적화하여 설계된 컴퓨터지만, 리눅스를 설치하여 사용할 수 있다. 또는 디스크에 몇개의 운영체제를 저장해두고 컴퓨터를 켤때마다 선택할 수 있는데 이 기능을 멀티부트라고 하며 애플은 부트캠프라는 이름으로 지원함. 심지어 다른 운영체제의 관리 하에 가상운영체제를 설치하여 사용할 수도 있습니다.. 자유로운 소프트 웨어 기술의 표준성 표준은 어떤 기술적 산물이 어떻게 만들어지고 어떻게 작동하도록 되어있는지 명확하고 상세하게 기술한 것이다. 하드웨어의 표준 우리는 주변에서 항상 하트웨어 표준의 혜택을 누리고 있다. 예를 들어 Tv를 사면 집에 잇는 콘센트에 바로 전원 플러그를 연결할 수 있다. 이는 플러그의 표기와 모양, 제공하는 전압에 대한 표준 덕분이다. TV가 신호를 수신해서 방송화면을 보여 줄 수 있는 이유는 방송과 케이블 TV에 관한 표준이 있기 때문이다. 하지만 리모컨은 표준화되지 않았으므로 모든 TV에는 거기에 맞는 리모컨이 필요하다. 소프트웨어의 표준 소프트웨어에도 많은 표준이 있다. 여기에는 아스키코드와 유니코드 같은 문자 집합, C와 C++ 같은 프로그래밍 언어, 암호화와 압축 알고리즘, 네트워크를 통해.. 기술 표준의 중요성 표준 이란? 측정이나 참조 혹은 판단을 위한 근거, 기준, 목표 등을 의미함. ex) 세계 측정의 날(5/20) : 1875년 5월 20일 길이의 단위인 '미터'를 세계에서 공통으로 사용하는 단위, 즉 세계 표준으로 인정한 날. 기술 표준 이란? 기술적인 시스템의 규범이나 요구사항. 어떤 기술적 산물이 어떻게 만들어지고 작동하도록 되어 있는지 명확하고 상세하게 기술한 것. ex) 소프트웨어 - 정보교환용 부호 체계 : 아스키 코드, 유니코드 같은 문자 집합 - 데이터 암호화의 표준 : DES, AES - 네트워크를 통해 정보를 교환하기 위한 프로토콜 : HTTP, HTTPS 기술 표준의 중요성 장점 : 상호 운영성을 보장하고 공개 경쟁을 이루어지도록 한다 세계 표준의 자동차는 전기차 -> 자동차 충전소 .. 작문과 비슷한 프로그래밍 1. C언어 1973년 데니스 리치(노키아 벨 연구소) - 시스템 프로그래밍 용도로 성공적인 언어. (어셈블러, 컴파일러, 텍스트 편집기, 운영체제 등) 2. C++ - 규모가 매우 큰 프로그램의 복잡성 관리를 도울 의도로 설계된 언어들 중 대표적인 언어C++이다. 1979년 비야네 스트롭스트룹(노키아 벨 연구소) - C는 C++프로그램에서도 유효하지만 '유효하지 않은 것도 있다인데 C++은 C에서 진화한 언어로 같은 결과를 다양한 방법으로 작성할 수 있기 때문에 유효하지 않은 부분도 있는 것입니다. - 흔히 알고 있는 맥, 파어이폭스, 크롬, 엣지, 리눅스 유닉스 운영체제 등이 오늘날 컴퓨터에서 사용하는 주요 프로그램인 C와 C++로 작성되었다. - 그리고, 인터넷이 확장되고, 프로세서 성능이 좋아짐에.. 4주차 회고 - ORM, SQL, MVC - 올 것이 왔다. 빠지지 않는 멘트. 핵심을 알아보기 전에 미리 알아둬야한다는 멘트. 시작해보겠다. ORM에 들어가기전에 영속성에 대한 개념 정리. 영속성(Persistence) - 데이터를 생성한 프로그램이 종료되더라도 사라지지 않는 데이터 특성 - 영속성이 없는 데이터는 단지 메모리에서만 존재하므로, 프로그램 종료 시 모두 사라짐. - Object Persistence(영구적인 객체) - 메모리 상의 데이터를 File이나 DB를 활용해서 영속성을 부여함. - 자바에서 데이터를 저장하는 방법 - - JDBC - Spring JDBC - Persistence Framework(Hibernate, Mybatis...) Persistence Framework Persistenc.. 고수준 언어에서 프로그램 실행까지 -고수준 언어- 사람이 표현하는 방식에 가까운 용어로 계산과정 작성 가능. 작성된 코드는 번역기 프로그램을 통해 대상 프로세서의 어셈블리 언어로 된 명령어로 변환된 다음, 어셈블러에 의해 비트로 변환되어 메모리에 로드되고 실행. 여기서 번역기 프로그램은 보통 컴파일러. 컴파일러 : 고급 언어로 작성된 프로그램을 번역해서 기계어로 된 프로그램을 만들어주는 번역기. 우리가 아는 C, C++, Java, Javascript, Python 등등의 프로그래밍 언어 ex) A = B + C 고수준 언어에서는 이 식을 'B와 C라는 메모리 위치에서 값을 가져와 더한 다음 A라는 메모리 위치에 결과를 저장하라'. '='는 같다의 의미가 아닌 '대체하다', '저장하다', '위치하다'라는 뜻. 장점 : - 고수준 언어는 .. 10개 도시를 최단 거리로 여행하는 법(지수, 다항 시간 알고리즘) -지수 알고리즘 -다항 시간 알고리즘 알고리즘 대표적인 두가지 기준은 시간과 공간에 의한 복잡도이다. 외에 다른 복잡도를 갖는 알고리즘도 있는데 지수시간(Exponential-Time)과 다항시간(Polynomial-Time)이 있다. 지수시간(Exponential-Time) 알고리즘 반복문의 수행 횟수가 2^N의 지수식으로 표현 -> 지수 시간 알고리즘 지수 시간은 가장 큰 수행 시간 중 하나. - 일의 양이 빠르게 늘어남. - 한 개의 항목이 추가되면 수행해야 할 일의 양이 2배2^N의 비율로 증가. logN(이진 탐색)에서는 항목의 수를 2배로 늘려도 일의 단계는 1개만 늘어나 한편으론 지수 시간 알고리즘은 logN(이진 탐색) 알고리즘과 정반대라고 볼 수 있음. - 모든 가능한 경우를 하나씩 시도.. 20. 10억 개 전화번호에서 이름 찾기 : 이진 검색 이진검색 : 알고리즘인데 정렬되어 있는 리스트에서 탐색 범위를 절반씩 좁혀가며 데이터를 탐색(검색)하는 방법. 단점 : 배열 내부의 데이터가 정렬되어 있어야 사용 가능한 알고리즘. But, 검색이 반복될 때마다 목표값을 찾을 확률이 두배가 되므로 속도 빠름. 이진검색 성능 : 한번 비교가 이루어질 때마다, 범위는 1/2로 감소. 데이터의 집합 크기를 n으로 두고, 반복 횟수를 k로 가정시 수식은 아래와 같다. 데이터 집합의 크기 n을 2로 몇 번을 나누어야 1이 되는가의 식이다. 데이터 집합의 크기가 1024라면 10번의 탐색으로 데이터를 찾아낼 수 있다. (2의 10제곱 = 1024) 선형탐색 : 이진탐색 선형 탐색 : 리스트의 처음부터 끝까지 순서대로 하나씩 탐색을 진행함. 이진 탐색 : 정렬된 리스.. 이전 1 2 3 다음