영웅칼럼
테스트를 위한 리팩토링
테스트를 위한 리팩토링
2023.03.02드디어 마지막장입니다. 간단한 예시 코드를 테스트가 가능한 구조로 리팩토링하고, 그것을 평가하는 시간을 가져보겠습니다! ERP 시스템 - 이메일 변경 기능 이메일 변경 기능 이메일이 회사 도메인일 경우 직원, 아니면 고객으로 분류. 직원수를 체크 모든 사용자정보는 DB에 저장 변경 후 외부에 알림 class User { private(set) var id: Int private(set) var email: String private(set) var type: UserType // 생성자 생략 } extension User { public func changeEmail(newEmail: String, company: Company) { if self.email == newEmail { return } //..
단위테스트를 위한 리팩토링 준비하기
단위테스트를 위한 리팩토링 준비하기
2023.02.23앞에서는 단위테스트를 어떻게 평가해야하는가? 에 대해 알아봤습니다. 이번에는 그럼 리팩토링단계로 넘어가서, 어떻게 리팩토링해야 단위테스트를 수월하게 할수 있는지를 알아보겠습니다. 1. 아키텍처 1.1 함수형 아키텍처 결정을 내리는 로직 코드와, 결정에 따라 작용하는 코드(주로 입력과 출력)를 나누는 일종의 마이크로서비스 패턴입니다. 1. 가변 셀이 모든 입력을 수집후 코어로 보내고 2. 코어는 입력받은 데이터를 토대로 로직을 수행합니다. 3. 계산된 값들은 다시 가변 셀로나와 사이드이펙트로 변환됩니다. 1.1.1 함수형 프로그래밍? 함수형 아키텍처 이전에, 함수형 프로그램을 먼저 이해하는게 좋습니다. 예전에 제가 Rx Swift에 관한 영상을 제작한적이 있는데요, 도입부를 보다보면 함수형 프로그래밍에 관..
단위테스트, 어떤 항목을 평가해야 할까?
단위테스트, 어떤 항목을 평가해야 할까?
2023.02.22앞 포스트에서 단위테스트가 무엇이고, 왜 해야하는지 알아봤습니다. 단기성 프로젝트가 아닌 이상, 지속적인 유지보수를 해야하고, 리팩토링은 대표적인 유지보수 방법입니다. 하지만 그 리팩토링이 과연 효과가 있었는가? 를 확인하기 위해 단위테스트를 이용한다고 설명을 했었는데요, 그렇다면 단위테스트는 어떻게 만들고 어떻게 평가를 해야할까? 에 대해 포스팅합니다. 1. 단위테스트의 구조 1.1 AAA 패턴 단위테스트는 대표적으로 AAA패턴을 사용하여 진행합니다. AAA 패턴이란, 준비(Arrange) - 실행(Act) - 검증(Assert)의 순서로 진행되는 패턴입니다. public class CalculatorTests { public void test_두_수의_합을_검증() { // 알아보기 쉽게, 읽기 쉽게..
단위테스트가 무엇이고, 왜 해야할까?
단위테스트가 무엇이고, 왜 해야할까?
2023.02.08(단위테스트 책 스터디 후 발표자료를 공유하기 위해 작성했습니다.) 저는 10월 ~ 1월까지 블라디미르 코리코프의 단위테스트 책을 가지고 북스터디를 진행했습니다. 단위테스트(Unit Test)란 무엇일까요? 소프트웨어 테스트 방식 중 하나로, 독립적으로 작동하는 코드 단위 중 가장 작은 코드를 테스트하는 것 입니다. 하나의 기능을 최대한 빠르고 가장 정확하게 테스트 하는 것을 목표로 하며, 이것들이 보장되어야 후에 진행할 통합테스트가 수월해집니다. 그러면 왜 단위 테스트가 필요할까요? - 실패한 리팩토링 시나리오 1. 제품이 지속될수록 점점 길어지는 일정 단위 테스트 '만' 놓고 본다면 중요성은 그다지 크지 않습니다. 작은 코드 '만' 놓고 본다면, 실수할 여지도 크지 않고, 그저 발견된다면 고치면 되니..
트랙패드 핀치(줌인/아웃) 버그
트랙패드 핀치(줌인/아웃) 버그
2022.07.06트랙패드를 사용하다보면 가끔 핀치(줌인, 줌아웃)기능이 안될때가 있습니다. 이럴때는 트랙패드를 껐다가 켜거나, 환겅설정 -> 트랙패드 -> 핀치 기능을 비활성화했다가 활성화를 해야지 버그가 풀립니다. 몇년전부터 모든 맥 환경에서 마우스를 없애고 트랙패드를 사용하기 시작했는데 스트레스가 이만저만이 아니었습니다. 그래서 조금 찾아보다가, 터미널 커맨드로 해당 기능을 ON / OFF할 수 있는 방법을 찾아 스크립트와 알프레드 워크플로를 공유합니다.
맥 설치 후 세팅
맥 설치 후 세팅
2022.05.16최근에 Karabiner가 말썽을 일으켜서.. 이참에 세팅을 좀 정리하기로 했습니다. 1. 키보드 세팅a. 키보드 배열 변경Command Option 위치 변경 b. 한영키 윈도우처럼 맞추기 Label com.changing.KeyRemapping ProgramArguments /usr/bin/hidutil property --set {"UserKeyMapping":[ {"HIDKeyboardModifierMappingSrc":0x7000000E7, "HIDKeyboardModifierMappingDst"..
2021년 회고
2021년 회고
2021.12.24TL;DR 올 한해도 많은 아쉬움이 남는 해였습니다. iOS 개발자로 온전한 1년을 보냈고, RxSwift의 기본적인 개념정리, MVC, MVVM, MVP 패턴 겉 핥기 등 잡탕 개발자에서 주니어 iOS개발자스러운 개발자로 변해가는 부분에서 보자면 나름 성공적인것 같기도 하지만.. 제가 만족할만한 목표치를 채우지 못했습니다. 애초에 목표를 잡지 않고, 무작정 하고싶은걸 하고싶은 만큼만 하다보니 이렇게 된 것 같네요. 그래서 지금부터라도, 내년부터라도 변하기 위하여 회고를 작성합니다. 회사 올해는 정말 열심히 고도화(리팩토링?)를 한것 같습니다. 상반기에는 리뉴얼을 하면서 부분 리팩토링을, 하반기에는 CI / CD 도입을 위한 리팩토링을 진행하였습니다. 연초에는 기존의 App들을 전체적으로 리팩토링 하였는..
아이폰 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의 기본 앱인 디스크 유틸리에 들어가서 연결..
나의 하루는 4시 30분에 시작된다 - 단순하면서도 위대한 생활 습관
나의 하루는 4시 30분에 시작된다 - 단순하면서도 위대한 생활 습관
2020.11.11나의 하루는 4시 30분에 시작된다 국내도서 저자 : 김유진 출판 : 토네이도 2020.10.20 상세보기 저에게는 아주 심각한 월요병이 있습니다. 일요일 밤에 많이 자면 3시간, 밤새고 출근하는 날도 허다합니다. 그런 생활 패턴이 지속되면서 거의 매번 월요일은 정말 힘들게 일을 하고, 퇴근하고 집에와서는 잠을 몰아서 잡니다. 요새는 코로나덕분에 5시~ 5시30분에 퇴근을 하는데요, 그러면 집에 오자마자 씻고 7시전에 잠이 들고, 다음날 오전 7시까지 12시간을 내리 잡니다. 저번달에는 회사의 신제품 출시를 위해 약간의 크런치모드에 돌입하였고, 최근 몇주간은 자체 Test를 많이 진행하고, 사내 Test 지원을 많이 도와주었는데요, 역시나 월요병이 장애물이 되었습니다. 그래서 생활패턴 변경의 필요성을 파..
피, 땀, 픽셀 - 게임 개발 회사들의 이야기
피, 땀, 픽셀 - 게임 개발 회사들의 이야기
2018.10.18피, 땀, 픽셀국내도서저자 : 제이슨 슈라이어(Jason Schreier) / 권혜정역출판 : 한빛미디어 2018.08.03상세보기 방탄소년단 노래 피, 땀, 눈물을 패러디한 책 제목이네요.. 지하철에서 맨날 의미없이 시간을 보내는거같아서, 이번달부터 책을 읽기 시작했습니다. 출퇴근시간이 짧기도 하고, 책읽는 속도가 느리기도 해서 읽는데 2주정도 걸렸네요. 책을 고를때, 움직이며 읽을텐데 코드에 관한 책은 좀 안읽고 싶어서 선택한 책인데요.. 나름 재밌습니다. 얼마전까지 스타듀밸리라는 게임에 빠져있었는데, 그에 관한 스토리도 나와 있습니다. 평가들을 살펴보니 뭐 나무위키에 다 있는 정보다 라고 말하는데, 그래도 직접 전해듣는 이야기라 조금 다릅니다. 저는 게임개발자가 아닌데도 재미있게 읽었습니다. 외국이..
사용중인 장비 소개 겸 리뷰
사용중인 장비 소개 겸 리뷰
2018.08.15사무실에서. 집에서. 사무실 의자 제가 개발할때 사용하는 장비들의 사양은 다음과 같습니다. 사무실 24인치 LG 모니터 x2 I7-4790K(쿼드, 4GHz) 24GB Ram 128GB SSD, 1TB HDD GTX 750 TI 필코 마제스터치2 컨버터블 텐키리스 적축 (회사 컴과 공유) 로지텍 MX Master 2S (회사 컴과 공유) 집 43인치 LG UHD 모니터 I7-4790K(쿼드, 4GHz) 16GB Ram 512GB SSD R9 390 (8GB) 덱 헤슘 프로 적축 데스에더 2013(현재는 A/S보내고 굴러다니는 저가형 게이밍 마우스 사용 중) 맥북 2017년형 맥북 프로 터치바 15인치 I7-7700HQ(쿼드, 2.8GHz) 16GB Ram 512GB SSD Radeon Pro 555 (2..