분류 전체보기 99

요구사항 보고 ERD작성 및 논리적 스키마 도출 방법

문제 제기 프로젝트를 하면서 경험한 일 입니다. 요구사항에 분명히 기재되어 있는 사실 혹은 요구사항에 반영을 미처 못해 실제 설계 과정에서 누락된다면 추후에 데이터베이스를 구축하여 운용할 때 관리해야 할 사실들을 저장하지 못하는 경우가 발생합니다. 예를들어 회원이 삭제된다면 외래키로 갖고 있던 주문 테이블이 문제가 생기기 때문에 회원을 완전 삭제하는 대신 status 필드명을 추가하여 상태만 변경하는 식으로 문제를 해결해야 합니다. 하지만 저는 이러한 문제가 생길지 예상하지 못하여 회원테이블에 status필드명을 추가하지 않았고 추후에 이 문제를 발견하여 테이블을 나중에 수정을 하게 되었습니다. 규모가 작은 프로젝트에서는 뭐 이러한 문제가 생겨도 그때 그냥 바로바로 테이블을 수정하지 뭐 이런 마인드가 별..

[백준 9466] 텀프로젝트

이 문제는 DFS 알고리즘을 사용하여 사이클을 이루지 않는 사람의 수를 구하는 문제 입니다. 내 풀이 방향그래프에서의 사이클이 존재하는 지의 여부는 간선 구분을 통해 판정할 수 있습니다. 사이클이 존재한다는 것은 역방향 간선의 여부와 동치인데 그전에 역방향간선에 대해 간단하게 살펴보자면 그래프에서 Ti부터 DFS알고리즘을 돌리면 트리형태를 띠게됩니다. 그러한 트리를 DFS 스패닝 트리라고 합니다. (Tm, Tj)의 간선은 스패닝트리의 자손에서 선조로 연결된 간선인 역방향 간선입니다. 그래서 사이클이 있는 그래프를 깊이우선탐색을 할 경우 무슨일이 벌어질지 생각해보면 쉽게 이해를 할 수 있습니다. 사이클에 포함된 정점 중 깊이 우선 탐색과정에서 처음만나는 정점을 u(Tj)라고 합시다. dfs(u)는 u에서 ..

Algorithm/BOJ 2023.06.03

말만 들어도 어려워 보이는 트랜잭션에 대해 자세히 살펴보자 3편

https://babgeuleus.tistory.com/67 말만 들어도 어려워 보이는 트랜잭션에 대해 자세히 살펴보자 2편 https://babgeuleus.tistory.com/59 말만 들어도 어려워 보이는 트랜잭션에 대해 자세히 살펴보자 1편 개요 프로젝트를 진행하면서 가끔씩 service부분에서 @Transaction이 readOnly=true로 되어있어 현재 수행하는 babgeuleus.tistory.com 이전 시간에는 트랜잭션의 장애와 로그 회복기법에 대해 배웠습니다. 이번 시간에는 병행 제어에 대해 배우겠습니다. 문제의식 데이터베이스 관리 시스템은 여러 사용자가 데이터베이스를 동시에 공유할 수 있도록 여러 개의 트랜잭션이 동시에 수행되는 병행수행을 지원합니다. 병행수행은 실제로 여러 트랜..

말만 들어도 어려워 보이는 트랜잭션에 대해 자세히 살펴보자 2편

https://babgeuleus.tistory.com/59 말만 들어도 어려워 보이는 트랜잭션에 대해 자세히 살펴보자 1편 개요 프로젝트를 진행하면서 가끔씩 service부분에서 @Transaction이 readOnly=true로 되어있어 현재 수행하는 작업 단위(save,update등)가 불가능하다는 오류가 발생했다는 에러코드가 뜹니다. 물론 제가 babgeuleus.tistory.com 이전 시간에는 트랜잭션의 특성과 상태에 대해 공부를 하였습니다. 이번 시간에는 장애와 회복에 대해 공부를 해보겠습니다. 장애와 회복 회복이란 장애가 발생하였을 때 데이터베이스를 장애가 발생하기 전의 일관된 상태로 복구시키는 것을 말합니다. 그렇다면 장애는 어떤 유형을 말하는 걸까요? 1. 트랜잭션 장애 트랜잭션의 논..

14주차 CafeMate 주문 관리 프로세스 구현

어느새 인증 구현, 메뉴구현에 이어 가장 중요하다 싶은 주문 관리 페이지를 만들어 보도록 하겠습니다. 시나리오 1. 고객이 주문을 했을 때, 직원이 주문 등록 페이지에서 쉽게 주문 정보를 입력한다. 2. 직원은 간단한 폼을 사용하여 필요한 정보(이름,연락처,주문내역 등)을 입력하도록 한다. 3. 주문 등록 페이지에 주문 상태(조리중, 조리완료, 배달중,배달완료)를 등록하고 추후 변경할 수 있도록 합니다. 4. 메뉴 품절정보를 표시하여 직원들이 주문시 품절된 품목을 확인할 수 있도록 합니다. 일단 UI를 보면 로직을 짜기 쉽기에 이런식으로 만들면 될듯 합니다. 다시 정확하게 컨트롤러에 넘길 데이터를 알기 위해 주문 테이블 스키마를 자세히 살펴보겠습니다. 그리고 팀원이 짠 OrderService 코드중 주문..

이벤트 처리기가 동적으로 생성된 요소에 이벤트를 처리 못했던 이유

https://babgeuleus.tistory.com/58 14주차 CafeMate 주문 관리 프로세스 구현 babgeuleus.tistory.com 다음 글에서 진행중 메뉴들을 동적으로 받아오고 동적으로 받아온 메뉴들에 +와 -버튼에 클릭이벤트를 달아주었습니다. 문제 제기 //+버튼 구현 $(".increase-qty").click(function() { console.log("도착"); let menuValue = $(this).attr("id").replace("-plus", ""); let menuPrice = parseInt($(this).data("price")); let currentQty = parseInt($("#" + menuValue + "-qty").val()); $("#" + m..

공부방/jQuery 2023.05.24