🍀

8,9일차_코드 리뷰 통해 객체지향에 다가가기

작성일자
Oct 27, 2023
태그
DIARY_DEVELOP
프로젝트
PreCourse
책 종류

1. 코드 리뷰를 통해 배운 것(간단히)

  • 일급콜렉션
    • 예를 들면 int가 아니라 digit이란 또 다른 객체로 포장하는 것을 말한다.
    • 즉, 최소한의 단위까지 클래스로 포장하는 걸 일급콜렉션이라 한다.
  • 네이밍 개선
    • 타입을 변수명에 넣는 건 헝가리식 표기법인데 요즘은 사용하지 않는다.
    • 객체의 결과를 문자열로 반환하는 함수는 toString()으로 오버라이드해서 사용하는 것도 추천한다.
    • 내 코드
      • Turn
        GameContinuationOption
  • 정적 팩토리 메서드의 장점
    • 인스턴스 생성에 대한 이름을 부여할 수 있다.
    • 똑같은 애들 만들 때 메모리 낭비 안한다.
    • 내 코드
      • BaseballGameController

2. 코수타/공통 피드백에서 인상 깊었던 것

인상 깊었던 부분만 정리하고 간단히 내 생각(🐱)을 덧붙이겠다.
  • 이름을 통해 의도를 드러낸다
    • 변수 이름, 함수(메서드) 이름, 클래스 이름을 짓는데 시간을 투자하라. (🐱 이름 짓는 게 제일 어렵고 고민이 많이 되는 거 같다)
    • 연속된 숫자를 덧붙이거나(a1, a2, ..., aN), 불용어(Info, Data, a, an, the)를 추가하는 방식은 적절하지 못하다. (🐱 이번 과제에서 digit 단위까지 3자리 숫자를 나눈 분들이 계셨는데 digit1, digit2 식보단 firstDigit, secondDigit이 나았겠다 싶었다)
  • 축약하지 않는다
    • 의도를 드러낼 수 있다면 이름이 길어져도 괜찮다.
    • 클래스와 메서드 이름을 한 두 단어로 유지하려고 노력하고 문맥을 중복하는 이름을 자제하자. (🐱 Game 클래스의 메서드 중 하나 이름을 playGame이라 할지 play라 할지 고민되었는데 play라 하길 잘했다)
  • Java에서 제공하는 API를 적극 활용한다
    • 함수(메서드)를 직접 구현하기 전에 Java API에서 제공하는 기능인지 검색을 먼저 해본다. (🐱 String 관련 api들을 적극 활용하였는데 잘한 거 같다)
  • 배열 대신 Java Collection을 사용한다
    • Java Collection 자료구조(List, Set, Map 등)를 사용하면 데이터를 조작할 때 다양한 API를 사용할 수 있다. (🐱 Array 와 ArrayList 사용에 고민이 된다면 ArrayList를 사용해야 할 또 하나의 이유가 될 거 같다)

인텔리제이 코드 포매터

  • 이전 플젝에선 네이버핵데이 코딩 컨벤션을 적용해서 코드 포매터를 사용해본 적이 있다.
  • 우테코도 스타일 파일이 있길래 적용해줬다.
  • 1주차부터 사용하긴 했는데 이번에 컴퓨터 옮기면서 다시 적용하는데 까먹었길래 다시 다음번에 적용할 일이 생길 때를 대비해 여기다 간단히만 정리해둔다.
  • Settings > Editor > Code Style > Java > 톱니바퀴 > Import Scheme > Intellij IDEA code style XML > 다운로드한 파일 선택(WootecoStyle) > Enable EditorConfig Support 설정 체크
  • Tools > Actiosn on Save > Reformat code, Optimize imports 체크
  • 이제 일일히 ⌥⌘L 할 필요 없이 ⌘S 면 알아서 저장과 동시에 포맷팅 파일 내용대로 자동정렬된다.

Today in 프리코스

TIL 작성하기
준비
코수타 보고 정리하기
공통 피드백 내용 정리하기
몰입
지난 과제 스스로 리뷰하기
동반성장
코드 리뷰 하기
내 코드 리뷰 답변 달기
 
  • 이번주 계획
    • 목,금
      지난 과제 리뷰
      이전 과제 발표 스터디 참여 + 코수타 듣기
      토,일
      기능 명세 작성 + 기능 구현
      커뮤니티 함께-자라기 참여
      테스트 코드 작성
      리팩토링 + 테스트 결과 확인
      회고 작성 + 검토 + 제출
      201 Created 자바 스터디 글 작성
 
🍀
1일차_둘러보기, 환경설정하기
Oct 19, 2023
DIARY_DEVELOP
🍀
2일차_컨벤션 정리하기
Oct 20, 2023
DIARY_DEVELOP
🍀
3일차_설계에 대해 고민하기
Oct 21, 2023
DIARY_DEVELOP
🍀
4,5일차_MVC 온전히 이해하기
Oct 22, 2023
DIARY_DEVELOP
🍀
6일차_설계를 코드로 구현하기
Oct 24, 2023
DIARY_DEVELOP
🍀
7일차_리팩토링과 마무리하기
Oct 25, 2023
DIARY_DEVELOP
🍀
8,9일차_코드 리뷰 통해 객체지향에 다가가기
Oct 27, 2023
DIARY_DEVELOP
🍀
10일차_지난 과제 돌아보며 객체지향 이해하기, 의존성과 설계의 관계 맛보기
Oct 28, 2023
DIARY_DEVELOP
🍀
11일차_객체지향을 미션 설계에 적용하기(with [책] 객체 지향의 사실과 오해)
Oct 29, 2023
DIARY_DEVELOP
🍀
12일차_기능 별로 구현하며 단위 테스트의 필요성 느끼기 (with [책]자바와 JUnit을 활용한 실용주의 단위 테스트)
Oct 30, 2023
DIARY_DEVELOP
🍀
13,14일차_일급 컬렉션과 레코드 적용해 리팩토링하기
Oct 31, 2023
DIARY_DEVELOP
🍀
15, 16일차_코드 리뷰를 통해 성장하기(1)_다른 사람의 코드 읽으면 배운 것 정리
Nov 2, 2023
DIARY_DEVELOP
🍀
17일차_코드 리뷰를 통해 성장하기(2)_내 코드 개선하며 배운 것 정리
Nov 4, 2023
DIARY_DEVELOP
🍀
18일차_내가 찾은 설계 방법 공유하기, 공유에 대해 고민하기
Nov 5, 2023
DIARY_DEVELOP
🍀
19일차_지난 과제 피드백 고려해 설계하기
Nov 6, 2023
DIARY_DEVELOP
🍀
20, 21일차_일단 돌아가는 코드를 만들기
Nov 7, 2023
DIARY_DEVELOP
🍀
22일차_현재 도움이 될 것 생각하기 (디자인패턴과 mvc2 과감히 패스)
Nov 9, 2023
DIARY_DEVELOP
🍀
23일차_코드리뷰하기 (feat. converter 파고들기)
Nov 10, 2023
DIARY_DEVELOP
🍀
24일차_기획을 문서화하기
Nov 11, 2023
DIARY_DEVELOP
🍀
25일차_설계하며 고민하기
Nov 12, 2023
DIARY_DEVELOP
🍀
26, 27일차_구현하며 고민하기
Nov 13, 2023
DIARY_DEVELOP