본문 바로가기

프로그래밍 언어

파이썬으로 비밀번호 유추하기, 경우의 수 도출 얼마전 같이 강의 듣는 친구와, 장난으로 다른 친구의 핸드폰 비밀번호를 풀고자 했는데, 친구가 힌트를 제시하여, 진지하게 추리가 시작되었다. (비밀번호: 4자리) 주어진 힌트: # 1. 비밀번호에 사용된 숫자는 3개이다. # 2. 4자리 숫자 도합이 20이 넘는다. # 3. 마지막 3자리 숫자 합만 20이 넘는다. # 4. 두번째와 네번째 숫자가 같다. 104개의 경우의수가 나왔다. 여기에 우리가 틀렸던 숫자의 리스트를 만들어준(my_list) 다음에, 상기 경우의수에서 제외한다. -> 리스트를 만들 때, 중복을 없애기 위하여, Set으로 만들어주고, 다시 리스트화 한다. [x for x in password_list if x not in my_list] 범위가 확 줄어버렸다. 후후후... 더보기
[MySQL] 실습: 영화2 use movie_app_db; insert into user (email, password, name, gender) values ('qqq2naver.com','1234','Mike',1); -- 여자는 0, 남자는 1 실습에서 사용할 데이터 입력 -- movie insert 데이터 : https://yeo0616.tistory.com/122 -- user insert 데이터 : https://yeo0616.tistory.com/123 -- review insert 데이터 : https://yeo0616.tistory.com/124 문제: -- 1. 하트 눌러서, 즐겨찾기에 저장하는 SQL -- 2. 다시 하트 누르면, 즐겨찾기에서 삭제하는 SQL -- 3. 내 즐겨찾기 리스트 가져오는 SQL (9 .. 더보기
[MySQL] 문자열 빨리 찾기: fulltext, 실습: 영화1 movie_app_db 스키마 생성 -> movie 테이블 생성 -> user 테이블 update 컬럼 -> default: now() on update now() 문자열 빨리 찾기: fulltext - 테이블 속성 하단에 index컬럼에서, 타입 fulltext 선택 - 적용할 컬럼 선택 -> 해당컬럼에서 문자열을 찾을 때, 더 빨리 찾을 수 있게한다. ( like를 적용할 컬럼) use movie_app_db; insert into user (email, password, name, gender) values ('qqq2naver.com','1234','Mike',1); -- 여자는 0, 남자는 1 실습에서 사용할 데이터 입력 -- movie insert 데이터 : https://yeo0616.tis.. 더보기
[MySQL] 실습: 일정 스키마 생성: memo_app_dn 테이블 생성: 테이블명 컬럼 users id email password name created_at memo id user_id content todo_date is_completed follow id follower_id followee_id created_at use memo_app_db; select * from user; insert into user (email, password, name) values ('abc@naver.com','ttnn1111','sally'); insert into memo (user_id, content, todo_date) values (1,'김밥 먹으러 가자', '2022-05-20 11:45') (2,'커피 마시면서 놀기', .. 더보기
[MySQL] 실습: 좋아요 -- insert 값 : https://yeo0616.tistory.com/121 테이블 설정 후에 차례대로 실행하는 것이 중요 (foreign key 설정 영향) users 테이블 생성 및 설정 -> photos 테이블 -> follows 테이블 -> comments 테이블 -> likes 테이블 -> tags 테이블 -> photo_tags 테이블 use yh_db; 테이블명 컬럼 users id username created_at photos id image_url user_id created_at follows id follower_id followee_id created_at comments id user_id photo_id comment_text created_at likes id user_.. 더보기
[MySQL] 중복값 입력 방지: Unique 설정 중복값 입력 방지: Unique 설정 - 테이블 설정시 - 일부 컬럼은 중복되면 안된다. ex) user_id, photo_id 컬럼 - 중복 방지: 유니크 해야한다. - 중복적으로 데이터 적용이 안되게끔, 데이터베이스가 막아줘야한다. 기본적으로 하단의 ‘Index’에서 처리한다. - Index에서 새로운 Index Name 설정: 테이블 이름의 첫 글자 + 설정하고자 하는 컬럼명으로 작성 (보통은 이렇게 작성) ex) like 테이블의 user_id, photo_id 컬럼이 중복되면 안된다. -> l_user_id_photo_id - Type에 Unique 설정 - 우측에 적용하려는 컬럼 체크 아래는 실행 이미지 - foreign key를 먼저 만들면, foreign key개수만큼 index가 생성되어.. 더보기
[MySQL] 데이터 입력 실시간 시간 기록: now() 데이터 입력 실시간 시간 기록: now() - 테이블 설정시 - 컬럼 데이터 타입은 Timestamp로 설정 - default/ expression에 now() 혹은 current_timestamp로 입력 - Apply 및 Finish로 적용시에, default/ expression에는 자동으로 대문자로 CURRENT_TIMESTAMP 표시된다. 더보기
RDBMS와 NoSQL 간단 설명 1 1. 관계형 데이터 베이스: RDBMS - Relational DataBase Management System - 관계형 데이터 베이스 시스템 - 트랜잭션(Transaction) 처리가 가능함 - MySQL, Oracle, MS-SQL -> 데이터를 저장할 때 테이블을 다 쪼개서 저장하는 방식 -> 공간의 낭비를 가장 적게 활용하는 방식 -> 하드디스크가 지금처럼 발달 되지 않았던 시절, DB는 디스크(SSD)에 저장되는 데, 디스크의 용량은 한계가 있음 -> 데이터를 최소화 했어야했다. 그래야 불러오는 속도도 빠르다. -> RDBMS 원래 개발할 때 분산되어있는 데이터를 처리하지 않게 개발한다. 그러므로, 나눠서 처리하는 게 되게 어렵다. -> 분산 처리를 clustering(분집)이라고 한다. 분산처.. 더보기