#3 도서 발주, 입고, 등록 프로그램 제작 완성
과정을 천천히 기재하면서 하려고했는데 완성해버렸다,,
규모가 작은 생산관리 ERP로 볼 수 있다.
흐름은 다음과 같다.
난 서점 관리인이다.
도서 구입(발주) -> 도서 입고 -> 도서 등록
*도서 입고는 내가 구매한 도서가 도착했을 때, 특정 갯수만큼 나눠서 입고를 진행시키는 것이다.
도서 등록은 입고된 도서 뭉탱이에서 도서 하나하나 바코드를 생성하는 것.
더 추가 될 기능은 등록된 도서 바코드를 찍었을 때, 조회되는 것과 대여 및 반납 기능이다.
만들면서 공부된 점
- 형변환 : 총 구매가격은 도서를 대량 구입하게 되면 overflow가 나서 값이 이상하게 계산된다. java에서는 BigInteger를 사용했는데 C#에서는 int64를 사용하면 어느정도 크기의 숫자는 잘 담을 수 있다.
Int64 totalPrice = Convert.ToInt32(orderNum) * Convert.ToInt32(bookPrice);
이 밖에도 view에서 값을 .text로 가져오면 '.'이 포함된 상태로 가져와져서 convert할 때 오류가 나는데 이는 .EditValue로 가져오면 해결된다. 이런 작지만 오류가 나는 부분을 수정하느냐고 조금 골치가 아팠다.
- batch..? : 10만개의 바코드를 생성하게 되면 엄청난 insert 쿼리가 돌아가기 때문에 버벅인다. 처음에는 바코드 생성버튼을 누르면 back단에서 for를 돌려서 insert를 하는 방법으로 짰는데, 900개 바코드를 만드는데도 엄청 버벅였다. 그래서 batch를 사용해야겠다 생각을 했는데 생각보다 이를 손쉽게 해결할 수 있는 방법이 있었다. 책을 10만개 이상 사는경우는 거의 없으므로 정말 bigdata는 생각하지 않는다고 가정하고, 내가 사용한 MSSQL에서 반복문을 돌려 insert를 하는 방법이다. 코드는 다음과 같다.
@cnt는 생성할 바코드 개수이다.
이러면 back단에서 하나하나 계속 프로시저를 호출해서 insert하는 것보다 훨씬 시간이 단축된다.