반응형
Notice
Recent Posts
Recent Comments
Link
«   2025/09   »
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 29 30
Archives
Today
Total
관리 메뉴

웹풀스택 공부 중

기초 코드 작성 방법 [rule of thumb] 본문

웹개발/개발자

기초 코드 작성 방법 [rule of thumb]

lukeit 2024. 9. 3. 13:23

코드 작성법

  1. DRY: Don't Repeat Yourself
  2. KISS: Keep it Simple and Stupid
  3. 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 aInteger 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
      • ex.) const p1 = {name:"A", age:1} const p2 = {name:"A", age"1"}, p1 === p2 will return False
    • int a
      • NULL을 가질 수 없다
      • **값 자체가 담긴다

Encapsulation

  • Class를 설계한다는 것 = Encapsulation = 객체 지항 설계 이다
  • Encapsulation: 최대한 필드를 감추고, 필드 조작을 위한 Method는 최소한만 노출하겠다
    • 내부로 감추는 경우: Method에서만 해당 데이터를 사용한다
    • 외부로 노출하는 경우: Getter를 사용하며, 득정 포맷을 적용하거나 필요한 정보만 변환하여 노출한다
      • 왜 Getter를 사용하는가? 필드 노출 시 자체 변경이 가능하기에 막기 위함
    • 먼저 감춘 다음에, 외부 노출이 필요한지 곰곰히 생각해보자!

Static Field

  • 클래스 안에 정의되어 있지만, 객체 없이 사용하는 방법
  • 언제 사용하나?
    • Field
      • 객체 생성이 필요한 경우: 생성자를 통해 상황에 맞는 필드값 설정이 필요한 경우
      • 객체 생성이 필요없는 경우 = Static: 생성자와 상관없이 모든 객체가 가져야할 공통 값
        • 고정된 값일 경우 = 바뀔일이 없다!
    • Method
      • 객체 생성이 필요한 경우: 생성자를 통해 객체가 갖게된 필드값을 기준으로 연산이 필요할때
      • 객체 생성이 필요없는 경우 = Static: 객체가 가진 필드가 아닌 외부 파라미터로만 연산할때
반응형

'웹개발 > 개발자' 카테고리의 다른 글

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