Tumgik
minzkweon · 9 years
Text
[후기] Samsung Software Track
Tumblr media
일단 불합격이다.
농담삼아 '어짜피 나중에 떨어질거면 1차에서 떨어져라!'라고 했었는데 진짜 떨어지니까 뭔가 씁쓸하다ㅋㅋㅋㅋ
덕분에 뭐가 패인인 지에 대해서 생각해봤고, 자아성찰의 시간을 가졌다ㅠㅠ
불합격 요인들을 생각해봤다.
1. 어학성적
지원서를 작성하다보니까 어학성적이 없었다. 어학성적이 없어도 지원은 가능했지만, SST 수료 후 최종합격 시에는 어학성적이 있어야 한다. 이게 가장 큰듯 
2. 자격증
자격사항 - 1종보통
3. 성적
최소 3.4이상인데 3.78의 성적
0 notes
minzkweon · 9 years
Text
소소한 재미
요즘 Github Pattern 채우는 재미가 들려서 꿀잼보따리 레포에 1일 1유머를 하고있다.
그외에도 꾸준히 Git을 사용하다보니 어느새 그럴듯한 패턴이 완성되었다!
Tumblr media
앞으로도 꾸준히!
1 note · View note
minzkweon · 9 years
Text
[Realm] Migration
로컬 디비로 Realm을 사용하고있는데 아무리해도 마이그레이션이 호출이 안되서 포기할때 쯤 구조상 DataManager 싱글톤모델로 MigrateV1toV2라는 메소드로 마이그레이션하는 구조였는데 예제 소스에 // Inside your [AppDelegate didFinishLaunchingWithOptions:] 라는 구문을 보고 MigrateV1toV2를 [AppDelegate didFinishLaunchingWithOptions:]에서 부르는 게 아니라 쌩으로 부르니까 됐다... 내 오늘 하루...ㅠㅠ
0 notes
minzkweon · 9 years
Text
[Apple ID] 미국계정 만들기
http://chaosflower.com/19 보면서하면 진짜 3분만에 뚝딱! 그렇게 내 학교메일은 미국계정이되고..
0 notes
minzkweon · 9 years
Text
[Git] autocompletion branch 잔상 지우기
왜그런진 모르겠지만 가끔가다 autocompletion에 잔상이 남는다. 이미 지운 브랜치인데 있다고 착각한다던가 $ git fetch --prune --all로 지울수도 있고, git branch -a로 지우면 개꿀!
0 notes
minzkweon · 9 years
Text
[iOS] iTunes없이 App 내부 DB 파일 불러오기
어쩌다 보니 앱 로컬 DB에 값이 제대로 박혀있는 지 확인해야하는 상황이 생겼다. 근데 막상 iTunes에서 Document 파일을 추출할 수가 없게 되어있어 Realm Browser라는 장비는 있는데 정작 뜯어볼 수가 없는 상황이 되었다. 찾아보니 Xcode에 해당 기능을 지원하더라! :) 내용은 Xcode Orangizer에서 지원하는 Devices 탭에서 Device의 앱 컨테이너 파일을 받으면 appdata 확장자로 다운로드가 가능하다. 근데 처음에 폴더가 아니라 당황했으나, 패키지 내용을 열어보면 앱 내부에서 사용하는 폴더 고대로 있다! 원하는 파일을 뽑아서 확인해보면 끝! +) 시뮬레이터로도 사용가능하다. 출처 : http://stackoverflow.com/a/28465803
0 notes
minzkweon · 9 years
Text
코드를 예쁘게 쓰는법에 대해서 공부하는 데 좋은 포스트
SW_Maestro_ : 객체지향 코딩
!
텀블러 마크다운 개극혐 ㅡㅡ (태그가 안먹힘)
코드를 깨끗하게 짜는법에 대해 공부해보자.
깨끗한 코드란?
깨끗한 코드란?
그레디 부치
깨끗한 코드는 잘 쓴 문장처럼 읽힌다.
데이브 토마스
특정 목정을 달성하는 방법은 여러가지가 아니라 하나만 제공한다.
마이클 페더즈
깨끗한 코드는 언제나 누군가 주의 깊게 짰다는 느낌을 준다.
론 제프리
중복 줄이기, 표현력 높이기, 초반부터 간단한 추상화 고려하기.
워드 커닝엄
코드가 그 문제를 풀기 위한 언어처럼 보인다면 아름다운 코드라 불러도 된다.
바른 코드와 좋은 코드
바른코드
바른 문법 사용에 기반
좋은 코드
의도를 문법으로 반영한 코드
접근 제어자
접근 권한
public 모든 클래스에서 접근 가능
protected 동일 패키지의 클래스
private 내 클래스 내에서만 접근 가능
~~접근 제어자 사용은?~~ (텀블러 마크다운 문법이 거지같아서 ㅠㅠ 취소선입니당)
~~public : 애매하면 이거 써라~~
~~protected : 같은 패키지에서만 쓰긴 하는데, 왠만하면 public~~
~~private : 멤버변수 만들고 getset 메소드로 감싸주긴 하는데 결국 public~~
~~final : 컴파일러가 붙이라 하면 붙이면 된다~~
접근 제어자에 숨겨진 의도?
public : 다른 의존성 고민말고 써라.
protected : 상속해서 쓰던가, 팩토리로 써라.
private : 나만 고민할거니, 넌 신경꺼라.
final : 안그래도 변수많은데, 이건 신경꺼라.
디자인 패턴
디자인 패턴
단순 위임도 패턴이다.
Decorator Pattern
Strategy Pattern
만만한 Singleton Pattern
Singleton Pattern의 법칙
생성자 static
synchronized
그냥 글로벌 변수를 둬서
static{g_thisObj = new Global();}
Singleton의 대명사 Calendar
State Pattern
Command Pattern
Observer Pattern
변수
변수는 내버려두면 계속 늘어난다
변수를 덜 사용하고 최대한 가볍게 만들어 가독성을 높임
방해되는 변수를 제거
결과를 즉시 처리하는 방식으로, 중간 결과값을 저장하는 변수를 제거
코드 흐름 제어
코드 흐름을 읽기 쉽게 만들어야 논리가 명확해진다.
if / else문의 블록 순서에 주의
긍정적이고 쉽고 흥미로운 경우가 앞쪽에 위치
삼항연산자나 do/while, goto는 코드 가독성을 떨어뜨린다.
중첩된 코드 블록의 흐름을 따라가려면 많은 집중이 필요함.
선형적인 코드 추구
함수 중간에 반환하면 중첩을 피하고 코드를 더 깔끔하게
함수 앞부분에서 ‘보호 구문'으로 간단한 경우를 미리 처리하는 방안도 고려
형식 맞추기
파일 길이는 짧아야한다.
행 길이도 짧아야 한다.
미학적인 요소 고려
한곳에서 A,B,C 순으로 언급되면, 다른곳에서 B,A,C 순으로 언급하지 마라.
의미 있는 순서를 정해라
코드 분량 줄이기
가급적이면 적은 코드를 유지
제품에 필요하지 않는 기능은 제거 (주석 처리 금물)
요구 사항을 재고해서 가장 단순한 형태의 문제를 탐색
절차적인 코드와 객체 지행 코드
객체지향이 만능인가?
객체는 동작을 공개하고 자료를 숨긴다.
기존 동작을 변경하지 않으면서 새 객체 타입 추가하기는 쉬움
기존 객체에 새 동작을 추가하기는 어려움
오류처리
null 반환과 전달
null의 의미는 두가지
정말 없는 것
없다고 표현한 것
모호성으로 인한 문제점은 셀 수 없다.
null을 반환하거나 null을 전달하지마라.
정말 null이 필요하면 optional을 고려.
점진적인 개선
2 notes · View notes
minzkweon · 9 years
Text
[Git] branch에서 특정 커밋 수정하기
$ git rebase --interactive <SHA1 Hash>^
※ 반드시 ^를 붙여야 그 커밋까지 포함되어 rebase를 진행하니 주의!
그러면 vim으로
pick <SHA1 Hash> <commit message>  pick <SHA1 Hash> <commit message> pick <SHA1 Hash> <commit message> pick <SHA1 Hash> <commit message>
이런 식의 내용이 추가된다.
여기서 수정하고 싶은 커밋을 pick 대신 edit 으로 수정하고 저장한다.
수정할거 다하고 add 하고
$ git commit --amend
한 뒤
$ git rebase --continue
아이참 쉽다!
1 note · View note
minzkweon · 9 years
Text
[Git] origin Branch 삭제하기
$ git push origin --delete <branch_name>
이 한줄이면 더러운 그래프 걱정 끝!
0 notes
minzkweon · 9 years
Text
[Cocoapods] Errono::EACCES - Permission Denied
$ chown -R ‘<username>’ ~/Library/Caches/CocoaPods/
$ chown -R ‘<username>’ ~/.cocoapods
여기서 말하는 <username>은 디바이스(맥북) 이용자 계정의 이름이다.
안그러면 illegal 에러뜸!
0 notes
minzkweon · 9 years
Text
[Git] Add할 파일 중 변경사항을 선택해서 Add
$ git add <File_Name> -p
$ git diff 한 것처럼 변경사항마다 Add할 건지 물어본다.
0 notes
minzkweon · 9 years
Text
[Cocoapods] Private Repo의 Pod 추가하고 install & update 에러
pod repo add 한 뒤
pod install을 하면 아래와 같은 에러를 뿜는다.
[!] Unable to find a specification for `BLAHBLAHBLAH (= 0.9.10)`
그러면 Podfile에다
source 'https://github.com/CocoaPods/Specs.git' source 'https://user:pass@domain:1234/git/PodSpecs/Specs.git'
를 추가해주면 해결!
0 notes
minzkweon · 9 years
Text
[Git] .gitconfig에서 log grpah설정
$ vi ~/.gitconfig 로 global한 configuration을 수정할 수 있다.
[alias]
        lg1 = log --graph --all --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(bold white)— %an%C(reset)%C(bold yellow)%d%C(reset)' --abbrev-commit --date=relative
0 notes
minzkweon · 9 years
Text
[Git] branch rename
$ git branch -m <old_name> <new_name>
나는 global configuration에 bm으로 지정해서 사용한다.
0 notes
minzkweon · 9 years
Text
[Git] Forked repo에서 main repo remote 추가
$ git clone <forked repo git URL>
$ git remote add <remote branch name> <main repo git URL>
하고
$ git remote -v
로 branch들 확인하고
$ git fetch <remote branch name>
0 notes
minzkweon · 9 years
Text
[Git] flow start 주의사항
$ git flow feature start <feature name>
을 사용하여 feature branch를 새로 파기 전 주의사항
1. 항상 develop Branch로 Checkout해야한다.
2. develop Branch는 Main Branch (master) 최신내용으로 유지한다.
0 notes
minzkweon · 9 years
Text
[Git] Conflict 관리
Case : rebase 하던 도중에 Conflict가 발생했을 경우
Conflict 발생한 파일을 열면 다음과 같이 변경되어 있다.
>>>>>HEAD
<fetch 받은 내용>
===========
<내 Local에 있는 내용>
<<<<< <Commit Message>
두 내용을 보고 적절히 수정한 뒤
$ git add .
$ git rebase --continue
0 notes