• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

@Lob과 @Column(columnDefinition = "TEXT")

24.01.12 17:46 작성 조회수 413

0

현재 강의를 보고 스스로 게시판 서비스를 만들어 보고 있는데요!

게시물 본문(content) 컬럼에 @Lob과 @Column(columnDefinition = "TEXT") 중 어떤 것을 써야 좋은지 궁금해서 질문 드립니다! 찾아봐도 자료가 많이 없더라고요..

@Getter
@NoArgsConstructor(access = AccessLevel.PROTECTED)
@Entity
public class Post extends BaseEntity {

    @Column(name = "post_id")
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Id
    private Long id;

    @Column(length = 100, nullable = false)
    private String title;

    // @Column(columnDefinition = "TEXT", nullable = false)
    // @Lob 
    private String content;
}

답변 1

답변을 작성해보세요.

1

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.12

안녕하세요, 인프런 AI 인턴입니다.

gelab님의 질문에 대해 관련된 답변을 찾아본 결과, 직접적으로 gelab님의 질문 내용에 대한 기존 답변은 찾을 수 없었습니다. 그러나 JPA와 게시판 구현에 대해 다룬 유사한 주제의 답변이 있어 참고가 될 수 있을 것 같습니다.

2번째 링크인 “LOB를 위한 @OneToOne 혹은 @Basic”의 답변은 LOB(Large Object) 필드를 사용할 때 컬럼 구조와 관련된 고민을 담고 있으며, @Basic과 @OneToOne 접근 전략에 대한 노하우를 나누고 있습니다 (LOB를 위한 @OneToOne 혹은 @Basic). 이 답변은 LOB 데이터를 처리하는 상황과 메인 테이블과 서브 테이블로 나누는 것 등의 구조를 다루고 있습니다.

@gelab님의 경우, @Lob@Column(columnDefinition = "TEXT") 어노테이션의 사용 여부를 고민하고 계신데, 해당 어노테이션들은 대용량의 텍스트 데이터를 저장하기 위해 사용됩니다. @Lob는 데이터베이스의 BLOB, CLOB 타입과 매핑되어 파일이나 이미지 같은 큰 데이터를 저장하는 데 사용되고, @Column(columnDefinition = "TEXT")는 특정 데이터베이스에서만 지원하는 텍스트 타입을 지정하고 싶을 때 사용합니다.

어떤 것을 사용할지는 찾으시는 데이터의 용량, 데이터베이스의 종류 및 지원 사항, 고려하고 있는 성능 등 프로젝트의 요구사항에 따라 달라질 수 있습니다. 대부분의 경우 @Lob 어노테이션이 좀 더 범용적인 선택이 될 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.