오도원입니다.

건강과 행복을 위하여

반응형

컴퓨터공학 81

Python Algorithm Session Curriculum

1. 파이썬 문법다지기 2. 알고리즘 개념 3. 알고리즘 유형별 문제풀이 4. 기출문제 대상 : 파이썬으로 알고리즘을 시작하는 사람 조건 : 파이썬 문법, 스터디 내용 정리 파이썬 알고리즘 세션은 크게 4가지의 순서로 진행이 됩니다. 파이썬을 언어로 진행하기 때문에 파이썬 문법에 대해서 어느정도 알고있어야 합니다. 어느정도 알고있다. 1. 입출력을 할 수 있다. 2. 함수를 구현할 수 있다. 3. 시퀀스 자료형을 반복문으로 다룰 수 있다. 4. 슬라이싱을 쓸 수 있다. 5. 튜플과 람다를 사용할 수 있다. 그리고 본인이 공부한 내용을 반드시 어떠한 형태(블로그, 깃허브 등)로 정리해야합니다.양이 많으며 기간도 길게 생각하고 있습니다. 1. 파이썬 문법 다지기 해당 1주차는 파이썬 문법을 다집니다. 입출력..

01-5. 실수

실수 표현 방법 부동소수점 소수점 위치를 왼쪽의 가장 유효한 숫자 다음으로 고정시키고 밑수의 지수승으로 표현한다. 1001.0011 -> 1.00100111 * 2^3 컴퓨터에서 실수 저장 방식 단정도 실수(32비트) vs 배정도 실수(64비트) 모두 부호, 가수부, 지수부로 구분하여 저장한다. 가수부 : 실수의 유효 자릿수들을 부호화된 고정 소수점으로 표현한것 지수부 : 실제 소수점의 위치를 지수 승으로 표현한것 파이썬에서는 8byte 배정도 실수로만 저장한다. 컴퓨터는 실수를 근사적으로 표현 근사로 저장하기 때문에 근사값으로 저장될 때 생기는 작은 오차가 다른 결과를 가져온다. 유효자릿수 32비트 실수형 유효자릿수(십진수) => 6 64비트 실수형 유효자릿수(십진수) => 15

01-4. 진수

진법(진수) 변환 10진수를 타진수로 변환하는 방법 > 원하는 타진법의 수로 나눈뒤 나머지를 거꾸로 읽는다. > 나눌때 마지막으로 나오는 비트가 MSB(most significant bit, 최상위비트)가 된다. 타진수를 10진수로 변환하는 방법 > 각 자릿값에 해당 진수의 값을 곱해서 구한다. 예) 135(8) = 1 * 8^2 + 3 * 8^1 + 5 * 8^0 = 93(10) 2진수, 8진수, 16진수간 변환 2진법 8진법 : 3자리씩 나열 또는 묶음 2진법 16진법 : 4자리씩 음의 정수 표현 1의 보수 : 부호 비트를 제외한 나머지 비트들을 반전 2의 보수 : 1의 보수 방법으로 표현된 값의 최하위 비트에 1을 더한다.

01-3. 비트연산

연산자 기능 & 비트단위 and | 비트단위 or ^ 비트단위 xor (같으면 0, 다르면 1) ~ 모든 비트 반전 비트 열을 오른쪽으로 이동 비트연산은 다른 연산에 비해 속도가 빠르다. 예) 홀짝비교 => n % 2이용 또는 n & 1을 이용하여 가능 비트연산 1 > i) print(end=" ") 16진수 하나는 2진수 4개로 표현된다. 1byte는 16진수 2개로 이루어지며, 2진수 8개로 표현된다. 엔디안(Endianness) > 컴퓨터 메모리와 같은 1차원의 공간에 여러개의 연속된 대상을 배열하는 방법. h/w아키텍처마다 다르다. > 주의사항 : 속도향상을 위해 바이트 단위와 워듣 단위로 변환하여 연산할 때 잘못 이해하면 오류를 발생할 수 있다. 빅인디안(big-endian) 보통 큰 단위가 앞..

01-2. 알고리즘 복잡도

1. 알고리즘 유한한 단계를 통해 문제해결 절차 및 방법 예) 1~100 합 1. 1 + 2 + 3 + ... 2. 100 * (1 + 100) / 2 = 5050 => 이런 해결 방법을 절차적으로 정리한것. 알고리즘을 효율적이어야 한다. > 입력이 커질 수록 효율에 따라 실행시간 차이 발생 알고리즘 설계 -> 실행 필요한 지원분석 -> 효율성 제시 효율성 -> 복잡도. 복잡도가 높을 수록 효율성 저하. 1. 공간 복잡도 2. 시간 복잡도 시간 복잡도 입력 크기에 대한 함수로 표기. 점근적 표기를 사용한다. 입력 n이 무한대로 커질 때를 가정. 1. 빅오, 2. 오메가, 3. 세타 빅오표기법 - worst case 점근적 상한을 의미한다. O(g(n)) = f(n)이라는 것은 g(n)이 모든 n에 대해서..

01-1. 시작하기

코딩은 중요하다. 이하 생략. 프로그래밍 문제해결을 위한 조건 1. 프로그램이 언어의 특성 2. 프로그램이 동작할 h/w와 os에 관한 지식 3. 라이브러리들의 유의사항 4. 프로그램이 사용할 수 있는 최대메모리 5. 사용자 대응 시간 제한 6. 재사용성이 높은 간결한 코드 문제 해결 역량은 추상적인 기술 -> 암기는 큰 도움이 안된다. 언어, 프레임워크, 개발방법론들의 조합 방법을 배워야한다. 해결 과정 단계 1. 문제를 꼼꼼히 읽고 이해하기 2. 문제를 익숙한 용어로 재정의하기 3. 해결 계획 세우기 4. 문제에서 제시된 테스트 케이스로 계획 검증하기 5. 프로그램으로 구현하기 6. 풀이를 돌아보고 개선방법 찾기 문제 해결 전략 > 직관과 체계적인 접근 1. 비슷한 문제를 풀어본적이 있는가? 2. 단..

07. 서버와 클라이언트

서버 클라이언트 1. 서버와 클라이언트 두 대의 컴퓨터가 있다. 웹 브라우저가 설치된 컴퓨터를 클라이언트, 웹 서버 소프트웨어가 설치된 컴퓨터를 서버라고 한다. 클라이언트에서 서버로 요청을 하면 서버에서는 웹 서버에 저장된 웹페이지 문서를 읽어서 클라이언트 컴퓨터로 쏴주는데 그 쏴주는 작업을 응답한다고 한다. 클라이언트는 서버에 요청하고, 서버는 클라이언트에 응답한다. 게임, 모바일 앱 등 모든 서비스는 서버와 클라이언트라는 큰 틀안에서 동작한다. 2. WEB에서의 서버와 클라이언트의 관계 웹에서 서버는 웹 서버이고, 클라이언트가 웹 브라우저이다. 3. 웹서버 1. Apache 2. nginx 3. IIS 본 내용은 Apache 웹 서버로 진행할 것이다. 4. Apache 웹 서버는 설치가 매우 어렵다...

컴퓨터공학/웹 2020.03.05

06. 인터넷과 웹의 역사

인터넷과 웹은 다른 것이다. 인터넷 안에 웹이 있는 것이다. 웹과 형제가 되는 것은 FTP, 이메일이 있다. FTP는 파일을 주고받는 것이다. 그 외에도 많은 기술들이 있다. 이 중에서 가장 중요한 것은 웹이다. 60년대에 인터넷이 등장한다. 그리고 90년대에 웹이 등장한다. 인터넷은 전세계의 컴퓨터가 데이터를 주고받는 네트워크이다. 웹은 이 전세계에 깔려있는 네트워크를 활요해서 HTML이라는 문서를 컴퓨터와 컴퓨터가 주고받을 수 있도록 도와주는 서비스이다. 팀버너스리는 웹브라우저와 웹서버가 HTTP 통신규약으로 데이터를 주고받고, 실제 데이터를 갖고 있는 문서 HTML로 데이터를 전달하도록 개발한다.

컴퓨터공학/웹 2020.03.05

05. 기획

어떻게 동작해야 하는가? UI 모델링 User Interface : 사용자가 시스템을 제어하는 조작장치 즉, UI 모델링은 사용자 입장에서 동작하는 기능을 가상으로 만들어 보는 것이다. 무엇을 만들고자 하는지 분명하게 하기위해서 필요한 단계이다. 모델링 도구 1. 손그림 2. Pencil 3. balsamiq 4. PowerPoint 기획을 꼼꼼하고 사려깊게 하지않으면 프로젝트는 반은 실패한 것이다.

컴퓨터공학/웹 2020.03.05
반응형