뭐요

업무 정리 및 회고 (1) 본문

Activity/Smart Olive

업무 정리 및 회고 (1)

욕심만 많은 사람 2023. 3. 4. 21:48

<선물 내역 페이지 개발>

그럴듯한 과제가 처음 주어졌다. 포인트 선물 내역 TABLE과 직원 TABLE을 JOIN 하여 포인트 선물내역을 확인할 수 있는 페이지 개발을 해야했다. 일단 새롭게 페이지를 만드는 첫 과제였기에, 기존 소스 코드 분석하는 데에 시간이 오래 걸렸다. JSP를 한 번 다뤄봤으니 대강 따라하면 되겠지 했는데 JPA가 아닌 MyBatis도 처음이고 코드 자체가 워낙 길었다.
특히 검색하는 부분이 오래 걸렸는데, 사번 or 직원이름 or 날짜를 이용하여 검색할 수 있게 구현하였다. 조금 신기했던 건 사번과 직원이름은 SQL 코드에서 searchType이라는 column이 빈 값인 지 검사하고 아닌 경우에 WHERE절로 필터링 해주었다. 날짜 자체는 service 자체에서 빈 값인지 검사하고 빈 값인 경우 오늘날짜로 set해주었다. 이렇게 searchType이라는 column 하나를 더 만들어서 어떤 종류의 검색인 지 구분하고 WHERE절로 조건을 검사하면 다양한 종류의 검색이 구현 가능하다는 것을 알았다. 나중에 잘 응용하면 사이드 프로젝트 할 때 유용할 것 같다!




<단말기 관리 페이지 수정>
새롭게 단말기를 등록하거나 기존의 단말기를 수정할 때, 특정 칼럼의 값을 등록 혹은 수정할 수 있도록 페이지를 수정하였다. 그냥 기존에 Mapper에 있던 INSERT query에서 column 값 하나 추가해준 거라 금방 했다. 다만 기존 페이지에 오류가 있어서 발견하여 해결했다. 뿌듯뿌듯




<시간별 매출 조회 페이지 개발>
기존에 존재하는 일별 매출 조회가 아니라 시간별로 매출 조회를 할 수 있는 페이지를 개발해야했다. 특정 storeId일 때만 탭에 해당 페이지를 보여주어야 했는데 기존의 소스코드 분석을 통해 left.jsp에서 storeId 검사를 하여 보여줄 지 말지 검사를 한 뒤에 렌더링 해주는 것임을 처음 알았다. jsp 뿐 아니라 다른 프레임워크에서도 마찬가지일 듯 싶다.
이 페이지 개발하면서 제일 어려웠던 건 query 짜는 것이 어려웠다. date 관련해서 많이 다뤄보지 않았기에 다소 미숙했는데 열심히 구글링하고 chatGPT에 물어봐서 10분 단위로 나눠 GROUP BY 하여 집계함수 SUM으로 시간 별 이용객 총합을 구할 수 있었다. 하지만 결론부터 말하면 잘못 짰었다. JOIN을 잘못했는데 너무 복잡해서 결국 사수 분이 도와줬다. 살면서 10줄 넘어가는 query를 처음 본다.. 이런 거구나.. 신기신기



Retrospective

  • 일 하면서 내가 무슨 일을 하고 있는 지 자꾸 잊는다. 현재에 집중해서 작업 하다가 보면 잊곤 하는데 주기적으로 스스로 리마인드 해주는 게 좋겠다.
  • 주어진 요구사항을 잘 읽는 것이 중요하다. 대강 읽고 하다가 같은 작업을 두 번 반복해서 시간 낭비했다. 삽질하는 건 좋지만 이런 실수는 그저 시간 낭비일 뿐이다. ⇒ 요구사항 잘 읽기!
  • 솔직히 데이터베이스 기초 수업 A+ 받았다고 query 뚝딱뚝딱 잘 짤줄 알았다. 우매함의 봉우리에서 내려와 나는 아무 것도 아님을 느꼈다. date 관련 함수 잘 숙지하고 서브 쿼리에 대해 더 공부해야겠다.

 

To Study List

~~ CONVERT(AES_DECRYPT(UNHEX(TABLE1.phoneNumber), SHA2('key', 256)) USING utf8)) ~~

'Activity > Smart Olive' 카테고리의 다른 글

업무 정리 및 회고 (5)  (0) 2023.04.16
업무 정리 및 회고 (4)  (0) 2023.04.02
업무 정리 및 회고 (3)  (0) 2023.03.17
업무 정리 및 회고 (2)  (0) 2023.03.11
정식 출근 전, 인수인계  (0) 2023.02.28