전체 글

· 개발
운이 좋게 조영호님 도메인 주도 설계의 사실과 오해 강의를 들을 수 있었습니다.DDD의 철학이 담긴 에릭 에반스의 도메인 주도 설계 책에 내용을 설명해주셨고 이에 대해서 요약한 글입니다. DDD는 복잡한 도메인 문제를 소프트웨어로 해결하기 위한 사고 방식이자 우선 순위등의 패턴이다.특정한 기술과는 무관한 사고 방식이다.1️⃣ 동작하는 도메인 모델 만들기도메인 정의사용자가 프로그램을 사용하는 주제 영역을 의미한다.사용자가 음식을 배달시키는 플로우메뉴를 선택한다. (사용자)특정 가게에서 음식을 주문한다. (사용자)조리 (식당)배달 (기사님)결제 (사용자)식사 (사용자)모델도메인 대상의 단순화로 당면한 문제를 해결하는 것과 관련된 측면을 추상화하고 중요하지 않은 세부사항은 생략한다.위에 플로우에서 배달 도메인..
회원탈퇴 로직을 작성하면서회원을 삭제하려면 UserService에서 많은 Entity들을 삭제해야 하는 문제가 있었다.도메인을 분리하지 않았던 문제가 가장 크다.댓글과 좋아요는 여행일정 게시물 테이블과 사용자를 참조하고 있다.여행일정 게시물과 토큰은 사용자를 참조하고 있었다. FK 제약조건의 문제점데이터 무결성을 위해서 사용하면 좋지만 회원탈퇴를 하면서 문제가 있었다. 사용자를 제거하기 위해서는 아래와 같은 순서를 지켜줘야 한다. 1. 여행 일정 게시물을 삭제하기 전에 댓글과 좋아요를 제거해야 한다.목적은 여행일정이 아니라 사용자를 제거하기 위함이다.사용자가 작성한 게시물과 게시물과 연관된 다른 사용자의 좋아요 댓글 + 사용자가 작성한 댓글 좋아요도 전부 삭제해야 한다.  2. 사용자를 삭제하기 전에 여..
· Java
이펙티브 자바 Item 20을 읽으면서... "default 메서드에 equals와 hashCode, toString처럼 Object의 메서드를 재정의하지 말라"라는 문구가 있었습니다. 🤔 코드를 작성해보니..? 컴파일 에러가 발생한다..? 어라라..? 옛날에는 이게 가능했나보네 싶었고 왜 이제 컴파일 에러가 발생하는 걸까? 라는 궁금증이 생겼습니다. 혹은 똑똑한 intellij가 😎 만약 클래스 B는 의도적으로 Object 클래스를 구현하는 A 인터페이스를 구현할 수 있다면?? B는 Object 클래스와 Interface 중에서 어떤 equals를 사용해야 할까요..? (충돌이 일어날거 같다?) 찾아보니 이런 규칙이 있었다! 클래스는 항상 승리한다! 뭔가 멋있네요.. 명언같기도 하고 즉, 우선순위가 하..
· DB
Database에서 index의 종류는 다양하지만 크게 Clustered Index와 Non-Clustered Index로 나뉜다.Cluster 사전적 의미군집화, 집속체, 무리, 밀접해있는 다수의 무언가를 총칭한다.Clustered Index: 실제 데이터와 같은 무리의 인덱스Non-Clustered Index == (Secondary Index,보조인덱스): 실제 데이터와 다른 무리의 별도의 인덱스 😲 우리도 모르게 인덱스가 생겼었다???Table을 생성할 때 PK는 Clustered Index가 Unique 정보를 통해서는 Non-Clustered Index가 생성되게 됩니다.PK가 없는 경우 MySQL의 InnoDB는 기본적으로 데이터를 저장하고 Indexing하기 위해 Primary Key가..
· DB
🤔 인덱스(Index)란? 인덱스란 추가적인 쓰기 작업과 저장 공간을 활용하여 데이터베이스 테이블의 검색 속도를 향상시키기 위한 자료구조이다. 실생활 속에서 우리는 책에서 원하는 내용을 찾기 위해서 책의 처음부터 끝가지 원하는 내용을 찾지 않는다. 목차나 인덱스에서 원하는 내용을 먼저 찾은 뒤 해당 내용이 있는 페이지를 찾아간다. DB는? 데이터베이스에서도 우리와 같이 시간을 알뜰하게 쓰기 위해서 데이터와 데이터의 위치를 포함한 자료구조를 생성해서 빠르게 조회할 수 있도록 인덱스를 사용한다. DB에서 데이터 조회 요청 DB에서 데이터 조회 요청을 하면, DB 서버 프로세스는 메모리(DB 버퍼 캐시)를 먼저 확인한다. 메모리에는 자주 사용되는 테이블이 캐싱되어 있는데, 메모리에 원하는 데이터가 없는 경..
uhanuu
몸뚱아리부터 마음가짐까지