layout | title | tags | |
---|---|---|---|
post |
프로그래머스 과제 제출 후 반성 & 교훈 정리 |
|
저번주 토요일에 과제를 받았고, 제출 직전까지 정신없이 코딩했다. 반성해야할 부분들과 기록해놓고 싶은 부분들을 정리해보고자 한다.
- 디버거를 제대로 활용하지 못함.
console.log()
를 지나치게 많이 사용했다. 좋지 못한 습관이다. 코드를 실행시켜보고 문제가 있으면 의심되는 부분에console.log(someData)
를 추가해서 다시 서버를 켜보는 식으로 작업을 했다. 이 경우 어느 부분이 문제인지 명확하게 알 때까지 하나하나 대입해보는 수 밖에 없다. 서버를 껐다 켜는 시간과 원인이 되는 부분을 찾아낼 때 까지 계속해서 대입해서 로그를 찍는 것에 시간이 낭비된다.
이번 과제는 간단한 웹앱을 개발하는 것이었으므로 크롬 디버거를 잘 활용했으면 개발이 훨씬 효율적이었을 것이다. 크롬 디버거를 쓰면,
- 서버를 껐다 켜기를 반복할 필요가 없다.
- 바로 코드를 작성해서 테스트해볼 수 있고, CSS 쪽도 편하게 수정해서 확인해볼 수 있다.
- 브레이크 포인트를 걸고 단계별로 실행해볼 수 있다.
console.log
없이 각종 인스턴스의 값을 마우스 오버해서 쉽게 파악할 수 있다.
-
쪼개서 커밋하는 습관을 잘 들이자. 과제를 하면서 기능별로 커밋을 해야한다는 생각은 계속 하면서도 정작 파일과 폴더를 어떻게 정리해야할지 감이 잘 오지 않아서 계속 코드 작성만 하다가 결국 원했던 대로 깔끔하게 커밋을 하지 못했다. 이 부분에 대해서 현업 프로그래머 선배분께 조언을 구했다. 경험이 쌓이다보면 어떤 프로그램을 만들 때 어떻게 구조를 잡을지 비교적 수월하게 떠오르는데, 일단은 너무 스트레스 받지 말고 다 완성한 다음에 리팩토링을 해보라고 하셨다. 과제는 어차피 private 저장소에서 한 것이고 저작권 문제도 있어서 딱히 남들에게 코드를 보여줄 순 없지만, 그래도 억지로라도 완성을 했으니 리팩토링을 해볼까 한다.
-
일찍 자고 일찍 일어나자. 너무 당연한 이야기지만, 참 지키기가 힘들다. 잠을 줄이는 건 체력 대출이다. "이것만 구현하고 자야지", "테스트 한번만 해보고 자야지"가 몸을 크게 해친다. 눈 앞에서 아른거려도 과감하게 침대로 가서 잠을 자야한다.
- primary key 각 데이터 행이 가지는 unique한 값이라고는 알고 있었다. primary key가 있으면 검색 속도가 빠르기 때문에 대부분의 경우에 primary key를 db에 추가해놓는 것이라고 막연히 알고 있었다. 왜 primary key가 있으면 좋은가? 왜 빠른가? 단 하나의 행을 특정지을 수 있기 때문이다.
ex) 게시판 글 번호(고유번호). 유저한테는 몇 번 게시글로 보이느냐와 상관 없이 중요한 것은 각 글마다 고유의 번호가 있다는 것. 그걸 삭제한다고 하면 db에서 요놈! 하고 바로 접근해서 삭제할 수 있는 것.
cf) 근데 유저 id의 경우 primary key로 쓸 수 있을 것 같지만, 문자열이여서 정수로 된 인덱스 키를 주로 사용함. 정수형의 이점? 사이즈가 고정. (스택 오버플로가 일어날 수도 있겠지만...64비트 unsigned 범위를 생각해보면 충분히 크니까)
유닉스 타임? 빠르게 소진될 거 같지만 꽤 남았습니다.
-
migration 어렵고 복잡한 것이라고 생각했는데, "데이터 테이블을 버전관리 하는 것"이다. sequelize의 migartion 파일의 경우 up, down 부분이 있는데 버전 up 할 때 할 일들은 up 밑에, 버전 down 할 때 할 일들은 down 밑에 작성한다. 괜히 겁먹었다.
-
변수 vs 식별자
// ex)
const num = 3
variable --> semantic identifier --> syntax num은 일단 식별자이다. 의미상 변수인 것.
function test () {
console.log("foo");
}
여기서 function은 뭘까? 이건 keyword. 키워드는 식별자로 못 쓴다. 식별자가 아니다. cf) if도 keyword다. test는 identifier다. console도 identifier, log도 identifier. 키워드를 중심으로 시맨틱과 신택스가 생긴다.