분류 전체보기692 [JPA] Soft Delete 자동 처리하기 이번 프로젝트를 진행하면서 1급 컬랙션을 통한 Soft Delete를 처리하면서 기록을 남겨본다! 1. Soft Delete 란? 우선 데이터를 삭제하는 방식에는 hard delete, soft delete 2가지 있습니다. hard delete는 delete 쿼리를 날려서 데이터베이스에서 실제로 삭제하는 방식이고, soft delete는 실제로 데이터베이스에서 데이터를 삭제하는 것이 아니라, 테이블에 deleted와 같은 필드를 추가해주고, update 쿼리를 통해서 deleted 값을 변경해주는 방식입니다. soft delete를 한 경우, 조회시 sofe delete 처리된 값이 함께 반환되면 안되기 때문에 "where deleted = false"같은 조건을 추가하여 sofe delete되지 않은.. BackEnd/JPA 2022. 11. 9. [서평] Redis 운영 관리 저의 돈으로 직접 사서 직접 완독해 본 후 써보는 후기입니다. 따라서 장점은 장점대로 칭찬할 것이며, 단점은 단점대로 언급할 것입니다. https://www.hanbit.co.kr/store/books/look.php?p_code=E4889537505 Redis 운영 관리 : Redis를 실무에 사용하기 전에 꼭 알아야 하는 실전 전략 Redis를 사용하는 이유는 다양하다. Redis의 빠른 성능뿐만 아니라 트위터, 인스타그램, 텀블러 등의 큰 기업에서 사용할 정도로 안정성이 검증되었다는 게 가장 큰 이유일 것이다. 하지만 좋은 약 www.hanbit.co.kr 2022/10/30 ~ 2022/11/06 (책의 대부분의 내용이 영한님의 인프런 강의에서 배웠던 내용이라, 복습이다 생각하면서 빠르게 읽고 이.. Life/Book Record 2022. 11. 8. [TIL] 일일 회고 2022/11/03 최근 회고할점들을 모아서 작성해볼까 한다. 요즘 한 일 1. 코드스쿼드 코코아 멘토 시작 최근 자부심을 가지고 코코아 Java 프리코스의 멘토를 담당하게 되었다. Java가 가장 자신있기도 하고, 어느덧 객체지향과 가까운 사이가 되어 멤버들에게 나의 지식을 전달할 수 있어 너무 좋았다. 물론 아직도 부족한 부분이 많은 나 인것을 알지만... 그래도 Java 기본 문법 공부정도는 충분하게 도와줄 수 있을것 같다! 내가 담당하는 멤버분들 모두 성공하길 기원하며, 아직 저도 부족하지만 조금이나마 도움이 될 수 있길!!! 2. 고급 프로그래머들은 인성 문제있어? 최근에 코쿼 Slack에서 브라이언께서 좋은 글을 올려주셨다. https://sunyzero.tistory.com/281 고급 프로그래머들은 인성 문제.. Life/회고록 2022. 11. 3. [백준][C++] 2632번: 피자판매 (256) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. 2632번: 피자판매 첫 번째 줄에는 손님이 구매하고자 하는 피자크기를 나타내는 2,000,000 이하의 자연수가 주어진다. 두 번째 줄에는 A, B 피자의 피자조각의 개수를 나타내 는 정수 m, n 이 차례로 주어진다 (3 ≤ m, n www.acmicpc.net 1. 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 연속된 부분합의 수를 잘 구해야 하는 문제이다. 우선 input 범위가 1000 까지라고 명시되어있으니, 그냥 O(n^2) 방식으로 2중 for문 돌면서 구하는 방식으로 합을 구하면 된다. (ps O(n^2) 알고리즘은 input이 1만까지 안정권 이라 알고.. Algorithm/백준 2022. 11. 2. [Spring Security] 웹 기반 인가처리 과정 본 글은 Spring Security docs 와 여러 블로그 들을 참고하고, 공부하면서 요약하였습니다. 1. 인가처리 - 주요 아키텍처 이해 1 - 1) Spring Security의 인가처리 예를 들어 다음과 같이 권한 설정을 했다고 해보자! http.antmatchers("/user").access("hasRole('USER')") 사용자(인증정보)가 "/user"자원(요청정보)에 접근하기 위해서는 "ROLE_USER" 권한(권한정보)이 필요한 상황이다. 이제 사용자 요청이 들어왔을때 어던 방식으로 초기화 되는지 알아보자! 1) 인증정보(Authentication)는 SecurityContext에서 얻습니다. 2) 사용자 요청정보로부터 FilterInvocation클래스를 생성해서 request 정.. BackEnd/Spring Security 2022. 11. 1. [TIL] 일일 회고 2022/10/26 요즘 회고록을 한동안 작성하지 못한 것에 대하여 큰 아쉬움을 느낀다. 어느 순간부터 까먹고 안쓰기 시작한 것 같다. 오늘부터 다시 작성해봐야겠다. 요즘 한 일 1. 사이드 프로젝트 시작 최근 사이드 프로젝트를 만들기 위해 사람들이 모이는 사이트를 통하여 팀원을 구했다. 위치 기반의 술집을 알려주는 서비스를 기획으로 초기 구현을 진행 중이다. 팀원 모두 의욕이 넘치고, 생각을 서로 잘 공유하며, 좋은 피드백을 주고받을 수 있어서 좋다! 팀원 모두 좋은 결과물을 만들기 위해 노력하고 있는 중이다! 팀원은 총 6명으로, 백엔드 3분, 프런트 2분, 디자이너 1분으로 구성되었다! 마감일을 1차 데드라인으로 잡고, 우선 최소한의 기능이 동작하도록 하는 것이 목표이며, 이후에도 팀원 들고 함께 만들어 나갈 예정이다.. Life/회고록 2022. 10. 26. [DB] 인덱싱 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 예를 들어 학생 번호가 "22201"에 해당하는 tuple을 찾기 위해 전체 student 릴레이션을 조사하는 것은 비효율적이다. 이상적인 방법은 시스템이 직접 이 레코드를 찾는 것이다. 이런 형태의 접근을 제공하기 위해 파일과 관련된 부가적인 구조를 설계한다. 1. 기본 개념 데이터베이스 시스템의 인덱스는 도서관에서 사용되는 책의 인덱스와 똑같은 역할을 한다. 예를 들어 주어진 ID를 가진 student 레코드를 검색하기 위해 데이터베이스 시스템은 Index를 이용해 대응되는 레코드가 어느 디스크 블록에 있는지 찾은 후에, student 레코드를 얻기 위해 해당 block을 가져온다. 학생 ID를 정렬된 순서로 유지하여 student 릴.. CS/DB (2022-1) 2022. 10. 21. [DB] 데이터 저장 장치 구조 데이터베이스 시스템 7판을 읽으며 간략하게나마 정리하는 글입니다. 이전 글 에서는 자기 디스크와 SSD를 중심으로 물리적 저장 장치의 특성을 살펴보고, RAID에 대하여 살펴보았다. 이번에는 기반 저장 장치 매체에 저장되는 데이터의 구성과 그 데이터에 어떻게 접근하는지에 관해 설명한다. 1. 데이터베이스 저장 장치 구조 자기 디스크와 SSD는 block 구조를 이용하는 저장 장치이다. 즉 데이터를 블록 단위로 읽거나 쓴다. 이에 반해 데이터베이스는 일반적으로 블록보다 훨씬 작은 크기인 레코드를 처리한다. 대부분의 데이터베이스는 레코드를 저장하기 위한 중간 계층으로 OS 파일을 사용하여 하부 블록의 세부 정보를 추상화 한다. 그러나 효율적인 접근과 데이터의 복구를 위해 가능하면 블록 구조를 계속 사용해야 .. CS/DB (2022-1) 2022. 10. 18. [백준][C++/Python] 2156번: 포도주 시식 (255) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 dp[i]에 대한 정의부터하고 시작해야겠다 생각했다. 우리의 dp[i]는 i번째 포도주 까지 마셨을때의 최대값 을 나타낸다. 그럼 연속된 3개가 오지 않으면서 i번 째 최대로 마시려면 어떠한 경우들이 있을까? 총 .. Algorithm/백준 2022. 10. 14. [Kubernetes] 쿠버네티스 핵심 개념 이번 글에서는 minikube를 사용하고, kubectl을 설치하여 우리의 Cluster에 명령을 전달할 것이다. ▶ Minikube Minikube는 로컬 머신에 VM을 만들고 하나의 노드로 구성된 간단한 Cluster를 배포하는 간단한 쿠버네티스 구현체이다. 연습용으로 사용하기 적당하다고 한다. ▶ Kubectl Kubectl은 우리의 Cluster의 Master 노드로 명령을 보내는 도구이다. Master 노드로 명령을 보내면 그 산하의 Worker노드들이 기능을 수행하게 될 것이다. 이에 대한 설치 글은 다음 글을 참고해보자! macOs m1 환경에서 Kubernetes 시작하기(feat. Docker) - kubernetes 개발환경과 운영환경의 구축 방식이 다름을 이해할 수 있다. - mac.. DevOps/Kubernetes 2022. 10. 13. [Kubernetes] 쿠버네티스 기초 AWS를 통해 컨테이너를 배포하기 위해 ECS를 사용했었는데, 이러한 방식은 좋기는 하지만 다른 벤더(ex Azure, GCP)에서는 동일한 방식으로 사용할 수가 없습니다. 이는 특정 벤더에 종속되는 방식으로 사용해야 하기 때문입니다~! 물론 계속 AWS만 사용하면서 ECS에 적응한다면, 그것만으로도 좋은 방식이기는 합니다. 다만, Kubernetes를 사용하게 된다면 이러한 문제를 해결할 수 있게 됩니다. 1. Kubernetes 란? 우선 공식 홈페이지에는 다음과 같이 설명되어 있습니다. open-source system for automating deployment, scaling, and management of containerized applications. Kubernetes로 배포하는 방식.. DevOps/Kubernetes 2022. 10. 12. [백준][C++/Python] 2225번: 합분해 (254) 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/2225 2225번: 합분해 첫째 줄에 답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 솔직하게 이거 나는 DP인거 생각 못했다. 그냥 BFS로 완전탐색 해야 하나? 이런 생각부터 들었던것이 사실이다. 해결방법이 딱 떠오르지 않아 다른 분들의 글을 좀 읽어본 후에서 야 DP임을 깨닫고 풀이방법을 읽어보게 되었다. 우선 DP배열을 정의해야 한다. DP[a][b] 는 숫자 a개로 합이 b가 되는 경우 를 의미한다. DP[3][.. Algorithm/백준 2022. 10. 12. 이전 1 ··· 7 8 9 10 11 12 13 ··· 58 다음