본문 바로가기

근무일지7

[Regex/정규표현식] 일본어, 중국어, 한국어 정규표현식 Regex 정규표현식 일본어 중국어 한국어 포함 댓글내용으로 한국어, 영어, 일본어, 중국어 판별이 필요했습니다. 여러 레퍼런스를 참고하였고 테스트 결과 가장 정확도가 높은 표현식을 기록합니다. #한글,자음 포함 일어,한자 미포함 -> ko select * from comment and comment_msg not regexp '/[ぁ-ゔ]+|[ァ-ヴー]+[々〆〤]+/u' and comment_msg not regexp '[一-龥]' and (comment_msg regexp '[가-힇]' or comment_msg regexp '[ㄱ-ㅎㅏ-ㅣ]'); #일본어 포함 한글 미포함 -> ja select * from comment and comment_msg not regexp '[가-힇]' and comm.. 2020. 5. 18.
알비트 근무일지 JPA examples를 사용한 검색 구현 JPA Specification을 사용한 검색 Coocon 송금내역 스크래핑 데이터 계약건 ec2 인스턴스 세팅 및 DB세팅, API 연동 JPA CustomPhysicalNamingStrategy implements PhysicalNamingStrategy, Serializable 구현으로 해결 : Coocon의 테이블 및 컬럼명 대문자 언더스코어 컨벤션, 우리는 소문자 언더스코어 컨벤션 Front 개발자의 편의를 위해 Page 객체의 default 세팅 중 Page 객체 설정에 제한이 있어 CustomPageImpl extends PageImpl 를 구현 대출승인 후 대출 실행시 계약 데이터 생성 및 기간 / 회차에 따라 이율을 계산하여 상환 스케쥴 자동 생.. 2019. 7. 1.
비슷한 유형의 페이지의 중복되는 코드 모듈화 진행 베스트 상품목록, 할인 상품목록, 신상품목록 등 목록이 표시되는 페이지가 여러개가 존재한다. 이페이지들의 코드를 보면 목록부분은 모두 비슷한 코드로 작성되어있는데 각각 따로 구현되어있어 유지보수가 매우 비효율 적이었다. (ex : 목록페이지에서 상세페이지로 이동후 뒤로가기를 실행하였을때 이전 상태를 유지하기위해 저장되어야하는 정보가 필요한데 같은 코드이지만 해당코드를 각 페이지마다 일일히 추가해주어야함) 따라서 목록을 세팅하는 코드부분을 모듈화하여 공통 js로 분리 후 사용하도록 하였고 이후 다른 QA요청 시 매우 빨리 처리가 가능하였다. 2019. 4. 2.
페이지 이동중 뒤로가기에서 양식제출 오류 페이지 이동중 뒤로가기에서 양식제출 오류 상단 네비게이션 메뉴에서 다른 카테고리로 이동 후 뒤로가기를 하면 오류가 발생하였다. (양식 제출 확인) 이유 : 다른 카테고리 이동시 POST 방식으로 페이지를 호출하기 때문에 오류가 발생함. (Chrome 에서 post 요청으로 페이지 이동후 뒤로가기를 하면 다시 양식을 제출하겠냐는 확인 페이지를 제공하도록 되어있다.) GET방식으로 수정하고 다른 메서드들도 RESTFUL 하게 수정하였다. 2019. 3. 29.
실시간으로 순위를 매겨 목록을 제공해야하는 페이지의 속도개선 실시간으로 인기상품의 순위를 매겨 목록으로 제공하는 페이지의 속도가 매우 느린 이슈가 있다. 그이유는 아마 페이지 로딩 때 마다 서버에서 장문의 쿼리로 계산하여 테이블을 조인해서 목록을 가져오기 때문이라고 판단하였다. 따라서 순위를 매기는 로직을 일정 시간마다 실행하고 아이템을 순위대로 저장한 테이블을 따로 하나 만들어 그 테이블에 순위와 아이템의 정보를 저장한다. 그 후 인기상품목록 페이지의 요청이 올 때에는 전에 만든 테이블에서 SELECT 만으로목록을 가져오게하여 속도를 개선하려고 한다. 2019. 3. 14.
(뒤로가기 데이터유지)상품목록페이지 유지 및 속도 개선 먼저 요청받았던 부분은 상품목록에서 상세보기로 이동한 후뒤로가기를 하였을 때 기존 목록(검색조건 및 보고있던 상품목록 부분 등)이 유지되지 않고 새 페이지가 로딩 되어 기존정보가 유지되도록 해달라는 것이었다. 이 문제를 해결하기 위해 3가지 방법을 고려 하였고Session Storage를 사용하여 문제를 해결하였다. 1. javascript history-back cache 사용- 가장 이상적인 방법이라고 생각하였으나 브라우저 별, OS별로 버그가 있고원하는 대로 페이지가 보이지 않을 확률이 높다는 정보가 있어 보류하였다. 2. (Vue.js) component keep-alive 사용- 현재 페이지는 Vue를 사용하고 있기 때문에 목록 부분을 component로 만들고 그부분만 keep-alive라는 .. 2019. 3. 13.
고객목록(약3만)을 관리페이지에서 확인하는데에 너무오랜 시간이걸리는 이슈 현재 Spring + jsp + mybatis 로 되어있고 데이터를 ajax요청으로 받아오는 것이 아닌View 페이지 랜더링 시 모든 데이터를 받아오는 jstl을 사용하기 때문에 먼저 ajax요청을 하여받아오도록 변경하였다. 변경 전에는 목록페이지로 이동할때 흰화면이 매우오래 지속되었다면, 변경 후에는 페이지는 일단 랜더링 되고목록로딩 중에는 로딩중인 화면을 띄우고 목록을 불러오는데 속도는 변경 전 후가 큰 차이는 없었다. 그리고 페이징이나 필터링을 할 때에도 무조건 서버에서 다시 데이터를 받아 페이지를 새로 만드는 구조로 되어있어 (ajax 미사용)속도개선방법이 없을까 고민하다가 DataTable이라는 js 라이브러리를 사용하기로 했다.하지만 일단 View쪽에 데이터를 모두 받아와야 필터링과 페이징이 .. 2019. 3. 7.