전체 글42 데이터베이스 이상 현상의 원인, 속성 간 종속 데이터베이스 이상현상은 트랜잭션 처리하는 중발생하는 문제로 속성 간 종속이나 데이터의 중복으로 발생한다.도대체,여기서 말하는 속성간 종속이 무엇일까?예시와 함께 알아가보자 🤓속성간 종속데이터베이스 테이블에서 하나의 속성(컬럼)의 값이 다른 속성(컬럼)의 값에 따라 결정되는 관계를 의미한다.쉽게 말해, 하나의 속성이 다른 속성에 의존적인 상태이다. 예시개발자 직군으로 예시를 들어보자.개발자 ID개발자 이름부서 ID부서 이름1박모씨10결제팀2김모씨11회원팀3이모씨10결제팀 위 테이블에서 부서이름은 부서ID에 종속적이다. 즉, 부서ID가 결정되면 자동으로 부서이름이 결정된다.예시로, 부서ID가 10이면 부서이름은 항상 결제팀이여야 한다. 이와 같은 관계를 속성 간 종속이라 한다. 문제점속성 간 종속성이 있으.. 2024. 9. 25. Objects.equals() vs equals() 두 메서드에 어떤 차이가 존재하는지알아보도록 하겠습니다. Equals()equals() 메서드의 설명과 내부 로직은 다음과 같습니다. 설명Compares this string to the specified object. The result is true if and only if the argument is not null and is a String object that represents the same sequence of characters as this object.해석은 다음과 같습니다.이 문자열을 지정된 개체와 비교합니다. 결과는 인수가 null이 아니며 이 개체와 동일한 문자 시퀀스를 나타내는 문자열 개체인 경우에만 참입니다. 내부 로직 🔎 equals()메소드를 비교하는 대상이 nu.. 2024. 9. 25. Object.equals() 메서드가 정말 null-safe한가? 오늘의 실험체는 Ojbect.equals() 메서드 입니다.실험 주제는 Object.equals() 메서드가 정말 null-safe한가?입니다.실험 시작합니다.🧐 실험 코드코드는 다음과 같습니다.package equals실험;import java.util.Objects;public class equalsMain { public static void main(String[] args) { String a = null; String b = null; boolean result = Objects.equals(a,b); System.out.println(result); }} 실행 결과코드를 실행한 결과는 다음과 같습니다. 결론Object.equal.. 2024. 9. 25. equals()메소드를 비교하는 대상이 null인 경우 오늘의 실험체는 equals() 메서드 입니다.실험 주제는 equals()메서드에게 null은 안전한가? 입니다.바로 실험 시작하겠습니다. 🧐 실험 코드코드는 다음과 같습니다.String a = null;String b = "hello";boolean result = a.equals(b); 실행 결과코드를 실행한 결과는 다음과 같습니다. "a가 null이기 때문에 String.equals(Object) 메서드를 호출할 수 없다"라고 오류는 말하고 있습니다. 🔎 왜 NullPointerException 예외가 발생할까?equals()라는 메서드는 Java에서 Object라는 클래스에 정의된 static 메서드이다.null인 상태에서 equals()메서드를 호출하려고 하니, 예외가 발생하게 된다. 결론.. 2024. 9. 25. 🌊 우테코 프로젝트 흡수하기 version 1 [프로젝트명 - 달록] 우아한테크코스 프로젝트 코드 흡수하기 편입니다.이번편은 "달록" 프로젝트입니다.주로 코드를 분석하고 왜 사용하는지에 대해 적어보려고 합니다.Backend만 다루려고 합니다. 출처https://github.com/woowacourse-teams/2022-dallog GitHub - woowacourse-teams/2022-dallog: 달력이 기록을 공유할 때, 달록 🌙달력이 기록을 공유할 때, 달록 🌙. Contribute to woowacourse-teams/2022-dallog development by creating an account on GitHub.github.com 🔎 어떤 프로젝트일까?1차 데모데이https://www.youtube.com/watch?v=CpEPET2jXO4&list.. 2024. 9. 24. 🙆🏻♂️ 너, Fetch Join 만능이야? N+1 문제를 해결하기 위한 방법 Fetch Join사용하는 것이 무조건 정답일까? 결론부터 이야기해보자!Fetch Join도 한계점을 가진다.📍 Fetch Join의 한계점🚫 페치 조인을 사용하면 별칭을 줄 수 없다.🚫 컬렉션이 두개 이상인 경우 사용할 수 없다.🚫 컬렉션 페치 조인시 페이징을 사용할 수 없다. 🔎 왜 페치 조인을 사용하면 별칭을 줄 수 없을까?String query = "select u from User u join fetch u.team t where t.name = 'A'; 이러한 쿼리문과 같이 별칭을 사용해서 조건을 추가하게 되는 경우, 기존 페치 조인으로 가져올 데이터의 일부가 누락될 수 있다. 🙆🏻♂️ 좀 더 디테일한 상황 예시(비교) 개발자 A씨는 유저의.. 2024. 9. 24. 🙆🏻♂️ 너, Fetch Join 좀 알고 싶다? Fetch Join이랑 친해지는 시간을 갖도록 하겠습니다. fetch Join은 실무에서 엄청 중요하다. - 김영한님 - 🔎 Fetch Join이 뭘까?1. JPQL에서 성능 최적화를 위해 제공하는 기능2. 연관된 엔티티 및 컬렉션을 한번의 쿼리로 조회하는 기능 🔎 위에 나온 두 기능이 뭔데?우선, 연관된 엔티티 및 컬렉션을 한번의 쿼리로 조회 하는 기능을 먼저 알아보겠습니다. 현재, 회원 엔티티와 팀 엔티티가 팀을 기준으로 1:N 관계를 맺고 있습니다.1:N 관계는 한개의 팀에 여러명의 회원이 오는 관계입니다. 코드는 다음과 같습니다. 회원 엔티티package com.example.spring_jpa_basic.페치조인;impo.. 2024. 9. 22. 🙆🏻♂️ DP 너, 정복당해라 [백준 2240번 - 자두나무 편] 알고리즘 정복 시리즈를 시작합니다! 문제자두는 자두를 좋아한다. 그래서 집에 자두나무를 심어두고, 여기서 열리는 자두를 먹고는 한다. 하지만 자두는 키가 작아서 자두를 따먹지는 못하고, 자두가 떨어질 때까지 기다린 다음에 떨어지는 자두를 받아서 먹고는 한다. 자두를 잡을 때에는 자두가 허공에 있을 때 잡아야 하는데, 이는 자두가 말랑말랑하여 바닥에 떨어지면 못 먹을 정도로 뭉개지기 때문이다. 매 초마다, 두 개의 나무 중 하나의 나무에서 열매가 떨어지게 된다. 만약 열매가 떨어지는 순간, 자두가 그 나무의 아래에 서 있으면 자두는 그 열매를 받아먹을 수 있다. 두 개의 나무는 그다지 멀리 떨어져 있지 않기 때문에, 자두는 하나의 나무 아래에 서 있다가 다른 나무 아래로 빠르게(1초보다 훨씬 짧은 시간에).. 2024. 9. 12. nGrinder로 로컬환경 서버에 부하 테스트하기(feat. 회원가입 api) 🔎 신규 회원 가입 이벤트를 선정한 이유신규 회원 가입 이벤트를 실행하는 것은 대부분의 핀테크 회사에서 하는 이벤트이기 때문에 신규 회원 가입 이벤트로 선정하게 되었다. 🔎 기대하는 목표이 이벤트로 인해 발생하는 트래픽 문제를 처리해보고, 좀 더 효율적인 방법을 찾아보고 싶다.또한 트래픽을 처리하는 과정을 글로 작성함으로써, 개발 직군의 모든 분들에게 유의미한 정보를 제공하고 싶다. 그럼 출발해보자!! 🔎 nGrinder로 부하 테스트 해보기nGrinder로 로컬환경에서 요청이 잘 가는지 테스트 해보려고 한다. 회원가입을 하는 API를 테스트 하고자 한다. 참고로 로컬 환경에서 테스트 하기 위해선, URL 입력란에 localhost가 아닌 127.0.0.1을 입력해 주어야 Invalid I.. 2024. 9. 11. 이전 1 2 3 4 5 다음