본문 바로가기

전체 글148

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.
Spring Camp 2019 강의 자료 모음 Spring Camp 2019 강의 자료를 볼 수 있는 URL을 모아 놓은 글입니다. 1. 실전에 써먹는 스프링 부트 https://docs.google.com/presentation/d/1nid-BYFGHYjvzgMpbBBgEC2Hwx_nJ6JomikDbHtA55g/edit?fbclid=IwAR08g77Usg6iG8iNAvDl67RaPjyoGcrL5_8GnRZ-rLGKi7ydfq3GnBwA2Nc#slide=id.p 실전에 써먹는 스프링 부트 이야기 실전에 써먹는 스프링 부트 Bootiful Your Life! @Spring Camp 2019 실전에 써먹을 수 있는 ‘스프링 부트'에 대한 지식을 공유하여 ‘Bootiful Your Life’를 만들어 갔으면 좋겠습니다. 스프링 부트 개발을 이끌고 있는 개.. 2019. 5. 6.
Spring HandlerMethodArgumentResolver 인터페이스 프로그래머스 강의 과제를 하던 중 클라이언트에서 보낸 쿼리 파라미터 값이 컨트롤러 파라미터에 바인딩이 되지 않아서 삽질을 했다. Spring 프레임워크에서 지원하는 Pageable 인터페이스를 사용하지 않고, 직접 Pageable 인터페이스를 생성해서 사용했다. 클라이언트에서 쿼리 파라미터로 값 보내기 포스트 목록을 조회하는데, 쿼리 파라미터 값으로 offset 값은 0, limit 값은 5를 보내고 있다. 컨트롤러에서 포스트 목록 조회 메서드 컨트롤러에서는 리스트 조회를 하기 위한 메서드를 다음과 같이 구현했다. 이 때, Pageable 인터페이스는 직접 생성했다. @RestController @RequestMapping("api") public class PostRestController { @Get.. 2019. 5. 5.
리팩토링 - 리팩토링 개론 리팩토링은 무엇인가 '리팩토링' 용어는 문맥에 따라 두 가지 의미로 정의된다. 겉으로 드러난 기능은 그대로 두고, 알아보기 쉽고 수정하기 간편하게 소프트웨어 내부를 수정하는 작업 리팩토링 기법을 연달아 적용해서 겉으로 드러나는 기능은 그대로 둔 채 소프트웨어 구조를 변경한다. 리팩토링의 목적은 소프트웨어를 더 이해하기 쉽고 수정하기 쉽게 만드는 것이다. 그리고 리팩토링은 겉으로 드러나는 소프트웨어 기능에 영향을 주지 않는다. 리팩토링은 왜 해야 하나 리팩토링은 소프트웨어 문제를 해결하는 만병통치약은 아니지만, 리팩토링의 가치는 코드를 쉽게 이해할 수 있게 도와주는 도구이다. 리팩토링은 다양한 용도로 사용이 가능하다. 소프트웨어 설계 개선되니까 가끔 단기적인 목적으로 코드를 추가할 때가 있다. 이러한 방식.. 2019. 5. 4.