Project - Chillog

more

블로그 사용성 개선 (ver 1.7.5)

서론 아직도 많이 부족한 블로그지만 조금이라도 나아졌으면 해서 부족한 실력을 쥐어 짜 나름의 큰 업데이트를 해 봤다. 기존의 블로그는 모바일, 데스크탑, 태블릿에서 모두 동일한 인터페이스와 사용성을 가졌었다. 아직도 고민이 많이 필요한 부분이지만 태블릿부터 대화면의 장점을 충분히 활용하지 못하는 비효율적인 인터페이스를 가지고 있다고 생각해 조금 바꿔 보기로 했다. 본론 Cols, Row의 이해 이미 해당 부분은..

Chillog (Blog) 2021.07.23 0

toast ui editor 3.0이 출시되었다.

본 블로그에 탑재 된 toast ui editor (이하 tui editor)가 버전업 되었다. 대충 쓰는덴 문제가 없으나 미천한 영어실력이라 대충 내가 필요한 기능들을 이해한 대로 정리하고자 한다. 경량화 기존의 마크다운 에디터는 코드미러와 토스트마크업을 동시에 띄우고 입력되는 데이터를 다른 API들을 통해 동기화 했다고 한다. 둘이 데이터를 다루는 방식이 다르기 때문에 같은 코드를 넣더라도 한 쪽에서 이를 인식하려면 꽤나 많은..

Chillog (Blog) 2021.07.23 0

해결해야 할 문제

뷰어에서 태그를 제대로 불러 오지 못하는 문제. 뷰어와 검색창에서 태그를 제대로 불러오지 못하는 문제가 있다. 운영 초기엔 이미지 위주로 업로드 되고, 뷰어에서 이미지 태그만 보이다보니 이미지를 불러오지 못하는 문제인가 했는데, 인용구들이 비슷한 문제가 있다는 걸 최근에 알아차렸다. 뷰어는 미리보기의 형태로 제공이 되고 있어 데이터 소모를 막기 위해(알게 모르게 이 블로그는 돈을 좀 쓰고 있다.) 글자수를..

Chillog (Blog) 2021.07.23 0

Project - MemoApp

more

025 ~ 027. Dark mode, iPad support and Mac catalyst (다크모드, 아이패드 지원 그리고 맥 카탈리스트)

Dark mode 좌측 하단의 Environment Overrides의 Appearance를 통해 시뮬레이터의 다크모드와 라이트모드를 전환할 수 있다. 사진에서와 같이 현재는 다크모드로 전환해도 인터페이스상의 큰 문제는 없다. 이는 앱을 제작 할 때 대부분 기본 컬러들을 사용했기 때문인데, 이 경우 darkmode에 자동으로 대응한다. 단, 셀에서 날짜를 표시하는 레이블들이 기본 색상이 아닌 Custom Color를 사용했는데, 기존에 설정했던 LightGra..

메모앱 2021.07.30 0

022 ~ 024. Memo delete, share and Keyboard Notification (메모 삭제, 공유 그리고 Keyboard Notification)

Memo delete (메모 삭제) storyboard 뷰어의 툴바에 버튼을 추가한다. Bar Button은 위와 같이 설정하면, 모양은 쓰레기통으로, 색은 붉은 색으로 바뀐다. Flexible Space Bar Button Item은 위와 같이 버튼과 버튼 사이의 공백을 유동적으로 바꿔준다. 이후 새로 추가한 버튼을 뷰어의 컨트롤러 파일과 Action으로 연결한다. 해당 버튼을 누르면 동작할 시나리오는 삭제 확인 팝업 표시. 확인 버튼과 취소 버튼 표시. 확인..

메모앱 2021.07.30 0

018 ~ 021. DB, Memo Editing (데이터베이스, 메모 수정)

DB (데이터베이스) DB 작성 iOS 앱의 DB는 CoreData를 사용해서 만들어 진다. CoreData는 프로젝트 생성 시에 이미 활성화 해 둔 상태이고, 기본적인 내용 또한 자동으로 추가 된다. 바로 앱 이름의 '.xdatamodeld' 파일이 DB이자 CoreData 파일이다. 해당 파일은 데이터 저장 방식의 설계도 역할을 한다. 좌측 하단의 'Add Entity' 버튼을 툴러 Entity를 생성하고, 컨텐츠와 날짜를 저장 할 Attribute를 각각 생성한다. 최종..

메모앱 2021.07.27 0

Swift (2021)

173 ~ 174. Advanced Topic

Availiability Condition API 가용성을 확인하는 방법이다. 새로운 OS가 출시되면 새로운 기능을 위한 API가 추가된다. 매번 최신 API를 사용한다면 좋겠지만 현실적으로 불가능한 경우가 많다. 새 애플리케이션을 생성하면 배포 타깃은 자동으로 최신 버전으로 지정된다. 이 상태로 배포하게 되면 해당 버전보다 낮은 상태의 기기들은 이 앱을 사용할 수 없다. 따라서 최신버전 보다는 2~3 정도 낮은 버전을 타깃으로 설정한다..

Swift (2021) 2021.09.17 0
170 ~ 172. Selector, Keypath, Dynamic Access

Selector (셀렉터) Selector(셀렉터)는 UIkit에서 method를 지칭하거나, 속성의 getter나 setter를 지칭할 때 사용한다. '지칭한다.'의 의미는 호출한다는 의미가 아닌, 대상을 가리키는 특별한 인스턴스를 얻는다는 뜻이다. 이러한 인스턴스는 버튼과 메소드를 연결하거나, 제스쳐와 메소드를 연결할 때 사용한다. Syntax #selector(methodName) #selector(getter: propertyName) #selector(setter: propertyName) struct Fig..

Swift (2021) 2021.09.17 0
162 ~ 169. Error Handling (에러 처리)

Error Handling (에러 처리) 에러가 발생하면 보통 프로그램이 종료되지만, 미리 판단하여 처리하게 되면 종료를 막을 수 있다. Compiletime Error & Runtime Error (컴파일 타임 에러와 런타임 에러) 에러는 컴파일타임 에러와 런타임 에러가 있다. 컴파일 타임 에러는 대부분 문법과 관련된 에러로, 컴파일러가 제공하는 정보로 쉽게 해결할 수도 있고, 자동 수정 기능을 제공하기도 한다. 런타임 에러는 프로그램이 실행중인..

Swift (2021) 2021.09.15 0
159 ~ 161. Generics (제네릭)

Generic Function (제네릭 함수) 제네릭을 사용하면 형식에 의존하지 않는 범용 코드를 작성할 수 있다. 코드의 재사용성과 유지보수가 간편해진다는 장점이 있다. func swapInteger(lhs: inout Int, rhs: inout Int) { let tmp = lhs lhs = rhs rhs = tmp } swapInteger(lhs:rhs:) 함수는 두 개의 정수를 받을 경우 의도대로 동작한다. 하지만 정수 형태가 아니라면 에러가 발생한다. 파라미터에 지정된 값의 형태 외엔 전달 받..

Swift (2021) 2021.09.14 0
152 ~ 158. Memory, Value Type and Reference Type (메모리, 값형식과 참조형식)

Memory Basics 메모리는 0과 1을 저장하는 반도체이다. 전기가 통하면 1, 전기가 통하지 않으면 0을 저장할 수 있다. Bit 0과 1을 저장할 수 있는 가장 작은 단위를 Bit(비트)라고 부른다. Bit 0 or 1 Byte 비트 8개를 묶어서 Byte(바이트)라고 부른다. 컴퓨터 데이터 처리의 기본 단위로 사용되며, 양수만 저장 할 때는 0^8개의 경우인 0~255까지, 음수와 양수를 동시에 저장하면 -128~127까지의 범위를 저장할 수 있다. Byte M..

Swift (2021) 2021.09.14 0

iOS (2021)

219. Task Scheduling

Task Scheduling Task는 처음 생성하면 별다른 동작 없이 대기하고 있다가 resume 메서드가 호출되면 즉시 동작을 시작한다. 이는 사용자에게 즉시 필요한 데이터라면 적합한 작동 방식이다. 하지만 지금 당장 데이터가 필요한 경우가 아니라면 미리 기기의 용량을 차지하거나, 셀룰러 용량을 낭비하게 된다. Task Scheduling은 iOS가 Task의 정보를 저장하고 있다가 지정된 시점에 자동으로 다운로드하는 방식으로 동작한다...

iOS (2021) 2022.09.07 0
217. Cellular Connection

Cellular Connection 위와 같은 차이점 때문에 네트워크를 사용하는 앱의 경우 사용자가 현재 사용하는 네트워크 방식을 인지할 수 있도록 구현하는 것이 바람직하다. Reachability를 사용하면 이를 쉽게 구현할 수 있지만, 이는 애플의 권장을 벗어난 해결법이다. 애플은 'Framework가 제공하는 API로 허용 여부를 설정'하도록 권고하고 있다. Cellular 연결 설정하기 request.allowsCellularAccess = cellularSwitch.isOn re..

iOS (2021) 2022.09.07 0
216. Reachability

Reachability Reachability는 호스트의 접속 가능 상태를 의미한다. iOS는 Reachability를 네트워크 연결에 실패했을 때 상태를 진단하는 목적으로 주로 이용한다. Apple은 Reachability에 따라 요청의 진행 여부를 결정하는 것이 아닌, 상태에 상관없이 요청을 진행하고 이것이 실패하는 경우 Reachability를 사용하도록 안내하고 있다. 이외의 용도로서 기기의 '네트워크 상태'를 확인하거나 Wi-Fi 상태인지의 여부를 확인하는..

iOS (2021) 2022.09.06 0
215. Response Caching

Response Caching 항상 네트워크를 통해 작동하도록 하는 것은 매우 비효율적이다. 요정과 응답 사이에 지연이 발생하고, 많은 시스템 자원과 서버 자원을 사용한다. Cache를 사용하면 이를 조금 해소하는 것이 가능하다. 이를 위해 Cache Policy를 설정해 기본으로 제공하는 Cache Store를 사용하거나 새옵게 정의하는 것이 가능하다. Cache Policy useProtocolCachePolicy protocol 형식에 따라 기본 Cahce 정책을 사용한다...

iOS (2021) 2022.09.06 0

Algorithms (Python & Swift)

Stack #2

서론 이전에 정리했던 Stack의 구조와 동작 방식을 이해하고, 문제를 풀며 이를 응용해 본다. 본론 Q1 스택에 push 되는 값들이 오름차 수열이 되는지를 판단해, 불가하면 'NO'를 가능하다면 작업의 순서를 push는 '+'로 pop은 '-'로 출력하도록 하면 된다. Q1_Python Stack class Stack2(): class Empty(Exception): pass def __init__(self): self.stk = [] def is_empty(self) -> bool: return not self.stk def push(self,..

알고리즘 (Python) 2022.06.23 0
Stack #1

Stack 구조 Stack은 기본적으로 위와 같이 출구와 입구가 하나인 구덩이의 모습을 한다. 폰 스택(phone stack) 놀이와 같이 바닥에 깔려 있는 내 전화에서 벨이 울린다고 위에 있는 다른 전화를 건들지 않고 내 것만 쏙 빼서 확인할 수 없다. Stack도 마찬가지이다. 가령 index 4에 접근하기 위해서는 7, 6, 5를 순서대로 접근한 후에야 4에 접근할 수 있다. 이러한 특징 때문에 Stack을 LIFO(Last In First Out/후입 선출) 구..

알고리즘 (Python) 2022.06.04 0
선형 데이터 구조와 탐색

서론 선형 데이터 구조 자료의 순서를 유일하게 결정할 수 이쓴 구조를 말 한다. 수학적으로 n 번째 자료를 탐색한 다음 n + 1 번째로 탐색할 자료가 유일한 구조다. 시각적으로는 위와 같다. 왼쪽이 n 다음 n + 1 이 유일하므로 선형구조이고, 오른쪽이 n 다음 n + 1 이 복수이므로 비선형구조이다. 형태에서 느껴지듯 주로 리스트와 배열이 이에 해당하고, 조금 더 확장하면 위와 같이 다차원의 배열과 리스트도 선형구조에..

알고리즘 (Python) 2022.05.03 0
Q1. 방 배정 하기

서론 파이썬 문법을 마무리 한 날 남은 시간 동안 문제를 한 번 풀어보기로 했다. 문제는 군 복무 중이던 시절 남는 시간에 공부라도 해보자 해서 구해뒀던 한국정보올림피아드 초등부 문제로, 지금은 주관이 바뀐 탓인지 홈페이지에서 구할 수가 없다. C언어는 1학년때 배웠었고, 입대한 건 2학년이 끝난 후였고, 공부를 시작한 건 상병이 다 돼서였으니 이미 기억의 저편으로 사라져 버린 언어에 대한 지식과 손 코딩의 한계로..

알고리즘 (Python) 2022.04.22 0
Python #3

서론 이전 시간에 풀다 남은 276번 부터 290번 까지. 파일 입출력을 건너 뛰고 에러 처리에 해당하는 4문제 가량을 진행했다. 본론 276번 부터 280번 까지는 이전의 271번 부터 275번 까지 문제의 연장선이다. 따라서 이전의 코드를 개선하는 방향으로 진행했다. 문제와 조건은 다음과 같다. Account 인스턴스에 저장된 정보를 충역하는 display_info 메서드 추가할 것. 단, 잔고는 세자리마다 쉼표를 출력할 것. 입금 횟수가 5..

알고리즘 (Python) 2022.04.18 0

Photos

more

[~2022.07.30] 안드레아스 거스키, 녹사평, 브라이리퍼블릭, LIU, 일상 (Ricoh GR 3x, iPhone 13 mini)

서론 RICOH GR 3x / 포지티브 필름 iPhone 13 mini 보정은 별도 표시 본론 7월 3일 이태원 길을 잘못 들어 녹사평 - 이태원 구간의 뒷골목을 좀 걸었다. 반짝반짝한 밤의 서울도 물론 마음에 들지만, 이렇게 소박한 서울도 좋다. 이태원 | 브라이리퍼블릭 다른 곳의 미트파이는 어떤지 궁금해서 다시 찾아본 브라이리퍼블릭 미트파이 자체는 Earthy(사전적인 구수하다랑은 또 다르다.)한 향이 짙어 우리의 취향은 아니..

사진 2022.09.21 0

[~2022.06.30] Today at Apple, 일상 (Ricoh GR 3x, iPhone 13 mini)

서론 RICOH GR 3x / 포지티브 필름 iPhone 13 mini 대부분 보정 없음(별도 표시) 더운데 참 많이도 다녔다. 본론 6월 4일 용산 | 아그라 셋 중에 가장 빨리 취직이 된 Whale이 산 저녁. 원랜 철없는 형들이 사줘도 몇번은 더 사줬어야 할 텐데... 나중에 배로 돌려 줄게 :) 아그라는 몇년 전에 연애 할 때 이태원점에 갔었는데, 당시에도 꽤 좋은 인상으로 기억되고 있어서 주변에 추천해 주곤 했었다. 예전 기억의 조금 뻣뻣..

사진 2022.09.08 0

[~2022.05.31] 에딕티이즈, 일상 (Ricoh GR 3x, iPhone 13 mini)

서론 RICOH GR 3x / 포지티브 필름 iPhone 13 mini 대부분 보정 없음(못함) 본론 5월 1일 집에 사라졌던 화분들이 하나씩 늘고 있다. 막 싹을 내리기 시작한 단풍나무들과 관리하다 떨어진 우주목 잎꽂이 당첨. 우주목은 저번 달에 떨어졌으니 뿌리가 나올 모양이길래 흙에 꽂아 줬다. 5월 6일 할머니와 함께 산책을 나갔다가 본 꽃. 해도 좋고, 작고 소중하더라. 5월 7일 ADDIC-TIES(에딕티이즈) 어번(Urban)느낌의 카페. 드..

사진 2022.08.29 0

Diary - 삶은계란

more

너도 알고 나도 아는 iOS 팁 06 : 사진들을 분리해 관리해 보자

서론 아이폰을 사용하다 보면 사진 앱이 금방 지저분해진다. 업무 목적이나 친구들과의 대화 등 여기저기서 저장한 사진들이 모두 사진 앱에 모이고, 이들을 구별할 수 있는 건 앨범이 유일하다. 그나마도 앨범은 사진들을 분리해서 저장하는 것이 아닌 '태그'의 개념에 가까워 난장판이 되는 건 정말 순식간이다. 애플에서는 당연하게 사진앱에 저장해 버리지만, 이걸 분리해서 관리하는 것이 필요할 때가 있으니 한번 그렇게..

iOS & iPad OS 2022.08.17 0

애플에서 무손실 음원을 즐기는 방법

우리는 스트리밍의 세상에 살고 있다. 우리가 아는 많은 것들이 디지털화돼 인터넷을 떠돌아다니고, 우리는 언제는 접속해 이를 즐길 수 있다. 결론적으로 불과 몇 년 사이에 '굉장히 큰 용량'은 그 수요가 줄게 됐고, 음악이나 영화, 사진을 핸드폰 등의 휴대기기에 넣는 그 번거로움도 기억의 저편으로 사라져 가는 요즘이다. 모두가 각자가 원하는 모든 것을 그렇게 즐길 수 있으면 좋았을 것이다. 하지만 얽히고설킨 이해관..

일상 2022.08.07 0

없는 날짜는 어떻게 표시해야 할까?

서론 우리 가족은 생일에 대해 그리 민감하지 않다. 선물을 챙겨 주거나 파티를 하지도 않고, 그냥 잊고 지나가거나 어쩌다 운이 좋아 그날 알아차린다면 축하한다며 인사 한 마디 하는 게 전부다. 선물을 챙긴다고 해도 받는 사람이 뭘 원하는지, 받아도 실망하지 않을 선물은 무엇인지, 어떻게 하면 기억에 오래 남을지 생일을 챙겨 본 사람이라면 누구나 공감할 골칫거리인데 이게 매년 있다고 생각하면 아주 불편해진다. 문..

일상 2022.05.31 0

Reviews

more

애플 밀레니즈 루프 (진품 구별법 / 스페이스 블랙 + 실버)

서론 운동용으로 산 워치에 줄질이 웬 말이냐며 하지 않겠노라고 다짐한 나는 어딜 가고, 슬슬 올라가는 기온, 늘어가는 땀과 함께 밀레니즈 루프에 대한 관심이 늘어만 갔다. 어쩌다 보니 밀레니즈 루프 거래만 두 번을 진행했고, 한 번은 가품이었던 희한한 경험을 했는데, 이렇게 된 김에 둘이 어떤 차이가 있는지 비교라도 해 보려고 한다. 본론 물론 두 번의 거래가 모두 정상이라고는 말하지 않았다. 첫 번째 거래는 '스..

ETC 2022.06.18 0

애플 스포츠 루프 (토네이도 그레이 그린 + 실버)

서론 기본 스포츠 밴드도 훌륭한 밴드지만 본격적인 운동용으로 사용하기엔 땀으로 인한 갑갑함이 조금 불편한 경우가 많다. 버튼식으로 체결하도록 돼 있으면서도 먼저 고리에 걸리고 착용하는 것이 아닌 버튼을 먼저 잠그고 남은 부분을 고리에 넣어 손목 안 쪽에서 정리하도록 돼 있기 때문에, 보기에 깔끔하다는 장점이 있음과 동시에 착용 시 낙하의 위험성 또한 존재한다. 버튼을 잠그는 방식도 구멍을 통해 이루어 지기..

ETC 2022.06.01 0

애플워치 시리즈 6

서론 영원한 것은 없다고 했던가, 영영 끝날 것 같지 않았던 코로나도 슬슬 힘이 다하는 것 같다. 운동을 잘 하진 못하지만 좋아하는 하는 사람으로서, 졸업 전 까지는 새벽에 산책을 나가거나 점심이 소화가 되지 않는 날이면 저녁을 거르고 후배와 함께 운동을 나가곤 했다. 덤벨이나 풀업 등의 맨몸 운동은 그렇다 치고, 파트너가 사라지면서 뚝 끊게 된 유산소 운동은 묘한 미련과 함께 항상 마음 한 구석에 자리 잡고 있는..

IT 2022.05.30 0