728x90
728x90
Object의 기본 toString 메서드가 우리가 작성한 클래스에 적합한 문자열을 반환하는 경우는 거의 없다. 이 메서드는 PhoneNumber@adbbd처럼 단순히 클래스_이름@16진수로_표시한_해시코드를 반환한다. toString의 일반 규약에 따르면 '간결하면서 사람이 읽기 쉬운 형태의 유익한 정보'를 반환해야 한다. 이러한 형식의 값을 읽기 쉽다고 볼 수도 있지만, 707-867-5309처럼 전화번호를 직접 알려주는 형태가 훨씬 유익한 정보를 담고 있다. 또한 toString의 규약은 "모든 하위 클래스에서 이 메서드를 재정의하라"고 한다. equals와 hashCode 규약(아이템 10, 11)만큼 대단히 중요하진 않지만, toString을 잘 구현한 클래스는 사용하기에 훨씬 즐겁고, 그 클래..
니콜라스 쌤의 https://nomadcoders.co/react-fundamentals ReactJS로 영화 웹 서비스 만들기 - Nomad Coders React Fundamentals nomadcoders.co 강의를 수강하는 도중에 문제가 발생했다. Props가 우리가 예상한 Props인지 확인하는 방법이었고, npm 명령어를 통해 prop-types 모듈(라이브러리라고 해야할까? 지적 해주시면 수정하도록 하겠다)을 다운받고, 해당 컴포넌트에 {컴포넌트명}.PropTypes function을 추가함으로써, 유효성 검사를 할 수 있는데 중요한건 아직 내용을 하나도 넣지 않았는데도 오류로그가 출력됐다(니콜라스 쌤은 잘 돼더라 ...). 바로 아래와 같은 오류 로그였다. npm install을 하고 서..
이 글은 생활코딩 OAuth2.0 강의를 들으면서 내용을 정리한 내용입니다. 1. 역할 OAuth의 역할은 무엇일까? OAuth의 얘기를 할 때, 등장하는 3가지의 주체가 있다. 그 세 가지 주체는 Mine(우리가 만든 서비스), User(사용자), Their(유저는 Their라는 서비스에 회원 가입이 되어있는 상태, 여기서는 대표적인 서비스로 페이스북, 구글, 네이버, 카카오가 있다.) 이고, 이는 OAuth에서는 (언급된 순서대로) Client, Resource Owner, Resource Server 라고 부른다. 이 세 가지가 OAuth의 핵심이다. OAuth의 공식 메뉴얼에서는 Authorization Server라는 것도 존재하는데, 엄밀하게 따지면, 인증과 관련된 처리를 전담하는 서버이고 R..
equals를 재정의한 클래스 모두에서 hashCode도 재정의해야 한다. 그렇지 않으면 hashCode 일반 규약을 어기게 되어 해당 클래스의 인스턴스를 HashMap이나 HashSet 같은 컬렉션의 원소로 사용할 때 문제를 일으킬 것이다. 아래는 Object 명세서에서 발췌한 것이다. equals 비교에 사용되는 정보가 변경되지 않는다면, 애플리케이션이 실행되는 동안 그 객체의 hashCode 메서드는 몇 번을 호출해도 일관되게 항상 같은 값을 반환해야 한다. 단, 애플리케이션을 다시 실행한다면 이 값이 달라져도 상관없다. equals(Object)가 두 객체를 같다고 판단했다면, 두 객체의 hashCode는 똑같은 값을 반환해야 한다. equals(Object)가 두 객체를 다르다고 판단했더라도, ..
equals 메서드는 재정의하기 쉬워 보이지만 곳곳에 함정이 도사리고 있다. 문제를 회피하는 가장 쉬운 방법은 아예 재정의하지 않는 것이다. 그냐 두면 그 클래스의 인스턴스는 오직 자기 자신과만 같게 된다. 그러니 아래와 같은 상황 중 하나에 해당한다면 재정의하지 않는 것이 최선이다. 각 인스턴스가 본질적으로 고유하다. 값을 표현하는 게 아니라 동작하는 개체를 표현하는 클래스가 여기 해당한다. Thread가 좋은 예로, Object의 equals 메서드는 이러한 클래스에 딱 맞게 구현되었다. 인스턴스의 '논리적 동치성(logical equlity)'을 검사할 일이 없다. 예컨대 java.util.regex.Pattern은 equals를 재정의해서 두 Pattern의 인스턴스가 같은 정규표현식을 나타내는지..
6월의 서평 도서는 '엔터프라이즈 자바 마이크로서비스'이다. 이전에 길벗 출판사의 '마이크로서비스 패턴' 책을 서평하면서 마이크로서비스를 처음 접하게 되었다. 사실 내용이 신입개발자인 나에게는 쉽지 않았다고 생각한다. 마이크로서비스 패턴이 아무래도 모놀리식을 여러 마이크로서비스로 쪼개는 것 자체가 신입 개발자 입장에서는 생소하고 접해보지 못한 영역이다 보니 그렇겠지...? 라고 스스로를 위로해본다. 아무튼 이번 책은 저번과는 조금 더 쉽게 이해할 수 있기를 바라면서... 또한 책 제목에도 적혀있듯이, 자바 개발자를 겨냥한 책이다. 자바 개발자로 훌륭하게 성장하고 싶다면, 언젠가는 접해야할 내용일 것이다. (언젠가 DDD를 공부할 나를 위한 선행학습이라고 생각하자!! 참고로 DDD는 '도메인 주도 설계'라..