저장소 개념 Table Row_id Page IO Heap data structure Index data structure b-tree Table EMPLOYEE_ID (Row_id) 특정 행을 고유하게 식별 Postgres : 튜플 ID Page Storage Model(row vs column store)에 따라 행은 논리적 페이지에 저장되고 읽혀진다. 데이터베이스는 단일 행을 읽는 것이 아니라, 단일 IO에서 한 페이지 이상을 읽으며, 해당 IO에서 많은 행을 얻는다. 우리 눈에는 두개의 행만 골라서 읽어온 것처럼 보이지만, 페이지 단위로 저장되어 있는 전체 영역을 스캔하며 필요한 행을 가지고 온 것. Page Size는 DB마다 다르다. (e.g. 8KB in postgres, 16KB in My..
분류 전체보기
문제점이 있었던 코드 댓글을 저장하는 로직 @Transactional public void create(CommentCreateRequestDto requestDto, User user) { Long postId = requestDto.getPostId(); Post post = findPostByPostId(postId); Comment child = requestDto.toEntity(user, post); requestDto.getCommentIdOptional().ifPresent(commentId -> linkParent(commentId, child)); commentRepository.save(child); post.increaseCommentCount(); } 게시글과 댓글의 관계에서 1개..
이기종 마이그레이션을 진행할 일이 생겼다. 여러 방법을 찾아봤는데, FlyWay https://flywaydb.org/ Homepage - Flyway Version control for your database. Robust schema evolution across all your environments. With ease, pleasure, and plain SQL. flywaydb.org 장점으로는 내가 좋아하는 Spring Boot에서 쓸 수 있다. 하지만 운영 소스 코드를 건드려야 하는데 그건 못하기 때문에 탈락 Flyway Desktop이라고 이관을 해주는 툴이 있는데 결국은 변환된 Script가 필요하다. DDL만 수행해주는 것이기 때문에 탈락 직접 해봤고, 테이블 이관은 해주는데 데이터 ..
문제 발생 Execution failed for task ':test'. > Could not resolve all files for configuration ':testRuntimeClasspath'. > Could not find com.mysql:mysql-connector-j:. Required by: project : Gradle에 // mysql runtimeOnly 'com.mysql:mysql-connector-j' 이 코드 추가하고, 클린 빌드 수행 했을 때 저런 문제가 발생했습니다. 원인 https://nayha.tistory.com/740 인텔리제이 could not find mysql:mysql-connector-java gradle could not find mysql:mysql-..
함수 추출하기(Extract Function) "의도"와 "구현" 분리하기 무슨 일을 하는 코드인지 알아내려고 노력해야 하는 코드라면 해당 코드를 함수로 분리하고 함수 이름으로 "무슨 일을 하는지" 표현할 수 있다. 한줄 짜리 메소드(이름)도 괜찮다. 거대한 함수 안에 들어있는 주석은 추출한 함수를 찾는데 있어 좋은 단서가 될 수 있다. https://github.com/beginner0107/spring-react-blog GitHub - beginner0107/spring-react-blog: 나만의 블로그 프로젝트 나만의 블로그 프로젝트. Contribute to beginner0107/spring-react-blog development by creating an account on GitHub...
문제점 이렇게 채워넣고 Create를 한 후 Validation을 클릭했는데 자꾸 401 code를 리턴받았다. 원인 위의 그림의 설정 값에 domain과 path는 입력을 안 해주고 있었는데.! Postman에서는 자동으로 설정이 되어서, 사실 name과 value값만 넣어서 동작시키면 될 줄 알았다. ㅠ 해결 Postman에 설정되어 있는 Domain, Path 값들을 입력해주니 200코드를 반환 받을 수 있었다.!! 2024-02-17 23:05:13,495 INFO http://127.0.0.1:8084/api/v1/post -> 200 , 1759 bytes 제대로 쿠키 값이 입력 되었다면, 이렇게 beforeProcess() 안에 accessToken, refreshToken(그 외 등등 쿠키..