목록2021/04 (22)
규도자 개발 블로그
원래 CRUD(Create, Read, Update, Delete)는 데이터베이스를 배울 때 가장 먼저 배우는 개념이다. 수학의 대부분이 해체해보면 결국 사칙연산인 것처럼 데이터베이스에서 일어나는 일도 결국엔 CRUD중 하나이다. 그리고 요즘의 프로그램들은 대부분이 결국 DB와 함께 돌아가기 때문에 이 CRUD를 프로그래밍과 결부시켜서 얘기하기도 한다. 그러므로 이 CRUD는 데이터베이스와 프로그래밍에 있어서 기본 개념 중 하나라고 할 수 있을 것이다. 하지만 기본은 기본이다. 중요하긴 한데 이것만 해서는 개발자의 가치를 올릴 수 없다는 말이다. 예전에 어떤 글을 읽었는데 CRUD만 하다보면 개발자로서의 레벨업을 하기 힘들다는 얘기였나, 뭐 언제까지 CRUD만 하고 있을래! 이런 얘기였다. 쌍당히 공감되..

파이썬으로 여러 개의 웹소켓에 동시에 연결하기 토이프로젝트로 퀀트 프로그램을 하나 제작하고 있는데 맨 처음에는 각종 거래소에서 제공하는 api를 사용할까 하다가 초당 요청제한이라는 문턱에 걸렸다. 수학모델에 근거해서 전략의 타당성을 검토해야 하는데 수백종류의 암호화폐 데이터를 1초에 한번씩 api로 요청해 저장하려고 하니 터무니 없는 생각이긴 했다. 그렇다고 1분을 쪼개서 요청을 보내자니 엄청난 변동성의 암호화폐시장에서의 수학모델 분석에는 적절하지 않다는 생각이 들었다. 그래서 웹소켓을 찾아보니 다행스럽게도 거의 모든 거래소에서 웹소켓을 지원하고 있더라. 만약에 다양한 플랫폼, 혹은 한 플랫폼에서도 다른 웹소켓 라우트에서 필요한 정보가 있으면 여러개의 웹소켓에 연결할 필요가 있다. 그럴 때 사용하기 좋은..
내가 작성한 코드는 결국 누군가가 본다. 그게 비록 자기 자신일지라도. 난 코드를 쓸 때 가독성에 신경을 많이 쓴다. 위와 같은 생각을 갖고 있기 때문이다. 실제로 블로그에도 한 카테고리가 Clean Code만을 위해 만들어지기도 했고. 아무튼 그냥 생각을 글로서 남겨놓으려고 써봤다.

고대 그리스의 수학자 에라토스테네스가 만들어 낸 소수를 찾는 방법. 이 방법은 마치 체로 치듯이 수를 걸러낸다고 하여 '에라토스테네스의 체'라고 부른다. 내가 알고리즘 문제를 풀 때 소수가 필요한 부분에서 자주 사용했다. def prime_list(n): # 에라토스테네스의 체 초기화: n개 요소에 True 설정(소수로 간주) sieve = [True] * n m = int(n ** 0.5) for i in range(2, m + 1): if sieve[i] == True: # i가 소수인 경우 for j in range(i+i, n, i): # i이후 i의 배수들을 False 판정 sieve[j] = False # 소수 목록 산출 return [i for i in range(2, n) if sieve[..
Investing.com에서 실시간 환율 긁어오기 환율을 사용할 일이 생겨서 만들게 됐다. 원래 보통 이렇게 실시간 업데이트가 되는 페이지는 js를 이용해서 비동기갱신하기 마련인데 그래서 오랜만에 selenium과 phantomJS까지 셋팅을 했는데... 혹시나 해서 환율 조회 페이지에 가서 js를 끄고 새로고침해봤는데 가격이 그대로 오더라. 최초 요청시에는 현재 시세를 보여주고 실시간으로 element를 비동기 갱신하는 방식으로 제작된 것 같다. 덕분에 24시간 실시간 시세를 얻을 수 있게 됐다. 원래 만들기 전에 꼭 누가 만든 걸 찾아보곤 하는데 만들어진 예제가 전부 네이버 증권에서 파싱해서 가져오는 거였고, 그건 안타깝게도 업데이트가 느리다. 지금 글을 쓰는 현재(2021-04-13 19:29) 네..
[프로그래머스/Level2/파이썬3(python3)] 뉴스 클러스터링 문제 여러 언론사에서 쏟아지는 뉴스, 특히 속보성 뉴스를 보면 비슷비슷한 제목의 기사가 많아 정작 필요한 기사를 찾기가 어렵다. Daum 뉴스의 개발 업무를 맡게 된 신입사원 튜브는 사용자들이 편리하게 다양한 뉴스를 찾아볼 수 있도록 문제점을 개선하는 업무를 맡게 되었다. 개발의 방향을 잡기 위해 튜브는 우선 최근 화제가 되고 있는 "카카오 신입 개발자 공채" 관련 기사를 검색해보았다. 카카오 첫 공채..'블라인드' 방식 채용 카카오, 합병 후 첫 공채.. 블라인드 전형으로 개발자 채용 카카오, 블라인드 전형으로 신입 개발자 공채 카카오 공채, 신입 개발자 코딩 능력만 본다 카카오, 신입 공채.. "코딩 실력만 본다" 카..
파이썬에서 따옴표를 사용하는 방법은 크게 세가지로 나눌 수 있다. 홑따옴표(')와 쌍따옴표(")와 쌍쌍쌍따옴표("""). 다른 인터프리터 언어인 php와 달리 세 개의 따옴표 모두 용도적인 차이점은 없다. nevertheless, 가독성을 위한 규칙은 있다. 1. 홑따옴표(') 홑따옴표는 보통 단어나 식별자를 지칭할 때 쓴다. 예를 들어 dict에서의 key값이라던가, 특정 값들을 조합해서 만드는 새로운 string이라던가. 2. 쌍따옴표(") 쌍따옴표는 보통 문장에 쓴다. 우리가 코딩을 맨 처음 시작할 때 항상 만나게 되는, "hello world"는 쌍따옴표가 어울리는 친구이다. 그리고 추가로 정규식을 정의할 때도 쓴다. 3. 쌍쌍쌍따옴표(""") 쌍쌍쌍따옴표는 보통 docstring, 그러니까 특정..
블로그에 갯수라는 말을 겁나게 많이 적어놨는데 개수가 맞댄다. 최솟값, 최댓값 할 때는 값이 순 한국어이기 때문에 한자어 + 한국어 해서 사이시옷이 들어가는 게 맞고 개수는 완전한자어이므로 사이시옷이 들어가면 안 된다. 지금 검색해보니 최댓값, 최대값, 최솟값, 최소값, 갯수, 개수... 다 완전 혼용해서 썼는데... 지금이라도 주의해야겠다.
[프로그래머스/Level2/파이썬3(python3)] 다음 큰 숫자 문제 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한사항 n은 1이상, 100000이하인 자연수입니다. 입출력 예 nresult 78831523 입출력 예 설명 입출력 예#1. 문제 예시와 ..
[프로그래머스/Level2/파이썬3(python3)] 순위 검색 문제 [본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 카카오는 하반기 경력 개발자 공개채용을 진행 중에 있으며 현재 지원서 접수와 코딩테스트가 종료되었습니다. 이번 채용에서 지원자는 지원서 작성 시 아래와 같이 4가지 항목을 반드시 선택하도록 하였습니다. 코딩테스트 참여 개발언어 항목에 cpp, java, python 중 하나를 선택해야 합니다. 지원 직군 항목에 backend와 frontend 중 하나를 선택해야 합니다. 지원 경력구분 항목에 junior와 senior 중 하나를 선택해야 합니다. 선호하는 소울푸드로 chicken과 pizza 중 하나를 선택해야 합니다. 인재영입팀에 근무하고 있는 니니즈는 코딩테스트 결..