Programming
-
DataStructure - Linked ListProgramming/Data Structure & Algorithm 2021. 11. 6. 01:10
안녕하세요 BeePeach입니다 :) 오늘 공부해볼 자료구조는 linked list(연결 리스트)입니다. 이전에 공부해봤던 배열의 단점은 미리 데이터 공간을 확보해야 한다는 점입니다. 그래서 데이터에 정보를 추가시키려는데 공간이 작다면 다른 곳에 더 큰 데이터 공간을 확보시키고 데이터를 옮기는 작업이 이루어집니다. Linked List는 데이터공간을 미리 확보하지 않고 흩어져있는 데이터 공간들을 연결시킵니다. 하지만 단점도 존재하겠죠? 주소를 저장하는 별도의 데이터 공간이 필요합니다. 원하는 데이터를 찾을때 앞에서 또는 뒤에서부터 찾아가야 합니다. 중간의 데이터를 삭제하면 양쪽 데이터를 연결시켜주어야 합니다. 그럼 코드로 한번 만들어보겠습니다. Node 배열은 데이터만 저장을 하죠?? LinkedList..
-
OS - 운영체제 기본Programming/CS 2021. 11. 5. 19:39
안녕하세요 BeePeach 입니다 :) OS, 운영체제 말은 많이 들었는데 그래서 OS가 뭔데??라고 하면 윈도우 같은거~ 라는 말만 할 줄 알고 정확히 어떤 역할을 하는지 무엇인지를 모르는 거 같아서 이번 기회에 공부해보려 합니다. OS(Operating System)란 아주아주 쉽게 말하면 소프트웨어입니다. 프로그램이라는 소리죠! OS의 종류에는 Windows OS, Mac OS, UNIX, LINUX 등등 많이 존재합니다. (유명한것만 적은거에요.) 그럼 OS란 무엇을 하는 프로그램인지 알아보도록 하겠습니다. 1. 운영체제의 역할 1. System Resource(시스템 자원) 관리 여기서 Resource란 하드웨어라고 생각하면 됩니다. (CPU, Memory, I/O Devices, Network..
-
Swift - Property Wrapper Projecting ValueProgramming/Swift 2021. 11. 5. 10:43
안녕하세요 BeePeach입니다 :) 오늘은 지난 포스팅에 이어서 Property Wrapper에 대해서 공부해보도록 하겠습니다. 바로 전 포스팅에서 Wrapper의 인스턴스에 접근하는 방법에 대해서 공부해보자고 했었죠?? 그럼 바로 시작하겠습니다! Wrapper의 인스턴스에 접근하기 이전에 사용하던 예시와 다른 예시를 보겠습니다. 이번에는 프로퍼티를 UserDefaults에 저장시키는 wrapper를 만들어보도록 하겠습니다. 제네릭을 이용하여 확장성이 높은 코드로 만들었습니다. Value 타입을 UserDefaults에 저장하는 wrapper입니다. 그럼 이 wrapper를 사용하여 구조체를 하나 만들어 보겠습니다. 여기서 생성자에 UserDefaults에 추가하는 코드를 또 넣은 이유는 인스턴스를 만..
-
Swift - Property WrapperProgramming/Swift 2021. 10. 28. 14:29
안녕하세요 Beepeach 입니다 :) 오늘은 Property Wrapper에 대해서 공부해보려고 합니다. 이제 막 Swift를 배우시는 분이라면 조금은 어려울 수도 있어서 이해가 가지 않는다면 나중에 보시는 것을 추천드립니다! Property wrapper는 프로퍼티를 정의하는 코드와 프로퍼티를 어떻게 저장할지 관리하는 코드를 분리시켜줍니다. 예를 들어서 어떤 프로퍼티들의 최댓값을 100으로 설정하고 싶습니다. 그럼 이 프로퍼티들을 선언해줄 때 최댓값이 100넘이 넘는다면 프로퍼티 값이 100으로 설정되는 코드를 모두 넣어줘야 합니다. 다른 예로는 어떤 프로퍼티들은 초기화와 동시에 UserDefaults에 저장되길 원합니다. 그렇다면 해당하는 프로퍼티들은 모두 UserDefaults에 저장하는 코드가 ..
-
Terminal - Mac 업그레이드 후 xcrun error 해결하기Programming/Errors 2021. 10. 27. 16:45
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun 이번 몬터레이 업그레이드 이후에 발생한 에러... git도 안되고 엉망진창이였다.. 문제 원인은 업그레이드 하면서 Xcode Command Line Tool이 설치가 안된듯하다.. 그래서 terminal에서 아래 명령어를 입력하면 된다. 그럼 CLI를 설치하고 재 실행하면 에러가 발생하지 않는다!
-
Swift - Type PropertyProgramming/Swift 2021. 10. 27. 12:13
안녕하세요 Beepeach 입니다 :) 오늘은 Type Property에 대해서 공부해보겠습니다. 지금까지 봤던 프로퍼티는 Instance property(인스턴스 프로퍼티)입니다. Instance property란 인스턴스에 속하는 속성입니다. 그래서 각 인스턴스마다 고유한 값을 가지고 있었습니다. 예시를 보면 각각의 인스턴스마다 고유한 값을 가지는 것을 확인할 수 있습니다. 그리고 이 값들은 각각 메모리를 차지하고 있습니다. 그럼 Type property란 무엇일까요?? 인스턴스가 아니라 Type에 속하는 프로퍼티입니다. 인스턴스가 아무리 많아도 type property는 하나의 고유한 값을 가지고 공유합니다. 쉽게 말해서 Instance property의 값은 인스턴스가 100개이면 100개의 값을..
-
Swift - Property ObserverProgramming/Swift 2021. 10. 26. 11:18
안녕하세요 Beepeach입니다 :) 오늘은 Property Observer(프로퍼티 감시자)에 대해서 공부해보도록 하겠습니다. Property observer는 프로퍼티 값이 변할 때 원하는 작업을 할 수 있도록 하는 기능입니다. 단어처럼 프로퍼티를 감시하고 있다가 값이 변할 때 호출됩니다. Property observer는 세 가지 경우에만 사용할 수 있습니다. Stored Property 상속받은 Stored Property 상속받은 Computed Property (Inheritance(상속)에 대해서는 이후에 자세히 다루겠습니다.) 상속받지 않은 computed property는 setter에서 기능을 구현하면 되므로 observer가 필요 없습니다 그리고 let으로 선언된 프로퍼티에는 선언할 ..
-
Swift - Computed PropertyProgramming/Swift 2021. 10. 25. 14:59
안녕하세요 Beepeach입니다 :) 오늘 공부해볼 주제는 Computed Property(연산 프로퍼티)입니다. Computed property는 class, struct, enum에서 사용할 수 있습니다. 그리고 실제로 값을 저장하지 않습니다. 그 대신에 다른 값들을 이용하고 계산하여 프로퍼티 값을 반환하거나 간접적으로 설정할 수 있습니다. 왜 사용할까?? 다른 값을 이용하여 적절한 값을 반환해주고 간접적으로 프로퍼티의 값을 설정한다... 생각해보면 메서드로도 가능한 작업입니다. 그럼 왜 computed property를 사용하는 걸까요?? 메서드로 이 작업을 하려면 값을 반환해주는 메서드 1개, 값을 설정해주는 메서드 1개 이렇게 2개의 메서드가 필요합니다. 하지만 computed property를..