일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Q 클래스
- queryDSL
- jpa에러
- JoinColumn
- Filter
- REST란
- github
- 스프링부트오류
- REST API 규칙
- 빈생성안됨
- 복합키
- json gson 차이
- jpa회원가입
- spring서버
- ERD 작성
- JPA주의사항
- 스프링 부트 기능
- 인텔리제이
- Error creating bean with name
- uncheck Exception
- 1차캐시
- 최종 프로젝트
- git
- @IdClass
- Spring Spring boot 차이
- Unsatisfied dependency
- json
- JPA
- jwt메서드
- 스프링 부트 공식 문서
- Today
- Total
Everyday Dev System
0531_TIL : 자바 코드 가독성 향상법, 객체 지향 코드 작성법 본문
튜터님께 오늘 질문을 하였다.
첫번째 질문으로, 가독성이 좋은 코드를 어떻게 짜면 되는지에 대해서 질문을 했는데,
정말 좋은 답변을 들어서 공유하고 싶다.
1. 검증된 코드를 많이 보기
- 자바 내부에 구현되어 있는 ArrayList와 같은 내부 구현체를 많이 보고 비교해봐라
2, naming과 최대한 간략하게 보기 수월하게 코드를 구성하는 것이 좋다.
3. 한클래스 라인 100 line 이내를 권장한다.
이 말을 듣고 ArrayList에 구현된 메서드를 바로 찾아보고 하나하나 이해하려 노력했다.
하지만, 이해가 잘 되지 않았다. 이를 보기 위해서는 Object 클래스, Collection 클래스의 내부도 봐야 하기 때문에
다 이해하기란 힘들었다.
그렇지만, 확실히 코드가 간단하다는 것이 보여서 이와 같은 간략함을 추구하며 코드를 작성하려 노력해야 겠다.
두번째 질문으로, 객체 지향에 맞게 코드를 잘 짠건지 어떻게 구분해야 하는가?
- 객체지향 5대 원칙에 맞게 구현하였는가?
- 객체지향의 꽃인 다형성을 잘 활용하고 있는가?
1. 인터페이스와 추상 클래스 활용 차이
- 인터페이스는 그저 명세(설계서)이고, 기능을 구현하지는 않고 메서드의 선언만 한다.
- 추상클래스는 공통의 기능을 구현한다는 점에서 인터페이스와 차이가 있다.
주로, 기능을 확장하기 위해 상속하는 용도로 사용한다.
2. StringBuilder와 String 타입의 차이
- 불필요한 메모리를 피하기 위해! 메모리 관리 필요성 때문에 활용함.
이것은 더 명확히 이해하고 찾아보면서 깨닫고 정리할 예정이다.
3. 고정된 상수값(final)을 하지 않는 이상 전역변수(static) 거의 안 씀.
'내배캠 주요 학습 > TIL : Today I Learned' 카테고리의 다른 글
0602_TIL : ConcurrentModificationException (0) | 2023.06.02 |
---|---|
0601_TIL : Stream forEach() 활용 (1) | 2023.06.01 |
0531_TIL : 배열과 List의 차이 (0) | 2023.05.31 |
0530_TIL : printf() 사용법 (0) | 2023.05.30 |
0524_TIL : git pull이 안될 경우 (0) | 2023.05.24 |