본문 바로가기

전체 글

(43)
내일배움캠프 6주차 기록(WIL) 2차 프로젝트 마무리! 화요일에 2차 프로젝트를 성황리(?)에 발표를 마쳤다. 전날이 아니라 당일 제출 전까지 팀원 모두가 협심해서 기능을 구현하고자 노력했다. 정말 발표 바로 전까지 기능이 간당간당하게 구현이 안되서 아슬아슬하게 발표에 맞춘 기능도 있었다 ㅎ... 팀원분중 한분이 스티브 잡스가 맥킨토시를 발표할때 발표 바로 전까지 오류가 났다고 ...ㅋㅋㅋㅋㅋㅋㅋ 왠지 우리팀의 모습도 비슷하지 않았나 싶다.. 그래도 모두가 고생한 만큼 튜터님들에게도 좋은 반응을 이끌어내서 굉장히 보람차게 2차 프로젝트를 마무리 했다 :) 알고리즘의 바다에 빠질 시간 프로젝트 발표가 끝난 후에는 살짝의 휴식을 가지고 (너무 긴장하고 전날도 밤을 새서 피곤이 극에 달해있던 상태였다.) 수요일부터 새로운 팀원들과 함께 알고..
내일배움캠프 5주차 기록 (WIL) 로그인 기능 삽질의 연속 4주차에서 내가 프로젝트에서 로그인 기능을 담당하기로 했는데, 생각보다 로그인이라는게 정말 신경쓸게 이렇게 많을 줄 몰랐다. 많은 역경과 고난이 나를 기다리고 있었는데 ^^ 기억에 남는 몇가지를 말해보자면 첫번째가 '환경 변수' 였다. 환경 변수란 간단히 얘기하자면 (간단하지는 않지만) 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값이라고 정의가 되어 있는데... 기존까지는 남에게 보여지면 곤란한 정보들 (예를 들어 몽고DB의 아이디나 패스워드 값) 을 크게 신경쓰지 않고 코드를 적어 놨었는데, 환경 변수를 사용해서 해결할 수 있었다. 환경변수를 설정하기 위해서는 window운영체제는 '시스템 환경 변수 편집' 에서 할 수 있고, 맥은 터미널을 실행시키고 expor..
내일배움캠프 31일차 기록 환경변수 환경변수의 사전적인 정의는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임이다. 외부 API와 연동하기 위해서 사용되는 접근 키나 보안키 같은 정보는 보안 측면에서 코드상에 저장을 하면 안되기 때문에 환경 변수를 사용한다. 윈도우는 시스템 환경 변수 편집을 사용해서 환경 변수를 편집할 수 있다. 예외처리 예외란 코드를 처리하는데 발생한 에러를 말한다. try except 를 사용해서 예외가 발생할 때 처리하는 코드를 넣을 수 있다. 위와 같은 상황에서 X에 0이 대입되게 되면 ZeroDivisionError 예외가 발생하게 되며, 예외가 발생하게 되면 해당 줄에서 바로 코드를 중단하고 except로 가서 코드를 실행한다. 만약에 2를 입력하게 되면 예외가 발생하지 않기 때..
JS 정규표현식 이란? 정규표현식 正規表現式 regular expression 텍스트에서 특정한 '패턴'을 찾을 때 아주 유용하게 사용할 수 있다. 예를 들어 많은 텍스트 중에서 전화번호 형식만 찾는다던가, e-mail 형식만 찾고 싶을때 사용할 수 있고, 웹사이트에서 회원가입을 기능을 만들 때 사용자가 입력한 데이터가 e-mail 혹은 password에 부합하는지 확인하는 유효성 검사에서도 사용할 수 있다. 정규표현식의 생성 1. 리터럴 (Literal) 방식 리터럴은 데이터 그 자체를 의미하며 변수에 넣는 변하지 않는 데이터를 의미한다. 상수와는 다른 의미이다. 상수는 변하지 않는 변수 (메모리 위치) 리터럴은 변수의 값이 변하지 않는 데이터를 의미 (메모리 위치 안에 값) 정규 표현식 리터럴은 패턴(pattern)과 플래..
내일배움캠프 4주차 기록(WIL) 시간이 진짜 빠르게 지난다고 느끼는 요즘이다. 4주차엔 2차 프로젝트 발제가 있었다. 우리팀은 1차때 게시판 CRUD와 메인페이지, 간단한 운동 영상 추천정도로 마무리 하였고, 2차때는 JWT를 이용한 로그인 방식의 구현, 득근일지라고 하는 개인적인 운동 comment와 기록을 적는 기능, 영상 알고리즘 등을 2차 프로젝트에 기능을 업데이트 하기로 정했고, 그중에서 나는 로그인과 회원가입에 흥미를 느껴서 내가 담당하기로 했다 :) 로그인과 회원가입에서 SHA256 같은 보안적인 부분에서 흥미를 느끼기도 했고, 로그인과 회원가입은 웹 사이트는 몰론이고 어플리케이션 등등 거의 모든 서비스에서 다 사용하는 부분이라고 생각했기 때문에 한번 내가 직접 이 기능을 구현해보면 나중에 개발자의 길로 갔을 때 나에게 큰..
내일배움캠프 25일차 기록 해싱(hashing) 원본 문자열을 알아볼 수 없도록 난해한 문자열로 정의하는 방법 회원가입 할때 사용한 비밀번호는 중요한 개인정보이기 때문에 원본 문자열을 알아볼 수 없도록 해싱한 후에 DB에 보관한다. hashlib 해쉬 함수 라이브러리 SHA256 보안 해쉬 알고리즘 256 비트를 나타내는 것으로 2의 256 제곱의 수많큼 경우의 수가 만들어 지기 때문에 무차별 대입 공격에 매우 안전하다고 볼 수 있음. password_receive = request.form['password_give'] password_hash = hashlib.sha256(password_receive.encode('utf-8')).hexdigest() 파이썬 hashlib 라이브러리를 사용해서 password_receive ..
내일배움캠프 24일차 기록 파이썬 F-string 문자열에서 특정 문자만 바꾸고 싶을때 문자열 포매팅을 이용해서 쉽게 바꿀 수 있다. 1. 문자열 맨 앞에 f 를 붙이고 2. 중괄호 안에 사용할 변수나 값을 넣는다 s = 'coffee' n = 5 result = f'저는 {s}를 좋아합니다 하루에 {n}잔 마셔요' print(result) jinja2 파이썬의 프레임워크인 Flask에 내장되어 있는 teamplate 엔진이다. 서버에서 받아 온 데이터를 효과적으로 가공하여 웹페이지를 보여줄 수 있다. SSR (server-side-rendering) 서버에서 브라우저로 페이지를 넘겨줄 때 항목별로 모든 페이지를 다 만드는 것이 아닌 서버에서 render_template를 사용하여 하나의 페이지에 각각 다른 정보를 입력할 때 편리..
내일배움캠프 23일차 기록 주말 및 월요일은 오랜만에 여자친구와 데이트를 하느라 공부를 못했다..ㅎ.. 오늘은 프로젝트 2차 발제를 진행했다. 몇가지 중요한 키워드로 나열하자면 1. 기존 게시판 기능 강화 - 사진 업로드, 페이징(선택) 2. 회원가입 - DB에 중복검사 후 중복이 아닐 경우에 회원가입 3. 로그인 - JWT 인증 방식으로 로그인하기 - 회원이 아닐경우 회원가입 페이지로 이동 - DB에 저장된 ID와 PW가 일치할 경우 로그인 성공하고, 메인 페이지로 이동 4. 득근일지 - 득근일지와 기록을 하나로 합쳐서 페이지 제작 - 운동에 관한 코멘트와 운동 횟수 등을 달력 및 그래프 등으로 확인할 수 있게 크게 이렇게 4가지로 나눌 수 있다. 나는 이번에 JWT가 흥미로워서 회원가입 및 로그인 기능을 맡기로 하였으며, 이번..