부스트캠프

    네이버 부스트캠프 웹・모바일 9기 챌린지 과정 2주차 회고

    네이버 부스트캠프 웹・모바일 9기 챌린지 과정 2주차 회고

    ⭐️ 2주차 한 줄 요약어..? 1주차보다 할만한데..? 왜지?✏️ Learned - 배운 점나는 이번 주에 어떤 것들을 배웠나요?학습뿐만 아니라 태도나, 마음가짐 등 넓은 부분에서 배운 것들을 적어보아요!효과적으로 주장하는 법을 배웠다.모든 주장에는 논리가 뒷받침되어야하고, 논리는 배경지식으로 부터 나온다.그렇다보니 논리적으로 주장하고 싶어 지식을 많이 쌓고 싶었고, 자연스레 구현보다 학습에 비중이 커졌다.다양한 CS지식들을 흡수했다.스포가 될 수 있을 것 같아 어떤 CS지식들을 흡수했는지는 언급하지 않겠지만, 평소 얕게만 알고있던 CS지식들을 깊게 공부할 수 있는 시간이었고, 동료들과 이야기하며 더 공부할 수 있었다.💖 Liked - 좋았던 점이번 주에 나는 어떤 순간이 가장 인상 깊었나요?좋은 감..

    발행-구독 패턴(Publisher-Subscriber Pattern)

    발행-구독 패턴(Publisher-Subscriber Pattern)

    목차옵저버 패턴(Observer Pattern)이란?발행-구독 패턴(Publisher-Subscriber Pattern)이란?발행-구독 패턴의 장점발행-구독 패턴의 단점옵저버 패턴(Observer Pattern)이란?구독자 패턴을 공부하러 왔는데, 왜 옵저버 패턴이 먼저 나오냐구요? 🤔둘이 유사한 부분이 있어서 비교를 하며 설명하고자 옵저버 패턴을 먼저 간단하게 짚고 넘어가겠습니다 !가 아니라옵저버 패턴(Observer Pattern)은 객체의 상태 변화를 관찰하는 관찰자들, 즉 옵저버드의 목록을 객체에 등록하여 상태 변화가 있을 때마다 메소드 등을 통해 객체가 직접 목록의 각 옵저버에게 통지하도록 하는 디자인 패턴이다.주로 분산 이벤트 핸들링 시스템을 구현하는 데 사용된다.발행/구독 모델로 알려져 있..

    함수형 프로그래밍 with. Swift

    함수형 프로그래밍 with. Swift

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

    Swift 정규표현식

    Swift 정규표현식

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

    Static Dispatch & Dynamic Dispatch

    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는 내가 호출할 함수를 컴파일 타임..

    네이버 부스트캠프 웹・모바일 9기 챌린지 과정 1주차 회고

    네이버 부스트캠프 웹・모바일 9기 챌린지 과정 1주차 회고

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

    메모리의 구조

    메모리의 구조

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

    토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)

    토크나이저, 렉서, 파서 (Tokenizer, Lexer, Parser)

    목차컴파일러란?컴파일 과정Tokenizer & LexerParser컴파일러란?컴파일러란 고급언어로 작성된 프로그램을 번역해 기계어로된 프로그램을 만들어주는 역할을 한다. 내가 작성한 소스코드는 고급언어이며, 컴파일하여 나온 어셈블리어 파일이나 목적 파일 등이 기계어이다.컴파일 과정컴파일 과정은 빌드 과정 중 한 단계이다.컴파일 과정은 언어나 컴파일러마다 조금씩 차이가 있겠지만, 일반적으로 이런 과정을 거친다.Tokenizer & Lexer컴파일러는 구문 분석 -> 최적화 -> 코드생성 -> 링킹의 과정을 거치는데, 구문 분석 과정에서 Tokenizer, Lexer, Parser 를 차례대로 거친다.Tokenizer란 어떤 구문에서 의미있는 요소들을 의미있는 단위의 토큰으로 쪼개는 역할을 한다.Lexer는..

    M1 맥에 우분투 가상환경 설치하고 swift 설치하기!

    M1 맥에 우분투 가상환경 설치하고 swift 설치하기!

    해당 게시글은 문제 시 삭제될 수 있습니다!우분투 이미지 설치하기우분투는 Desktop 버전과 Server 버전이 있는데, Desktop이 용량이 더 큰 대신 GUI가 포함되어있다는 장점이 있어 Desktop 버전으로 설치했습니다.가상머신 설치하기UTM 삽질기록 arm 맥 설치 자료가 많아 안정성이 보장된다고 생각해 UTM을 설치해주었습니다! 새 가상머신 만들기를 선택하고Virtualize를 선택해줍니다. 리눅스 운영체제를 선택하고 설치한 우분투 이미지를 선택해줍니다. 램은 기본 4기가로 설정하고 용량또한 64기가로 설정합니다. 2시간에 걸쳐 설치한 이미지 파일이 ARM 버전이 아니었군요.. 그만 정신을 잃고 말았습니다.. 혹시나 했지만 역시 안됩니다..그래서 ARM 이미지를 다시 설치하기..