-
9/22 TIL | 프로젝트 마감까지 16시간...⌛️📝 기록/매일의 기록 2022. 9. 22. 21:53
오늘의 작업 내용
1. 신규 플레이리스트 등록 후 메인 패널에 화면 업데이트
원래 설계는 '플레이리스트 등록' 버튼 클릭 시 JFrame으로 팝업창을 띄워 새롭게 추가하는 플레이리스트를 입력받게 하는 거였는데, 팝업창이 꺼지고 나서 결과물이 메인 패널에 반영이 계속되지 않았고, 도무지 지금 단계에서 해결할 수 있는 여력이 없어 MVP 개발에 집중하기 위해 우선 JFrame이 아닌 JPanel로 수정하여 패널 간 이동으로 변경하였다.
그래서 완성한 레이아웃이 위 사진과 같은데, 메인 레이아웃이 플레이리스트에 제목 길이에 영향을 받아 내가 원하지 않는 방향으로 계속 깨져 내용들이 잘리는 현상이 발생하는 것이다. 역시나 UI는 우선 중요한 부분은 아니니 JFrame의 가로폭을 더 넓혀 해결하였다. UI 디자인 너무 맘에 안 들지만 사실 이번 과제에서 이게 중요한 것은 아니니 흐린 눈으로 지나쳐보자..(옆자리 짝꿍은 Swing UI로도 엄청난 UI 디자인을 뽑았더라..! 완전 리스펙 그 자체~!!! 멋쟁이 우지님!!!🥹👍🏻)
2. 신규 플레이리스트 등록 시 노래 추가할 때마다 리스트 추가되게끔 화면 업데이트
플레이리스트를 등록할 때 유저 플로우는 노래 제목-가수 이름을 입력해서 '추가' 버튼을 누르면 리스트에 추가가 되고, 최종적으로 '등록' 버튼을 누르면 플레이리스트 목록에 반영된다. 사용자가 입력할 때 노래 제목과 가수 이름을 입력해서 추가를 할 때마다 바로 밑에 리스트 패널에서 즉각적으로 보여지고, 만약 삭제하고 싶으면 삭제 버튼을 눌러 리스트에서 삭제할 수 있다.
우선 오늘 일과 시간동안은 위의 1, 2번 작업을 하였는데, 아직 도메인 모델을 3개(PlayList, Music, Tag)밖에 못 만들어서 이제 도메인 모델을 더 추가할 수 있게 새로운 기능을 생각해보아야 한다.
원래는 로그인/회원가입 기능을 구현할 생각으로 User, Users, MyPlayList 등의 회원 관리 도메인 모델을 추가할 생각이었는데, 홀맨님이 4일 동안 MVP를 구현하는 것이 핵심인 만큼 로그인/회원가입 없이 사용자 로컬 디바이스 전용 앱으로 축소해서 플레이리스트 앱이 줄 수 있는 핵심 가치에 집중하라는 코멘트를 주셨다. 그래서 유저 관리 없이 그냥 로컬에서만 사용하는 앱으로 기획을 틀었고, 그에 걸맞는 새로운 기능을 추가하여 도메인 모델을 만들어 보려고 한다. 현재의 경우에는 History 모델을 추가해서 '방금 본 플레이리스트' 기능을 구현해볼까 생각 중인데 우선 오늘 밤을 새면서 도메인 모델을 최소 5개까지는 만들 수 있게 해 보자.. (제한 사항은 8개였음 ㅠ..)
그리고 오늘 받은 리뷰 내용 중에 새롭게 안 사실이 있어 같이 적어보려고 한다!
사진 속 리뷰받은 코드는 신규 플레이리스트가 등록될 때, 플레이리스트를 저장하고 있는 txt 파일에 제대로 저장이 됐는지 여부를 확인하는 테스트 코드인데, 테스트를 돌릴 때마다 실제 txt 파일에 추가되는 게 싫어서 통과 여부만 확인하고 커밋할 때는 주석처리를 해서 올렸다. 그랬더니 위와 같은 리뷰가 달렸고, 홀맨님이 오셨을 때 질문드리니 이런 경우에는 테스트가 끝날 때 추가된 내용이 삭제되는 기능을 작성해주면 된다고 코멘트 주셨다.(키워드: set up <-> tear down) 이건 전혀 생각해보지 못한 거라 머릿속이 댕하고 울렸다!! 그냥 주석 처리해서 올려야지~ 생각했던 나에게 신선한 충격으로 다가온... 이렇게 오늘도 테스트 코드 전략을 하나 더 새롭게 배웠고...!
추가적으로 @Before, @After 어노테이션도 알려주셨는데, @Test를 수행할 때 필요한 자원을 미리 선언했다가, 테스트가 끝나고 자원을 해제하는 어노테이션이었다..!
어노테이션 내용 @Test @Test가 선언된 메서드는 테스트를 수행하는 메소드 @Ignore @Ignore가 선언된 메서드는 테스트를 실행되지 않음 @Before @Test 메소드에서 공통으로 사용하는 코드를 @Before 메소드에 선언하여 사용 @After @Test 메소드 사용 후 자원을 해제할 때 사용 @BeforeClass @Test 메소드 보다 먼저 한 번만 수행되어야 할 때 사용 @AfterClass @Test 메소드 보다 나중에 한 번만 수행되어야 할 때 사용
이제 마감까지 한 16시간 정도 남았나...? 사실 도메인 모델 개수나 구현 완료된 기능이나 당초 생각했던 거보다 만족스럽지는 않지만, 그래도 이렇게 개인 프로젝트 개발에 열중해서 작업해보는 게 얼마만인가 싶고.. 마감까지 완성을 목표로 하는 것은 비현실적이긴 하지만 그래도 이 과제의 핵심 의도였던 최대한 많은 도메인 모델을 만들어보고 협력 관계를 설정해보는 것을 목표로 나머지 16시간 집중해서 작업해보자! 파이탱!! 💪
'📝 기록 > 매일의 기록' 카테고리의 다른 글
9/24 TIL | Welcome Back, HTML & CSS! (1) 2022.09.24 9/23 TIL | 방금 본 플레이리스트 기능 추가의 건. (0) 2022.09.23 9/21 TIL | 작업은 중요도 순! (feat. 철야 작업) (5) 2022.09.21 9/20 TIL | MVP를 위해서 사소한 것엔 흐린 눈을..🙈 (1) 2022.09.20 9/19 TIL | 구현은 핵심 로직부터! (0) 2022.09.19