220718 레벨 테스트 TIL 1

샨티(shanti)·2022년 7월 18일
0

TIL

목록 보기
44/145
post-thumbnail

하루를 마무리 하기 전, 오늘 있었던 일들을 잔잔히 되짚어봅니다.
성공과 실패의 모든 요소에서 '배울 점'을 찾아내어 기록하고,
더 성장하는 내일의 나를 위해 'action plan'을 세웁니다.

그렇다. 이번주는 레벨 테스트 주간이다.

열심히 마카오뱅크와 계산기, 투두 리스트를 뚜드려댄 실력을 바탕으로 '게시판' 기능이 포함된 자신만의 어플리케이션을 만드는 한 주.

지난 한 주는 극도의 불안함과 토할 것 같은 긴장감에 휩싸였다면 이번주에는 아주 놀랍게도(?) 오만 것을 다 해탈한 인간마냥 살고 있다.
맞는건가... 싶을 만큼... ㅎㅎ

망하기는 싫은데 망한 것 같은 느낌을 지우기 위해 어쨌든 주어진 과제인 '주말 안에 MVP를 만들기'를 시작했고 오늘 그 MVP에 대하여 동료들과 트레이너님께 공유하는 시간을 가졌다.

이번에 만들고자 한 프로그램의 컨셉을 간략히 설명하면 이렇다.

누구나 쉽게 쓰고 공유하는 100글자 북 리뷰.

이 컨셉을 선택한 이유는 크게 2가지였다.

  1. 우선 주요 기능인 '게시판' 기능을 구현해야 한다면 내가 할 수 있는 능력 선에서 최대한 빠르고 간결하고 작게 시작해야 한다.
    주말 안에 MVP를 완성하기 위해서는 게시판 기능(글 쓰기, 글 읽기, 목록 보기, 상세내용 보기, 수정하기, 삭제하기) 구현에만 매달려도 시간이 부족할 것이니 '게시판 기능'에 집중하자.
  2. 얼마 전에 잠깐 사용했던 텍스쳐 라는 앱이 기억에 남는다. 나야 길고 장황한 글을 쓰는데 어려움도 없고 오히려 그런 편을 좋아하긴 하지만... 그래도 메모장 형식으로 짤막하게 쓰는 북리뷰도 의미가 있지 않을까?

그렇게 100글자로 제한한 북 리뷰 프로그램을 만들자고 생각했고 주말동안 과거의 레벨테스트 코드도 들여다보고, 동료들의 도움도 받아가며 영차영차.. 코딩을 시작했다.

사실 구현하면서 가장 큰 이슈는 바로 '패널 갱신'이었다.
MVP를 1차로 제출한 지금 상황에서도 이 부분이 개선된 것은 아니지만...
예를 들어 글쓰기 창을 팝업으로 띄운 뒤에 글을 써서 '완료' 버튼을 누르면 팝업창은 사라지면서 동시에 원래 프레임에 내가 쓴 글의 제목이 '즉시' 반영이 되었으면 좋겠는데 현재로서는 갱신을 제대로 구현하지 못해 바로 갱신이 되지 않아서 '게시판 보기' 역할을 하는 버튼을 한 번 더 눌러줘야 내가 쓴 글의 제목이 제대로 나오고 있다.

글을 수정하거나 삭제하기 역시 마찬가지이다.
지난주 동안 타 과제에서 받은 리뷰 중에 메인메서드가 포함되어 있는 클래스를 인자, 매개변수로 사용하는 일이 있었는데 그 구조가 이상하다는 피드백을 받아서 다른 방향을 선택하려다 보니 아예 생각 자체가 턱 하고 막혀버린 기분이다.

그렇다고 그 메인메서드에 있는 컨텐트 패널을 매개변수로 주는 것 역시 아주 좋은 방법은 아닌 것 같고...

어리석게도 이 방법, 저 방법을 피하다보니 결국은 원하는 기능을 구현하지 못하는 결과를 만들어냈다.
트레이너님들의 답변을 통해 인터페이스(전략패턴)나 getParent()와 같은 방법을 통하여 해결을 할 수 있어보이는데, 솔직히 지금 상황에서는 이 개념들을 얼마나 더 파고들어가야 문제를 해결할 수 있을지 장담을 할 수 없기 때문에 어쩔수 없이 contentPanel을 인자로 받아오는 식의 방법을 사용해야 할 것 같다.


이 사진은 지금 내가 만들어 둔 모습이지만, 주말에 만든 1차 MVP에는 작성자, 제목만 덩그러니 있는 패널이라 너무 구리기도 하고, 이럴려고 몇 주를 공부했나 싶기도 했다.

마침 과제 페이지에 '아이디어 때문에 어려울 떈 자신이 애정하는 어플리케이션에 대한 클론을 진행해보라'는 문구가 써있길래 아무 생각 없이 당근마켓에 들어갔는데 상품들이 나열되어 있는 모습이 눈에 들어왔다.

그래서 그 나열된 모습처럼 내 게시물도 좌측엔 이미지, 우측엔 리뷰 타이틀과 작성자명 정도를 함꼐 나열해주면 어떨까? 싶었는데 생각보다 자바 스윙 이미지 넣는게 쉽지가 않더라.

하단 우측에 있는 '리뷰 쓰기' 버튼도 원래는 상단에 버튼과 함께 나란히 있었는데...
당근마켓이 우측 하단에 글쓰기 버튼을 둔 지라, 나도 위치를 저기로 옮긴 뒤에 예쁜 그림으로 버튼을 대체해보려고 했지...ㅎㅎ 하지만 장렬히 실패. 왜 내 이미지는 안들여보내주는거니?


휴. 내가 살다살다 이런 희한한 짤을 보고 찐 웃음이 터질줄은 몰랐는데...
어쨌든 화면 갱신은 내가 'refresh' 역할을 하는 버튼을 눌러주면 해결되는 것이기 때문에 건드리지 않기로 하고.

이미지? 그딴거 안넣어도 우선은 기본 버튼을 사용하면 되자냐!!!
오늘 받은 피드백 중에서 글 상세페이지를 팝업이 아닌 현재 프레임에서 구현한다? 그것 역시 나에게는 1~2시간 안에 해결할 수 없는 미션.

그러므로 현재 상태 그대~로 MVP를 1차로 제출했다.
솔직히... 원인도 제대로 모르는 상태에서 어줍잖게 이걸 건드렸다간 대공사에 땅굴까지 파야되는 미래가 상상되기 때문에...

프로그램이 (언뜻) 돌아간다? 그럼 건드리지 말....ㄱ... .ㅎㅎㅎㅎ


아직은 좀 어색하면서도 어려운 개념 중 하나가,
매일 매일 '완성된 상태'로 서비스를 제공한다는 점이다.

사실 나는 회사에서 완-벽하게 워터폴 방식의 업무를 하던 사람이라 애자일이 참으로 익숙하지 않기도 하다.

보통 컨설팅 같은 경우도 3~6개월 용역업무가 주어지면 가장 먼저 하는 것이 칸반을 작성하는 것이고... 그렇게 타임라인을 잡고 나면 가차없이 그 날짜를 맞추기 위해 전력질주를 한다.

하지만 애자일에서는 언제나 작고 빠르게 시작하여 피드백 루프를 자주 만드는 데 집중한다.
사실, 이런 방법론(물론 애자일은 일련의 방법론이라고 하기에는 그 철학을 다 담기 어렵다고 생각한다.)을 처음 알았을 때에는 '이게 말이 돼?' 싶었다.
항상 내 결과물은 (나도 읽기 싫을만큼 많고 어려운) 수십~수백 페이지의 두꺼운 보고서였고 납기일만 잘 맞추면 되었기 때문이다.

그런데... 애자일의 과정 과정 속에서 나오는 결과물은 내 스스로가 봐도 '엥? 이걸 이렇게 제출하는게 말이 된다고?' 싶은 것이었기 때문이다.

하지만 코딩 공부를 하고, 또 이렇게 레벨테스트를 하면서 최종 목표의 모습은 아니나 그 핵심 기능을 완벽하게 구현하는 서비스를 제공하는 것의 중요성을 알게 된다.

'피드백이 가능한', '업그레이드가 가능한', '확장할 수 있는'...
이것들이 되려면 '완성'이라는 것이 선행되어야 하기 때문이다.
완성되지 않으면 피드백도, 업그레이드도, 확장도 모두 불가능하다.
소위 미적 완성도가 낮더라도 '기능'만큼은 구현되어야 한다. 기능...

그런 점에서 나는 약간의 꼼수(?)를 써야만 기능이 구현되는 MVP를 1차로 제출했는데 다음 과제에서도 마찬가지로 '기능의 완성'을 목표로 하여 계속 리팩터링을 해나가야 하겠다.

오늘 세운 목표는 '화면의 자동 갱신'이었지만 아쉽게도 오늘 내에 구현은 불가할 것 같다.
하지만 내일까지는 내가 원하는 방식으로 화면 자동 갱신을 구현한 뒤에 오늘 동료들과 트레이너님들에게 받은 피드백을 가지고 업그레이드를 시작하려 한다.

피드백

  • 저는 북리뷰 클릭하면 팝업 3개뜨고 각각 책제목 요약 사람들 독후감 및 댓글 볼 수 있고 구매창으로 링크되는 팝업생기면 좋을 것 같아요
  • 삭제기능 전문가...잇으신 전자책 기능도 넣고싶어요
  • yes24페이지 연동해서 그정보가져와서 매번 업뎃되서 보면 좋겠어요
  • 책 사진도 구글에서 자동으로 이미지따와서 넣고 없으면 비슷한 이미지 인공지능 인식으로 구해서 넣으면 좋겟어요
  • 북 리뷰 기반으로 어떤 책을 자주읽는지 파악해서 책 읽는 서비스도 해주세요
  • 책 추천서비스
  • 이 어플 보는사람이 카메라로 사용자 인식해서 사용자가 눈을감으면 졸지마세요 라고 문자팝업 띄면좋겟어요
  • 상세보기에서가 아니라 원하는 시점에 수정이 가능하도록. 삭제도 마찬가지로…
  • 리뷰 쓰기가 새창에서 떴으면(?!)

웃긴 피드백도(ㅋㅋㅋ) 있고 내가 구현하려고 했지만 능력치 부족으로 구현하지 못한 기능도 있고.. 하지만 이 피드백을 가지고 업그레이드 하는 것 보다도 우선은. 원하는 방향으로 구현이 잘 되지 않는 부분부터 해결한 뒤에 피드백을 선택적으로 수용하고자 한다.

무엇보다도 내일, 나의 프로젝트는 어떤 모습으로 끝날 것인가를 고민해야 하는데.

팝업창이 따로 뜨지 않고 한 프레임에서 모든 기능이 잘 구현되며, 특히 글을 쓰고 수정하고 삭제하면 별도의 버튼을 누르지 않아도 바로 내가 쓴 글 제목을 볼 수 있다.

이 정도로 정의하고자 한다.

나... 잘 할 수 있겟지? ㅋㅋㅋㅋㅋ...
엊그제 남편 붙잡고 .... 한시간 넘게 울었는데... 망하기 싫다고....ㅋㅋㅋㅋㅋㅋ...

망하기 싫다. 근데 망하더라도 붙잡고 늘어질거다...
어쩌겠어.. 갈데도 없는걸.

잘해보자 오늘도! 얍얍!

profile
가벼운 사진, 그렇지 못한 글

0개의 댓글