본문 바로가기

전체 글151

리팩토링 - 메서드 정리 메서드 추출 (Extract Method) 어떤 코드를 그룹으로 묶어도 된다고 판단이 들면, 해당 코드들을 빼내어 목적을 잘 나타내는 메서드로 만들자 수정전 코드 public void printOwing(double previousAmount) { System.out.println("****************"); System.out.println("*****고객 외상****") System.out.println("****************"); double outstanding = previousAmount * 1.2; for (Order o : orders) { outstanding += o.getAmount(); } System.out.println("name: " + name); Syste.. 2019. 5. 16.
MySQL "Cannot get geometry object from data you send to the GEOMETRY field" 에러 해결방법 임시 테이블 생성 id, geometry 두 개의 컬럼을 구성된 테이블을 생성한다. CREATE TABLE `geo_test` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `geo` geometry DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; 테이블에 geometry 타입 데이터 추가 (에러 발생) 아래 SQL 구문을 실행하면 "Cannot get geometry object from data you send to the GEOMETRY field" 에러가 발생한다. geometry 필드에 텍스트 값을 넣으려고 했기 때문에 발생한 에러이다. INSER.. 2019. 5. 13.
LocalDateTime 값을 yyyyMMdd 문자열로 포맷팅 String formatDate = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); // 20190513으로 출력 System.out.println(formatDate); 참고자료 DateTimeFormatter Doc 문서 2019. 5. 13.
Python 리스트의 원소들을 2개씩 묶어서 합 구하기 자연수 N을 입력 받아서 N개의 1 이상 5 이하의 난수로 이루어진 리스트 a를 생성한다. 생성된 리스트의 원소들을 2개씩 묶어서 합을 구한 다음 새로운 리스트 b를 구하라. import random def twoSum(a, n): b = [] for i in range(0, n, 2): if (i == n-1): b.append(a[i]) else: b.append(a[i] + a[i+1]) return b; N = int(input('N = ')) a = [] # N 개수 만큼 1 이상 5 이하 난수로 이루어진 숫자 생성 for i in range(N): a.append(random.randrange(1, 6)) print('a =', a) print('b =', twoSum(a, N)) 2019. 5. 11.
Python 중복 데이터 없이 정수를 입력 받아서 소수와 비소수의 합 구하기 중복되는 데이터 없이 정수를 입력 받아서 리스트 a를 만든다. 리스트의 원소 중 비소수의 합과 소수의 합을 출력하는 함수를 작성한다. 만약 2보다 작은 수를 입력하면 안내 메시지를 출력한다. import math def isPrime(n): sqrt = int(math.sqrt(n)) + 1 for i in range(2, sqrt): if n % i == 0: return False return True def printPrime(a): primeResult = 0 nonPrimeResult = 0 for i in range(len(a)): if isPrime(a[i]): primeResult += a[i] else: nonPrimeResult += a[i] print('소수의 합 : ', primeR.. 2019. 5. 11.
Python 난수의 빈도수가 차지하는 비율 구하기 원소의 개수 N과 최소값 MIN, 최대값 MAX를 입력 받은 다음에 N개의 MIN 이상 MAX 이하인 난수를 생성한다. 그리고 생성된 난수의 빈도수를 센 다음에 N에 비해 난수의 빈도수가 차지하는 비율을 출력하라. import random def printRatio(n, minValue, maxValue): a = [] # 원소의 개수 N 만큼 난수 생성하기 for i in range(N): a.append(random.randrange(MIN, MAX+1)) print('난수 빈도수 비율') print('========================') for i in range(minValue, maxValue+1): print("%-4d %-4d %.1f%%" % (i, a.count(i), a.co.. 2019. 5. 11.
Python 리스트에 특정 값이 있는지 체크하기 리스트에 특정 값이 있는지 체크하기 if item in list: print('리스트에 값이 있습니다.') else: print('리스트에 값이 없습니다.') 리스트에 특정 값이 없는지 체크하기 if item not in list: print('리스트에 값이 없습니다.') else: print('리스트에 값이 있습니다.') 2019. 5. 11.
OkHttpClient 요청 메시지에 쿼리 파라미터 추가하기 OkHttp3 종속성 추가 com.squareup.okhttp3 okhttp 3.14.1 쿼리 파라미터 추가한 Request 객체 생성 HttpUrl.Builder 클래스와 addQueryParameter 메서드를 이용하면 쿼리 파라미터를 쉽게 추가할 수 있다. 완성된 URL 문자열 값을 Request 객체를 생성하는 빌더에 넣어주면 된다. private static MediaType JSON_MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8"); public static Request createPostRequest(String url, Map params, String bodyJson) { HttpUrl.Builder httpBuilder .. 2019. 5. 10.
JDBC를 사용한 MySQL SSL 연결 JDBC 드라이버를 이용해서 MySQL 데이터베이스에 SSL 연결하는 방법에 대한 글입니다. QueryPie Engine 개발 중 SSL 기능을 개발하면서 배운 내용을 정리한 글입니다. SSL 연결이 왜 필요한지와 SSL 연결은 어떻게 구현해야 하는지에 다루고 있습니다. https://medium.com/querypie/jdbc%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%9C-mysql-ssl-%EC%97%B0%EA%B2%B0-1c5da86cc2c5 JDBC를 사용한 MySQL SSL 연결 QueryPie 개발기 #9: 데이터베이스에 안전하게 접속하기 medium.com https://medium.com/querypie/mysql-ssl-connection-using-jdbc-bee3b.. 2019. 5. 6.