airbnb 피드백
이번 미션은 airbnb로 기본적인 구현과 oauth 구현을 했다.
미션의 리뷰는 dion께서 해주셨다.
이 부분은 대체하겠다. bat의 답변으로.
가변 3바이트는 이모지를 저장하지 못하기에 mb4가 등장했다. 가변 4바이트까지 가능함으로 이모지 저장이 가능하다.
생각해보니 여기서 설정을 utf8로 하고 스키마에서 다시 utf8 mb 4로 하는 멍청한 짓을 하고 있었다.
https://www.lesstif.com/dbms/mysql-rhel-centos-ubuntu-20775198.html
MySQL 기본 캐릭터 셋 설정하기 - RHEL/CentOS/Ubuntu
utf8mb4 캐릭터 셋은 오직 MySQL 에만 해당되는 문제이고 다른 DBMS 는 아예 utf8mb4 라는 캐릭터 셋이 없으며 보통 인코딩을 UTF-8 로 설정하면 된다.
www.lesstif.com
처음에 Repository를 쓰지 않은 이유는 위와 같다. 퍼시스턴트 계층은 Repository를 쓰라고 한다.
Repository와 DAO 차이?
서론 Spring MVC를 사용할 때는 DAO를 데이터베이스를 연결하는 객체로 생각하고 여기에 SQL문을 다 넣었었다. JPA를 배우고 난 뒤에 JpaRepository를 구현하면서 DAO는 자연스럽게 Repository로 생각하고 넘
bbbicb.tistory.com
위에서 아래로 결합이 강해짐으로 도메인에 인프라스트럭쳐가 같이 들어가 있는 경우가 많다.
https://velog.io/@ljinsk3/%EB%A0%88%EC%9D%B4%EC%96%B4-%EC%95%84%ED%82%A4%ED%85%8D%EC%B2%98
레이어 아키텍처
정의 핵심 설계 목표 중 하나는 관심사의 분리(Separation of Concerns)이다. 레이어 아키텍처를 통해 관심사를 분리할 수 있다. 또한, 단위테스트가 단순해지고, 다음 레이어에 대한 의존성을 모킹하
velog.io
하나의 클래스로 처리하고자 했다. 근데 이렇게 되면 무조건 해당 컨버터를 통과해야 하고 그럼 변경의 닫혀있다고 생각을 바꿨다.
의도했던 바는 enum 초기화 시에 property에 접근해 id와 secret을 얻는 것이었다.
계속해서 enum으로 id와 secret을 얻을 수 있기에 좋다고 생각을 했다.
하지만 클래스 레벨에서 읽는 것이 위험할 수도 있다는 피드백이다.
다른 해결방법을 생각해 본다면 converter에서 bean을 반환할 수 있을까? 음 좀 더 생각을 해봐야 하는 부분인 거 같다.
라이브러리로 만든 oauth에 관한 부분이다. 기본 클래스로 정의되어 있는데,
사실 accessToken을 받아오는 부분을 제외하고 오버 라이딩을 진행했다.
그래서 변경하게 된다면 추상 클래스나 인터페이스로 변경 예정이다.
자주 받는 피드백인데 if문을 항상 잘 활용하자.
limit나 where 절을 해줘야지 검색 결과가 몇 개가 나올 줄 모르기에 조건을 달아야 한다.
다른 분들의 피드백이다.
search를 굳이 uri에 명시하지 말고 쿼리 스트링과 method로 충분히 말하고 있다는 것이다.
메서드명으로 내부구조를 노출시키면 안 된다는 말.
object에서도 본 것 같다.
스레드 세이프란? 여러 스레드가 접근을 할 때도 프로그램에 문제가 없냐는 것.