들어온 업무 중에 논문 초록을 조회하는 버튼이 작동하지 않는다는 요청이 있었다.
버튼을 클릭해 보니 404 에러가 났다. 존재하지 않는 페이지라는 뜻이다.
발품을 팔아 논문을 다루는 웹사이트를 찾았다. 해당 사이트에서 논문 초록 조회 페이지의 url을 딴 후 id 값을 태우는 방식을 적용했다.
논문 조회가 아주 자아아알 됐다.
그런데 한 가지 문제가 있었다. 논문을 조회하는 페이지는 하나가 아니고 여러 군데인데 그 많은 곳에 이전에 작성했던 url이 하드코딩 되어 있었다. 한 곳에서 url을 설정해서 쓰이는 곳에 각각 뿌려주는 방식으로 바꾸기로 했다.
UrlController라는 클래스를 하나 만들어서 거기에 url을 static으로 선언하고 해당 url이 필요한 jsp 단에서 스크립틀릿 언어(<% %>)로 호출하는 방식을 택했다. 만들어 놓고 혼자 되게 뿌듯해 했다.
한 동안 그 방식으로 잘 쓰고 있었다. 그러다가 논문과 관련된 다른 기능을 고치던 중, 논문 조회를 위해 url에 태워 넘기는 파라미터들 중에 필요없는 애들이 몇 개 있다는 사실을 알게 되었다. url을 살짝 수정한 후에 운영에 반영을 했는데?!?!?! 반영한 url이 안 먹고 그 전 url이 적용되는 것이다?!?!
뭐야!! 이러고 다시 반영도 해보고 클린을 돌려서 다시 컴파일한 .class 파일을 반영도 해보고 했지만 결과는 똑같았다. 왜 그러나 하고 곰곰이 생각을 해보다가 내가 url을 static으로 선언했다는 것을 깨닫게 되었다. static으로 선언을 하면 프로그램이 돌아감과 동시에 메모리에 적재가 된다. 때문에 백업해뒀던 이전의 urlController 클래스의 url이 static에 올라가서 그랬던 것이다.
그래서 url을 static으로 선언을 하지 않고 접근제한자를 private으로 설정을 한 후에 getter로 접근해서 값을 가져갈 수 있게 바꿔줬다. (url을 임의로 바꿀 수 없게 setter는 생성하지 않았다.)
이후 반영을 하니 새로운 url로 잘 적용이 됐다. 미쳤다. 혹시 나 천재?!?! 라고 자만을 하면서 옆자리 슨배임에게 자랑스럽게 말씀을 드렸는데 한 순간 부끄러워졌다.
"이렇게 하는 것도 좋은데 그냥 서비스 단에서 선언해서 뿌려주는 게 더 낫지 않아요??"
그렇다. mapping 값들이 무조건 지나치는 로직이 있다. 논문 조회 url이 민감한 데이터가 아니기 때문에 그 곳에 url을 선언하고 자사에서 공통으로 사용하는 변수 안에 객체 형식으로 넣어준다면 따로 클래스를 만들 필요도 없고, 스크립틀릿 언어로 호출할 필요도 없이 el 구문으로 호출이 가능하다.
역시 사람은 자만하면 안된다. 아직 햇햇햇병아리라는 것을 다시 한 번 깨닫고, 하나 더 배워가는 하루였다. 이 또한 나의 성장을 위한 자양분이 될 것이다.
'개발' 카테고리의 다른 글
MSSQL 함수 톺아보기(getdate(), dateadd(), convert(), LEFT()) (0) | 2024.04.02 |
---|---|
웹 취약점 조치 방안 (0) | 2024.04.02 |
톰캣 서버 재가동 시 유의사항 (2) | 2024.02.27 |
SSL 인증서 갱신 방법 톺아보기 (0) | 2024.02.23 |
레거시 코드 파악하는 법 (0) | 2024.01.31 |