과거공부모음

나의 개발일지 TIL(Today I learned) - 미니프로젝트 끝

MUJA 2022. 12. 9. 20:57

Today I learned

  • 예외 처리
  • 프로젝트 회고록

 

예외 처리

로그인 시도를 할 때 데이터베이스에 없는 아이디를 입력하면 에러가 발생해서 예외 처리를 진행했다

아이디를 받아와서 데이터베이스에 해당 아이디를 데이터베이스에서 SELECT를 진행하고 빈 값을 가져오면

메세지를 보여주면서 check의 False를 반환해서 자바스크립트 부분에서 알림창을 보여주고 다시 로그인을 시도할 수 있게

해당 페이지를 새로고침 해주는 방식으로 예외 처리를 진행했다

user_id = request.form["id"]
user_pw = request.form["pw"]

sql = '''SELECT id, user_pw, user_name FROM `user` AS u WHERE u.user_id=%s;
'''
curs.execute(sql, user_id)

rows = curs.fetchall()
if (rows == ()):
    logger1.error('아이디 입력 없음')
    return jsonify({"msg": "아이디를 확인해주세요^^", "check": False})
success: function (response) {
    alert(response["msg"]);
    if (response["check"]) {
        window.location.href = "/";
    } else {
        window.location.reload();
    }
}

 

회원가입 부분에서도 아이디는 중복이 불가능 하게 만들었는데 혹시 사용자가 데이터베이스에 있는 아이디로 회원가입을

시도하게 될 경우를 대비해서 예외처리를 진행했는데 데이터베이스에서 입력한 아이디를 COUNT를 사용해서 1을 반환하면 아이디가 존재한다고 판단하고 자바스크립트에서 알람을 보여주면서 다시 입력할 수 있게 새로고침하는 방식으로

예외 처리를 진행한다

sql = "SELECT COUNT(*) FROM `user` AS u WHERE u.user_id = %s;"
    cursor.execute(sql, user_id_receive)
    count = cursor.fetchall()[0][0]

    if count != 0:
        flash("아이디가 존재 합니다^^")
        logger.info('아이디가 존재 합니다^^')
        return jsonify({"msg": "아이디가 존재 합니다^^", "check": False})
success: function (response) {
    console.log(response["msg"])
    if (response["check"]) {
        window.location.href = "/login";
    } else {
        alert(response["msg"]);
        window.location.reload();
    }
}

 

게시글의 번호가 없는 번호를 요청하는 경우를 예외처리도 진행했다

sql = f"SELECT COUNT(*) FROM board AS b WHERE b.id = {id};"
    curs.execute(sql)
    cnt = curs.fetchall()[0][0]

    if cnt == 0:
        db.commit()
        db.close()
        flash("존재하지 않은 글 입니다.")
        return redirect("/")

 

프로젝트 회고록

KPT의 방식으로 이번 프로젝트의 회고록을 작성하기로 했다

 

P
S.A설계가 부실해서 페이지를 구성하고 연결하는 부분이 힘들었습니다
DB설계를 다같이 모여서 설계를 진행하고 똑같은 세팅으로 진행을 했어야 하는데 그 부분이 부족해서 힘든 점이 있었습니다.
GIT 버전 관리를 하는 부분에서 부족했습니다
자주 코드를 리뷰 하면서 진행 여부와 상황을 알아야 하는 부분이 부족했습니다

K
팀원들이 포기하지 않고 끝까지 같이 가는 부분
막히는 부분이 있으면 모두가 해결을 위해 노력하는 부분
구현해야 하는 기능을 포기하지 않고 끝까지 하려는 부분

T
프로젝트 S.A를 설계하면서 데이터베이스를 같이 설계를 진행한다
S.A설계에서 페이지를 나누거나 연동하는 관계도를 만들어 진행한다
GIT버전의 관리를 잘하기 위해 GIT학습을 더 진행한다
주기적으로 코드를 리뷰하며 서로의 상황을 파악하고 해결한다