Programming
-
swift] fp - LowHighProgramming/iOS 2020. 3. 5. 15:27
LowHigh 랜던으로 생성된 1~ 100 사이의 값(정답)과 사용자가 입력한 값을 비교하는데, 정답보다 입력한 값이 작으면 "Low", 크면 "High", 정답이면 "Correct!" 와 입력횟수를 출력 예) 정답값 = "20" , 사용자 입력값 = "21" -> print("High") 리펙토링 전 let answer = Int(arc4random() % 100) + 1 // 1~ 100 랜덤값 var count = 0 while true { let userInput = readLine() guard let unwrappedInput = userInput, let inputNumber = Int(unwrappedInput) else { print("Wrong") continue } // 정답일때, w..
-
cocoaPods] 외부 라이브러리 제거후 다시 설치하기Programming/iOS 2020. 3. 4. 13:39
일단, 다시 제거후 설치 해야만 했던 에러를 살펴보자 Xcode Version: 11.3.1 / iOS 13.3.1 ErrorMessage] dyld: Library not loaded: @rpath/FBLPromises.framework/FBLPromises .... ... Reason: no suitable image found. 참고자료 https://stackoverflow.com/questions/60096258/library-not-loaded-rpath-fblpromises-framework-fblpromises-ios-13-3-1 Library not loaded: @rpath/FBLPromises.framework/FBLPromises iOS 13.3.1 My app crashes on ..
-
swift] fp - fizz buzz 리펙토링Programming/iOS 2020. 3. 3. 18:27
FizzBuzz 프로그램? 1 ~ 100 까지의 숫자를 출력하되, 3으로 나누어 떨어진다면 fizz, 5로 나누어 떨어진다면 buzz, 3과 5 둘 다 나누어 떨어지면 fizzbuzz를 출력하는 프로그램. 리펙토링 전 var i = 1 while i String{ if(i % 3 == 0){ return "fizz" } return "" } func buzz(_ i : Int) -> String{ if(i % 5 == 0){ return "buzz" } return "" } func fizzbuzz(_ i: Int) -> String { let result = fizz(i) + buzz(i) return result.isEmpty ? "\(i)" : result } func loop(min: Int, m..
-
swift] fp - 함수형 프로그래밍 기초Programming/iOS 2020. 3. 3. 18:18
함수형 프로그래밍이란? 함수를 중심으로 Side-Effect 가 없도록 만드는 프로그래밍 순수함수 특정 input에 대해서 항상 동일한 output 을 반환하는 함수 함수 수행과정에서 외부의 값을 참고하거나, 외부의 값을 변경하면 안된다. (== side-effect 가 없다) 1급객체 함수형 프로그래밍에서는 함수를 1급객체로 취급한다. 1급 객체란, 함수의 파라미터로 전달되거나 리턴값으로 사용될 수 있는 객체를 의미한다, 고차함수(Higher-Order Function) 함수를 파라미터로 받거나 함수를 리턴하는 함수 Ex) Array.filter() 함수를 반환하는 함수 함수의 실행결과가 함수이기때문에, 두번 호출하여 값을 얻을 수 있다. func multiply(_ a: Int) -> (Int) ->..
-
노드js] 2 - 테스트 서버 만들기Programming 2020. 3. 2. 19:00
https://nodejs.org/dist/latest-v6.x/docs/api/synopsis.html Usage | Node.js v6.17.1 Documentation Usage# node [options] [v8 options] [script.js | -e "script"] [arguments] Please see the Command Line Options document for information about different options and ways to run scripts with Node.js. Example# An example of a web server written with Node.js whi nodejs.org 서버파일 실행해보기 터미널1] node 파일이름 // 서버파..
-
노드js] 1 - 기본개념Programming 2020. 3. 2. 16:14
브라우저 밖에서 자바스크립트 코드를 실행시켜주는 자바스크립트 엔진. 크롬에서 사용하는 V8 엔진 사용 이벤트 기반의 비동기 I/O 프레임워크 : 클라이언트의 요청을 이벤트라고 하며, 이 이벤트들은 이벤트 루프(싱글스레드)를 돌면서 실행되고 완료하면 클라이언트에게 결과를 보내준다. 이때, 네트워크통신을 하는것과 같은 시간이 오래걸리는 이벤트는 워커에게 위임을 하여 비동기로 처리를 한다. CommonJS 를 구현한 모듈 시스템 : CommonJS 는 파일형태로 모듈을 관리할수 있게 해준다. (기존의 자바스크립트는 웹브라우저에서 돌아가기때문에 파일에 접근이 불가능했으나, 노드js 는 서버에서 돌아가는 프로그램이기때문에 파일에 접근이 가능하다. ) /* nodejs 모듈 생성 */ // 모듈 만들기 functi..
-
리덕스] 개념 이해Programming/React 2020. 2. 23. 11:23
리덕스 상태 관리 로직을 컴포넌트 밖에서 처리 함으로써, state 를 보다 효율적으로 관리 하기위한 라이브러리. store 라는 객체 내부에 상태를 담고, 액션이 디스패치 되었을때 reducer 함수를 이용하여 상태를 변화시킨다. 리액트와 리덕스는 별개로 동작하므로, 함께 사용이 가능하다. 리덕스는 편리하기는 하나 모든 state 를 리덕스로 처리하게 되면 상태값, 액션, 리듀서를 모두 정의해야 하므로 귀찮아지는 단점이 있다. 그래서, 서버 통신이 필요하는 것과 같은 유형의 작업을 주로 리덕스로 구현하고 다른 자잘한 state 는 리액트로 사용하는 것이 좋다. 리덕스의 한계 액션을 실행하면 바로 실행한다.(동기) 특정시간이나 특정동작 이후에 액션을 끼워넣을 수 없다.(예. 로그인같은 서버와 통신이 필요..