Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[20210601] Character, HTTP Cache(조건부 요청), 간결하고 가독성이 좋은 코드 #136

Open
JuHyun419 opened this issue Jun 1, 2021 · 0 comments

Comments

@JuHyun419
Copy link
Owner

JuHyun419 commented Jun 1, 2021

Character 클래스

  • 유용한 메소드가 많이 존재해서 익숙해지자.
  • 문자인지 아닌지 확인하는 코드
// 구현
return ch >= 'a' && ch <= 'z' || ch >= 'A' && ch <= 'Z';

// 메소드
return Character.isLetter(ch);

HTTP Cache(조건부 요청)

Cache-Control + Expires

  • max-age 시간동안 캐싱을 해도 무방하다는 방식
  • API는 언제 새로운 데이터가 포함될지 모르기 때문에 사용 X

Last-Modified(검증헤더) + If-Modified-Since(조건부 요청)

  • 마지막으로 변경된 시간을 통해 검증하는 방식
  • 마지막 시간과 동일하면 304 Not Modified, 변경이 되었으면 200 OK

ETag(검증헤더) + If-None-Match(조건부 요청)

  • Last-Modified와 비슷하나 시간 대신 Hash값을 사용(MD5 Hash)
DB의 부하가 많아지면 일반적으로 Redis, Memcached로 캐쉬를 먼저 하려고 하는데, 
그보다 먼저 HTTP Cache로 부하를 먼저 줄여보는게 좋다. DB부하를 줄일 수 있을 뿐 아니라 
Response 데이터를 다시 받아오지 않아도 되기 때문에 API속도도 덤으로 개선된다.



간결하고 가독성이 좋은 코드

  • 가독성이 좋고 간결한 코드를 작성하기 위한 몇 가지 팁
  • 들여쓰기를 이용해 코드를 정리하자
    • 들여쓰기를 일관되게 사용하자.
    • 들여쓰기에 공백 문자와 탭을 섞어 쓰지 말자.
  • 변수와 메서드에 의미 있는 이름을 채택하자.
    • 코드는 그 의도가 명확할수록 유지보수가 쉬워진다.
    • 변수를 한 글자로 이름 짓는 일은 절대 하지 말자.
    • 변수와 메서드의 이름이 명확한 의미를 가지면 코드의 동작을 설명하는 주석 따위는 필요하지 않다.
  • 필요한 경우에는 코드에 주석을 작성하자
    • 정규식 쿼리처럼 매우 복잡한 로직에는 주석을 이용해 코드의 의미를 설명하자.
    • 주석은 코드의 변경을 계속 반영하도록 유지해야 한다.
    • 주석을 제대로 관리하지 않으면 나중에 오히려 혼란만 가중시킬 뿐이다.
    • 주석을 반드시 문서화 하도록 하자.
  • 주석처리한 코드는 커밋하지 말자
    • 불필요한 코드는 가독성을 위해 주석처리하지 말고 삭제하자.
    • 보통 코드를 주석처리하는 가장 설득력 있는 이유는 나중에 혹시 다시 필요하게 될 경우를 대비한다는 것이다.
    • 하지만 실상 몇 년이 지나도 주석인 채로 남아있으며, 이는 오히려 혼란만 가중하는 경우다.
    • 머뭇거리지 말고 그냥 지우자.
  • 혹시 나중에 필요할지도 모를 코드까지 작성하는 오버엔지니어링의 우를 범하지 말자
    • 어떤 기능을 구현할때 본인의 추측에 기반한 로직을 추가해서 필요 이상 작업하는 우를 범하지 말자.
    • 필요 이상의 코드는 버그나 유지보수 오버헤드를 야기할 뿐이다.
  • 장황한 코드를 작성하지 말자
    • 작업을 완수하기 위한 최소한의 코드만 작성하는 것에 집중하자.
    • 브레인스토밍 -> 프로토타입 구현 -> 코드 다듬기
  • 아직 시도해 본 적이 없다면 함수형 프로그래밍을 공부하자
    • 자바 8에서 도입한 람다, 스트림의 장점 중 하나는 가독성이다
  • 짝 프로그래밍을 도입하자
    • 짝 프로그래밍(pair programming)은 주니어 개발자가 경험 많은 개발자로부터 가르침을 받을 수 있는 훌륭한 방법이다.
    • 또한 코드를 작성하는 동안 다른 사람에게 스스로의 선택과 그 이유를 설명해야 하므로 더욱 의미있는 코드를 작성하는 방법이기도 하다.
    • 이는 주의 깊게 코드를 작성하는 환경을 만들어준다.
  • 간결하고 가독성이 높은 코드는 버그가 발생할 확률이 줄어든다.
  • 코드가 복잡할수록 버그도 늘어난다.
  • 보다 간결하며 가독성이 높은 코드를 작성하도록 지향하자!

참고



간단 회고

퇴사하고 공부 시작한 지 이틀째이다.
아직 아침부터 새벽까지 공부하는 습관이 잘 안잡힌 것 같아서 이번주는 적응기간으로 잡아야겠다.
오늘 유독 피곤한 날인데 딱히 이유는 모르겠다..
그 외에는 계획했던 대로 공부를 끝내서 괜찮았다 😊
@JuHyun419 JuHyun419 added the Java label Jun 1, 2021
@JuHyun419 JuHyun419 changed the title [20210601] Character, [20210601] Character, HTTP Cache(조건부 요청) Jun 1, 2021
@JuHyun419 JuHyun419 changed the title [20210601] Character, HTTP Cache(조건부 요청) [20210601] Character, HTTP Cache(조건부 요청), 간결하고 가독성이 좋은 코드 Jun 1, 2021
@JuHyun419 JuHyun419 added the Web label Jun 1, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant