본문 바로가기

전체 글

(57)
2-1. Algorithms Algorithms 알고리즘은 입력(Input)에서 받은 자료를 출력(Output형태로 만드는 처리 과정을 말합니다. 즉 알고리즘이란 입력값을 출력값의 형태로 바꾸기 위해 어떤 명령들이 수행되어야 하는지에 대한 규칙들의 순서적 나열 입니다. 정확하고 효율적인 Algorithms 예를 들어 전화번호부에서 Mike Smith를 찾는다면 전화번호부의 처음 페이지부터 그 페이지에 Mike Smith가 있는지 찾은 후 없으면 그 다음페이지를 찾습니다. Mike Smith를 찾을 때까지 반복하다보면 만약 Mike Smith가 전화번호부에 있다면 언젠가는 Mike Smith를 찾을 수 있습니다. 알고리즘을 평가할 때는 정확성도 중요하지만 효율성도 중요합니다. 효율성은 작업을 완료하기까지 얼마나 시간과 노력을 덜 들일..
01 - 4. 이미지 이미지 이미지 파일 형식은 비트맵, JPG, PNG< GIF등 여러 형식ㅣ이 있습니다. 각각의 파일 유형들은 장단점이 존재합니다 사진 파일에 들어있는 정보 하나의 이미지를 다양한 이미지 파일 형식으로 저장이 가능한데 저장되는 형식에 따라 파일 안에 들어있는 비트 데이터의 구조도 다릅니다. 각각의 이미지 파일은 보통 첫 부분에 파일을 구분할 수 있는 구분자를 넣어둡니다. JPEG의 경우 첫부분에 16진수의 255 216 255 라는 10진수로 지작됩니다. 이렇게 JPEG파일을 보면 파일을 구분할 수 있는 정복가 처음에 보이고 나머지 정보를 그 다음 저장합니다. 비트맵 이미지 파일에 들어있는 정보 BMP 파일 형식은 이미지 데이터를 가장 단순하게 저장합니다. 압축을 하지 않아 파일이 큽니다. BMP 파일 형..
01- 3. ASCII 코드 ASCII 코드 ASCII 코드는 문자를 컴퓨터가 이해할 수 있는 이진데이터(0과1)로 혹은 반대로 변환하는 표준 방법입니다. ASCII 인코딩 표준 ASCII 코드는 컴퓨터가 텍스트 데이터를 저장하기 위해 흔하게 사용하는 표준코드 체계입니다. 숫자 65는 대문자 A와 대응되고 컴퓨터는 대문자 A를 저장하고 싶다면 숫자 65를 이진수로 저장합니다. (65 =1000001) 각각의 문자는 각각의 다른 값과 대응됩니다. 소문자도 a는 숫자 97를 2진수 (1100001)로 저장합니다. ASCII 코드에서 소문자는 같은 대문자 글자보다 항상 2의 5승만큼 큽니다. (소문자는 1, 대문자는 0) ASCII 코드의 한계 ASCII 코드는 7비트만 사용하여 모든 문자를 나타냅니다 총 128개의 문자를 나타낼수 있고..
01-2. 비트와 바이트, 2진수, 16진수 비트 정보를 저장하고 연산을 수행하기 위해 컴퓨터는 비트라는 단위를 씁니다. 0과 1 두 가지 값만을 가지는 단위입니다. 비트열 하나의 비트는 0과1 두 가지의 값만을 가지는데 비트 8개가 모이면 바이트가 됩니다. 하나의 바이트에는 8개의 비트가 있고 비트하나는 0과 1로 표현되기 때문에 256개의 서로 다른 바이트가 존재합니다. 1000바이트가 모이면 킬로바이트, 1000킬로바이트가 모이면 메가바이트, 1000메가바이트가 모이면 기가파이트, 1000기가바이트가 모이면 테라바이트가 존재합니다. 단위 정의 저장공간 크기 비트(bit) 0또는 1 예 / 아니오 바이트(byte) 8비트 영어 알파벳 한 개 킬로바이트(KB) 약 1000바이트 몇 개의 문단 메가바이트(MB) 약 1000킬로바이트 1분 길이의 M..
01-1. 하드웨어 하드웨어란? 컴퓨터를 물리적으로 구성하는 요소로 컴퓨터에 연결되어 추가적인 기능을 수행 중앙처리장치 (CPU) 프로세서라고 불리기도 하고 입력장치에서 받은 명령을 실제로 처리, CPU가 1초에 얼마나 많은 연산을 처리할 수 있는지 속도를 측정하는 단위를 기가헤르츠(GHz)라고 합니다. 기억장치 입력된 명령이나 데이터가 정장되는 공간, 기억장치는 주기억장치, 보조기억장치로 나뉩니다. 주기억장치 (RAM) RAM은 기억된 정보를 읽어내고 다른 정보를 기억시킬 수 있는 메모리로 응용 프로그램을 일지적으로 불러오거나 데이터를 일시적으로 저장하고 사용되는 임의 접근 기억장치로 전원을 끄면 없어지는 휘발성이 있으며 RAM이 메모리에 얼마나 많은 양의 정보를 기억할 수 있는지 측정하는 단위는 기가바이트(GB)를 사용..
10. Closures Closures Closures는 글로벌 스코프에서 단독으로 작성할 수 없음 { (parameters) -> ReturnType in statements } { statements } Closures에서는 argument label을 사용하지 않음 -> 아래 예시에서 str은 parameter 이름일 뿐 argument label이 아님, Closures호출시 argument label 사용하지 않음 argument위치에 직접 작성한 클로져를 인라인 클로져라고 함 -> 클로져 바디에 구현한 코드가 비교적 짧은 경우 인라인 클로져로 작성 let c = { print("Hello, Swift") } c() // "Hello, Swift" let c2 = { (str : String) -> String in ..
11. String and Character String and Character 스위프트는 만약 double, float, string, character와 같은 타입을 추론할 때 정확한 타입을 명시하지 않는 이상 큰 범위의 타입을 선택, character 타입의 경우 타입 어노테이션 하지 않는다면 문자열로 추론됨 let s = "String" let c : Character = "C" character의 경우 빈칸을 띄우면 빈 문자열로 인식되지만 문자열의 경우 길이를 보고 인식하기 때문에 빈 문자열을 만들기 위해서는 공백이 없어야 함 let empthyChar : Character = " " let empthyString1 = " " let empthyString2 = "" empthyString1.count // 1 empthyString2...
3. Factorials & Recursion Factorial Factorials란 어떤 정수까지의 곱을 말한다 예를 들어 3까지의 곱이라면 1X2X3 = 6이고 5까지의 곱이라면 1X2X3X4X5 = 120을 말한다. Factoial의 중요한점은 Factoial 0의 값은 1이다 (1 Factoial의 값은 당연히 1) func factorialOfValue(value : Int) -> Int { if value == 0 { return 1 } var product : Int = 1 for i in 1...value { product = product * i } return product } factorialOfValue(value: 3) factorialOfValue(value: 5) 위 예제에서 value 값을 3을 넣으면 3은 == 0과 같..