[TIL] 23.10.20

seaStamp·2023년 10월 20일
0

TIL

목록 보기
10/33
post-thumbnail

1. 오늘 완료한 일

  • Java 개인과제 필수요구사항 구현완료 👍
  • 프로그래머스 lv1 문제 2개 풀기
  • 알고리즘 특강 세션 참여
  • Deque 정리하기

2. 주말 목표

  • Java 문법 종합반 5주차 수강완료
  • 개인과제 필수요구사항 리팩토링 및 선택요구사항 구현
  • 개발자국 회고 작성하기

3. Today I Learned

Java

  • Java의 Stack 사용법 및 단점
  • Deque 자료구조와 ArrayDeque
  • 향상된 for문에 String 넣기
  • 추상클래스와 인터페이스의 사용 차이
    +) 상수 인터페이스는 안티패턴인가? 에 대해 더 생각해보기
  • 다형성과 상속성

Git

알고리즘

  • 코드의 시간복잡도 계산하기🔗

4. 오늘의 삽질 - Java 개인 과제 🔗

Java로 패스트푸드점 Kiosk를 구현하는 과제를 이번주 수요일에 받았다. 과제를 받고 강의에서 배운내용을 활용하여 객체지향적으로 설계한다고 머리를 굴리며 이것저것 클래스를 짜보고, 클래스 다이어그램도 짜보겠다고 해당 내용을 공부하며 삽질을 했다. class Order, class Menu, class Product를 짜는건 손쉬웠는데 문제는 화면 출력부분...

이 부분을 중복되는 코드 없이, 객체지향적으로 잘 짜려면 어떻게해야할지 고민이 많았다. 화면 별로 객체를 만들지, 아님 화면을 구성하는 부분들을 메서드로 짜고 그걸 Kiosk가 제어하게 할것인지 이것저것 로직을 그리며 고민해봤다

하지만 이대로는 구현을 못할것 같아서 우선은 현재 정해진 틀에서 필수요구사항들을 구현해봤다.
다행히 오류없이 잘 동작되지만 남발된 변수선언과 아무렇게 짜여진 메서드, 제어접근자들... 한 클래스에 몰빵되어있는 메서드들을 보며 꼭 리팩토링을 해야겠다고 다짐했다.
코드를 다 짜고 보니 중복되는 부분이랑 분리하거나 연결하면 좋을 클래스들이 보여서 주말동안 리팩토링 작업을 해야겠다 생각했다.
우선 입력관련 클래스, 출력 관련 클래스를 분리하고, 예외처리까지 추가하여 리팩토링 한 후, 선택 요구사항까지 다 구현해봐야겠다.


5. 느낀점 (회고)

  • 배우는건 많은데 배운 내용을 정리하는데 왜 이렇게 시간이 걸리는지.. 시간이 난다면 Git과 Git 컨벤션에 관한 내용도 정리하고 싶다. 오늘 튜터님이 진행한 추상화클래스, 인터페이스, 상속 관련 세션이 과제에 대한 생각을 정리하는데 아주 유용해서 정리하고 싶었으나, 이것저것 일을 벌리다보니 시간이 부족해 하지 못했다. 그래도 점점 배우고 글을 쓰는데 속도가 붙고있음을 느끼고 있다.
profile
우선은 부딪히고 보자

0개의 댓글