티스토리 뷰
이번에는 웹 프로젝트를 진행했습니다. 상품리스트를 가져와서 그려주면 되는 간단한 프로젝트였지만, 3가지 영역에 광고 상품이 있어서 신경쓸 필요가 있었죠.
이번 프로젝트를 진행하면서도 실수가 있었고, 그 실수들을 정리해보고자 합니다.
1. 지운줄 알았던 코드
광고는 보통 해당 광고가 없을 경우에 '대체로직' 이 있습니다. 이번 프로젝트에서 그 대체로직의 변경이 있었습니다.
기존의 로직 |
변경된 로직 |
- 해당 광고 - 대체로직 1 : 수동 입력 광고 - 대체로직 2 : 정렬 순서 상위 상품 |
- 해당 광고 - 대체로직 1 : A 광고 - 대체로직 2 : 정렬 순서 상위 상품 |
기존에는 대체로직이 도메인(DAO, Service) 쪽에 존재해서 저도 그 곳에 수정을 했습니다. 그런데 사정 상 그 로직을 Controller(Action) 단으로 변경하였습니다. 변경된 로직은 주석으로 깔끔하게 정리했습니다. 그리고 배포를 하게 되었죠.
광고 같은 경우에는 상품이 많지 않아서 테스트가 좀 귀찮습니다. 제가 직접 광고 상품을 등록해야하고 잘 안될 경우에는 광고 팀에 요청을 해야할 수도 있습니다. 그래서 다양한 테스트를 하지 않고 잘 되네 하고 넘어갔습니다. QA분들도 문제를 찾지 못하셨죠.
그런데 실제 서비스하는 DB로 테스트를 해보니, 뭔가 이상했습니다. 대체로직의 순서가 조금 이상한겁니다. '대체로직 1' 의 광고 상품이 노출되지 않고 '대체로직 2' 의 광고 상품이 노출되는 겁니다. 저의 로직/코드는 완벽하다고 생각했습니다. 내부 API의 문제일 거라 생각했죠. 그래서 광고팀에 여쭤봤습니다.
잠시 후, 광고팀에서 원인을 찾으셨다고 하는 겁니다. 제 실수는 아닐것이라 확신을 하고 있는데, 제가 수정했던 도메인 쪽 소스에 맨 처음에 수정했던 로직이 그대로 있는 겁니다. 아....
저의 실수였던 겁니다.
- 변경한 소스 코드를 제대로 확인하지 않았고,
- 테스트가 불편하다고 다양한 케이스로 테스트해보지 않아서,
문제가 생겼습니다.
정말이지, 테스트는 중요합니다!
2. 일정 관리 및 우선순위 조정 능력
저는 하루하루 성장하고 있습니다. 그래서 그런지 어제 작성한 코드도 맘에 안들고 너무 수정하고 싶습니다. 잘 돌아가는 코드일 지라도 뭔가 '아름답지 않아' 라며 수정을 합니다. 그래서 야근을 하고 일정이 촉박합니다.
잘 작성한 코드도 중요하지만 주어진 시간을 지키는 것이 중요하다고 많은 분들이 충고해 주셨습니다.
그리고 저는 일정을 굉장히 대강 작성하는 편입니다. 그리고 작업을 하다보면서 일정이 구체화 됩니다. 아마 경험이 부족하기 때문에 처음에 이게 얼마나 걸릴지 몰라서 그렇게 짜는 것 같습니다. 처음에 프로젝트 일정 잡을 때는 정말 대강 작성했는데, 이제는 아주 조금 나아지긴 했습니다.
이번 프로젝트를 진행하면서 여유가 없었습니다. 일정도 구체적이지 않았고, 제가 맘에 안든다고 잘 돌아가는 코드 수정하느라 시간이 많이 소모되었습니다. 점차 스스로 가이드라인을 설정해야겠습니다.
일을 일찍 끝내야 삶의 여유가 있고, 에너지가 있는 게 아니겠습니까? ㅋ
가이드라인
1. 특별한 일 아니면 야근하지 않는다.
2. 기획서를 자세히 보고 일의 크기를 확인한 후, 일정을 정한다.
3. 정한 일정을 준수하려 노력한다.
4. 처음 작성할 때, 잘 작성한다.
5. 수정은 내 일이 모두 완료되었을 때부터 남은 시간에 진행한다.
'Mistake management' 카테고리의 다른 글
실수 노트 2020-08-01 뭉쳐있는 일을 쪼개지 않고 해결하려고 하다가 시간이 오래 걸렸다 (0) | 2020.08.01 |
---|---|
실수 노트 2020-07-17 (0) | 2020.07.19 |
리펙토링 사실은 리빌딩 실패 사례 (0) | 2016.01.19 |
HTML elements의 SRC에 빈 값을 넣지 말자! (0) | 2015.06.05 |
프로젝트 배포 전날 (0) | 2014.10.30 |
- Total
- Today
- Yesterday
- 사누르
- 도커
- 컨테이너
- Bali
- 실수노트
- spring
- S68
- ChatGPT
- hands-on
- sanur
- Docker
- 독후감
- 웹을 지탱하는 기술
- spring boot
- AWS
- rest
- springboot
- 객체지향
- ES6
- AWSKRUG
- Clean code
- 개발자
- 회고
- 웹
- javascript
- container
- 한달살기
- 발리
- ecma6
- html
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |