오늘은 달리기반의 첫 이론수업이 있는 날이었다.
수업 내용은 1주차 강의 내용을 복습하는 것과 함께 코딩 컨벤션에 대해 배웠다.
1. 코딩컨벤션 (Coding Convention) 이란?
코드를 읽는 사람과 작성하는 사람이 모두 쉽게 이해할 수 있도록 하는 일종의 약속이다.
쉽게 말해 누가 봐도 쉽게 알아볼 수 있도록 이름을 짓는 방법이다.
1) 코딩 컨벤션 종류
- camelCase : 주로 변수와 함수 선언에 사용된다.
- kekbab-case : 페이지, pathname, 폴더명, css className에 사용된다.
- snake_case : 파이썬에서 많이 쓰인다. js에서는 잘 사용하지 않으나,
- 대문자 표현은 상수 표현할 때 많이 사용된다.
- ex) const MILLISECONDS_PER_DAY = 60 * 60 * 24 * 1000; // 86400000;
- PascalCase : 컴포넌트, 페이지 파일 명에 많이 사용한다.
2) 코딩 컨벤션의 중요성
- 팀원 모두 같은 코드를 작성 할 수 있게 된다.
- 팀의 코드를 한 사람이 짠 코드처럼 느껴지게하는 데에 목적이 있다.
- 사람에 의존적이지 않고 규칙에 의존적인 코드를 짜게 되고 모르는 부분의 코드도 빠르게 파악할 수 있게 한다.
- 코드 컨벤션만 보고 어떤 의도의 코드인지 파악하기 쉽게 된다.
위와 같은 장점으로 인해 협업하기 전에 여러 컨벤션(Convention)들을 정하고 시작한다.
3) 기본적인 변수 / 함수 선언법
- 변수는 명사로 표기한다.
- 꼭 명확한 의미를 담아서 작성한다.
- 길더라도 사전에 약속되지 않은 줄임말은 사용하지 않는다.
- boolean은 is, has, thsis, -ing를 붙인다.
- 함수는 동사로 표기한다.
- 복수에는 복수 표현을 사용한다. ( -s , -List )
2. 알고리즘 - 복잡도
1) 복잡도 ( Complexity )
- 알고리즘의 성능을 나타내는 지표이다.
- 시간복잡도와 공간복잡도가 있다.
2) 시간 복잡도 ( Time Complexity )
입력 값과 연산 수행 시간의 상관관계를 나타내는 척도
= 코드의 시간적 효율성과 관련된 복잡도
- 점근적 표기법 : 입력값에 따른 수행 시간의 증가율에 집중하기 위해서 중요하지 않은 요소를 제거하는 표기방법
- 오메가 표기법 : 최상의 수행 시간을 표기하는 방법 Ω(N)
- 세타 표기법 : 평균의 수행 시간을 표기하는 방법 Θ(N)
- 빅오 표기법 : 최악의 수행 시간을 표기하는 방법 O(N)
- 최악의 경우가 계산하기 편하면서도, 평균의 수행 시간을 예측하기 쉽기 때문에 주로 사용된다.
3) 공간 복잡도 ( Space Complexity )
프로그램의 실행에 얼마나 많은 공간(메모리)가 필요한지 나타내는 척도
= 코드의 공간적 효율성과 관련된 복잡도
★ 9일차 소감
3주차의 강의를 계속 반복해서 듣고 있다. 아직 이해가 잘 되지 않아 아직까지는 내용을 정리하기 어렵다.
하지만 1~2주차의 내용은 완벽하게 이해하고 있어 정규 수업을 이해하는 데 문제가 생기진 않았다.
하지만 3주차 강의를 조금 더 집중해서 공부한 뒤 TIL에 올리면서 내용 정리해야할 것 같다.
그동안 알고리즘 문제 풀이를 따로 업로드 하려고 했으나 제대로 실천하지 못했다.
앞으로는 아침에 약 1시간정도 알고리즘 문제 풀이 시간을 갖고 풀이 과정을 업로드 하고자 한다.
코딩 컨벤션의 경우 각 표기방법마다의 쓰임이 다른지 처음 알았다. 알기 쉽게, 보기 좋게만 작성하면 된다고 생각하였는데 해당하는 쓰임이 명사인지, 동사인지까지 구분하여 작성하는 것을 보고 확실히 저렇게 표기를 하면 협업할 때 알아보기가 굉장히 수월하겠다라는 생각을 하였다. 굉장히 효율적인 것 같다. 앞으로 있을 과제나 프로젝트에서 이를 잘 숙지하고 활용해야겠다.
'TIL' 카테고리의 다른 글
10. 16. 11일차 TIL - TMDB API 사용법 (0) | 2024.10.16 |
---|---|
10. 15. 10일차 TIL - 콜백함수와 제어권 (1) | 2024.10.15 |
10. 11. 08일차 TIL - 데이터 타입(심화) (5) | 2024.10.11 |
10. 10. 07일차 TIL - ES6, 일급객체, 알고리즘 (4) | 2024.10.10 |
10. 08. 06일차 TIL - JavaScript 역사, 특징, 기본문법 (7) | 2024.10.08 |