클린코드 3장 (함수), 4장 (주석)

JAVA/클린코드|2020. 6. 20. 23:04

 

함수


- 함수를 만드는 기본 규칙은 작게 만드는 것!

 

- 함수 내부에 if 문 등의 1단이나 2단 그 이상의 중첩 구조가 발생되면 안된다.

 

- 함수의 활동은 한가지 그 이상을 하지마라.

 

- switch문에 다음과 같이 한가지 작업만 해야한다는 SRP 이론과 코드의 변경이 있으면 안된다는 OCP 규칙을 위반한다. 이를 해결하기 위해서는 다형성을 이용해서 해결해야 한다.

// 문제 코드
public int calEmployeePay(Employee e) {
	switch (e.type) {
		case SALARIED:
			return calculateSalariedPay();
		case HOURLY:
			return calculateHourlyPay();
		case .....
	}
}

// 변경 내용
public interface Employee {
	int calPay();
}


public SalaryEmployee implements Employee {
		
		@Override
		public int calPay() {
				...
		}
}

public int calEmployeePay(Employee e) {
	return e.calPay();
}

- 함수 이름이 길어지더라도 서술적으로 한방에 이해가 가능한 이름이 오히려 더 깔끔하고 좋은 코드다.

  ex) includeSetupAndTeardownPages..

 

- 함수의 인수는 기본적으로 3개 까지가 사실 마지노선이라고 생각하고 그 이상은 절대 오지 않도록 해라. 인수가 있으면 함수 자체를 이해하는데 더 어려움을 겪게 된다.

 

- 인수가 늘어난다면 별도의 인수 객체를 만들어서 묶어서 보내는 게 더 낫다.

  ex) int x, int y ⇒ Point point

 

- 함수의 이름과 인자가 한꺼번에 이해가 가능한 이름에 가장 좋다.

  ex) write(name), assertExpectedEqualsActual(expected, actual)

 

- 함수의 이름과 다른 행위를 함수안에 실행 시키지 마라 ex) checkPassword() 함수내에서 사용자 세션을 초기화 한다거나 하는 행위는 자칫하면 엄청 큰 버그를 일으킬 가능성이 크다.

 

- 에러 코드를 사용하는 것보다는 try catch를 이용해서 에러 코드를 분리하는 것이 좋고, try catch블록은 모든 영역이 아닌 별도 함수내에서 처리하도록 하는 것이 좋다.

 

- 중복된 코드를 계속 양산하지 마라.

- 모든 함수와 함수 내 모든 블록에 입구와 출구는 하나만 존재해야 한다.

 

 

 

 

주석


- 잘 작성된 주석은 이해가 되지만 경솔하고 근거없는 주석은 코드를 더 이해하기 어렵게 만든다.

 

- 주석은 코드로 의도를 표현하지 못해서 실패를 만회하기 위해 적은 코드이다. 그러므로 주석을 달고 있다면 코드를 잘 못 작성한 건 아니지 잘 생각해봐라.

 

- 주석은 언제나 코드를 따라가지 못하기 때문에 언젠가 주석은 코드와 분리되어 고아가 되어버리는 순간이 오기 때문에 조심해야 한다.

 

- 저작권 등의 정보를 알리거나 외부 라이브러리 등의 사용이나 내부 규약으로 인해 어쩔수 없이 사용하는 인자 등의 부분에 대해서 명료한 설명을 위한 주석 또는 결과 값에 대한 결과에 대한 주석 정도는 괜찮다.

 

- 누군가의 공을 달거나 HTML 주석을 위해 사용하거나 근처 코드가 아닌 다른 코드에 대한 주석 등을 다는 이런 코드들은 코드 개선에 시간을 들이는 게 더 낫고 클래스 파일에 바이트나 낭비하지 말아라.

 

 

 

결론

함수

함수는 당연히 나도 의미가 있도록 사용하기 위해서 네이밍에 많은 고민을 하고 있고 같이 일하시는 분들이 잘 이해할 수 있도록 간결하게 만들려고 노력은 하고 있다. 근데 사실 프로젝트가 커지고 하다보면 쉽지 많은 않다. 흑

 

주석

주석은 15년도에 일을 시작했을 때만해도 선배들이나 주변 개발 컨벤션에서 보면 항상 주석을 달라고 되어 있었고 오픈소스로 나와있는 라이브러리들에도 자세한 설명이 기재되어 있었다. 그래서 따라하는 습관을 들였는데 주석이 말한 그대로 코드를 따라가기 어려웠고 어느순간부터는 주석이 도움이 되는게 아니라 오히려 방해가 된다는 생각을 나 또한 들게 되어 지금은 주석대신 코드를 더 명확하게 짜기 위해서 노력하고 있다.

 

 

댓글()

자바 성능 튜닝 이야기 책 리뷰

Book Review|2020. 6. 12. 21:46
자바 성능 튜닝 이야기
국내도서
저자 : 이상민
출판 : 인사이트 2013.10.26
상세보기

요새 개발을 하면서 Java GC 튜닝이나 옵션 설정을 효율적으로 하지 못하는거 같아서 책 제목만 보고 자바 튜닝에 대해 공부해보고자 구매하였다.

 

흠... 근데 앞에 있는 대부분의 자료구조 선택 기준이나 String과 같은 자료형 주의사항등에 대한 이야기 대부분들이 대학교 2학년 때 봤었던 남궁성님의 자바의 정석이나 Effective java 책에 비해 많이 부족하고 블로그 글을 읽는다는 느낌을 많이 받았다.

 

 

GC에 대한 내용도 2011년도에 나온 네이버 D2에 글이 더 자세하게 기록되어 있는 거 같다. https://d2.naver.com/helloworld/1329

 

책 구매 후 이렇게 단 기간에 넘기면서 2시간만에 다 본건 처음이었다.

다음 읽을 책은 자바 최적화 인데 이건 조금 더 좋은 내용이 있었으면 좋겠다!!

댓글()

곰돌이 푸 다시 만나 행복해

영화리뷰|2018. 10. 7. 12:54


곰돌이 푸는 어렸을때 꿀을 좋아하던 곰이 나오는 만화로써 기억하고 있었다.

크게 내 기억속에 자리 잡고 있지 않았던 만화였다. 이번에 디즈니에서 곰돌이푸를 대상으로 만화가 아닌 영화로써 출시 하였다. 어떻게 표현 하였고 어떤 내용을 담고 있는지 궁금하기도 했지만 곰돌이푸를 좋아하는 여자친구의 권유로 보게되었다.


주인공 크리스토퍼 로빈은 순수한 마음을 가지고 곰돌이 푸 친구들과 즐거운 유년시절을 보냈다. 하지만 학업, 전쟁, 생계 과정을 거치게 되면서 어린시절 가졌던 마음가짐을 잃고 무엇이 정답인지 모르고 그냥 가기 바쁜 우리들처럼 일상생활을 보내고 있었다.

그렇게 살아가던 크리스토퍼 로빈은 우연히 찾아온 곰돌이 푸를 만나게 되고 소중한 것이 무엇이었는지 다시 한번 돌이켜 보게 되고 다시 그 곳으로 돌아가게 되는 그런 영화였다.


영화를 보면서 점점 무엇을 하지 않으면 불안해지고 사소한것에 목숨걸고 있는 내 모습을 크리스토퍼 로빈에서 볼 수 있었다. 나도 직장생활을 시작하고 4년차가 되어가면서 점점 각박해지고 다급해지는 내 모습을 자주보게된다. 그런 내 모습이 별로 좋지 않다는 것을 아는데 평점심을 찾고 여유를 다지는게 쉽지 않은 것 같다.

푸가 영화에서 안개에서 길을 잃었을 때 크리스토퍼 로빈이 준 나침반을 봤던 것 처럼 내 인생에서 나침반을 다시 한번 들여다 봐야할 시간이 온것이 아닌가 생각이 들었다.


아무것도 안하다보면 대단한 뭔가를 하게 되지.

이젠 길을 잃지마 크리스토퍼 로빈.

푸: "What day is it?" 크리스토퍼 로빈: "It's... today!" 푸: "My favorite day."

곰돌이 푸가 영화해서 했던 대사이다.


이 대사가 많은 생각을 하게 했던 것 같다. 미래에 대한 불확실과 책임감으로써 알수 없는 불안에 쌓여서 항상 쫓기듯이 살아왔던 나에게 미래를 걱정하며 살지말고 오늘을 가장 좋아하는 날로 써 살아가라고 이야기 해주는 것 같았다. 


우연하게 보게 되었던 영화였지만 나에게 좋은 계기가 된 것 같다.

아이들보다 어른이 보면 더 좋은 영화였던 것 같다.

댓글()

천호 로데오점 동대문 엽기 떡볶이 후기

음식|2018. 7. 1. 19:55

날씨가 우중충해서 매운게 땡겨서 동대문 엽기떡볶이를 어플로 주문했다.

토핑이랑 주먹밥 소세지까지 추가해서 시켰는데 한시간이 넘고 한시간 반이 지나서 왔다.

비도오고 그래서 배달도 힘들고 그런 것 다 이해하는데, 늦으면 먼저 연락해주거나 했으면 좋겠다.

한시간반이면 나가서 재료 사서해도 그것보다는 빠를것 같다.
양은 엄청 많이 주셨는데 국물이 너무 없어서 물넣고 다시 끓여 먹었다.

다음에 먹을때는 조금 여유있을때 먹어야겠다.

이 장소를 Daum지도에서 확인해보세요.
서울특별시 강동구 천호2동
도움말 Daum 지도

댓글()

제주도 씨사이드 아덴 숙박 후기

nhn 엔터테이먼트 복지를 이용하여 제주도 가족여행에 사용할 숙소를 예약했다.

씨사이드아덴이라고 네이버에 검색어해도 잘 나오지 않아서 불안했는데 도착해서 보니 다행이 나쁘지 않았다.



아직 공사중이라 한동에 두집정도를 제외하고는 입주한곳이 없어서 유령 건물에서 자는것 같았다 ㅋㅋㅋ



그래도 바로 문을 열면 바다가 보이고 숙소가 너무 넓고 깨끗해서 좋았다.



화장실과 침실이 3개씩 있어서 가족 모두가 사용하는데 너무 편안했다! 

침대가 에이스라서 그런지 자고 일어났을때 아프던 허리가 괜찮아진거 같았다.



냉장고와 와인냉장고, 식기 세척기 냉장고등  부대시설도 좋아서 편하게 이용했다.

4월부터 회사 복지에 포함되었다는데 
다들 가도 나쁘지 않을것 같다



이 장소를 Daum지도에서 확인해보세요.
제주특별자치도 서귀포시 색달동 2864-35 | 제주중문씨사이드아덴
도움말 Daum 지도

댓글()

라이먼 레이몬즈 주연 데드풀2 후기

영화리뷰|2018. 6. 4. 21:28



라이먼 레이몬즈 주연에 데드풀을 재작년인가 보았을때 재밌었어서 데드풀 2가 개봉하자 보러갔다.

데드풀1보다 더 잔인하고 자극적이었다.

미국식 코미디가 나에게 그렇게 재밌지는 않은건지 이번 데드풀2는 나하고 맞지 않았다.


엑스맨을 보지 않아서 그런가 ㅋㅋ

평점은 7점정도.
쿠키영상은 1개있다.

댓글()

무라카미 하루키의 기사단장 죽이기1 구독 후기

Book Review|2018. 6. 1. 22:10

기사단장 죽이기 1
국내도서
저자 : 무라카미 하루키(Haruki Murakami) / 홍은주역
출판 : 문학동네 2017.07.12
상세보기




1Q84 그리고 상실의 시대(노르웨이숲) 책을 만든 무라카미 하루키의 신작 기사단장 죽이기를 같이 회사 기숙사에서 살고 있는 친구의 추천으로 읽게되었다.

무라카미 하루키의 책 답게 책 구성이 재미있어서 구독한지 3주정도에 다 읽고 이번에는 내가 2권을 구매하였다.



[줄거리]

 주인공은 초상화를 그리는 화가이다. 평범하게 초상화를 그려주면서 돈을 벌던 주인공에게 어느날 갑작스럽게 아내에게 이혼통보를 받았다. 충격을 받아서 무작정 차를 가지고 여행을 떠났다. 어느날 술집에서 어느 한 여인을 만나 밤을 같이 보냈다. 그 때 여인과 같이 있던 술집에서 한 남자가 있었는데 그 남자는 주인공을 뚫어져라 쳐다봤다. 추후에 이 남자는 중요한 부분을 차지하게 된다.

나그네처럼 살던 주인공에게 친구가 자신의 아버지에 집으로 들어가서 지내는것은 어떻겠냐고 제안을 받았다. 친구의 아버지는 서양화를 그리다가 일본화로 전향한 화가였다. 지금은 치매에 걸려 병원에 있게되어 집이 마침 비어지게 된것이다. 

주인공은 친구아버지 집으로 거취를 옮겼고, 그곳에서 친구 아버지가 그린 그림 기사단장 죽이기를 보게 되었다. 기사단장이 칼에 찔리고 있는 모습에 그림이였다. 아직 자세하게 이 그림에 대한 이야기가 나오지는 않는다.(2권에 나올것같다.) 

그 마을에서 멘시키라는 부자 주민을 알게 되었고, 초상화를 제안받게 되었다. 그 초상화를 그려주면서 집 주변에 깊은 굴을 발견하게 되었다. 그 굴에서는 밤마다 종이 올렸고 그 종소리를 파헤치기 위해 땅을 팠지만 아무것도 나오지 않았다. 굴을 파낸이후 기사단장 영혼이 주인공앞에 나타나게 되었다. 

이 기사단장 주인공이 추후에 어떤 역할을 하게 될지는 모르지만 중요한 역할을 할 것같다. 

멘시키 초상화를 다 그린 후 자신의 딸로 의심되는 여자아이에 초상화를 부탁하면서 책이 끝났다.



[후기]

아직 어떻게 이야기가 지나가게 될지는 잘 모르겠다. 

2권을 봐야 알것같다. 멘시키라는 사람에 정체도 술집에서 마주친 남자의 정체도, 멘시키 딸로 의심되는 여자아이도 모두 아직 잘모르겠다. 

그래도 2권을 선뜻 살정도로 재미는 있었다.
확실히 책이 주는 재미는 다른 미디어가 주는 재미보다 즐거운 부분이 있다.

음주가무에 취해서 사는 요즘 사람들도 책을 읽는 습관을 들였으면 좋겠다는 생각을 이 책을 보면서 많이 느꼈다.

특히 요즘 동료중 술과 유흥등을 즐기지 않는다고 나를 안쓰럽다고 말하는 분이 있어서 더욱 그런생각이 드는 것같다. 요즘 참 그렇다.

겉으로 드러나는 멋과 흥이 전부가 아니라는 것을 그분도 알았으면 좋겠다.



댓글()

GTune CHF7 OfficeMaster 50g 정전식 무접점 키보드 후기

상품리뷰|2018. 5. 31. 09:31

회사에서 사용할 키보드가 필요해서 하나 찾던중 가격이 저렴한 한성키보드를 골랐다

제품명은 GTune CHF7 OfficeMaster 50g 정전식 무접점 키보드이다.

키보드 사용감은 일반 저렴한 무접점 키감과 비슷하다.

한성키보드 특징인지 모르지만 스페이스 버튼을 누르면 튕기는 소리가 난다.

처음 구매후 ?와 .이 안써져서 as를 맞겼고, 바로 교환처리 해주셨다.

그래도 as는 나쁘지 않은것 같다.

색갈도 깔끔하고 전체 평점은 5점만점에 3점이다.


타건음은 아래 동영상을 들어보면 더 자세히 알 수 있다

https://m.blog.naver.com/PostView.nhn?blogId=rokking1&logNo=221255211764

댓글()