목록분류 전체보기 (168)
쌩로그
목록 포스팅 개요 본론 2-1. @Builder 선언하기 2-2. 생성되는 생성자 코드 비교하기 2-3. 이제 진짜 이유 2-4. 빌더 패턴 요약 1. 포스팅 개요 List list = new ArrayList();예전에 @Builder를 클래스레벨에 선언하고, 사용하다가 위와 같이 Entity에서 선언한 List타입 객체를 호출하려 했을 때 초기화가 원활하게 일어나지 않아서 문제가 된 글을 포스팅한 적이 있다. 이 글이다. 지금 확인해보니 문제에 대한 원인을 정확히 파악하지 못 한 상태에서 글을 썼고, 오히려 나의 무지만... 드러낸 글이다.. 문제되는 글은 이 문장인데.. 클래스 레벨에 @Builder를 붙였기 때문에, 인스턴스 초기화시 모든 선언된 변수들은 각 타입의 기본값으로 들어간다. 헷갈린 내..
목록 포스팅 개요 본론 2-1. AWS S3의 파일에 대한 정보를 얻는 클래스 2-2. AWS S3 서비스 클래스 2-3. AWS S3 Configuration 클래스 요약 1. 포스팅 개요 AWS S3를 이용해서 파일 업로드를 구현해야 하는 일이 있었고, 구글링과 Chat GPT를 통해 구현하여 사용한 코드들이다. 그 코드를 재사용하기 위해 기록하는 포스팅이다. 2. 본론 AWS S3의 파일 업로드를 위해 필요한 클래스들에 대한 예시 코드이다. 2-1. AWS S3의 파일에 대한 정보를 얻는 클래스 @Getter public class FileInfo { UrlResource urlResource; // S3 파일 Url String contentDisposition; // HTTP 응답 헤더 중 하나..
목록 포스팅 개요 본론 2-1. 테스트가 왜 필요할까? 2-2. 테스트를 통해 얻어야 하는 것 2-3. 테스트 코드가 엉망이라면 2-4. 테스트 코드를 작성하지 않는다면? 2-5. 테스트 코드가 병목이 된다면? 2-6. 올바른 테스트 코드가 가져다 주는 것 요약 1. 포스팅 개요 평소 Test 코드에 대해서 좀 딥하게 배워보고 싶었다. 따라서 인프런에서 박우빈님의 Practical Testing: 실용적인 테스트 가이드 강의 섹션 1 테스트는 왜 필요할까?를 학습하며 정리한 포스팅이다. (포스팅 시간을 1초라도 줄이고자, JPA 기본편 학습을 끝으로 경어체를 생략한다.) 2. 본론 2-1. 테스트가 왜 필요할까? "테스트는 사실 귀찮다" 기능을 만들기도 바쁜데 테스트를 짜는 것은 귀찮다. 그럼에도 불구하..
포스팅 개요 포스팅 개요 본론 2-1. 기본값 타입 2-2. 임베디드 타입(복합 값 타입) 2-3. 값 타입과 불변 객체 2-4. 갑 타입의 비교 2-5. 값 타입 컬렉션 요약 1. 포스팅 개요 해당 포스팅은 인프런에서 영한님의 JPA기본 강의에서 값 타입 파트와 해당 파트에 맞는 책의 챕터를 보고 학습한 내용을 요약 및 정리하는 포스팅입니다. 2. 본론 JPA의 데이터 타입을 가장 크게 분류하면 엔티티 타입과 값 타입으로 나눌 수 있습니다. 엔티티 타입은 @Entity로 정의하는 객체고, 값 타입은 int, Integer, String처럼 단순히 값으로 사용하는 자바 기본 타입이나 객체를 말합니다. 엔티티 타입은 식별자를 통해 지속해서 추적할 수 있지만, 값 타입은 식별자가 없고 숫자나 문자같은 속성만..
포스팅 개요 포스팅 개요 본론 2-1. 프록시 2-2. 즉시 로딩과 지연 로딩 2-3. 지연 로딩 활용 2-4. 영속성 전이:CASCADE 2-5. 고아 객체 2-6. 영속성 전이 + 고아 객체, 생명주기 요약 1. 포스팅 개요 해당 포스팅은 인프런에서 영한님의 JPA기본 강의에서 프록시와 연관관계 관리 파트와 해당 파트에 맞는 책의 챕터를 보고 학습한 내용을 요약 및 정리하는 포스팅입니다. 2. 본론 2-1. 프록시 엔티티를 조회할 때 연관된 엔티티들이 항상 사용되는 것은 아닙니다. 회원 엔티티를 조회할 때 연관된 팀 앤티티는 비즈니스 로직에 따라 사용될 때도 있지만, 그렇지 않을 때도 있습니다. 예시를 살펴보겠습니다. @Entity // 엔티티 public class Member extends Bas..
포스팅 개요 포스팅 개요 본론 2-1. 상속 관계 매핑 2-2. @MappedSuperclass 2-3. 복합 키와 식별 관계 매핑 2-4. 조인 테이블 2-5. 엔티티 하나에 여러 테이블 매핑 요약 1. 포스팅 개요 해당 포스팅은 인프런에서 영한님의 JPA기본 강의에서 고급 매핑 파트와 해당 파트에 맞는 책의 챕터를 보고 학습한 내용을 요약 및 정리하는 포스팅입니다. 2. 본론 2-1. 상속 관계 매핑 관계형 데이터베이스에는 객체지향 언어에서 다루는 상속이라는 개념이 없습니다. 대신 슈퍼타입 서브타입 관계(Super-Type Sub-Type Relationship)이라는 모델링 기법이 상속 개념과 가장 유사합니다. ORM에서 이야기하는 상속 관계 매핑은 객체의 상속 구조와 데이터베이스의 슈퍼타입 서브타..
목록 포스팅 개요 본론 1. 데이터 형식 2. JSON 3. 또 JSON 요약 1. 포스팅 개요 비질란테의 유지태가 말합니다. "이제부터 내가 너한테 반말을 하겠습니다." 그냥 평소완 다르게 반말로 쓴다는 의미입니다. 현재 프로덕트를 개발 및 구현하는데 있어서 바보같았거나, 인지를 해야되는 부분에 대해서 써보려고 한다. 2. 본론 1. 데이터 형식 데이터 형식은 다양하다만, 일단 현재 사용한 형식은 DataForm, JSON 둘 뿐이다. 나는 데이터 형식에 대해서 어떻게 알고 있었을까... 생각해보면, 그냥 몰랐다... 단지, "JSON은 JSON이고, DataForm은 DataForm이다." 요정도 였다. 그리고, 얼마 전에 올렸지만, 파일을 받을 때는 FormData로 받아야했다... 근데 내가 이상..
목록 포스팅 개요 본론 및 요약 1. 포스팅 개요 스프링 사용시 @Transactional 애너테이션을 사용하면, 두 패키지가 나오는데 제가 잘 못 쓰고 있었습니다. 그에 대한 기록을 위한 포스팅입니다. 2. 본론 및 요약 인텔리 제이에서 쉬프트를 두번 누르면, 클래스 파일을 검색할 수 있는데, 두 가지가 나옵니다. 하나는 javax.transaction 패키지의 애너테이션이고, 하나는 org.springframework.transaction.annotation 애너테이션입니다. 결론적으로는 아래의 애너테이션을 사용해야 합니다. JPA를 쓰고, JPA는 javax 패키지의 클래스들이 표준이니, 당연하게도 javax 패키지의 @Transactional을 사용했는데, 개발시 정상적으로 작동하면 commit하..
목록 포스팅 개요 본론 요약 1. 포스팅 개요 실무에서 Vue와 SpringBoot를 이용해서 파일을 업로드해야하는 상황이 있었습니다. 처음 시도해봤었는데, 적용했고, 잊지않고자 기록합니다. 정말 간단히 세팅했고, Controller로만 확인해보도록 하겠습니다. 참고로 프로젝트 시작시에 일어나는 에러가 있긴했습니다. yml에 아무것도 추가하지 않고, 최소한으로 시도하려 했습니다만, log를 사용하기로 했는데, 로깅 레벨을 추가하지 않거나, database를 사용한다고 gradle에 추가해놓고, database 정보를 주지 않거나, 혹은 Spring Security를 추가했는데, 프론트에서 백으로 403 에러가 나는 부분이 있었지만, yml에 파일 설정을 더해줬고, Spring Security는 gradl..
SQL select 절에서 임의의 값 지정하기 목록 포스팅 개요 본론 요약 1. 포스팅 개요 회사에서 insert 쿼리를 실행할 일이 있었는데, value들을 특정 테이블에 select한 결과들을 value로 집어넣어야 했습니다. 이 때 select하려는 테이블에는 가져올 수 없는 값들이 있었습니다. 컬럼이 없으니 당연히 가져올 수 없는 값들이었습니다. 그래서 값을 임의로 지정해줘야 될 필요가 있었는데, 그에 대한 내용입니다. 2. 본론 결론적으로 말하면 select 절에서 그냥 값을 지정해주면 됩니다. select 절에서 굳이 테이블로 질의하지않고 바로 결과를 나타낼 수 있는데요. select 1; 이렇게 하면 1이 나옵니다. (JetBrain의 Datagrip이라는 Tool입니다.) 이런식으로 나옵니..