본문 바로가기

공부/CleanCode4

2022.04.22 CleanCode 일지 #3. 조건문의 코드비교 기존 함수에 새로운 기능을 추가할 일이 생겼다. 대략 아래처럼 쓰여진 함수였다. if("A".equals(data.get("type"))){ ... }else if("C".equals(data.get("type"))){ ... } A, C 란 과연 무엇을 뜻하는걸까? 저 A 와 C 는 정말 저 한 단어로도 유추가 되지 않았다. 진짜진짜로 이거 처음 만든 짠 사람만 안다. (어쩌면 그사람도 까먹었을지도) 나는 "A"와 "C"의 의미를 알기 위해 굳이 내가 고칠 부분이 아니지만 A와 C코드 안쪽을 다 읽어보고 분석했다. 그래도 확실하지 않아서 이 함수를 쓰는 모든 파일들을 검색해 의미를 알 수 있었다. 의미를 알아냈지만 왜 A와 C로 표현한건지 조차도 이해가 가지 않았다. 내가 익숙한 업무를 하다가, 익숙하.. 2022. 4. 22.
2021.04.16 CleanCode 일지 #2. 조건문을 함수로 빼기 클린코드 일지를 적는다고 했는데, 그러고 난 다음에 4개월이나 지났다. 시간이 너무 빨리가버렸다. 현재 기존에 있던 사이트가 아닌 다른 곳에서 일하고 있어서 새로운 업무를 익히는 중이다. 이 업무 중에는 특정 컬럼의 값이 무엇이냐에 따라서 의미가 달라지는 부분이 있다. 조건문 안에 들어가는 부분을 이름붙여 함수로 만들면 그 부분에 대해 조금 더 캐치하기 쉬울 것 같다는 생각이 들었다. 실제 평가와 그 평가를 치지 못했을 때 치뤄지는 추가적인 평가가 있다. 1이면 실제 평가, 2이면 추가평가를 의미한다. DB 컬럼에 코멘트가 있으면 조금 더 알기 수월하겠지만, 어쨌든 이부분을 함수로 만들면 어떨까 싶었다. private boolean isExtraExam(){ return testCd.equals("2").. 2022. 4. 16.
2021.12.29 CleanCode 일지 #1. 단항함수 작성 CleanCode 책의 3장 함수 챕터에 보면, 함수의 인수에 대한 얘기가 나온다. 가장 이상적인 함수는 인수를 0개 가지는 함수이며, 차선은 인수를 1개 가지는 함수다. 오늘 javascript 에서 함수 하나를 작성했는데, 내가 년도와 학기의 데이터를 넘기면, 그에 해당하는 강의의 시작종료일을 가지고 와야하는 기능을 하는 함수였다. 년도와 학기 두개 파라미터를 넘기는 함수를 작성하려고 하다가, 이 두 인수를 모두 포함할 수 있는 객체를 넘겼다. (객체 안에 접근해 년도와 학기정보를 가져올 수 있다.) 즉, getDate(year, semester) 와 같이 2개 인수를 가지는 함수를 작성하지 않고, getDate(schDateInfo) 와 같이 함수를 작성하였다. 대단한 뭔가를 한 건 아니지만, 사실.. 2021. 12. 30.
서론. CleanCode 기록 시작 블로그에 장황하게 하겠다고 다짐한 프로젝트나 공부계획 등이 일이나 체계적인 계획의 부재(ㅎㅎ)로 인해 시작도 전에 중단(...)이 된 것들이 꽤 많은 것 같다. 요즘에 Effective Java 와 Clean Code 라는 책을 읽고 있다. CleanCode는 사실은 10챕터인가 까지 읽었긴 했다. 뻔한 얘기도 있는가 반면 정말 이런 부분들까지 신경쓰면 훨씬 더 깔끔한 코드가 될 수 있겠다는 생각이 들었다. 오늘부터 CleanCode 일지를 써보려고 한다. 매일매일은 아니고, 내 스스로가 좀 더 좋은 코드를 작성한 것 같다고 느낀 날만. 클린코드에 관심이 있어서 책을 읽는 것 까지는 좋은데, 이걸 읽는데서만 그치는 게 아니라 스스로 좋은 코드를 작성하는 습관을 들여야 진짜 독서를 한 보람(?)이 있을 것.. 2021. 12. 29.