분류 전체보기132 왜? 이미지가 찾아지지 않는 걸까?? - 로컬환경에서 외부 경로를 이용 도토링 프로젝트의 프로필 이미지 수정 기능을 개발하다가 아래와 같은 문제상황을 만나 의미있는 문제 상황이어서 포스팅하려 합니다. 문제 상황현재 상황은 아래와 같습니다. resources/static/files 안에 default_profile~~ 이미지가 저장되어 있습니다. 빌드후 애플리케이션을 실행한 후 해당 이미지가 저장된 경로로 조회하면, 위와 같이 이미지가 잘 조회되는 것을 확인할 수 있습니다. 하지만, 아래와 같이 새로운 이미지를 아까와 동일한 경로에 업로드하면 해당 이미지는 조회가 되지 않습니다. 아래와 같이 이미지는 잘 저장이 된 상태입니다. 그렇다면, 실행 중인 애플리케이션을 빌드 -> 실행한 후 조회를 해보면 어떨까? 놀랍게도 조회가 잘 되는 것을 확인할 수 있습니다. 문제 분석.. 2023. 8. 21. IntelliJ의 Run 버튼의 의미 - Build(빌드)와 Compile(컴파일) 빌드와 컴파일 많이 들어서 익숙한 단어들이지만 정확히 어떤 뜻인지는 잘 알지 못 했다. 이번 기회를 통해서 두 단어의 차이에 대해서 알아보려고 한다!! 컴파일 컴파일의 정의는 개발자가 작성한 소스코드를 바이너리 코드로 변환해주는 것이다. 하지만, JAVA에서는 컴파일러에의해 소스파일(.java)가 목적파일(.class)로 변환될 때 가상머신(JVM)이 인식할 수 있는 바이트 코드로 변환된다! 💡 바이너리 코드란? CPU가 이해할 수 있는 언어이다.(0과 1로 구성된 이진코드) 바이트 코드란? 가상머신이 이해할 수 있는 언어이다.(0과 1로 구성된 이진 코드) 링크 컴파일이 각 소스파일(.java)들을 목적파일(.class)로 변환해주는 것이라면, 링크는 이들을 연결해주는 것이다. 개발을 할 때 다른 소스.. 2023. 8. 20. Fetch Join을 여러번 했더니 MultipleBagFetchException이??? 필자는 N+1 문제를 해결하기 위해 보통은 Fetch Join을 애용하고 있었다. 도토링 프로젝트를 개발하며, 여느때와 같이 Fetch Join을 여러번 사용했는 데 아래와 같은 에러를 마주했다. org.hibernate.loader.MultipleBagFetchException: cannot simultaneously fetch multiple bags: [com.theZ.dotoring.app.mento.model.Mento.memberMajors, com.theZ.dotoring.app.mento.model.Mento.desiredFields] MultipleBagFetchException이 뭘까?? 이는 이름에서도 유추할 수 있듯이 Fetch Join을 여러번 사용하면 발생할 수 있는 에러이다. .. 2023. 8. 16. 단방향 @OneToMany를 지양해야 하는 이유 공부를 하다보면 단방향 OneToMany를 지양하라고 합니다. 이번 포스팅에서는 단방향 OneToMany를 왜 지양해야하는 지 직접 사용해보고 원인을 알아보려고 합니다. 아래는 테스트 요구사항입니다.회원이 여러 책을 가질 수 있다회원(Member)이 여러 개의 책(Book)을 가질 수 있는 관계를 모델링할 때, 이는 1:N(One-to-Many) 관계가 됩니다. JPA에서 1:N 관계를 구현하는 방법으로는 @ManyToOne과 @OneToMany를 사용할 수 있으며, 각각의 방식이 데이터베이스 테이블과 객체 모델 간의 매핑 방식에 영향을 미칩니다. 먼저 권장하는 방식인 @ManyToOne을 이용해 단방향 매핑을 해보겠습니다. @ManyToOne을 활용한 단방향 매핑 @Entity@NoArgsConstru.. 2023. 8. 15. 데이터 무결성 지켜야지, 안 지킬거야?? 데이터 무결성 데이터의 무결성이란 무엇일까?? 필자가 이해한 바로는 데이터 무결성이란 업무적 무결성 + 데이터베이스에서의 무결성이다. 업무적 무결성이란 애플리케이션 로직 안에서 포함되는 어떠한 제약조건이다. DBMS에서의 무결성이란 데이터베이스에 타입, 관계, 속성등을 정의하여 트랜잭션을 유지시켜주는 최소한의 장치이다. 이번 포스팅에서는 DBMS에서의 무결성에대해서 다뤄보도록 하겠다. 만약, DB에서 데이터 무결성을 설계하지 않을 경우에는 어떠한 일들이 일어날까?? PK를 사용하지 않을 경우 → 테이블에 중복된 데이터 존재 FK를 사용하지 않을 경우 → 부모와 자식 데이터의 논리적인 관계가 깨질 수 있다. 컬럼 제약 조건을 하지 않을 경우 → 기본값, NULL값 등이 비정상적으로 데이터베이스에 존재할 수.. 2023. 8. 7. 식별자, 비식별자 관계는 뭐고 언제 사용해야하는 걸까?? 도토링 프로젝트를 진행하며 여러 아쉬웠던 점이 있었지만, 그 중 순위권 안에 드는 것은 단연코 설계할 시간이 너무나도 부족했던 것이다. 카카오 테크 캠퍼스와 동아리 프로젝트를 같이 병행하다 보니.. ++ 캡스톤까지 다 변명이야 8월 초에는 도토링의 DB 설계부터 단단히 다져볼 생각이다. 두번째 포스팅할 주제는 식별자와 비식별자 관계이다. 식별자 관계와 비식별자 관계가 무엇인 지 알아보기 이전에 이를 모르고 설계를 진행할 경우 아래와 같은 어려움을 맞이할 수 있다. 식별자 관계만을 이용하여 데이터 모델링을 전개할 경우, PK 속성의 숫자가 증가할 수록 관련된 SQL 구문이 복잡해져 개발 오류가 많아지게 된다. 비식별자 관계만을 이용하면 테이블간의 과다한 조인이 유발되 성능 저하가 올 수있다. 성능 저하 절.. 2023. 8. 4. 이전 1 ··· 6 7 8 9 10 11 12 ··· 22 다음 728x90