분류 전체보기
-
객체지향 생활체조 9가지카테고리 없음 2021. 3. 29. 15:46
The ThoughtWorks Anthology 챕터중 객체지향생활체조부분 절차지향적인 코딩이 아닌 객체지향적인 코딩을 연습할 목적으로 만들어진 가이드 라인이라고 생각하면 된다. 때문에 매우 극단적이다. 책에서는 총 9가지 훈련법을 극단적으로 지켜서 1000줄짜리 코드를 짜는 연습을 하라고 되어있다. 그만큼 연습을 목적으로 이루어진 규칙이다. 때문에 처음에는 이해가 안되는 부분이 많았다. 굳이 이렇게 까지 해야하는 이유가 뭐지? 이런 규칙들은 차라리 객체지향방법에 어긋나는 것이 아닌가? 코드가 너무 낭비되는 것 아니가? 라는 생각이 들때도 많아서 읽으면서 물음표가 많았다. 쉽게 생각하면 드래곤볼의 손오공이 무거운 모래주머니 차고 움직이는 연습하는 것과 같다고 할 수 있다. 총9가지 규칙으로 이루어진 훈련..
-
3주차 피드백 정리 2 (yagom)IOS/클린코드 2021. 3. 13. 03:50
요약 : 1. 변경사항을 날려도 아쉽지 않은 만큼 (즉, 실행취소를 한다고 생각해도 허탈하지 않을 정도) or 한 문장으로 변경사항을 명확히 나타낼 수 있는 만큼 2. 코드의 길이가 길어지면 가독성을 해칠 수 있다. 따라서 가독성을 위해서 코드 길이를 늘렸다면 가독성을 해치지 않을 정도까지만 늘리자! 3. 1. 커밋은 돌아갈 수 있는 세이브 포인트와 유사하다고 생각한다고 이야기 했는데, 지금의 커밋단위는 되돌아가기 적절한 만큼의 단위일까요? -> 단위에 대해서 고민 중이 었는데 야곰의 기준을 일단 모방하고 나중에는 협업자들과 커밋단위에 대한 규칙을 세워야 될 것 같다는 생각이 듭니다. 야곰의 커밋 단위 기준을 알려주셔서 감사합니다! 2. ac8f9dc 커밋은 커밋 메시지와 다른 내용의 변경사항도 포함이 ..
-
3주차 피드백 정리 (yagom)IOS/클린코드 2021. 3. 9. 08:37
메서드를 나누는 기준은 '한 가지 동사로 이름을 나타낼 수 있는가'이다. guard는 이곳을 지나가는 필수조건인 경우에 사용한다. 반대로 if는 부가적으로 조건을 따져 수행할 일에 대해 사용한다. switch는 좋은점도 있지만 단점도 많습니다. default도 그 질문의 연장선인 것 같아요. 본인이 작성한 코드만으로 결론이 잘 나지 않는다면 검색해보면 더 좋은 글들을 많이 마주해 볼 수 있을것 같아요. 프로퍼티의 이름은 명사형으로 지을 것! 메서드의 이름은 동사형으로 지을 것! 중복된 단어를 사용하지 않도록 주의할 것! 문자열 상수를 로직 코드에서 최대한 사용하지 말 것! 어떤 수가 의미하는 바를 알도록 코딩할 것! 조건문안에 조건문이 들어가면 가독성에 좋지 않고 중복될 수 있는 조건이 생길여지가 크므로..
-
2주차 피드백 정리 (붱이)IOS/클린코드 2021. 3. 9. 08:09
while문은 조건에 따라 반복을 수행하는 구문이에요 while (condition) { // do something } 항상 condition을 true로 설정하면 while true 까지만 읽었을 때는 이 구문은 무한히 반복된다고 오해할 수 있을 것 같아요. 대신 var isContinue: Bool while isContinue { // do something } 과 같은 형태로 condition을 잘 이용하면 특정 조건에 따라 반복되는 것이라는 걸 명시적으로 잘 표현할 수 있을 것 같아요 computer의 number가 random으로 결정된다는 사실까지 변수명에 표현하고 있군요. 자세한 설명이 될 수 있겠지만, 우리가 표현하고자 하는 의도를 명확하고 간결하게 네이밍해보는 건 어떨까요? 주석으로 ..
-
앱 개발 기록 5. AlamofireIOS/프로젝트 2021. 3. 3. 03:33
Alamofire는 iOS의 REST API 통신을 지원해주는 라이브러리이다. 기본 Url 뒤에는 ?을 사용하여 기본인자 정보들을 적고, 기본인자사이에는 &을 붙여 구분지어준다. 그러나 제공하는 api마다 상세한 방식은 다를 수 있으니, doc을 꼭 읽어봐야 한다. ex: api.openweathermap.org/data/2.5/weather?id=1835847&appid=b39aeb1e660919371efad86125f1a70d&units=metric&lang=kr api.openweathermap.org/data/2.5/weather (기본 URL) ? (기본URL과 기본인자를 구분하기 위한 특수문자) id=1835847 (기본 인자) & (기본인자를 구분하기 위한 특수문자) appid=b39aeb1..
-
앱 개발 기록 4. RESTIOS/프로젝트 2021. 3. 1. 22:03
REST란 REST는 HTTP 프로토콜로 데이터를 전달하는 프레임워크이다. 단순한 HTTP 요청과 그 결과를 단순한 XML등의 포맷으로 돌려주는 구조이다. UDDI를 통해 등록하고, 탐색하는 등의 과정을 거치는 SOAP기반 서비스와 다르게, REST는 중간 매개체 없이 리소스제공자가 직접 리소스 요청자에게 제공을 할 수 있어, 간단하다. REST원리를 따르는 시스템을 종종 RESTful이라는 용어로 지칭(거의 같은의미로 봐도 된다.) 장점 : SOAP보다 처리(및 개발)가 쉽다. (RESTful웹서비스는 인터넷 서비스업체들이 응용개발자들에게 손쉬운 데이터제공을 목적으로 시작되었다.) 단점 : SOAP와 반대로 표준규격이 부족하여 함축적이지 않고 안정성이 덜하다. API를 처음 접하는 사람입장에서, SOA..
-
앱 개발 기록 3. HTTP 메서드 : GET, POST, PUT, PATCH, DELETEIOS/프로젝트 2021. 3. 1. 21:24
HTTP Method란 HTTP Method란 정의적으로 해석하면 다음과 같습니다. 클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식. 쉽게 말하면 서버에 요청을 보내는 방법 입니다. 메소드 설명 GET 요청받은 URI의 정보를 검색하여 응답한다. POST 요청된 자원을 생성(CREATE)한다. PUT 요청된 자원을 수정(UPDATE)한다. PATCH PUT과 유사하게 수정(UPDATE)할 때 사용한다. PATCH는 해당자원의 일부를 교체하는 의미로 사용. DELETE 요청된 자원을 삭제 한다. HEAD 메세지 헤더를 취득한다. OPTIONS 제공하고 있는 메소드를 문의한다. Method GET 서버에게 Resource를 보내도록 요청하는데 사용 (..
-
앱 개발 기록 2. 카카오톡 소셜 로그인 구현하기IOS/프로젝트 2021. 3. 1. 04:15
시작하기 전에 카카오 로그인은 사용자를 인증하고 토큰을 발급하는 기능입니다. 토큰은 액세스 토큰(Access Token)과 리프레시 토큰(Refresh Token) 두 종류입니다. 액세스 토큰은 사용자 정보 기반의 API를 호출하는 데 쓰이고, 리프레시 토큰은 일정 기간 동안 사용자 인증 절차를 거치지 않고도 액세스 토큰을 갱신할 수 있도록 해 주는 역할입니다. 토큰은 OAuth 2.0 사양에 따라 다음 절차를 거쳐 발행됩니다: 카카오계정 인증 사용자 동의(이미 동의한 경우 건너뛰기) 인가 코드(Authorization Code) 발급 인가 코드로 토큰(OAuthToken) 발급 1단계에서 사용자의 카카오계정을 인증하는 방식에 따라, iOS SDK를 사용한 카카오 로그인 구현 방법은 두 가지로 나뉩니다:..