프로그래밍(Web)/업무관련

    [바미] 테스팅을 잘하자!

    데이터 입력 문제를 해결하니 또 다른 문제가 발생했다. 무한정의 데이터를 받으면 서버부하는 물론이고, 공격을 받았을 때의 서버 상태를 생각해보니 제한을 걸어야 했었다. 아무래도 회사일이다 보니 이런 부분은 나 혼자 독단적으로 결정하는 게 아니기 때문에 타 부서와의 조율이 필요했다. 그렇게 해서 나온 값은 64KB였다. 64KB이상이면 데이터를 받지않고, 내부에서 따로 관리하는 log파일에만 표시하기로 했다. 원래는 이렇게 하려 했었으나 아래와 같이 하면 어떤 값을 보냈었는지 조회할 수 없기 때문에 // body값 가져오는 함수. func bodycheck(w http.ResponseWriter, r *http.Request) ([]byte, int) { getlength := r.ContentLength..

    [바미] r.Body.Read()와 ioutil.ReadAll()의 차이점.

    log수집 서버에서 invalid character '\x00' in string literal라는 에러가 빈번하게 발생하여 원인을 찾아보니 r.body에서 읽어오는 값의 크기가 특정 크기보다 커지면 저 에러를 발생시킨 것입니다. 그래서 JSON Data가 짤리게 출력 되는 모습을 보여주어서 현재 보다 더 많은 Data를 받아 올 수 있도록 수정해 주어야 했습니다. 먼저 얼마만큼의 데이터를 받아 오는지 확인하기 위해 length값을 조회했더니 저 에러가 나지 않는 범위가 length값이 3836이였을 때 였습니다. 그 때 썼었던 코드는 다음과 같습니다. func bodycheck(w http.ResponseWriter, r *http.Request) []byte { getlength := r.Conten..