전체 글
[RxSwift + MVVM] - 0. 시작
[RxSwift + MVVM] - 0. 시작
2021.05.02요즘 부쩍 MVVM패턴에 관해서 관심이 많습니다. 회사에서 혼자 iOS 개발을 하고 있는데요, 이게 제가 개발을 하기전에 외주로 개발을 한건데 테스트환경이 전혀 갖춰지지않았고, 제대로 구조화 되지 않아서, 유닛테스트를 활성화시켜서, TDD 개발을 진행하려고 계획을 세워보니, UI와 컨트롤러, 모델들이 상당한 의존성을 가지고 있어서, 제가 생각한 방향으로의 개발이 어려웠습니다. 그래서 어떻게 개발을 시작해야 조금 더 계획적으로, TDD수준까지는 아니더라도 테스트와 개발을 명확하게 나눌수 있을까 고민을 하였고, 아키텍처 패턴을 정하고, 수정을 해야되겠더라구요. 그래서 MVVM에 관하여 알아보다가, 한달가까이 RxSwift를 공부하였습니다. 그리고 대략 1년의 기간을 두고 구조 변경을 해보려고 합니다. 당분간..
Swift에서의 JSON 파싱
Swift에서의 JSON 파싱
2020.11.26실무에서 앱을 개발하면서, 네트워크를 사용하지 않는 앱을 만드는 경우는 드문것 같습니다. 흔히 서버와 통신을 하면서, 요새는 웹 JSON으로 많이 데이터를 받으며, 보통 RestAPI를 이용해서 데이터 전송을 많이 하는데요. 현실적으로 Swift 개발자는 맥이라는 장벽 때문에 다른 언어에서 Swift로 옮겨오는 경우가 많아서, 보통 Java나 C# 좀 더 올라가면 C, C++등등 언어에서 옮겨올텐데요, C#같은 경우에는 요즘 최신 버전이 Json 파싱을 지원해준다고 들었습니다만, 한 3년 전 까지만해도Json.Net 이라는 외부 라이브러리를 많이 이용했던 경험이 생각 납니다. 그래서 Swift를 예전에 처음 공부할 때에도 Json과 통신할 일이 있으면 가장 먼저 Github에서 Json라이브러리를 찾아보..
아이폰 12 미니 블루 256GB 구매, 아이폰을 구매하기전 고려해야하는 사항
아이폰 12 미니 블루 256GB 구매, 아이폰을 구매하기전 고려해야하는 사항
2020.11.24이 글은.. 고사양의 게임을 하지도, 전문적으로 사진을 찍지도 않는, 간단한 업무, 유튜브or넷플릭스시청, 음악감상, 인터넷 서핑등등을 하는 일반적인 스마트폰 이용자의 관점에서 작성하였습니다. 아이폰의 구매 까지.. 아이폰12 미니 출시 소식을 듣고 정말 어렵게 기다렸습니다. 그와중에 지름신이 이상한데로 새서 아이패드도 얼마전에 구입했습니다.. (이 사용기는 조금 나중에 ^^) 제가 애플 제품을 맨 처음 사용한것은 2008년즈음에 아이팟 터치 1세대를 사용했었습니다. 그때는 당연하게도 앱스토어에 국내 앱이 많이 모자란 상태였고, 그때까지만 해도 피쳐폰의 생태계였기때문에 크게 좋은점을 못 느끼고, 얼마 못가 잃어버리면서 금세 잊혀졌습니다ㅠ 어쩌다보니 개발자가 되었고, 또 어쩌다보니 iOS 개발자를 준비하고..
macOS BigSur Clean Install - 빅서 클린설치 USB 만들기
macOS BigSur Clean Install - 빅서 클린설치 USB 만들기
2020.11.13오늘 맥의 운영체제 메이저 업데이트인 Big Sur가 출시되었습니다. 오전에 회사에서 설치해보려고 했는데, 현재 진행중인 프로젝트가 있기에, 먼저 개인 Mac 머신에 설치 해 보고, 사용에 크게 문제가 없다 싶을때 회사 Mac 머신에도 설치 해 보려고 합니다. 클린설치이기에 준비물은 USB와 시간만 있으면 됩니다. 빅서의 용량이 12기가가 넘어가므로 최소 16GB USB, 넉넉하게 32GB 이상의 USB를 준비 해 주세요. 우선 다운로드 시간이 오래걸리므로, App Store에서 Big Sur를 찾아 다운받으며 진행합니다. 그리고 다운로드를 받는 동안, 개인 자료들이 있으면 백업을 해 두신 후, 빅서 설치용 USB를 마운트 후 포맷을 한번 돌려줍니다. macOS의 기본 앱인 디스크 유틸리에 들어가서 연결..
.gitginore 갱신하기
.gitginore 갱신하기
2020.11.13git을 사용하다 보면, 뒤늦게 .gitignore 파일을 추가하거나, 사용중 .gitignore파일을 수정할 일이 생깁니다. 그럴땐 이렇게 처리하면 됩니다 $ git rm -r --cached . $ git add . $ git commit -m ".gitignore Update" git 범위 안의 캐시를 지우는건데요, 이렇게 커밋 후 원격으로 push 하면 원격 저장소에서도 .gitignore 내용에 따라 갱신이 됩니다. 출처 - stackoverflow.com/questions/1139762/ignore-files-that-have-already-been-committed-to-a-git-repository
나의 하루는 4시 30분에 시작된다 - 단순하면서도 위대한 생활 습관
나의 하루는 4시 30분에 시작된다 - 단순하면서도 위대한 생활 습관
2020.11.11나의 하루는 4시 30분에 시작된다 국내도서 저자 : 김유진 출판 : 토네이도 2020.10.20 상세보기 저에게는 아주 심각한 월요병이 있습니다. 일요일 밤에 많이 자면 3시간, 밤새고 출근하는 날도 허다합니다. 그런 생활 패턴이 지속되면서 거의 매번 월요일은 정말 힘들게 일을 하고, 퇴근하고 집에와서는 잠을 몰아서 잡니다. 요새는 코로나덕분에 5시~ 5시30분에 퇴근을 하는데요, 그러면 집에 오자마자 씻고 7시전에 잠이 들고, 다음날 오전 7시까지 12시간을 내리 잡니다. 저번달에는 회사의 신제품 출시를 위해 약간의 크런치모드에 돌입하였고, 최근 몇주간은 자체 Test를 많이 진행하고, 사내 Test 지원을 많이 도와주었는데요, 역시나 월요병이 장애물이 되었습니다. 그래서 생활패턴 변경의 필요성을 파..
OpenCV를 이용하여 투명한 이미지 반전시키기
OpenCV를 이용하여 투명한 이미지 반전시키기
2020.06.04얼마전 iOS 개발을 하며 다크모드 관련한 이슈가 생겼습니다. 예전에 개발된 App이다보니, 텍스트와 UI Element들은 간단하게 변경이 되었지만, 이미지파일은 그에 맞게끔 변환하기가 어려웠습니다. 그래서 간단한 아이콘들을 음영 반전을 통하여 변환하였는데, 처음에 시도한 코드는 다음과 같았습니다. import cv2 source_file = 'file_path.png' source = cv2.imread(source_file, cv2.IMREAD_UNCHANGED) source = ~source cv2.imwrite('file_path_negative.png', source) 그러자 이미지가 아래와 같이 반전이 되었으나, 배경색까지도 반전이 되어버려 살아났습니다. 그래서 결국, 픽셀 단위로 이미지를 ..
PDF에 워터마크 삽입하기 [2/2]
PDF에 워터마크 삽입하기 [2/2]
2019.01.23저번 포스트에 이어서 마저 작성합니다. 저번에 이미지를 PDF로 바꿔봤는데요, 오늘은 그 이미지 PDF를 페이지PDF에 합성하는 부분을 처리 해 보겠습니다. 다음은 샘플 pdf파일과 최종 완성 비교 사진입니다. 이제 시작 해 보겠습니다. 다음과같이 PyPDF2 라이브러리를 설치 해 줍니다(유명한 PDF 편집 라이브러리입니다) pip install pypdf2 PDF를 합성하는건 비교적 쉽습니다. 코드를 보시죠. from PyPDF2 import PdfFileReader, PdfFileWriter def PDFMerge(savePath, pdfPath, watermarkPdfPath): # pdf파일 불러오기 pdfFile = open(pdfPath,'rb') pdfReader = PdfFileReader..
PDF에 워터마크 삽입하기 [1/2]
PDF에 워터마크 삽입하기 [1/2]
2019.01.23연말에 프로젝트가 생겨서(+게을러져서), Deuluwa 프로젝트를 완성하지 못하고 새해를 맞이하고 있어 상당히 마음이 뒤숭숭합니다. mac 컴퓨터로 인쇄하는 모든 인쇄물에 워터마크를 삽입해달라는 요구였습니다. mac은 cups로 인쇄할 때, 모든 출력물을 PDF로 변환 후 인쇄시킵니다. 그래서 해당 프로젝트에서 제가 우선적으로 맡은부분은 PDF에 워터마크를 집어넣는 일이었습니다. 로직자체는 별 어려움이 없지만, 어떻게 집어넣어야 할지가 정말 막막했습니다. 자료를 조금 조사해본 결과, Windows는 spooler를 후킹해서 교체한다고 하는데 mac은 조금 다르게 접근을 해야했기 때문입니다. 결론적으로 해결방법을 찾기는 했는데, 이 이상은 본 주제에 벗어나기때문에 생략하기로 하고, 제가 파이썬을 이용해서 ..
RGB 셀렉터
RGB 셀렉터
2019.01.19이름이 이게 맞는지는 모르겠는데.. 요새 파이썬으로 화이트영역 판정하면서 만든 프로그램입니다. 요새는 계속 맥으로 Swift랑 Python 왔다갔다하느라 C#에대한 감이 좀 떨어져서 몇시간 걸렸네요.. 코드는 다음주중에 git 관리좀 하고 공개하겠습니다. 19-01-20 소스코드 링크 공유합니다(https://github.com/HEROHJK/RGBSelector)
모바일 출석체크 솔루션 - Deuluwa
모바일 출석체크 솔루션 - Deuluwa
2018.11.22[프로토타입] 예전에 학교에 다닐때, 군대를 갔다와 복학을 하고보니 재밌는게 생겼습니다. 출석체크를 교수님들이 이름을 불러 체크를 하는게 아니라, 수업 시작전에 강의실 입구에 있는 NFC와 QR코드로 출석체크를 하더라구요. 그때 그게 참 재미있어 보였습니다. 어렵지도않고 적당해 보였구요. 제가 9월달부터 크로스 플랫폼 프레임워크인 Xamarin 공부를 하고 있습니다. 프로젝트를 하나 진행하려 하는데, 뭐가 좋을까? 하다가 문득 그때 생각이 나서 3개월 가까이 개발하고 있습니다. NFC는 순수하게 읽기만 하면 되니 크게 어려울것이 없고, QR코드 인식은 Google의 ZXing 라이브러리를 이용하면 되고.. 모바일로 이용하는것이기에 딱 맞는 프로젝트 였습니다. 현재는 대부분이 완성되었고, 완성하기전에 한번..
부스트 코스를 마치며
부스트 코스를 마치며
2018.10.19올해 상반기때 네이버 커넥트 재단에서 운영하는 edWith라는 온라인 교육사이트에서, 부스트코스 에이스라는 프로젝트를 진행했습니다. 간단하게 설명하자면, 프로젝트 진행 위주의 강의를 하고, 자신이 개발한 프로젝트를 제출하여, 리뷰를 받는 시스템입니다. 저도 지인의 소개로 참여를 하게 되었는데요, 대상자는 Swift를 기본적으로 이해하고, iOS 개발을 제대로 배워보고싶은 사람들을 대상으로 진행하였습니다. 기간은 5월부터 9월까지, 5개월이었구요, 진도들이 저조한지 부스트코스 에이스 오프라인 스터디 참가자를 모집하길래, 그 또한 가입했습니다. 팀장을 신청해서 팀장이 되어 스터디를 진행했는데요, 저희 스터디원분들은 비 개발자 한분과 학생 두분이었습니다. 저도 7월전까지는 이직준비를 좀 하느라고 많이 바빠서 ..