본문 바로가기

분류 전체보기376

Swift 함수 2 - 함수형 프로그래밍? 0. 함수형 프로그래밍??? Swift코드를 처음 접하게 된다면 적지 않게 난감한 코드가 눈에 들어오는데 바로 함수이다. 앞서 포스팅한 함수는 기존 여타 다른 언어들(절차지향적 언어, 명령형언어 java, C 등등)과 마찬가지 수준이지만 오늘 공부한 함수는 바로 함수형 프로그래밍의 페러다임에 따라 다양한 함수의 사용성을 공부해보고자 한다. 나는 주로 현업에서 Windows 시스템 프로그래밍을 하고 있는 개발자 이기 때문에 C, C++문법에 좀 더 익숙하다. 이런 관점에서 봤을 때 함수형 프로그래밍 언어인 스위프트를 봤을 때 상당히 낯설다. 이론적으로 찾아보면 함수형 프로그래밍의 가장 큰 특징은 프로그램의 상태에 관계없이 항상 같은 결과를 얻어낼 수 있다는 점이다. 이게 무슨말인지 함수형 프로그래밍을 해보.. 2019. 12. 1.
php에서 큰 파일 라인별로 읽기 php에서 대용량 큰 파일을 file_get_contents로 읽게 되면 메모리에 한번에 로드 하게 되어 메모리 부족으로 php스크립트를 실행 할 수 없는 상황이 발생한다. 이 때 라인 별로 읽으면 메모리 부족을 회피하여 실행 할 수 있게 된다. 아래는 예제코드 $handle = fopen("inputfile.txt", "r"); if ($handle) { while (($line = fgets($handle)) !== false) { // process the line read. } fclose($handle); } else { // error opening the file. } 2019. 11. 29.
Swift - 함수 0. 스위프트에서 함수를 선언하기 스위프트에서 함수는 아래와 같은 형태로 선언된다. func 함수이름(파라미터1이름: 파라미터1타입, 파라미터2이름: 파라미터2타입 ... ) -> 반환타입 { //코드 return 반환값 } func라는 키워드로 선언되며 파라미터를 이름과 타입 형태로 나열한다. 반환 타입은 -> 뒤에 써둔다. 실제 함수를 선언하고 호출 하려면 아래 예제코드와 같이 하면된다. import Foundation //함수 선언 func plusNum(a: Int, b: Int) -> Int{ return a + b } let result = plusNum( a: 5, b:6) //함수 호출 print(result) 1. 반환값이 있는 없는 함수 선언하기 반환 값이 없는 함수는 Void를 리턴 .. 2019. 11. 27.
Swift 상수, 변수 스위프트에도 상수와 변수의 개념이 존재한다. 상수는 변하지 않는 값을 말하며, 변수는 변하는 값을 말한다. 변수는 var, 상수는 let 키워드를 통해 선언 될 수 있다. 1. 상수 : let 상수는 변하지 않는 값을 저장한다. 아래 예제코드를 보자. import Foundation let a : Int //상수 선언 a = 5 // 값대입 print(a) a = 6 //상수는 변경할 수 없다. a라는 상수를 선언하고 5를 대입하였다. 한번 출력하고 6을 입력할 때 컴파일러는 에러를 내놓는다. /tmp/B9F84CA6-7E22-4113-AE2E-A0D6A98845B4.beSm8X/main.swift:10:3: error: immutable value 'a' may only be initialized on.. 2019. 11. 27.
아이폰 백업 위치 외장하드로 바꾸기 / macOS / 10.15 / 카탈리나 0. 아이폰 백업은 여윽시 .. 요새 아이폰을 PC나 맥으로 연결해서 백업하는 사람들이 많이 줄어들기는 했으나 아이폰을 가장완벽하게 백업할 수 있는 방법은 아이튠즈 백업이다. 나 역시 아이폰을 오래 동안 사용한 고인물이라 그런지 아이폰 백업은 여윽시 USB꼽고 백업이다. 최근 카탈리나로 업데이트 되면서 아이튠즈가 사라지고 finder 로 통합되었지만 기존과 동일한 방법으로 백업이 된다. 얼마전 클린설치를 하면서 이전에 백업경로를 다른 파티션으로 지정해 놓았던 설정이 사라져 다시 기록할 겸 적어본다. 1. 아이폰 백업은 어디에 되는가? macOS는 참 숨길것도 많은 OS이다. 내 맥북에 분명 아이폰이 백업되고 있지만 어딨는지는 안알려준다. 하지만 어딘가에 분명있는데 그 경로는 아래와 같다. ~/Librar.. 2019. 11. 26.
미금역 맛집 / 꾸이한끼 미금역에서 간단하게 저녁식사를 하기에 알맞은 곳 미금역 꾸이한끼를 가보았다. 위치는 미금역 8번출구로 나오면 바로 보이는 곳에 위치하고 있어 약속 장소로도 안성맞춤이다. 가게 내부는 넓지 않지만 넉넉한 식사 장소가 마련되어 있으며 주문은 키오스크를 통해서 가능하였다. 가격대는 식사류(덮밥, 우동)는 5000~8000원 사이로 적당한 가격이고 그 이외에도 생맥주, 꼬치, 닭강정 등을 판매 하였다. 우리는 생맥주2개 우동, 닭꼬치 5개를 시켰다. 총 가격은 27000원 정도 우동의 경우 그냥 우동맛이다. 꼬치는 3500원 수준으로 두개정도 먹으면 배가 부를 정도이다. 간단히 생맥주와 꼬치를 먹을 장소를 찾는다면 이곳을 추천한다. 2019. 11. 24.
불스원 RainOK 유막제거 이지그립 후기 늦가을과 초겨울 사이인 요즘 비가 생각보다 많이 온다. 날씨가 좋다가 주말에 많은 양의 비가 한꺼번에 쏟아지는지. 언젠가 부터 자동차 유리창이 와이퍼로 닦아도 잘 닦이지 않고 문제는 밤에 빛번짐이 너무 심해 앞이 잘 보이지 않아 위험한 상황이 연출 되었다. 또 와이퍼에서도 드르륵드르륵 소리가 심해 거슬렸다. 알아보니 이것은 유막이라는 것.. 유리창에 기름 막이 형성되어 물기가 제대로 닦이지 않는 현상이라고 한다. 이것을 없애보기위해 주방용세제, 카샴푸 등으로 닦아 봤지만 전혀 닦이지 않았다. 결국 최후의 수단인 유막제거제를 사용해보기로 하였다. 유막이란? 물과 유리세정제로 제거되지 않는 물 때, 기름 때, 각종 오염 및 코팅 잔여물로, 유막을 주기적으로 제거하면 시가야 깨끗해져 안전운전에 도움을 줍니다 .. 2019. 11. 24.
맥북 포맷하기 / macOS 재설치 / 카탈리나 10.15 재설치 / 인터넷 복구 현재 맥북프로레티나 13인치 2015 early모델을 사용하고 있다. 2016년 신형 맥북프로가 발표된다음 구입한 것이라 3년정도 사용 하였다. 처음 설치된 os는 시에라 버전이었고 업그레이드, 업그레이드를 거쳐 현재 카탈리나(10.15)버전까지 업그레이드 설치 되어있다. 약 2년전 하이시에라를 업그레이드할때 클린설치 한 이후 이번에 클린설치를 처음 하는 것이다. 클린설치를 한 이유는 점점 시간이 갈수록 점점 시스템정보의 저장공간 항목에서 시스템이 차지하는 비율이 높아져 100기가 이상을 차지 하고 있었으며 어딘가 모를 느림이 있었기 때문이다. 마침 디스크 밴치마크를 돌려본 결과 쓰기속도가 반토막밖에 나오지 않았다. 이게 말로만 듣던 ssd가 꽉찼을 때 느려지는 상황인지... 어떻게 정리할 수 없어 클린.. 2019. 11. 24.
php JSON 들여쓰기 출력하기 json_encode 함수 php에서 json_encode 함수를 이용하여 연관배열을 json으로 인코딩하게 되면 들여쓰기가 되지 않은체 한줄로 출력된다. JSON이 길어질 경우 매우 보기힘들어 JSON을 정렬해주는 사이트를 이용할 수도 있다. https://jsonformatter.curiousconcept.com/ JSON Formatter & Validator Format and validate JSON data so that it can easily be read by human beings. jsonformatter.curiousconcept.com 이러한 json encode 처리를 php의 json_encode에서 기본으로 제공하고 있다. json_encode의 두번째 인자에 JSON_PRETTY_PRINT를 주면된다.. 2019. 11. 22.