웹풀스택 공부 중
기초 코드 작성 방법 [rule of thumb] 본문
코드 작성법
- DRY: Don't Repeat Yourself
- KISS: Keep it Simple and Stupid
- YAGNI: You Ain't Gonna Need It - 지금 필요한것만 만든다
클린코드의 목적 - 쉬운 이해 및 유지보수성
- 중복의 최소화
- 한 곳의 수정이 중복된 다른 코드에서 수정을 동반해서는 안된다
- 코드 변경의 용이성
- 요구사항이 상시 바뀔수도 있기 때문에
- 재사용성
- 비슷한 경우에도 그대로 사용할 수 있기 때문에
For 문
- for loop을 사용하는 경우: ms 단위의 성능이 중요한 경우, 의미가 명확할 정도로 단순한 로직
- .map, .filter, .reduce, .forEach를 사용하는 경우:
- 장점:
- 함수형 프로그래밍으로 의미가 명확하다
- 스코프가 단순화된다
- 멀티 스레드 사용 시 문제 없음
- 일반적으로 for-loop보다 이 함수들을 더 많이 사용한다
- for loop 보다 성능은 딸리지만 성능때매 사용하는게 아니니까..
If문
- if-else : 분기 조건이 논리나 비교 연산자로 결정되는 경우 사용한다
- if-else를 나누는 경우: 조건들을 함수로 나눠서 각 분기들의 의미를 명확히 할때
- if-else를 합치는 경우 (&& 따위로 한 if문에 몇가지 conditiond을 넣는 경우): 분기 로직을 단순화 할때
- switch: 갑 자체로 정확하게 결정할 수 있는 경우
변수
- Primitive Type: 값을 담는 그릇
- Reference Type: 주소를 담는 그릇
int a
와Integer a
는 다르다- Interger
- 주소가 담긴다
- NULL을 가질 수 있다
- ex.) Integer a = 128, Integer b = 128,
a === b
will return False- because the addresses are different
- exception: 0~127, these numbers are frequently used, so they are stored in the heap by Java
- because the addresses are different
- ex.) const p1 = {name:"A", age:1} const p2 = {name:"A", age"1"},
p1 === p2
will return False
- int a
- NULL을 가질 수 없다
- **값 자체가 담긴다
- Interger
Encapsulation
- Class를 설계한다는 것 = Encapsulation = 객체 지항 설계 이다
- Encapsulation: 최대한 필드를 감추고, 필드 조작을 위한 Method는 최소한만 노출하겠다
- 내부로 감추는 경우: Method에서만 해당 데이터를 사용한다
- 외부로 노출하는 경우: Getter를 사용하며, 득정 포맷을 적용하거나 필요한 정보만 변환하여 노출한다
- 왜 Getter를 사용하는가? 필드 노출 시 자체 변경이 가능하기에 막기 위함
- 먼저 감춘 다음에, 외부 노출이 필요한지 곰곰히 생각해보자!
Static Field
- 클래스 안에 정의되어 있지만, 객체 없이 사용하는 방법
- 언제 사용하나?
- Field
- 객체 생성이 필요한 경우: 생성자를 통해 상황에 맞는 필드값 설정이 필요한 경우
- 객체 생성이 필요없는 경우 = Static: 생성자와 상관없이 모든 객체가 가져야할 공통 값
- 고정된 값일 경우 = 바뀔일이 없다!
- Method
- 객체 생성이 필요한 경우: 생성자를 통해 객체가 갖게된 필드값을 기준으로 연산이 필요할때
- 객체 생성이 필요없는 경우 = Static: 객체가 가진 필드가 아닌 외부 파라미터로만 연산할때
- Field
반응형
'웹개발 > 개발자' 카테고리의 다른 글
Git Zone & Git Flow (0) | 2024.09.03 |
---|---|
Git 구조 및 Remote vs Local (0) | 2024.09.01 |
Git & GitHub (2) | 2024.08.27 |
Bash 명령어 (2) | 2024.08.27 |