2025/06 7

[Spring/MySQL] Data truncation: Data too long for column 'content' at row 1

문제게시판 기능을 테스트하기 위해 진짜처럼 길게 본문을 작성하였더니[2025-06-15 13:47:50:365576] [http-nio-0.0.0.0-8080-exec-4] ERROR [org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions:150] - Data truncation: Data too long for column 'content' at row 1org.springframework.dao.DataIntegrityViolationException: could not execute statement [Data truncation: Data too long for column 'content' at row 1] [insert into pos..

🚨 에러 2025.06.15

[OPIc] 3시간도 안 공부하고 오픽 IH 받기

안녕하세요오늘은 오픽 IH 받는 공부 방법에 대해 소개해볼게요 OPIc 등급은 다음과 같은데요 IH는 두번째로 높은 등급입니다따라서 많은 사람들이 받고 싶어할텐데요..! 제가 실제경험한★3시간 공부★ 하고 IH받는 비결을 소개시켜 드릴게요 :) 우선 저는 11월 11일날 24일에 대한 시험 접수를 했습니다그래서 공부할 시간 약 2주 정도가 있었는데요제가 이 기간동안 무엇을 보며 공부를 했냐면요 1️⃣ 오픽노잼https://www.youtube.com/@opicnojam 오픽노잼 opicnojam파고다 인강 / 교재 / 수업 / 파일 / 점수 올리기: https://linktr.ee/opicnojamwww.youtube.com 이 분의 영상을 보았습니다IM 강의 한 7개, AL 강의 1개 본 거 같아요..

🤫 ETC 2025.06.13

[QueryDSL] java: Attempt to recreate a file for type icet.koco.alarm.entity.QAlarm

문제java: Attempt to recreate a file for type icet.koco.alarm.entity.QAlarmAppApplication을 실행하려고 하니까 Build 실패하면서 다음과 같은 에러가 발생하였다.원인QueryDSL의 QEntity 파일들이 이미 생성되어 있는 상태에서 재생성하려고 하기 때문에 해당 에러가 발생한다. QueryDSL은 @Entity 클래스에 대해 Q 클래스가 붙은 메타 클래스를 생성한다. 해결기존 생성된 Q파일을 삭제하기 위해 전체 build 디렉토리를 정리해야 한다../gradlew clean을 하여 build/ 디렉토리를 삭제함 (동시에 build/generated/querydsl/도 삭제됨)그러고 ./gradlew build을 하면 해당 에러를 해결할..

🚨 에러 2025.06.11

[JUnit5 / TestCode] @Nested로 가독성 좋은 테스트코드 작성하기

단위테스트를 작성하다보면 하나의 기능에도 작성해야 할 테스트 코드가 많아진다.성공(), 실패_무슨예외() 이런 식으로..처음에는 그냥@ExtendWith(MockitoExtension.class)class LikeServiceTest {... @Test @DisplayName("좋아요 등록에 성공하면 LikeResponseDto 반환") void createLike_성공() { ... } @Test @DisplayName("이미 좋아요를 누른 게시글에 다시 누르면 AlreadyLikedException 발생") void createLike_이미좋아요누름_예외() { ... } @Test @DisplayName("좋아요 등록 중 낙..

Backend/🌱 Spring 2025.06.11

[Spring] SSE(Server Sent Events)

우리 서비스에서 게시글에 댓글, 또는 좋아요가 눌리면 실시간으로 알람을 제공해주기 위해서 SSE를 사용하기로 하였다.SSE (Server Sent Events): HTTP 프로토콜을 기반으로 한 클라이언트와 서버 간의 단방향 통신 프로토콜이다. 단방향 지속 연결을 활용하여 서버가 클라이언트에게 이벤트와 데이터를 능동적으로 전송할 수 있게 한다.스트리밍 방식을 통해 구현Client가 서버의 이벤트를 구독하기 위한 요청을 보낸다.서버에서는 클라이언트와 매핑되는 SSE 객체를 만든다.서버에서 이벤트 스트림을 생서앟고, 클라이언트에게 비동기 적으로 메세지를 푸시한다.[특징]서버에서 클라이언트로 전송되는 데이터는 UTF-8로 인코딩되어야 함.반환되는 컨텐츠 유형은 text/event-streamSSE의 장점실시간..

Backend/🌱 Spring 2025.06.10

[JUnit, Mockito] TestCode 작성하기

JUnit: 자바 언어를 위한 단위 테스트 프레임워크단위 테스트: 프로그램을 작은 단위로 분해하여 각 단위를 독립적으로 테스트 -> 프로그램의 안정성을 높임AssertJ: 자바 테스트르 돕기 위해 다양한 문법을 지원하는 라이브러리Mockito: 단위 테스트를 위해 모의 객체를 생성하고 관리하는데 사용되는 Java 오픈소스 프레임워크JUnit 관련 어노테이션@TestTest 메서드로 인식하고 테스트각각의 테스트가 서로 영향주지 않고 독립적으로 실행되는 것을 원칙으로 함@BeforeAll@BeforeAll @Test 메소드 보다 먼저 한번만 수행되어야 할 경우에 사용@BeforeEach@BeforeEach 선언된 메소드를 @Test 메소드가 실행될 때마다 그 전에 반드시 실행@Test 메소드 실행전 공통으로..

Backend/🌱 Spring 2025.06.08

@RequiredArgsContructor, @AllArgsContructor, @NoArgsContructor

관성적으로 쓰던 어노테이션 중에서 @RequiredArgsContructor, @AllArgsContructor, @NoArgsContructor 가 있었는데 개념을 파악하고자 글을 써본다..@RequiredArgsContructorfinal 필드나 @NonNull이 붙은 필드만 포함하는 생성자를 자동 생성한다.꼭 필요한 필드만 주입받는 생성자를 만들어준다.주로 의존성 주입 (DI) 목적으로 사용한다.@AllArgsContructor모든 필드를 매개변수로 갖는 전체 생성자를 자동 생성한다.DTO, 테스트용 객체 등에 사용하기 좋다.import lombok.RequiredArgsConstructor;import lombok.AllArgsConstructor;import lombok.ToString;@Req..

Backend/🌱 Spring 2025.06.06