[TIL]
[TIL] 2024.01.10
재호링
2024. 1. 10. 23:37
오늘 한 일
- 알고리즘 코드카타
- 팀 과제 회의
- 자바스크립트 기초세션
- 5주차 강의 getters setters
팀 과제 회의
팀원들의 개인프로젝트 중 대표가 될 프로젝트를 선택하기 위해
각자 코드 리뷰를 했다. 그 중 선택 된 팀원의 코드를
git init해놓은 레포지토리 dev 브랜치에 푸쉬하여 세팅해줌.
기능 구현을 위해 파트를 나누고 강의를 다 듣지 못한
팀원들을 위해 오늘 하루는 강의를 듣는 시간을 가짐.
자바스크립트 기초 세션
변수 선언 호출
함수 선언 호출
dom에 대한 기본 구조 이해에 대해 배운 시간.
5주차 Class 와 getter setter 실습
- 기본적으로 class 에서 사용하는 메소드.
- getter는 속성값 반환
- setter는 속성값 설정
- 이를 사용하는 이유는 생성한 인스턴스를 규격 안에서 자유자제로 변경하기 위해.
class는 기초적인 설계도 작성 단계라고 생각하면됨.
설계도면 안에는 구조가 짜여있기에 constructor() 를 안에 지정해주는거임
constructor의 괄호 안에는 매개변수가 들어가는데 외부에서 들어오는 값을 받기 위해서임.
그러기 위해선 this를 사용해 이름을 박아두는게 용이함.
class Car {
constructor (modelName, modelYear, type, price) {
this._modelName = modelName;
this._modelYear = modelYear;
this._type = type;
this._price = price;
}
}
이렇게 설계도를 작성했다면
설계도 안에서 작동되는 메서드를 작성하면됨.
위에 보면 this._(underscore)가 붙어있는데
이걸 해주지 않으면 getter setter에서 무한루프가 빠지게 돼
오류가 발생함.
( _로 시작하는 프로퍼티는 객체 내부에서만 활용하고 외부에서는 건드리지 않아서 그런거같음)
게터와 세터를 설정할때는
- get modelName () {}
- set modelName (value) {}
위와 같이 선언해주면 됨.
세터는 유효성 검사에 용이해서 검증 로직을 추가하여
예외처리하는데 쓰이는 것라고 이해했음. 또한 매개변수로 value가 들어감.
get modelName() {
return this._modelName
}
// 입력 값에 대한 검증까지 가능하다.
set modelName(value) {
// 유효성 검사
if (value.length <= 0) {
console.log("[오류] 모델명이 입력되지 않았습니다. 확인바라요!")
return;
}
else if(typeof value !== 'string') {
console.log("[오류] 입력된 모델명이 문자형이 아닙니다.")
return;
}
this._modelName = value
}
이런식으로 실습을 진행했는데
호환성을 생각한다면 꼭 필요한 메서드라고 생각됨.