21. 10. 07 하드코딩, 타입

allie·2021년 11월 3일
0

TIL

목록 보기
1/15

학습 내용

오늘은 땅따먹기 활동학습을 하면서 내가 알고있는 개념도 자신있게 한문장으로 설명하지 못하면 모르는 것이라는 걸 깨달았다. 알고있다고 생각한 개념도 막상 설명하려니 머릿속이 새하얘졌던 것 같다. 땅따먹기에 있었던 개념들을 다시 복습하면서 자신있게 설명할 수 있을 때까지 공부해야겠다.

어제 숫자게임 프로젝트 step1을 마무리하고 PR을 보냈는데 리뷰어로부터 상세한 리뷰를 받았다! 😃리뷰 내용을 보며 새로 알게 된 개념들도 있어서 도움이 많이 되었다.

  • 하드코딩 이란? 프로그램의 소스 코드에 데이터를 직접 입력해서 저장하는 것. 주로 파일 경로, URL 또는 IP 주소, 비밀번호, 화면에 출력될 문자열 등이 대상이 된다.
  • 하드코딩 을 지양해야하는 이유 : 의미를 파악하기 어렵고 유지 보수하기 어렵다는 문제점이 있다.
  • 전역변수는 프로그램 내에서 어디서든 사용이 가능한 형태라 지금까지 전역변수를 남발했던 것 같다. 하지만 전역변수를 막 쓰다가는 휴먼에러나 예상치 못한 오류를 일으킬 수 있다는 점을 알았다.

왜 우리는 타입이 필요할까?

var someName: String = "abc"
var someAge: Int = 100
var 세월: Double = 100

컴퓨터는 정보를 0과 1로만 표현을 한다. abc 라는 것을 저장할 때, 컴퓨터는 해당 타입으로 0과 1로 변환해서 저장을 한다. someAge의 100이라는 값과 세월의 100이라는 값은 같은 값으로 컴퓨터에 저장이 될까? 아니다. 읽고 쓰는 규칙이 다르기 때문! 메모리에 어떤 값을 저장해놓고 cpu가 처리를 하려면, 그 값이 어떤 규칙으로 저장되어야하는지 알아야하기 때문에 타입을 명시하는 것이 필요하다.

타입이 달라지면 메모리에 쓰여지는 0과 1의 구조가 달라지기 때문에 (읽고 쓰는 규칙이 다름) 서로 호환할 수가 없다!

문제점 / 고민한 점

지금까지 코드를 작성하면서 아래와 같이 하드코딩을 당연하게 해왔는데, 앞으로는 지양하도록 해야겠다.

if tryCount < 3 {
 // 위의 3이라는 숫자가 하드코딩 된 것이라는 걸 처음 알았다. 
}

// 해결방법
let maximumTryCount = 3

if tryCount < maximumTryCount {
 // 하드코딩을 지양하면 나중에 유지보수할 때 더 좋을 것 같다.
}
profile
게발자🦀 되는 중.. 궁김하다.. 궁김해..

0개의 댓글