일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Android
- Tuist
- GeometryReader
- transformation.map
- convert base64
- oberve url
- base64 변환
- pod install
- SwiftUI
- url 관찰
- List
- detect url
- DevelopmentRegion
- DataBinding
- url 추적
- 개발자 면접
- Side Menu
- swift
- 기존 앱
- 상단 탭바
- swift #swift keychain #keychain 사용법
- Swift Package Manager
- ios
- scrolling tab
- UIViewControllerTransitioningDelegate
- 스크롤 탭
- UIPresentationController
- notifychanged
- development language
- ViewBuilder
- Today
- Total
버그 잡이
인턴 일지 2 - 나는 왜 하드코딩을 했을까? 본문
나의 안일한 생각과 하드 코딩으로 인해서 치명적인 이슈를 발생시켰다.
노출되면 안 되는 View였는데, 노출이 되버렸다.
정확히는 새로운 릴리즈 버전이 아닌 이전 릴리즈에서 발생한 문제였다.
문제 상황
문제 상황을 하나씩 집어보면 다음과 같다.
1. 이전 버전에 띄울 view가 있었는데 이는 기획상 사용하지 않게 되었다. 이는 api를 통해서 통제된다.
2. 나는 위 api를 체크할때 하나의 type, 하나의 값만 올 것이라고 판단하고 배열의 첫번째 값만 받아서 처리하는 로직을 짰다.
3. 이번 버전에 새로운 view가 기존 view를 대신하여 사용되었다.
4. 새로운 view를 통제하는 api가 적용되자. 이전 버전에서는 과거 기획상 사용하지 않기로 했던 view가 노출되었다.
(새로운 view도 같은 api로 통제되는데 view의 name에 대해서 구분하지 않아서 생긴 문제이다.
이전 버전에서는 배열의 첫번째 값이 있으니 이전에 기획된 view를 띄운 것이다.)
문제 원인
나는 그저 for문을 쓰기 싫어 배열의 첫번째 값을 가져와서 처리했다.
'뭐 지금은 하나밖에 없으니까'
'나중에 view가 많아지면 그때 수정하면 되지'
이 안일한 생각으로 나는 하드코딩을 했다.
깨달음
'지금은 괜찮다'
-> 이 말은 언젠가는 문제가 있다는 뜻이다.
-> 타협하지 말고 다양한 경우에도 문제가 없는 코드를 짜자.
'하드 코딩'
-> 내 인생에 이제 하드 코딩은 없다.
'이전 버전에 대한 영향을 생각하자'
-> 강제 업데이트를 해도 그 딜레이가 있다. 그 사이에 에러는 충분히 발생한다.
'개발일지' 카테고리의 다른 글
인턴 일지 1 - 마감에 쫓기다 (0) | 2020.09.14 |
---|