개발하며

· 개발하며
쿼리 수행시간이... 2.7초요? 아니 27초요?!! 회사에서 통계 화면을 테스트하고 있는데 네트워크 응답이 너무 안오길래 로그를 뒤져봤다. SQL 하나에 평균 27000ms가 찍혔다. 보자보자.. 0이 하나..둘.. 2.7초인가? 1000ms가 1초니까... 아니 27초????? 약 27초가 걸리는 것이다. 2.7초가 걸려도 느리다고 생각할 것 같은데 말이다. "아니 도대체 데이터가 몇 개길래 27초가 걸리는거야!!!???" 라고 생각하며 봤지만 결과는 고작 4만건이 조금 넘었다. 4만건에 27초..? 이건 장비탓을 할 게 아니라 개발자의 잘못임이 틀림없었다. 문제 상황 이 문제는 도저히 못본 체 넘어갈 수가 없었다. 아니 어떤 백엔드 개발자라도 이걸 그냥 넘어가서는 안 된다.. 문제가 발생한 DB는 ..
· 개발하며
지금 회사에서 프로젝트로 자바, 스프링 기반의 웹 솔루션을 개발하고 있다. (사실 거의 SI 프로젝트다) 이 프로젝트는 CI/CD같은 파이프라인이 구축되지 않고, 시간에 쫓기느라 그런 걸 할 시간도 없다. 만약 하는 게 어떠냐고 제안하면 욕먹을 게 뻔했다.. (물론 아직 1년도 안 된 신입이기 때문에 제안도 못 해봤지만..) 우리끼리 '개발서버'라고 부르는 사내 리눅스 서버(aws)가 있는데, 각자가 개발한 내용을 빌드해서 테스트해보는 용도로 사용하고 있다. 즉, Git에 커밋된 코드를 자동 배포하는 게 아니라 개발자 로컬에 있는 코드를 배포하는 것이다. 좋은 환경에서 개발하는 분들은 "왜 저렇게 개발하지?" 하며 이 과정자체를 이해하지 못할 수도 있다. 📢 참고로, 실제 스크립트는 올리지 않았다. 내가..
· 개발하며
해당 글은 2023년 3월 1일 작성된 포스트입니다. 최근 프로젝트를 수정하면서 테스트가 가능한 코드에 대해 고민했다. 갑자기 고민한 것은 아니고 내가 작성한 코드가 테스트하기 좋지않다는 것을 느꼈기 때문이다. 기존 코드의 문제점 프로젝트에 jsoup라이브러리를 사용하여 웹 사이트를 크롤링하는 기능이 있었다. 첫 번째 문제점 Jsoup 라이브러리를 사용하려면 Jsoup 클래스의 connect 스태틱 메서드를 사용해서 jsoup Connection을 연결했어야했다. 이를 아래와 같이 작성했다. // JobSearchServiceImpl.java ... String url = "크롤링할 URL"; Connection connection = Jsoup.connect(url); Document documenet..
· 개발하며
나는 스프링부트를 사용한 웹 애플리케이션을 개발하고 있다. 업무 중 Global하게 사용되는 환경설정 파트를 개발해야 했다. 그냥 환경설정이라면 static같은 건 고려할 필요도 없었다. 하지만 환경설정 값이 1~2초 마다 도는 스케줄러에 사용되었다. 나는 static을 사용하는 것과 getter, setter를 사용하는 것 중 무엇이 좋을 지 고민하게 되었다. setter, getter 사용 환경설정 값을 가지고 있는 Holder 객체를 만들고 해당 객체를 빈으로 등록한 뒤 초기값을 @PostContruct 메서드로 초기화하여 setter, getter로 관리하려고 했다. 이 방법으로 설정하면 객체지향적이고 객체에 자율성을 준다고 생각했다. static 사용 이 방법 역시 전과 마찬가지로 @PostCo..
nimoh
'개발하며' 카테고리의 글 목록