본문 바로가기

전체 글97

사당 iOS 스터디 2주차 - 구조체와 클래스 구조체와 클래스는 프로그래머가 데이터를 용도에 맞게 묶어 표현하고자 할 때 유용구조체의 인스턴스는 값 타입이고, 클래스의 인스턴스는 참조 타입스위프트의 데이터 타입과 열거형은 모두 값 타입소스파일 하나에 여러 개의 구조체와 여러 개의 클래스를 정의하고 구현해도 문제가 없습니다.구조체 안에 구조체, 클래스 안에 클래스 등과 같이 중첩 타입의 정의 및 선언이 가능__9.1 구조체9.1.1 구조체 정의구조체를 정의한다는 것은 새로운 타입을 생성해주는 것과 마찬가지 대문자 카멜케이스를 사용하여 이름을 지어줍니다. 9.1.2 구조체 인스턴스의 생성 및 초기화구조체에 기본 생성된 이니셜라이저의 매개변수는 구조체의 프로퍼티 이름으로 자동 지정 인스턴스가 생성되고 초기화된 후 프로퍼티 값에 접근하고 싶다면 마침표(.).. 2018. 7. 23.
사당 iOS 스터디 1주차 - 옵셔널 스위프트의 특징 중 하나인 안전성(safe)을 문법으로 담보하는 기능‘변수나 상수 등에 꼭 값이 있다는 것을 보장할 수 없다. 즉, 변수 또는 상수의 값이 nil일 수도 있다’는 것을 의미__8.1 옵셔널 사용변수 또는 상수에 정말 값이 없을 때만 nil로 표현오류가 발생하는 nil 할당값이 없는 옵셔널 변수 또는 상수에 (강제로) 접근하려면 런타임 오류가 발생합니다. 그렇게 되면 OS가 프로그램을 강제 종료시킬 확룰이 매우 높습니다. 옵셔널 변수의 선언 및 nil 할당옵셔널 변수 또는 상수 등은 데이터 타입 뒤에 물음표(?)를 붙여 표현 __8.2 옵셔널 추출8.2.1 강제 추출런타임 오류의 가능성을 항상 내포하기 때문에 옵셔널 강제 추출(Forced Unwrapping) 방식은 사용하는 것을 지양 8.. 2018. 7. 23.
사당 iOS 스터디 1주차 - 함수 __7.1 함수와 메서드구조체, 클래스, 열거형 등 특정 타입에 연관되어 사용하는 함수를 메서드모듈 전체에서 전역적으로 사용할 수 있는 함수를 그냥 함수__7.2 함수의 정의와 호출스위프트의 함수는 재정의(오버라이드)와 중복 정의(오버로드)를 모두 지원7.2.1 기본적인 함수의 정의와 호출매개변수 함수를 정의할 때 외부로부터 받아들이는 전달 값의 이름 예 hello(name: “Jenny”) 전달인자 전달인자(Argument), 혹은 인자는 함수를 실제로 호출할 때 전달하는 값 예 hello(name: “Jenny”) 7.2.2 매개변수함수를 호출할 때, 매개변수 이름을 붙여주고 콜론(:)을 적어준 후 전달인자를 보내준다 매개변수 이름과 전달인자 레이블 매개변수 이름(Parameter Name) 호출 시.. 2018. 7. 23.
사당 iOS 개발 스터디 모집합니다. [1차 마감] 안녕하세요 :)iOS는 웹개발과 달리 혼자서 배우기가 참 힘든것 같습니다.그래서 스터디인원을 모집해서 함께 iOS 개발을 배우고자 합니다.Objective-C와 Swift의 문법을 우선 배우고 Swift의 각종 라이브러리를 익힐 생각입니다.이후 고급과정은 스터디 진행하면서 가닥을 잡아서 커리큘럼에 추가할거고요.또한 각종 정보공유와 기타 개발관련 지식향상도 할 수 있었으면 합니다!자세한 계획은 첨부된 사진을 봐주세요.참여를 원하시는 분께서는 카카오톡 계정 wer0222 로 이름, 거주지, 직업, 기술수준을 알려주세요!!!!시간, 장소, 스터디 진행 방식 등은 상의를 통해 조정될 수 있는 부분입니다.많은 참여 기다리겠습니다!!! 부담없이 연락주세요 ^ ㅡ ^ ( 1차 마감되었습니다. 2차는 10월 계획중입니.. 2018. 7. 4.
FireBase로 iOS 채팅앱 만들기 8일차 4일차13강 : 말풍선Chat Bubble2, 키보드Keyboard 만들기14강 : 대화방 리스트(Chat Room List) 만들기 - 1 5일차15강 : 대화방 리스트(Chat Room List) 만들기 - 216강 : 메세지에 보낸 시간(TimeStamp) 만들기17강 :채팅방리스트에 채팅방 이동 이벤트 및 TimeStamp 만들기 6일차18~20강 : 푸시 메세지 만들기(Make Push Notification) 7일차21강 : 상태메세지(ConditionMessage)를 위한 AccountView 만들기22강 : 상태메세지(ConditionMessage)를 위한 AlretDialog 만들기23~25강 : 메세지 읽음표시(Message Reading Checker) 만들기26강 : 단체 채팅방(G.. 2018. 4. 19.
앱스토어에 실제 앱을 배포하기 위한 준비 - Certificates, Identifiers & Profiles 애플 앱스토어에 실제 앱을 배포하거나 사전 등록된 기기 몇 대에만 배포하여 테스트하기 위해서는 인증서와 Provisioning Profile이 필요합니다. (애플 개발자 프로그램 결제 필수) 오늘은 제가 이것들을 만들기 위해 방법을 좀 찾아봤는데 관련정보가 그리 많지 않은 것 같습니다.그래서 만들면서 방법을 같이 포스팅하게 되었습니다.인증서 만들기, App IDs, 디바이스 등록, 프로파일 만들기, 프로파일 적용하기 순으로 설명드리겠습니다. 1. 인증서(Certificates) 만들기 '키체인 접근' 앱 실행.메뉴 > 인증서 지원 > 인증 기관에서 인증서 요청... 디스크에 저장됨, 본인이 키 쌍 정보 지정 체크후 다음. 다음을 누르면 인증서를 다운로드합니다. 다운받은 인증서를 실행하면 다음과 같이 키가.. 2018. 4. 12.
무료 성격유형검사 | 16Personalities 당신의 성격 유형은 : “논리적인 사색가” (INTP-t) 마음 외향형 내향형 23% 77% 에너지 직관형 현실주의형 76% 24% 본성 이성적사고형 원칙주의형 67% 33% 전술 계획형 탐색형 40% 60% 자아 자기주장형 신중형 8% 92% “어제로 부터 배우고, 오늘을 위해 살고, 내일을 희망하십시오. 중요한 것은 질문을 멈추지 않는 것입니다.” —알버트 아인슈타인 INTP 유형은 전체 인구의 3% 정도를 차지하는 꽤 흔치 않은 성격 유형으로, 이는 그들 자신도 매우 반기는 일입니다. 왜냐하면, INTP 유형 사람보다 '평범함'을 거부하는 이들이 또 없기 때문입니다. 이 유형의 사람은 그들이 가진 독창성과 창의력, 그리고 그들만의 독특한 관점과 왕성한 지적 호기심에 나름의 자부심을 가지고 있습니다... 2018. 4. 12.
highlight.js로 티스토리 소스코드 하이라이트 좀 더 예쁘게 넣기 .js 파일 한개와 .css 파일 한개만 있으면 highlight.js로 티스토리 블로그에 소스코드를 넣을 수 있습니다.다만 기본으로 제공하는 수십개의 테마가 있는데 저는 다 마음에 들지가 않더라고요.그래서 css를 살짝 손봐서 더 예쁘게 나오게 했습니다. 이렇게요 ^^ import Foundation // 스위프트 소스코드 예시입니다. @objc class Person: Entity { var name: String! var age: Int! init(name: String, age: Int) { /* /* ... */ */ } // Return a descriptive string for this person func description(offset: Int = 0) -> String { retur.. 2018. 4. 11.
티스토리 배경음악 용으로 심플하게 만든 Wikplayer Skin 지금 블로그 우하단에 재생되고 있는 스킨인데요.실제로 스킨을 적용하면 우상단에 적용됩니다.그냥 간단하게 저런 디자인을 원했는데 찾아보니까 대부분 블로그 윗줄을 다 차지하면서 보기안좋은 스킨들 뿐이더라고요.맘에 드는게 없어서 그냥 하나 만들었습니다. ^^그럼 적용방법을 알려드릴게요. 1. css파일을 다운받고 적용하고 싶은 티스토리 블로그 html/css편집에 들어가서 파일업로드를 해줍니다. 2. 업로드한 파일을 오른쪽 클릭하고 링크복사합니다 3. wikplayer에서 1 ~ 4단계를 진행하시면 되는데 2단계 스킨선택에서 '커스텀 스킨'을 선택하고 이곳에 복사한 링크를 붙여넣습니다. 4. 1 ~ 4단계를 마치면 나오는 스크립트를 복사하여 블로그 html편집으로 이동, 태그 바로 아래에 붙여넣고 저장합니다... 2018. 4. 10.
Mindfulness (마음챙김 명상) 지침서 집중력 저하는 잡념에서 비롯됩니다이 쓸데없는 잡념을 없애는 데 큰 도움을 주는 마인드풀니스의 핵심은 바로 이겁니다 '지금, 여기에 집중하는 것' 무의식적으로 하던 내 행동을 스스로 '인지'하는 것입니다 뇌의 모든 피로와 스트레스는 지난 일에 연연하고앞으로 일어날 일에 불안해하는 것에서 시작되는데, 그럴 때일수록 '지금 여기에 있는 나'에게 더욱 집중해야 합니다 마인드풀니스의 대표적 방법은 이겁니다 '호흡에 집중하기' 내 호흡에 진지하게 주의를 기울여 보세요그러면 알게 될 겁니다호흡 하나하나의 깊이와 들숨과 날숨의 온도가 모두 다르다는 것을. 얼마 지나지 않아 다른 생각이 떠오르게 되면 그때 이렇게 생각해 보세요 '지금 생각이 떠오르는구나' 그리고 다시 호흡에 집중하는 겁니다서두르지 말고 천천히 말이죠 호.. 2018. 4. 9.
Firebase DB에서 데이터를 가져올때 setValuesForKeys 메소드 오류 해결 Firebase DB에서 데이터를 가져올때 setValuesForKeys 메소드에서 오류가 발생했습니다.반나절이상 헤메다가 발견한 해결법은 의외로 정말 간단했습니다. 다음은 Firebase DB의 변경사항을 관찰하고 있다가 데이터를 실시간으로 받아오는 observe메소드를 이용한 코드입니다.가져온 데이터를 딕셔너리로 받아서 만들어 놓은 클래스에 객체로 집어 넣는 기능을 하는 메소드가 바로 setValuesForKeys이고 바로 여기서 에러가 발생했습니다. func observeDB() { Database.database().reference().child("users").observe(DataEventType.value, with: {(DataSnapshot) in self.array.removeAll(.. 2018. 4. 9.
유용한 Git 명령어 모음 로컬 저장소에서 해당 폴더 삭제, 실제 폴더를 지우는게 아니라 원격 저장소에 commit된 히스토리 내역만 지우는것이다.git rm -r --cached 기존의 히스토리 삭제rm -rf .git 아래 명령으로 "feature_x"라는 이름의 가지를 만들고 갈아탑니다.git checkout -b feature_x 아래 명령으로 master 가지로 돌아올 수 있어요.git checkout master 아래 명령으로는 가지를 삭제할 수 있어요.git branch -d feature_x 여러분이 새로 만든 가지를 원격 저장소로 전송하기 전까지는 다른 사람들이 접근할 수 없어요.git push origin 다른 가지에 있는 변경 내용을 현재 가지(예를 들면, master 가지)에 병합하려면 아래 명령을 실행하세요.. 2018. 4. 9.
Cocoapod 완전히 리셋하는 방법 1. rm -rf ~/Library/Caches/CocoaPods 2. rm -rf Pods 3. rm -rf ~/Library/Developer/Xcode/DerivedData/* 4. pod deintegrate 5. pod setup 6. pod install 2018. 4. 9.
유용한 Cocoapod 명령어 모음 기존의 히스토리를 삭제할때rm -rf pods 지원하는 라이브러리가 있는지 검색합니다.pod search 라이브러리명 모든 포드를 지웁니다.pod cache clean --all 2018. 4. 9.
프로젝트에서 Cocoapod 문제 발생시 제거하고 다시 pod을 설치하는 방법 프로젝트 경로의 Podfile.lock, xcworkspace 및 Pods 폴더를 삭제하고 pod를 다시 설치해야 합니다. sudo rm Podfile.lock sudo rm -r [프로젝트명].xcworkspace sudo rm -r Pods pod install +팁 프로젝트에 Pod을 다시 설치하기 전에 Xcode를 클린(Cmd + Shift + K) 혹은 빌드(Cmd + B) 해보면 Pod이 정상작동하는 경우가 다반사입니다. 2018. 4. 9.
좋은 개발자가 되는 방법 우연히 좋은 글을 발견했습니다.'흔하지 않고 좋은 웹 개발자가 되는 방법'웹 개발자에 국한되지 않고 모든 개발자, 특히 저처럼 신입초보 개발자에게 좋은 내용을 많이 담고 있습니다.블로그 운영자가 해외 기사를 번역한 것인데 내용을 간추려 보자면 1. 특정 기술을 숙달하는 것은 스프린트가 아니라 마라톤입니다.2. 누군가에게 도움을 요청하기 전에 최대한 스스로 먼저 해보세요.3. 호기심 가지기4. 항상 성장하기5. 문제 해결의 달인 되기비 기술적인 부분들을 간과하지 마세요.6. 다른 사람에 대한 공감 능력 기르기7. 수동적이지 않고 능동적으로 행동하기 좋은 개발자가 되기 위해서 이렇게 일곱가지 만이라도 잊지않고 잘 지켜야겠습니다. ^ ___ ^ 2018. 4. 9.
FireBase로 iOS 채팅앱 만들기 3일차 '하울의 코딩 채널'이라는 유투브 채널에서 Firebase를 배우고 있습니다.swift를 접한지 얼마되지 않았고 swift로 각종 라이브러리를 사용해서 앱을 만들어 보기는 처음인데확실히 실력이 늘고 있는것 같아요.열심히 하다보면 언젠가 저도 강의하시는 이분처럼 고수가 될 날이 오겠죠? 몇일동안 시행착오가 조금 많았는데 점점 적응이 되가는지 오늘은 큰 어려움없이 진도를 진행했습니다.오늘은 친구목록, 채팅방 DB 만들기, 메시지 보내기, 메시지 채팅방에 나타내기, 말풍선 만들기를 진행했고내일은 채팅방의 말풍선, 키보드 만들기, 채팅방 목록, 메시지의 타임스탬프, 채팅방 목록에서 채팅방 이동하는 것까지 진행할 예정입니다. 그리고 오늘부터 앞으로 배운내용을 매일 github에 올릴겁니다.github사용법을 확실.. 2018. 4. 9.