분류 전체보기

함수형 프로그래밍 with. Swift
목차함수형 프로그래밍이란?순수 함수익명 함수고차 함수mapfilterreduce불변성불변성이 중요한 이유참조 투명성클로저와 익명함수와의 관계Swift 클로저함수형 프로그래밍이란?함수형 프로그래밍이란 자료처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.Alonze Church가 고안한 람다 계산법을 기반으로 한다.자세한 내용은 여기에서 확인할 수 있습니다. 함수형과 객체지향의 가장 큰 차이는 함수형은 함수 자체가 일급 객체가 되지만, 객체 지향에서는 클래스가 일급 객체가 됩니다.그럼 여기서 일급 객체가 무엇인지 알아봐야겠죠?💡 일급 객체란?일급 객체(First Class Citizen)란 다른 객체들에 일반적으로 적용 가능한 연산을 모두 지원하는 객체를..

Swift 정규표현식
목차정규표현식이란?정규식 문법swift에서 정규표현식을 사용하는 방법matching되는 부분 찾기정규표현식이란?정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어이다.이것만 봐선 잘 이해가 안가는데,문자열을 메소드로 파싱해도 되지만, 문자열이 길어지거나 복잡해지고 가변적이라면 파싱하기 매우 까다롭잖아요?문자열에서 특정 패턴에 부합하는 부분만 찾고 싶을 때 사용하는 게 바로 정규식입니다.정규식 문법문법에 대해선 많은 블로그에서 다루고 있으니 자주 사용하는 것들만 정리해보겠습니다.Charcter의미|또는()그룹[]문자셋, 괄호안의 어떤 문자든[^]첫 문자로 ^를 쓰면 괄호 내용의 부정. 즉 괄호 안에 포함되지 않는 한 문자Charcter의미?없거나 있거나 (zero or one)*..

Static Dispatch & Dynamic Dispatch
Class 상속을 공부하다가 상속은 어떻게 동작할까? 라는 급 의문이 생겨 야크쉐이빙 하게 되었고, 정리로 남겨야겠다라고 생각해 쓰게 되었습니다 허허목차DispatchStatic DispatchDynamic Dispatch타입 별 Dispatch의 차이Reference Type에서의 DispatchValue Type에서의 DispatchProtocol에서의 DispatchDispatch디스패치(Dispatch)라고 하면 GCD가 먼저 떠오르는데요.이름은 같지만 오늘 알아볼 Dispatch는 어떤 메소드를 호출할 것인지를 결정하고 실행하는 메커니즘입니다.Swift에선 Static Dispatch, Dynamic Dispatch 2가지 방식이 있습니다.이러한 Dispatch는 내가 호출할 함수를 컴파일 타임..
Heap이 Stack에 비해 느릴 수 밖에 없는 이유
Heap이 Stack에 비해 느릴 수 밖에 없는 이유"스택이 힙보다 빠르다" 라는 표현은 모호한 표현입니다.정확한 표현은 "스택에 할당된 변수에 접근하는 것이 힙에 할당된 변수에 접근하는 것보다 빠르다" 입니다.왜냐하면, 스택과 힙 모두 가상 메모리에 불과하기 때문인데요.하드웨어로 내려가면 똑같이 물리 메모리인 RAM 어딘가에 저장되어 있고, 주소를 통해 논리적으로 구분되어 있기 때문에 둘의 속도가 다를 수 없습니다.그렇다면 접근하는 속도가 왜 차이 날까?현재 사용되는 대부분의 CPU는 FP(Frame Pointer)를 두어 함수의 스택 프레임의 시작주소를 저장하고 있습니다.그리고 컴파일러는 컴파일 과정을 통해 함수의 스택 프레임 내에 변수들의 크기와 순서를 알 수 있기 때문에, 어느 위치(offset)..

네이버 부스트캠프 웹・모바일 9기 챌린지 과정 1주차 회고
⭐️ 1주차 느낀점길기도 했고 짧기도 했던 1주차가 끝이 났다.챌린지 과정은 CS지식을 기반으로 난이도 높은 미션들을 수행한다는 걸 이미 알고 있었어서, 각오를 하고 임했음에도 정말 쉽지 않았다..미션들을 언급할 수 없지만, 미션을 진행하며 나의 처참한 CS지식을 느낄 수 있었다.그리고 그와 상반되게 CS지식들을 미션에 녹여넣고 피어 세션에서 코드 리뷰를 할 때 술술 이야기하는 걸 보고 감탄만 했던 것 같다.1주차 팀원들을 언급하지 않을 수가 없는데, 정말 좋은 팀원들을 만나 행복한 일주일을 보낸 것 같다.팀마다 피어 세션 분위기가 모두 달랐다고 하는데, 개인적으로 느끼는 우리 팀 분위기는 대학교 개발 동아리같은 느낌이었다.피어 세션이 시작되면 농담도 하고 하하호호 웃으면서 진행했다. 그리고 코드 리뷰를..

메모리의 구조
메모리의 구조Stack스택은 함수에 대한 정보를 저장한다.지역 변수, 매개 변수, 리턴 값, 호출 함수 정보 등함수 호출 시 스택에 해당 함수에 해당하는 공간 (Stack Frame)이 생기고, 함수 실행이 끝나면 사라진다.컴파일 단계에서 생성과 해제를 알 수 있는 값 타입이 저장된다.컴파일 타임에 크기가 결정된다.참조 타입 중에서도 크기가 고정되어 있거나, 언제 지워야할 지 컴파일러가 미리 예측 가능한 경우 가급적 stack을 사용해 성능을 향상시킨다.Heap 에 비해 접근 속도가 빠르다.힙 영역과 스택 영역이 다른 방향을 가지는 이유스택은 항상 커널의 반대 방향으로 자라기 때문에 커널을 만나지 않는다.스택이 아무리 커져도 접근 불가 영역인 커널을 건드리지 않는다.힙 영역은 스택과 달리 새로운 데이터가..