Study/python 마이쮸(mychew__) 2020. 3. 25. 23:21
DB 테이블에 index작업을 해주는 것은 아주 중요하다. 각각의 트랜잭션이 얼마나 빠르게 실행되고, 결과를 리턴하는지에 따라 서버에 성능이나 부하, 프로덕트의 속도 등이 결정되기 때문이다. 같은 테이블인데도 index가 있고 없고에 따라 속도가 100배 이상 차이나는 서비스가 될 수도 있다. 대부분 primary키에 index가 걸려있고, 검색을 자주하는 컬럼(where 절에 자주 들어가는)이 인덱스로 잡히게 된다. 최근에 문장에서 키워드를 검색하여 키워드가 포함된 row를 추출하는 서비스를 만들어야 하는 일이 생겼다. 이럴 때는 그냥 index를 쓰면 되는 것일까? 검색해보니 mysql에서 full text index를 지원한다는 것을 찾아냈다. full text index는 문장을 index화 하여..
Study/python 마이쮸(mychew__) 2020. 3. 3. 20:37
실제 운영 서버에 올라가 있는 Django 프로젝트와 로컬에서 운영중인 Django 프로젝트의 DB 불일치는 항상 개발자를 괴롭히는 문제이다. 서로 다른 브랜치에서 (git을 사용한다면) 새로운 모델은 만들고 migrate를 하다보면 어느 브랜치에서는 있고, 어느 브랜치에서는 없어서 꼬이게 되어있다.(리얼 100퍼임) 새로운 회사에 처음와서 로컬에서 개발환경을 구성하기 위해 migrate를 돌렸는데, 이게 웬걸... 자꾸 duplicate colum error가 나는것이다!! 그 후로 계속 마이그레이트파일 다 지우고 새로 만들고 프로젝트를 롤백하는 형식으로 진행했는데, migrate fake를 이용해 거짓 migrate정보를 만들 수 있다는 것을 알았다. 명령어는 간단하다. migrate를 할 때 뒤에 ..
Study/python 마이쮸(mychew__) 2020. 3. 1. 21:44
python을 사용하면서 virtual env(가상환경)을 많이 만들어서 사용하는 편인데, 주로 그냥 pip install vitualenv를 설치해서 사용했습니다. 그런데 대부분 Django를 백엔드 서버로 사용하는 스타트업이나 회사를 가보면 가상환경을 conda를 사용하더라구요. 아무래도 vitualenv로 설치 후 이것저것 패키지를 설치하는 것보다, conda를 사용하면 통일성이 있어서 좋다고 해야 하나? 그런 느낌입니다. 저희 회사에서도 백엔드 Django 서버를 conda를 이용해 돌리고 있는데요, 서버는 ubuntu고 로컬은 macOS라서 Windows에서 설치해보고 사용해본적은 없어요. 그런데 집에서도 좀 해보려고 개발환경 세팅해보려는데 어떻게 했는지 다 까먹어서 정리해 놀려고 합니다. ㅋㅋ..
Study/안드로이드 마이쮸(mychew__) 2019. 11. 7. 23:22
들어가기 전에 멘토를 하면서 RSA(공개키-개인키)를 사용한 서버와 클라이언트간에 암복호화를 하는 프로그램을 만들게 되었다. 개인키와 공개키에 대해서는 이미 충분히 알고있기 때문에 쉽게 만들줄 알았는데, 기존 라이브러리를 사용하자니 서버쪽과 클라이언트간에 데이터가 어긋나는 경우가 발생했다. 서버는 파이썬을 이용한 dJango, 클라이언트는 안드로이드였는데, 안드로이드에서 제공하는 KeyStore를 이용해 공개키와 개인키를 생성하고, 개인키는 디바이스에 저장, 공개키는 서버로 전송하여, 서버에서 특정 데이터를 암호화 하고 안드로이드에서 개인키로 복호화하는 개념이다. 즉, 개인키를 저장하고있는 디바이스만 복호화할 수 있는 데이터 통신 프로그램을 만드는게 목표였다. 안드로이드에서 RSA키를 생성하는 것은 매우..
Study/python 마이쮸(mychew__) 2019. 5. 16. 12:48
프로젝트로 관리자 페이지를 만들게 되었습니다. 헙... 웹이라는 영역은 항상 나에게 어렵게만 느껴집니다. 뭔가.. 디버깅도 잘 안되고, 어디가 에러 인지도 모르겠고, 그놈에 404와 500 ㅋㅋㅋㅋ Spring교육에서 마이바티스를 사용해 어케어케 하는 것도 배우긴 했는데, 며칠 배우는 걸로 확 늘지 않을 거고.. 그렇다고 클라이언트 개발을 안 한 건 아닙니다. 안드, 아이폰 개발도 했고 유니티 C#으로 게임도 만들어보고... 근데 항상 웹페이지는 귀찮고 번거로운 작업으로 여겨졌습니다. 그러다가 드디어 뭔가 만들어야 하는 시간이 온 것입니다. 이 포스팅은 정말로 1도 웹에 대해서 모르는, HTML도 모르고 JS도 모르고 CSS도 모르고! 하는 웹알못이 관리자 페이지를 만드는 과정에 대한 글입니다. 쓰면서도..