본문 바로가기
반응형

프로그래밍304

TDD(Test Driven Development) 요즘 한창 애자일과 스크럼에 대한 호기심이 절정이다. 이런 저런 책을 보면서 새삼 다른 느낌으로 오는 정보와 지식들이 많다. 화요일 아침부터 비가 촉촉히 내린다. 하루 빨리 코로나19 사태가 진정되었으면 한다. TDD관련 테스트 개발주도 프로그래밍이라는 책도 읽다가 덮은 것 같은데 다시 열어서 바야할 것 같은 요즘. 마음만 바쁘다. 이럴때일수록 천천히 주변을 둘러보면서 나아가야한다. 이 내용은 책을 보다가 훅~ 하고 들어온 느낌이라 그 느낌이 좋아 기록을 해두고자 한다. TDD는 제품 구현이나 코딩을 시작하기 전에 테스트 케이스를 먼저 작성하고 해당 테스트를 통과하는 코드를 구현함으로써 처음부터 발생될 수 있는 결함을 줄이려고 노력한다. 따라서 애자일 개발에서는 프로그래머와 테스터가 밀접하게 커뮤니케이션.. 2020. 3. 10.
iOS 13 widget dark mode 체크 iOS13에서 다크모드 지원이 된다. iOS SDK내부에 보면 iOS12부터 UserInterfaceStyle을 지원한다고 되어 있는데 지난번 포스팅에서 Info에 User Interface Style을 Light로 넣으면 만사 오케이(?) 라는 말을 따라 적용했는데 이미지나 UILabel, UIView에서 색을 임의로 지정하거나 변경 한 경우에는 다크모드 지원이 제대로 되지 않는 문제가 발생한다. 따라서, 위젯에서 사용하는 UI컴포넌트의 배경색은 default로 잡고 Info에서 Interface Style을 제거한다. 그리고 이미지의 경우는 다음 코드를 이용해서 현재 단말의 다크모드 여부를 체크해서 그에 따라 변경을 하면 된다. if (@available(iOS 13.0, *)) { NSLog(@” .. 2020. 2. 28.
ObjectMapper Map to JSON String JSON String to Map 변환 매번 하나 하나 할 때마다 새롭다. ^^; 좋은건가? 특정 URL을 크롤링하기 위해서 파라미터를 생성하는 작업만 하는데 수십분이 소요되고 있어서 시간을 줄여보고자 최초 1회에 한하여 수집되는 파라미터 정보를 csv파일에 적재시키고 그 다음부터는 csv파일을 읽어서 처리를 할려고 한다. csv파일 생성/읽기는 메이븐 의존성을 추가해서 해결을 했다. com.opencsv opencsv 4.1 다음은 Map으로 만들어진 ArrayList에 있는 정보를 JSON스트링으로 변환을 해서 저장을 하려고 한다. try { ArrayList parameters = data.getParameterList(); ObjectMapper mapper = new ObjectMapper(); String json = ""; Str.. 2020. 2. 28.
ClassPathResource를 이용한 file 생성 java spring boot project에서 properties에서 file의 path 또는 name을 지정하고 생성하는 방식으로 사용하고 있다가 특정 경로를 설정해서 사용하는 방법 대신 resource폴더 아래에 특정 디렉토리를 만들고 파일을 생성해서 사용하는 방식으로 변경을 하고자 한다면 다음과 같은 방식을 이용해볼것을 권장한다. 나의 경우 csv file을 만들고 쓰고 읽고 하는 기능을 만들고 있는 중이다. /** * csv 파일을 생성하는 메서드 * @param filePath 파일 경로 * @param title 파일 제목 * @param content 내용 * @return */ public static int createCsvFile(String filePath, String title,.. 2020. 2. 26.
Mariadb 쿼리 실행계획 참조표 (EXPLAIN) 오늘은 마리아디비의 쿼리 실행계획이 궁금한 날이다. 예전 기억에 MS-SQL의 경우 쿼리실행 계획을 하게 되면 문제가 되는 테이블과 예상 시간, 인덱스 등에 대해 좀더 자세히 볼 수 있었던 것 같은데 마리아디비에서는 잘 모르겠다. 쿼리 실행계획을 수행하기 위해서는 EXPLAIN 쿼리 결과로 나온 내용은 무슨 말인지 전혀 모르겠다. 마리아디비 사이트에서 한글 번역을 해서 참조로 올려둔다. id 순서 테이블이 조인되는 순서를 나타내는 순서 번호입니다. select_type 어떤 종류의 SELECT테이블이 나옵니다. table 테이블의 별명 이름. 하위 쿼리의 구체화 된 임시 테이블 이름은 입니다. type 테이블에서 행을 찾는 방법 (결합 유형) possible_keys 테이블에서 행을 찾는 데 사용할 수있.. 2020. 2. 12.
Failed to complete request: org.springframework.web.util.NestedServletException: Handler dispatch failed; nested exception is java.lang.AbstractMethodError: Method 전문가가 아니다. 자주 경험하지 못했다. 하는 족족 발목을 잡는 문제들이 하나씩 풀릴 때마다 무지의 극치를 적나라게 느낄 수 있다. 마이바티스의 fetchSize를 통해 대용량 처리를 위해 쿼리 문을 작성하고 DTO로 매핑을 시키는 과정에서 발생한 문제. 한참을 검색하고 찾다보니 저런 오류 메시지가 딱히 유형이 정해진건 아닌 듯하다. 다양한 경우들이 존재하면서 해결책을 찾기 어려울 것 같다는 생각이 들었다. 몇번을 더 고민하고 생각을 했지만 뾰족한 수가 없다. 선배에게 메신저로 물어보니 선배도 낯선 오류 같다면서 실행 화면을 보자고 한다. 실행된 마이바티스의 쿼리를 보니 unlead된 컬럼이 다수 존재했다. 즉 쿼리가 실행되고 DTO로 매핑하려는 순간 데이터 타입의 변환이 제대로 안되 발생하는 오류였다... 2020. 2. 10.
반응형