고양국제고

GTT 6 개발 스토리 #4: 디자이너를 구해야 할까요?

카루-R 2022. 8. 4. 20:34
반응형

환영합니다, Rolling Ress의 카루입니다.

지금 Conet의 디자인을 보면 형편없습니다. GGHS Todo에서 있던 화면을 그대로 가져온 거라, 상당히 조잡하죠. 심지어 평가 기준이 저기 왜 있습니까. 여러모로 디자인이 개판이라, 좀 많은 수정을 가해야할 것 같습니다.

그래서 일단 저 문제의 페이지부터 수정. 꼬넷에 맞게 항목들을 변경하고, 텍스트박스를 추가했습니다.

많이... 나아졌죠. 이제 이미 작성된 글들로 가봅시다.

왼쪽은 제 계정으로 쓴 글이고, 오른쪽은 테스트 계정으로 쓴 글입니다. 쉽게 말해 남의 계정이죠. 왼쪽을 보면 My Eggs 항목이 있지만 오른쪽엔 없습니다. 마찬가지로 Body 칸에 있는 기본 메시지도 차이가 있죠. 또한 남이 쓴 글은 Post 버튼이 아예 비활성화되고, Delete 버튼은 숨김 처리됩니다. 참고로 드래그는 되지만 뭘 입력하거나 지울 순 없어요. 제가 막아놨습니다.

자, 테스트로 글을 하나 올려보죠. 이렇게 대강 작성하고 Post 버튼을 눌러봅시다.

그럼 이렇게 메인화면에 등록이 됩니다. 게다가 제가 입력한 만큼, 제 에그가 줄어들었군요. 디자인은 여기까지로 마무리를 하면 될 것 같은데(^^,,,,) 문제는 순서입니다. 에그는 가상화폐 역할을 하죠. 에그를 많이 쓰면 그만큼 노출이 잘 되어야 하는 게 맞습니다. 어디, 한번 순서를 정렬해보죠. 다음과 같은 조건을 만족시키도록 해봅시다.

1) 에그를 많이 쓸수록 상위에 노출된다.

2) 같은 수의 에그라면 업로드 시간이 빠를수록 상위에 노출된다.

ConetList.OrderByDescending(x => x.Price).ThenByDescending(y => y.UploadDate);

사실 이거 한 줄이면 끝납니다. 그런데, 이게 오름차순이 아니라 내림차순이라서 함수 뒤에 Descending이 붙어 좀 거슬리죠. 길어요. 그렇다고 이걸 여러 줄로 나누어 쓰면 '.' 연산자 때문에 보기 더 싫어집니다. 이럴 때는 LINQ를 이용해보는 거예요.

깔끔 그 자체. 무엇보다... 예뻐요. 함수에 질리다가 저런 파란 예약어가 뜨면 얼마나 예쁜지... 예 프로그래밍이 사람을 이렇게 미치게 만들어요.. 참고로 반환값은 IEnumerable<T>이기 때문에 foreach문에 바로 사용할 수 있습니다. 굳이 list로 캐스팅 안 해줘도 돼요.

그리고 에그에 0이나 음수를 입력한 경우도 처리해야겠습니다. 첫자리가 0이면 그냥 무시할 겁니다. 그리고 uint에서 tryparse를 걸었으니, 음수인 경우에도 자동으로 에러가 뜨겠죠.

앞으로 할 게 많습니다. 우선 Conet을 올리고 그냥 취소한 경우에는 에그를 모두 반환해줘야 하겠지요. 다만 요청을 수락한 경우에는 에그를 받아서 요청을 수락한 상대에게 주어야 합니다. 이게 좀 고민인데... 이건 더 생각을 해보겠습니다. 아직은 베타니까, 기능은 천천히 추가해보자고요.


GGHS Time Table V6.0.3을 스토어에서 만나보세요.

반응형