좋은 코드는 가독성, 유지보수성, 효율성, 확장성을 갖춘 코드를 의미한다.
1. 가독성 : 코드의 목적과 동작이 명확히 이해되며 읽기 쉬워야 합니다.
2. 유지보수성 : 오류 수정과 기능 추가가 간단해야 합니다.
3. 효율성 : 성능과 리소스 사용이 최적화되어야 합니다.
4. 확장성 : 요구사항 변화나 기능 추가에 유연하게 대응할 수 있어야 합니다.
5. 표준 준수 : 코드 스타일 가이드와 팀 컨벤션을 따릅니다.
객체 지향 프로그래밍은 객체(Object)를 중심으로 설계하고 구현하는 프로그래밍 패러다임입니다.
- 객체 : 데이터(속성)와 그 데이터를 처리하는 메서드(기능)를 하나로 묶은 단위
- 주요 특징
∘ 캡슐화 : 데이터와 메서드를 하나로 묶고 외부에서 접근을 제한.
∘ 상속 : 기존 클래스의 속성과 메서드를 물려받아 재사용.
∘ 다형성 : 동일한 인터페이스로 다양한 구현을 사용할 수 있음.
∘ 추상화 : 불필요한 세부사항을 숨기고 중요한 것만 노출.
REST(Representational State Transfer) 아키텍처 스타일을 따르는 API
- REST의 6가지 원칙
∘ Uniform Interface : REST의 핵심 특징으로, API 설계의 일관성을 의미
∘ Stateless : 서버는 클라이언트의 상태를 저장하지 않습니다.
∘ Caching : 응답은 캐시 가능해야 합니다.
∘ Client-Server : 클라이언트와 서버의 책임을 명확히 분리합니다.
∘ Hierarchical system : 시스템은 계층 구조를 가지며, 각 계층은 고유한 역할을 가집니다.
∘ Code on demand : 서버는 클라이언트로 코드를 전송하고, 클라이언트는 이를 실행할 수 있습니다.
테스트 주도 개발로, 코드를 작성하기 전에 테스트를 먼저 설계하는 개발 방법론
- 절차
- 실패하는 테스트 작성.
- 테스트를 통과시키기 위한 최소한의 코드 작성
- 코드 리팩터링
- 장점
∘ 코드 품질 향상
∘ 버그 조기 발견
∘ 리팩터링에 대한 자신감 확보
∘ 명확한 요구사항 정의
순수 함수와 불변성을 중심으로 데이터를 처리하는 패러다임
- 특징
∘ 순수 함수 : 동일 입력에 대해 항상 동일 출력을 반환, 부작용 없음
∘ 불변성 : 데이터 변경 대신 복사본 생성
∘ 고차 함수 : 함수를 인자로 전달하거나 반환 가능
∘ 지연 평가 : 필요할 때만 계산 수행- 장점
∘ 코드의 예측 가능성 증가
∘ 병렬 처리에 유리
∘ 유지보수 용이
함수형 프로그래밍 패러다임을 따르고 있는 언어에서의 함수는
일급 객체(first class citizen)로 간주된다. 다음과 같다.
- 변수나 데이터 구조안에 함수를 담을 수 있어서 함수의 파라미터로 전달할 수 있고, 함수의 반환값으로 사용할 수 있다.
- 할당에 사용된 이름과 관계없이 고유한 구별이 가능하다.
- 함수를 리터럴로 바로 정의할 수 있다.
반응형 프로그래밍(Reactive Programming)은 선언형 프로그래밍이라고도 불리며, 명령형 프로그래밍의 반대말이다. 또 함수형 프로그래밍 패러다임을 활용하는 것을 말한다.
반응형 프로그래밍은 기본적으로 모든 것을 스트림으로 본다.
스트림이란 값들의 집합으로 볼 수 있으며 제공되는 함수형 메서드를 통해 데이터를 불변하게 관리할 수 있다.
애플리케이션의 구조는 모델(Model), 뷰(View), 컨트롤러(Controller)로 나누어 설계하는 패턴
- Model : 데이터 및 비즈니스 로직 처리
- View : 사용자에게 보이는 화면 처리
- Controller : 사용자 입력 처리 및 모델-뷰 간 연결
- 장점 : 역할 분리로 유지보수성과 확장성 향상
git init : Git 저장소 초기화git add : 변경 내용을 스테이징git commit : 변경 이력을 저장git push : 원격 저장소에 변경 내용 업로드git pull : 원격 저장소 변경 내용 가져오기