본문 바로가기

전체 글

나의 첫 프로젝트(2), "Flask에서 React까지" [08] 비밀번호 암호화 입력받은 비밀번호 값을 그대로 저장하지 않고 암호화 하여 저장해야하는데 쓰는 함수이다. 해시(hash)란 단방향 암호화 기법으로 해시함수(해시 알고리즘)를 이용하여 고정된 길이의 암호화된 문자열로 바꿔버리는 것을 의미한다. 이 과정을 소금 친다고 표현하는데, generate_password_hash는 보통 5만번정도 소금을 친다. (챱챱 x 50000) # app.py from werkzeug.security import generate_password_hash, check_password_hash @app.route("/join", methods=["POST"]) def join() : data = request.get_json() # axios.post로 받아온 데이터 use.. 더보기
나의 첫 프로젝트(1), "Flask에서 React까지" 엘리스 AI 트랙을 달려온지 8주가 지났고 드디어 개인 프로젝트를 하게 되었다!!! 설렘 반, 두려움 반 프로젝트 주제는 아래 3가지 중에 선택을 할 수 있었다. 직업 심리 검사 서비스 (프론트엔드) 도서관 대출 서비스 (백엔드) 레이서 포트폴리오 서비스 (풀스택) 엘리스 1주차부터 8주차까지 배웠던 모든 내용을 프로젝트 안에서 녹여내보고 싶다는 생각에 세번째 포트폴리오 서비스 사이트를 과감히 선택했다. 세번째 주제는 역시 1분만에 마감되기도 했다. 첫주에는 부족한 개념을 다시 공부하고 로그인, 회원가입 기능을 구현하는 것에 모든것을 쏟았고, 둘째주에는 서버(MySQL)와 백엔드(Flask) 그리고 프론트엔드(React)를 넘나들면서 웹사이트에 살을 붙여갔다. 코딩의 코도 모르던 코맹맹이가 2주동안 얼마.. 더보기
#3 1,000,000,007로 나누기 [백준 저지 11401번] 자연수 N과 정수 K가 주어졌을 때, 이항 계수를 구하고 그 수를 1,000,000,007 로 나눈 나머지를 구하시오 왜 알고리즘 문제에서는 1,000,000,007(1e9+7)로 나눈 나머지를 구하라고 할까요? 아무생각없이 ctrl c + v 하고 문제 풀은 사람 있나요?! 저요!!!!! 모듈러 연산(Modulo operation) 어떤 한 숫자를 다른 숫자로 나눈 나머지를 구하는 연산으로, 나머지 연산(mod)이라고 한다. Why 나눠야 할까? python에서 쓰는 int 정수형의 경우 4바이트(32비트)로 -2^31에서 2^31-1까지 표현이 가능하다. (-2,147,483,648 ~ 2,147,483,647) 이는 2e9로 근사할 수 있다. 하지만 이보다 훨씬 큰 값의 .. 더보기
[HTML] Emmet 으로 마술 부리기 Emmet 이란? 엄청나게 강력한 자동완성 기능 플러그인으로, HTML 마술을 보여주어 머글들을 혼내주자! 생성하려는 요소의 이름을 입력한 뒤 tab을 누르면 태그가 자동 생성된다. div*3 div.box 또는 .box div.box.container (클래스 2개이상) div#unique-box div[style="color: black"] div[attr1="속성1값" attr2="속성2값"] div{Hello, World}*3 Hello, World Hello, World Hello, World lorem (라틴어 샘플) Lorem ipsum dolor sit amet consectetur adipisicing elit. Debitis sint iure quaerat enim officiis do.. 더보기
#2 객체/클래스/인스턴스 코딩공부를 하다보면 야생의 객체(Object)를 만나게된다... "객체"(이)는 "알수없음" 스킬을 사용했다. ??? : 효과는 굉장했다! 클래스 설계도와 같다. 모든 피카츄가 기본적으로 갖는 속성과 스킬에 대해 정의한다. 이름, HP, 성별, 몸무게, 타입, 키 등과 같은 성질(=필드, 변수)과 스킬, 감정표현 등 할 수 있는 행동(=메서드, 함수)로 구성된다. 인스턴스 설계도(클래스)를 바탕으로 구현된 실체이다. 야생에서 만나는 피카츄들마다 몸무게, 키, 성별, 스킬이 다르듯이, 클래스에서 정의된 대로 각각 구별이 되는 인스턴스를 만들어내는 것이다. 최고의 포켓몬을 얻기위해 몇천마리를 잡고 다니는 이유 객체 객체와 인스턴스는 객체지향 프로그래밍에서는 유사한 개념이다. 클래스 타입으로 선언한 것을 객체.. 더보기
#1 변수 i 의 숨겨진 비밀 for i in range(10) : for j in range(10) for k in range(10) ... for 반복문에 등장하는 단골 손님 i 의 정체가 뭘까 그의 자매품 j 와 k 도 있다 ㅎㅎ 프로그래머중에는 index의 i라고도 말한다 (그럴듯해) 혹은.... FORTRAN i 를 쓰게 된 이유는 FORTRAN에서 시작되었다. 1950년대 개발되어 1980년대까지 공학용 수치계산에 인기있던 언어였다. FORTRAN에서 i 부터 n까지로 시작하는 단어로 변수를 만들면 기본적으로 정수형이 되었고, 그 외의 단어로 변수를 만들면 기본값이 실수형이었다. 정수형(integer)의 맨앞 두글자, ' i '와 ' n '을 따와서 i, j, k, l, m, n의 변수를 int형으로 취급하게 되었던게 관습.. 더보기
#0 프로그래밍은 0부터 시작해요 처음 코딩을 접했을 때 숫자를 1이 아닌 0부터 센다는게 진짜 어이가 없었다. 0번째 값이 1이고 1번째 값이 2이고... 나만 헷갈리나? 암튼 도대체 0부터 시작하는게 왜 좋은건지 궁금해서 알아보았다 ㅎㅎ 다익스트라 노트 네덜란드의 컴퓨터 과학자 다익스트라(Dijkstra, 1930-2002)가 정리한 유명한 노트가 있다. '0부터 시작하고 마지막 수는 포함하지 않는 인덱스 넘버링' 이 프로그래밍에 왜 좋은 표현인지 이유가 담겨있다. 수학에서 수의 구간을 표현하는 방식에는 4가지가 있다. Ex) 2에서 12까지의 정수를 표현하는 방식 ① 1 < n < 13 ② 2 ≤ n ≤ 12 ③ 1 < n ≤ 12 ④ 2 ≤ n < 13 다익스트라는 4가지 방법 중 ④시작은 닫힌 구간, 끝은 열린 구간으로 표현하는.. 더보기