TIL 2021.04.12 [구현/문제해결]

Kyu·2021년 4월 12일
0

TIL

목록 보기
92/322

ToDo 카드를 다른 카드 사이로 옮기기

이 부분이 오늘의 하이라이트였다.
코코가 처음에 제시한건 생성 된 카드마다 order 라는 컬럼을 주고 만약에 카드를 order가 1과 2인 카드 사이에 넣는다면 1.5 라고 설정해주는 식이었다. 그러면, 1과 1.5 사이에 넣는다면 1.25가 된다.
하지만 그 이야기를 듣고 생각난 문제점은 그 사이에 계속 카드를 넣게 되면 소수점 아래가 카드하나 생성될때마다 추가된다는 점이다. 디비에서 double 타입의 최대, 최소값은 이런 의미에서 double을 사용한다면 그렇게 생각보다 큰 범위이지 않기때문에 문제가 있었다. 아직 잘은 모르겠으나, 또다른 문제점은 double은 부정확하다고 한다.
그래서 첨에 제시한건 List 였다. List에 중간에 넣거나 삭제하면 자동으로 인덱스가 그에따라 변경된다.
코코도 그걸 생각해봤었다고 한다.
하지만 코코가 짚어준 문제점은 List 안에 그런식으로 하면 모든 카드를 업데이트 시켜줘야하기 때문에 성능상 문제가 있다는 지적이었다.
그런데 내가 생각했을때 투두리스트라는 서비스 자체를 봤을때 사용자가 to-do에 천개 만개 아니면 일억개 정도의 많으 데이터를 넣지는 않을것이라고 생각했다. 기껏 많이 잡아봐야 100개정도 쓰고 지우고 하지 않을까? 그렇기때문에 정말 성능에 큰 문제가 있을까 라고 코코에게 말은 했지만,
그렇게 하나하나 수정해주는 것보다 나도 완벽한 어떤 로직이 있으면 했고, 코코도 double로 디비에 그렇게 넣는것에 대한 문제점을 알고있었기 때문에, 우리는 다른 방법을 계속 찾아보았다.
그러다 우린 꽤 멋진 아이디어를 생각해냈고 실제 코드로 옮기는 작업을 해보고있다. 아직 코드로 실제로 만들어보지 않아서 어떻게 될진 모르겠지만, 이 방법을 찾고 너무 들떠서 신나게 이야기했어서 꼭 이 방법으로 해결을 봤으면 좋겠다.

jar파일 ec2에 배포해서 포스트맨으로 테스트하기

이번 프로젝트를 진행하면서 코코가 mysql과 postman을 대신 만져주면서 내가 만질수있는 상황이 안나와 아침에 혼자서 해보기로 했다.

  1. 먼저 코드를 클론해와서 jar파일 만든다
  2. 코코가 사용하던 mysql 그대로 mysql 테이블,컬럼 만든다
  3. SQLNonTransientConnectionException: Could not create connection to database server 라는 에러가 뜸
  4. 검색해보니 mysql이 실행중이지 않거나 외부접속허용을 해줘라는데..내꺼랑 관련없어보임.
  5. 결국 datasource.url의 설정해준 데이터베이스이름을..도커이름으로 해버리고는 바보같이 딴거찾고있엇음
  6. postman할차례
  7. 연결은 성공함 create 테스트하기위해 POST 방식으로 요청했으나 500 뜨면서 실패
  8. 테이블이름을 전부 소문자로 하니까 작동, 대문자로하니까 작동하지않음.
  9. EC2는 나중에.

어노테이션으로 NotNull넣는거랑 VS 데이터베이스에서 NotNull 넣는거

근데 workbench로 작업하다보니 컬럼생성할때 NotNull이라고 속성해주면 어차피 Notnull안들어가는거아닌가? 코드에서 @NotNull 해줄필요가 없지않나?

코코에 의하면 둘의 차이는 성능문제라고 하나 좀 더 찾아봐야함

포스트맨에서 params로 요청하는 것은 쿼리스트링으로 요청하는 것.
Body에 하면 폼데이터 형식으로 나간다
Body에 담는것도 형식이 여러개인데 우리는 Key-Value형태.
(WAS미션할때 K가 by 코코)

profile
TIL 남기는 공간입니다

0개의 댓글