본문 바로가기

전체 글

(132)
[TIL]연습을 실전처럼 기억보단 기록을 - 함수명은 직관적인 이름인가 ? - 함수내 코드가 5줄 미만인가 ? - 함수형 프로그래밍에 대해서 책을 고민해보자 - 과연 내코드는 재사용성이 존재한가 ? - 확장성을 가질 수 있는코드인가 ?
[Swift] API Design Guidelines 읽어보기 프로그래밍에서 가장 중요하면서도 시간이 많이 투자가되는 네이밍과 규칙들을 알아보자. 영문번역을 직접시도하면 좋았으나 시간이 오래걸려 번역본글을 참고했다. - 사용 시점을 명확하게 하는것이 가장 중요한 목표이다. 메서드와 프로퍼티같은 요소들은 반복되서 사용되지만 한번만 선언된다. 용도가 명확하고 견결하게 API를 설계한다. 설계를 평가할때, 선언된 것을 읽는 것으로 충분하지 않다. 맥락이 명확히 보이는지 확인하기 위해 항상 사례를 검토한다. - 명확한 것은 간결한 것보다 중요하다. Swift는 코드를 간결하게 할 수 있지만, 가장 적은 문자들로 가장작은 코드가 가능하지만 그게 목표가 아니다. Swift코드의 간결함은 강한 타입 시스템의 부작용이 발생하고 자연스럽게 상용구를 줄이게 해준다. - 모든 선언에 ..
[Git] There was a problem with the editor 'vi'. 오류 해결 평소처럼 깃 add. 를 하고 commit을 진행하느데 이러한 에러가 발생했다. git status를 확인해보니 수정이되어있다고 확인(빨간색)되지않고 초록색으로 나와있다. 그리고 push를 해보니 모든게 업데이트 되있다고 나와 당혹스럽다 그래서 바로 구글에 검색해보았다. hint: Waiting for your editor to close the file... error: There was a problem with the editor 'vi'. Please supply the message using either -m or -F option. https://github.com/VundleVim/Vundle.vim/issues/167 Git Commit Problem: "error: There was a..
[Git] 자주 사용되는 Git용어 정리 Git 배우는 사이트 유용하다... https://learngitbranching.js.org/?locale=ko Learn Git Branching An interactive Git visualization tool to educate and challenge! learngitbranching.js.org 카테고리 - 설정과 초기화 - 기본적인 사용법 - 브랜치 - Git 이력 - 원격 저장소 # 설정과 초기화 - 전역 사용자명/이메일 구성하기 git config --global user.name "my name" git config --global user.email "my email address" - 저장소별 사용자명/이메일구성하기(해당 저장소 디렉토리로 이동후) git config user.na..
[Swift]접근 제어(Access Control)를 알아보자 주의 : 배우는 과정이기에 정확하지않는 정보가 있을 수 있습니다. 접근제어란? 코드끼리 상호작용을 할때 파일간 또는 모듈간에 접근을 제한할 수 있는 기능 접근제어 - 접근제어 - 접근제어의 필요성 - 모듈과 소스파일 - 접근수준 - 접근제어 구현 참고사항 - private 와 fileprivate - 읽기 전용 구현 - 포인트 정리 - 궁금증 접근제어 객체지향 프로그래밍 패러다임에서 은닉화는 중요한 개념중 하나이다. 이번장에서 이를 구현하기 위한 핵심 기능인 접근제어에 대해 알아보자 접근제어란? 접근제어는 코드끼리 상호작용을 할때 파일간 또는 모듈간에 접근을 제한할 수 있는 기능이다. 접근제어를 통해 코드의 상세구현은 숨기고 허용된 기능만 사용하는 인터페이스를 제공할 수 있다. 접근제어의 필요성 객체지향..
[Swift] 인스턴스 생성과 소멸을 알아보자 주의 : 배우는 과정이기에 정확하지않는 정보가 있을 수 있습니다. 인스턴스 생성과 소멸 - 인스턴스 생성 - 프로퍼티 기본값 - 이니셜라이저 매개변수 - 옵셔널 프로퍼티 타입 - 상수 프로퍼티 - 초기화 위임 - 실패 가능한 이니셜라이저 - 인스턴스 소멸 - 포인트 정리 - 궁금증 인스턴스 생성과 소멸 구조체와 클래스 생성할 때는 지금까지 기본 이니셜라이저를 사용해 인스턴스를 생성했다. 초기화는 클래스나 구조체 또는 열거형의 인스턴스를 사용하기 위한 준비 과정이다. 초기화가 완료된 인스턴스는 사용 후 소멸시점이 오면 소멸합니다. 이번 장에서는 인스턴스를 생성하는 방법과 클래스의 인스턴스가 소멸할 때 어떤 프로세스가 진행되는지 알아보자. 클래스 인스턴스의 소멸 시점은 ARC에서, 클래스의 이니셜라이저와 이..
[Swift]프로퍼티와 메서드 알아보기 2부(Feat. 고차함수) 주의 : 초보이기에 정확하지않는 정보가 있을 수 있습니다. 프로퍼티와 메서드 알아보기 2부 - 타입 프로퍼티(Type Propertie) - 키 경로(KeyAndPath) - 메서드(Method) - 인스턴스 메서드(Instance Method) - self프로퍼티 - 타입 메서드(Type Method) - 포인트 정리 - 궁금증 타입 프로퍼티 이제까지 알아본 프로퍼티 개념은 모두 타입을 정의하고 해당 타입의 인스턴스가 생성되었을때 사용할 수 있는 인스턴스 프로퍼티이다. 인스턴스 프로퍼티는 인스턴스를 새로 생성할 때마다 초깃값에 해당하는 값이 프로퍼티의 값이 되고, 인스턴스마다 다른 값을 지닐 수 있다. => 인스턴스 프로퍼티는 생성시 독립적인 형태이며 여러개를 생성하여 각각 다른 값으로 활용할 수있다...
[Swift]프로퍼티와 메서드 알아보기 1부 주의 : 영문서 번역 중 오역이 있을 수 있으며 정확하지않는 정보가 있을 수 있습니다. 프로퍼티와 메서드 알아보기 1부 - 프로퍼티(Propertie) - 저장 프로퍼티(Stored Propertie) - 지연 저장 프로퍼티(lazy Stored Propertie) - 연산 프로퍼티(Computed Propertie) - 프로퍼티 감시자(Propertie Observerse) - 전역변수(Global Variable)와 지역변수(Local Variable) 프로퍼티는 클래스, 구조체 또는 열거형 등에 관련된 값을 뜻한다. 메서드는 특징 타입에 관련된 함수를 뜻한다. 우리가 앞서 봤던 변수나, 상수 등이 어떤 목적으로쓰이냐, 어디에서 어떻게 쓰이냐에 따라 용어가 조금씩 달라진 뿐이다. 프로퍼티 해석) "프..
[Swift]클래스와(class)와 (struct) 구조체를 알아보자 주의 : 영문서 번역 중 오역이 있을 수 있으며 정확하지않는 정보가 있을 수 있습니다. 구조체와 클래스 - 구조체 - 클래스 - 클래스 인스턴스 생성과 초기화 - 클래스 인스턴스 소멸 - 구조체와 클래스의 차이 - 값 타입과 참조타입 - 스위프트의 기본 데이터 타입은 모두 구조체 - 구조체와 클래스 선택해서 사용하기 공식문서에서 소개하는 구조체와 클래스 " Structures and classes are general-purpose, flexible constructs that become the building blocks of your program’s code " => 구조체와 클래스는 프로그램코드의 빌딩 블록이 되는 유연한 범용구조이다. 구조체와 클래스는 프로그래머가 데이터를 용도에 맞게 묶어 표..
[Swift]옵셔널(Optional)에 대해 알아보자! 주의 : Swift프로그래밍 3판 야곰책을 참고했으며 배우는 과정이기에 오탈자나 정확하지않는 정보가 있을 수 있습니다. 카테고리 - 옵셔널 - 옵셔널 사용 - 옵셔널 추출 - 옵셔널 바인딩 - 암시적 추출 옵셔널 옵셔널 옵셔널은 스위프트의 특정 중 하나인 안정성을 문법으로 담보하는 기능이다. 기존에 C언어나 Objective-C 에서는 찾아볼 수 없었던 콘셉트 이기도하다. 옵셔널은 단어 뜻 그대로 '선택적인', 즉 '값이 있을수도, 없을 수도 있음'을 나타내는 표현이다. 이는 '변수나 상수 등에 꼭 값이 있다는 것을 보장할 수 없다. 즉, 변수 또는 상수의 값이 nil일 수도 있다' 는 것을 의미한다. 그리고 옵셔널이 아닌 값을 철저히 다른 타입으로 인식하기 대문에 컴파일할때 바로 오류를 걸러낼 수 있다..