- httpie 사용시 key value 에서 value의 ""가 없어도 된다.
- GIT branch 관련 세션 정리
1 )폴더 하나 생성 후
2) 폴더에서 기여하고자 하는 폴더 git clone "https or ssh"로 폴더를 만든다
3) 브랜치할때 브랜치명을 직관적으로 지어준다 (각자의 역할에 따라)
Feature/login or "/product 등
Git status 깃의 마스터인지 브랜치인지 확인하는거
Add commit 안하고 branch를 변경하면 저장이되지 않고 넘어간다.
merge이후 git에서 pull 정보를 가지고 오고싶으면
Master branch로이동후 git pull할것!
- 에자일,프로세스 관련 세션 정리
프로젝트의 목표
1.웹개발을 배우고 경험하는것
2.팀경험
3.소프트웨어 개발경험
4.포트폴리오
스크럼
코드리뷰
나무그네 이야기?
스크럼
-프로젝트 완성되기까지 소요시간 예상의 어려윰
단기적으로 하는 일 결정은 쉬움
스프린트 진행 밥법
-시작첫날 planning미팅을 가지고 스프린트 동안 할일을 결정함
-스프린트를 진행하면서 각자 주어진 일완료
-매일 스탠드미팅을 통해 팀원끼리 서로의 진행사항을 공유(할말만하고 빨리 끝내기)
-스탠드업에서는 다음3가지씩 한사람식 돌아가면서 이야기하기(어제일,오늘일,다른사람의 도움이 필요할경우)
-위의 주기를 프로젝트 끝날때까지 반복함
작은 프로토타입 단계부터 MVP(minimum viable product)
프로덕트오너 -> 프로덕트 백로그 ->스프린트 플래닝미팅 ->스프린트주간 -> 스프린트 회고
스프린트시 서로간의 예의사항
-시간엄수
-책임감(의존하려하지말자)
-팀워크(서로 배려, 기분 좋은 분위기 유지)
-도전정신( 어려운것 두려워하지 말자)
훌룡한 개발자는 꿈과 비전 그리고 근면으로이루어진다!
강조:
혼자할수있어빌리티
커뮤니티
- 장고 ORM 관련 학습 및 1차 프로젝트 준비
1차 프로젝트 팀이름은 위밋으로 정했다.
- 1차 프로젝트 밋업 홈페이지 flow,기능 정의
- API 명세에 대한 고민 Gitbook, Postman, 그냥 word?
Gitbook으로 자동화가 안되어 고민하다가 Postman으로 선택
- DB 모델링에 대한 고민
DB 모델링 문제가 아닌 사이트에서 특정한 기능명으로 유추하거나 API구조를 보면서 DB 모델을 설계해야 했엇음
본인은 전자의 방식으로 특정한 기능명으로 유추를 하며 클론이 아닌
우리가 직접 기능을 구현할 사이트의 비즈니스 로직을 만듬
아래는 그 흔적들
- 초기 프로젝트를 위한 장고 settings.py 정리
기본 admin, auth, cors를 안쓰고
auth는 jwt,bcrypth
cors는 django corsheader
라이브러리로 대체
- views.py 에서의 예외처리
try, catch 사용
400에러와 500에러의 종류
- M:M관계해소관련 방법
1. mapping table
특징 : 조인시 성능저하, 원하는 데이터 추출 어려움, 데이터의 정합성
2. uuid(unique identifier)
특징 : 데이터 모델링 단순화, 조인 복잡감소, 최근 데이터 추출할 방법 필요
둘중 하나로 해소한다.
- 1차 프로젝트 모델링 뼈대는 확정 진행중
기본 뼈대는 회손하지 않되 기능 구현하면서 필요한 부분 점차적으로 수정 중
- mysql(shell,workbench) 세팅 및 장고와 연결
- 데이터 베이스 세션 정리
dbms : 대용량파일을 효과적으로 관리
- 암호화 공격 및 보안에 대해서 재정리
단방향 해쉬
계정 생성시비밀번호를 암호화해서 Db에 저장
로그인시 같은비밀번호를 암호화 했을때DB와 같다면저장된다.
해쉬암호들은암호를 목적으로 만든게 아님
단방향 해쉬 함수도 몇가지 취약점이 있다.
-Rainbow table attack - 미리 해쉬값들을 계산해 놓은 테이블을 Rainbow table이라고 한다.
-해시 함수는 원래 패스워드를 저장하기 위해서 설계된 것이 아니라 짧은 시간에 데이터를 검색하기 위해 설계된 것이다
그렇기 때문에 해시 함수는 본래 처리 속도가 최대한 빠르도록 설계되었다.
이러한 속성 때문에 공격자는 매우 빠른 속도로 임의의 문자열의 다이제스트와 해킹할 대상의 다이제스트를 비교할 수 있다(MD5를 사용한 경우 일반적인 장비를 이용하여 1초당 56억 개의 다이제스트를 대입할 수 있다).
이런 방식으로 패스워드를 추측하면 패스워드가 충분히 길거나 복잡하지 않은 경우에는 그리 긴 시간이 걸리지 않는다 (대부분 사용자의 패스워드는 길거나 복잡하지 않을 뿐 아니라, 동일한 패스워드를 사용하는 경우도 많다).
비밀번호를 저장하기위해서해쉬값을 하고추가 보안을위해 Bcrypt 해준다
salt를 추가하면 둘다 합쳐서 계산하기가어려워짐
'메타인지 > TIL' 카테고리의 다른 글
TIL 11/10 어떻게 하면 웹프레임워크를 현업 주니어 개발자 처럼 개발 할 수 있을가? (0) | 2019.11.10 |
---|---|
TIL 11/01~11/07 (0) | 2019.11.07 |
TIL 10/18~10/24 (0) | 2019.10.24 |
TIL 10/11~10/17 (0) | 2019.10.11 |
TIL 10/4~10/10 (0) | 2019.10.04 |