클린코드
-
♻️[클린코드] #5 객체와 자료구조Study/클린코드 2022. 6. 30. 17:10
객체와 자료구조로 데이터 표현하기 ♻️ 자료구조(data structure) vs 객체(object) - 공통점 둘 다 클래스를 통해 만들어진다. - 차이점 자료구조(Data Structure) 객체(Object) 데이터 그 자체 비즈니스 로직과 관련 자료를 공개해야한다.(이 클래스가 어떤 프로퍼티를 가지고 있는지 공개) 자료를 숨기고, 추상화 (자료를 다루는 함수만 공개) 변수 사이에 조회 함수(getter)와 설정 함수(setter)로 변수를 다룬다고 객체가 되지 않는다. 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있다. - 상황에 맞는 선택 자료구조 사용 : (절차적인 코드) 기본 자료 구조를 변경하지 않으면서 새 함수를 추가하기 쉬움 새로운 자료구조를 추가하기 어려..
-
♻️[클린코드] #4 형식 맞추기Study/클린코드 2022. 5. 30. 21:37
코드의 가독성에 필수적인 포맷팅 ♻️ 포맷팅이 중요한 이유 - 가독성에 필수적이다 코드를 수월하게 읽어나갈 수 있고, 아마추어처럼 보이지 않는다. 포맷팅이 되어있지 않아 코드를 잘못 해석해 버그를 발생할 수도 있는데 포맷팅을 통해 가독성을 높혀 위험을 줄인다. ex) 줄바꿈 간격 ♻️ 클린코드 포맷팅 - 적절한 길이 유지 엄격한 규칙은 아니지만, 일반적으로 200줄 정도로 제한한다. (그래도 최대 500줄) 코드가 200줄을 넘어간다면, 클래스가 여러 개의 일을 하고 있을 수 있다. -> SRP에 위배된다. - 밀접한 개념은 서로 가까이 다른 개념들끼리 빈 행으로 분리한다. 변수는 사용되는 위치에서 최대한 가까이 선언한다. ♻️ Java Class Declarations - Java Class Decla..
-
♻️[클린코드] #2 함수Study/클린코드 2022. 5. 16. 19:07
♻️ SOLID 원칙 - 객체 지향 설계의 5가지 원칙 S.O.L.I.D SRP : 단일 책임 원칙 OCP : 개방-폐쇄 원칙 LSP : 리스코프 치환 원칙 ISP : 인터페이스 분리 원칙 DIP : 의존성 역전 원칙 - Single Responsibility 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 기능만 가진다. 장점 : 가독성 향상과 유지보수가 용이해지며, 변경에 의한 연쇄작용에서 자유롭다.(SRP책임이 분명해짐) - Open/Closed Principle 개방-폐쇄 원칙 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야한다. 기존 구성요소에는 수정이 일어나지 않고, 기존 구성 요소를 쉽게 확장해서 재사용한다. 객체지향의 추상화와 다형성을 활용한다. ex) 소프트웨..
-
♻️[클린코드] #1 깨끗한 코드와 의미 있는 이름Study/클린코드 2022. 5. 8. 01:57
♻️ 나쁜 코드 - 나쁜코드가 무엇일까? 1. 성능이 나쁜 코드 : 불필요한 연산이 존재한다. 2. 의미가 모호한 코드 : 이해하기 어려우며, 네이밍과 그 내용이 일치하지 않는다. 3. 중복된 코드 : 비슷한 내용인데 중복된 코드들은 버그를 낳으며 불필요하게 공간을 차지한다. - 나쁜 코드가 나쁜 이유 깨진 유리창 법칙 : 나쁜 코드는 계속 나쁜 코드가 만들어지도록 한다. 생산성 저하 : 나쁜코드가 쌓일수록 기술 부채가 쌓인다. 팀 생산성을 저하시킨다. 기술부채를 만들어 기존 코드 수정을 더 어렵게 한다. * 기술부채 : 새로운 시스템을 만들어야 한다 : 현시스템을 유지보수하며 대체할 새로운 시스템 개발은 현실적으로 매우 어렵다. - 나쁜 코드를 짜는 이유 일정이 촉박해서 : 일정 안에 새로운 기능을 완..