일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 아이폰
- pymongo
- python
- 추천 영상
- 코딩
- 깃허브
- 파이썬
- docker-compose
- 충북
- gpu 병렬처리
- 구글 드라이브
- 링크
- 리스트
- Django
- 그리디 알고리즘
- 유튜브
- List
- selenium
- venv
- DB
- 장고
- 탐욕 알고리즘
- 바로학교
- 알고리즘
- G-Suite
- MongoDB
- 단축어
- flask
- Google Drive
- nocookie
- Today
- Total
목록분류 전체보기 (71)
SSAMKO의 개발 이야기
본 문제는 COCI(Croatian Open Competition in Informatics) 2009/2010 6라운드에 출제된 문제입니다. > COCI 2009/2010 6th Contest 1. 문제 카약 대회 진행중에 불행하게도 강한 바람으로 몇몇 카약이 손상되었다. 레이스 시작은 5분 밖에 남지 않았다. 불행 중 다행으로, 몇몇 팀들이 여분의 카약을 가져왔다. 카약은 무겁고 운반하기 힘들어서, 여분의 카약을 가져 온 팀들은 자신들의 경기 직전 혹은 경기 직후의 팀에게만 카약을 빌려줄 수 있다. 예를 들어, 레이스에 4번째로 참가하는 팀은 3번이나 5번 팀에게만 빌려줄 수 있다. 당연히 여분의 카약을 가져온 팀의 카약이 파손되었을 경우, 해당 팀은 당연히 자신들이 가져온 여분의 카약을 다른 팀에게..
그리디 알고리즘(greedy algorithm) - 동전 지불 문제¶ 그리디 알고리즘이란, 쉽게 말해 매 순간 최선의 선택을 하는 알고리즘이다. 전체의 최선이 아닌 매 순간의 최선이기 때문에 전체로 봤을 때는 최선이지 않은 경우가 종종 발생한다. 다시 말해 그리디 알고리즘에서는 2보 전진을 위한 1보 후퇴라는 말은 허용되지 않는다. 오로지 전진만 할 뿐이다. 그리디 알고리즘에 대해 좀 더 자세히 알고 싶다면, 나무위키 - 그리디 알고리즘을 참고하자 동전 지불 문제는 동전의 종류와 지불할 돈이 주어지면, 가장 적은 수의 동전을 사용해 비용을 지불하고, 그 때, 각 동전들이 몇 개 씩 사용되었는지, 잔돈이 생긴다면 잔돈까지 출력하는 코드를 짜는 것이다. 가장 큰 액수의 동전부터 사용해서 점차 작은 단위로 가..
python에는 크게 세 가지 string 포맷이 존재한다. 1. 가장 오래된 방식인 %-포맷 name = 'ssamko' age = 20 print('He is %s. %d years old' % (name, age)) 위와 같이 %s(string), %d(int) 등을 이용하여 string내에 표현해주고 뒤에 각각에 해당하는 변수를 넣어주는 방법이다. 변수의 타입에 따라 %s, %d처럼 달리 지정해줘야하기 때문에 변수의 타입을 지정하지 않고 선언하는 파이썬의 특징과 상충하는 면이 있다. 2. 그 후로 추가된 str.format() 메서드 방식 name = 'ssamko' age = 20 print('He is {}. {} years old'.format(name, age)) print('He is {..
회원가입 시 하나의 폼 작성으로 school과 adminuser 그리고 Comroom 테이블에 동시에 데이터를 생성해야 했다. form_valid단계에서 각 field의 정보들로 세 개의 Model에 대한 인스턴스를 생성해서 저장하면 되는 그리 어렵지 않은 문제였지만, 만일 하나의 테이블에는 정상적으로 생성이 되고, 다른 테이블에서는 실패한다면 다시 회원가입을 시도하려고 할 때 문제가 발생할 수 있다. 이런 문제를 해결하기 위해 데이터베이스 트랜젝션Database transaction을 이용해야 한다. 데이터베이스 트랜젝션이란, 두 개 이상의 Query를 처리할 때 하나라도 실패하면 전체를 되돌리도록 query를 단일화 하는 작업으로, ACID라는 특성을 갖는다. Atomic(원자성), Consisten..
기존 위와 같던 로그인 화면에 아래와 같이 비밀번호 분실시 재설정을 할 수 있도록 바꾸고자 했습니다. 클릭하면 새 창을 띄우지 않고, Modal로 처리하고 싶었습니다. 이후 확인을 누르면 비밀번호 재설정 메일을 보내는 식으로 View를 구성하고자 했는데요. 여기서 가장 큰 어려움이 새 창이 아니라 Modal을 사용하려면 한 페이지에 2개의 폼을 띄워야 한다는 점이었습니다. 단순히 View 클래스만 상속받아서 복잡하게 코드를 짜면 가능은 하겠지만 Django답지 못하고, Class-based View의 장점을 살리지 못했기에 고민하며 구글링을 시작했습니다. 몇 가지 방법이 나왔지만 가장 만족스러웠던 건 https://www.codementor.io/@lakshminp/handling-multiple-for..
Google URL shortener가 막히면서 단축 url만들기가 번거로워졌는데요. 아이폰에서 정말 간편하게 단축 url을 만들 수 있는 방법이 있습니다. ‘단축어’ 기능을 활용하는 건데요. 먼저 단축어 어플을 실행합니다. 아래에 갤러리 메뉴로 갑니다. 갤러리에는 바로 등록해 사용할 수 있는 단축어들이 있습니다. URL이라고 검색하면 저렇게 URL축약이 나옵니다. 등록해주세요. 그럼 이제 이 긴 URL을 축약해보겠습니다. 먼저 클립보드에 복사한 후 ‘단축어’ 위젯에 보시면 url축약 버튼이 보입니다. 버튼만 눌러주시면 끝! 클립보드에 축약된 주소가 복사됩니다. 붙여넣기 해보시면 이렇게 축약된 url을 확인하실 수 있습니다. 팁1) 사이트에 접속한 상태에서 공유버튼을 누르시면 이렇게 바로 url축약도 가..
현재(2020.3.25.) 컴룸닷넷의 데이터베이스 구조(관계)이다. ERD Tool로 깔끔하게 그릴수도 있겠지만, 아직까진 손으로 작업하는 게 편하고, 적당한 ERD Tool을 못 찾아서 일단 아이패드로 그려봤다. 적당한 ERD Tool을 발견하면 다시 깔끔하게 작성해봐야겠다. notice는 메인 화면에 공지사항을 띄우기 위해 만들었고, 조만간 게시판 앱으로 분리할 계획이다. (로그인 없이도 글을 남길 수 있게 하려고 비속어 및 광고 필터링 모듈을 개발 중) schoolAdmin은 각 학교 관리자 테이블이다. 메일 인증을 통해 is_active가 True가 되면 사이트 이용이 가능하다. auth_key는 메일 인증, 비밀번호 재설정을 위한 인증키이다. comroom은 모든 학교의 컴퓨터실을 담고 있는 테..