일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Sequelize
- Nest.js
- Dinosaur
- jest
- flask
- GIT
- JavaScript
- game
- Python
- Queue
- dfs
- 게임
- 자료구조
- react
- Express
- AWS
- MongoDB
- 공룡게임
- class
- typeORM
- 정렬
- TypeScript
- nestjs
- MySQL
- cookie
- nodejs
- Bull
- mongoose
- OCR
- Today
- Total
목록Python (22)
포시코딩
내장함수는 몰라! 직접 코드로 구현해봄 def getBinary(n): # 얻어낼 이진수의 자릿수를 세팅해준다. limit = 5 result = [] while n > 0: result.insert(0, n%2) n = n//2 # 마지막은 몫으로 더해줘야 하기 때문에 while문 끝난 뒤 아래처럼 몫을 result에 추가 result.insert(0, n) # 십진수 2의 경우 010에서 멈추기 때문에 나머지 앞자리를 0으로 채워준다. while len(result) < limit: result.insert(0, 0) # 얻은 result 리스트를 하나의 문자열로 만든다. # 요소들이 int이기 때문에 map(str, list))를 통해 문자열로 만든 후 join() 진행 binary = str(''..
heights = [6, 9, 5, 7, 4] # i: index, e: element for i, e in reversed(list(enumerate(heights))): print(i, e) # 4 4 # 3 7 # 2 5 # 1 9 # 0 6

개요 및 문제발견 팀프로젝트에서 pymysql을 통해 mysql과 연동을 하기로 결정했다. app.py 각 함수에서 db를 호출해 쓰고 데이터 처리 후 db.close() 해주는 방식으로 만들었는데 만들고보니 코드가 너무 더러웠다. (before) db = pymysql.connect( host='127.0.0.1', user='root', db='dog94', password='dog94', charset='utf8') curs = db.cursor(pymysql.cursors.DictCursor) email_receive = request.form.get("email_give") curs.execute('SELECT * FROM user WHERE email = %s', (email_receive))..

개요 이번에 Logging 시스템을 구현하면서 예전에 Spring을 한창 쓸 때 eclipse에서 서버 실행할때마다 SPRING 이라고 대문짝만하게 콘솔에 찍히던게 생각이 났는데 나도 한번 그렇게 해보고 싶다. 라는 생각이 들어 좀 찾아봤다. 방법 찾기 logging art, console log art 이런식으로 검색을 좀 했더니 내가 궁금했던 부분에 대해 정리한 블로그를 발견했는데, 이런걸 Ascii Art 라고 부르는 모양이다. https://velog.io/@yubinheo/JS1 Console.log Styling, Ascii Art 아스키 아트 변환은 https://wepplication.github.io/tools/asciiArtGen/ 위 사이트에서 할 수 있다. velog.io 이 블로그..
개요 if __name__ == '__main__': app.logger.info("server on :: PORT="+str(PORT)) app.run('0.0.0.0', port=PORT, debug=True) flask 서버 실행시 위 app.logger.info 찍는 코드가 두번 실행되어 로그파일에 두번씩 찍히는걸 발견했다. 그말인즉, 서버도 두번씩 실행되고 있다는 얘기인데 앞으로 여러 상황을 고려할 때도 그렇고 고치고 가야할 문제로 파악했다. 문제해결 if __name__ == '__main__': app.logger.info("server on :: PORT="+str(PORT)) app.run('0.0.0.0', port=PORT, debug=True, use_reloader=False) 해..

개요 프로젝트 요구 조건에 로깅 시스템 구현이 있었는데 그나마 로그 관련 경험이 있고 개인 프로젝트에도 로깅 시스템을 추가할 필요성을 느끼고 있던터라 내가 담당해서 진행하기로 했다. Python Logger와 Flask Logger 중 선택해야 했는데 나는 Flask Logger를 사용했다. 세팅 방법 # 1. logging, os import import logging import os # 2. 로그 저장 폴더. 없을 시 생성 if not os.path.isdir('logs'): os.mkdir('logs') # 3. 기본 설정된 werkzeug 로그 끄기 logging.getLogger('werkzeug').disabled = True # 4. 저장위치, 레벨, 포맷 세팅 logging.basicCo..

개요 회원가입에서 회원정보와 이미지파일을 같이 전달하기 위해 방법을 찾다가 정보도 너무 없고 그나마 있는 정보들도 중구난방식이라 오랜 시간에 걸쳐 방법을 찾은 후 정리를 위해 포스팅함 잘못된 시도 저장 function test() { let file = document.querySelector('#input_file').files; let data = new FormData(); data.append('file', file); $.ajax({ type: "POST", url: '/file', data: data, processData: false, contentType: false, success: (res) => { console.log(res); } }); } @app.route('/file', me..

개요 Flask 상에서 MySQL과 연동해 CRUD 하는 법 정리 준비 먼저 API 서버를 준비하자 1. 프로젝트 세팅 2. Flask 서버 세팅 from flask import Flask, jsonify app = Flask(__name__) @app.route('/') def home(): print('hi') return jsonify({'result': 'done'}) if __name__ == '__main__': app.run('0.0.0.0', port=5000, debug=True) 3. 서버 실행 및 확인 app.py 코드 위에서 오른쪽 클릭 -> Run 'app' 화면에 뜬 파란글씨 중 하나로 컨트롤 + 클릭을 통해 들어가거나 localhost:5000에 접속하면 '/'로 접속할 때 리..
리스트 컴프리헨션이란? 리스트 컴프리헨션을 사용하는 큰 이유는 직관적이고, 여러줄 쓸걸 한줄에 만들어 주기 때문이다. 심지어 속도도 더 빠름 ['', '1', '', '1', ''] 위 리스트에서 ''를 제외한 ['1', '1']만 얻으려면 어떻게 해야할까? 리스트 컴프리헨션을 쓰면 간단히 해결 가능하다. # 리스트 컴프리헨션 temp = [x for x in temp if x != ''] # ['1', '1'] 아래처럼 다양한 방법으로도 사용이 가능하다. [x for x in range(1, 10+1) if x % 2 == 0] # [2, 4, 6, 8, 10] [ (x, y) for x in ['쌈밥', '치킨', '피자'] for y in ['사과', '아이스크림', '커피']] # [('쌈밥', ..
# 자주 쓰이는 파이썬 문법 한눈에 보기 str.isalpha() # 문자열이 알파벳인지 확인하는 함수 # 알파벳의 ASCII code 변환 ord('a') # 97 chr(97) # 'a' # 숫자 내림(몫만 남기기) print((4 + 5) / 2) # 4.5 print((4 + 5) // 2) # 4 # 서로 swap하기 a, b = b, a 문자로 바꿀땐 str() 숫자로 바꿀땐 int() len() -> 문자열 길이 문자열 슬라이싱 f="abcdefghijklmnopqrstuvwxyz" f[4:15] # efghijklmno f[4]부터 f[15] 전까지, 총 15-4=11개! f[8:] # ijklmnopqrstuvwxyz f[8]부터 끝까지, 앞의 8개 빼고! f[:7] # abcdefg 시..