전체 글 32

[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

[SpringBoot / Swagger] Resolved [jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchMethodError: 'void org.springframework.web.method.ControllerAdviceBean.<init>(java.lang.Object)']

문제build.gradle을 다음과 같이 설정한 상태에서plugins { id 'java' id 'org.springframework.boot' version '3.5.0' id 'io.spring.dependency-management' version '1.1.7' id 'org.asciidoctor.jvm.convert' version '3.3.2'}swagger를 추가하기 위해 의존성을 추가하고implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.5.0'swagger 링크 (http://localhost:8080/swagger-ui/index.html)에 접속해봤더니Resolved [jakarta.servlet..

🚨 에러 2025.05.31

[Springboot] 테스트 코드 실행 시 발생하는 warning 메세지 무시

문제SpringBoot 테스트 코드 작성 후 실행 시 발생하는 warningWARNING: A Java agent has been loaded dynamically (/Users/yeon/.gradle/caches/modules-2/files-2.1/net.bytebuddy/byte-buddy-agent/1.14.12/be4984cb6fd1ef1d11f218a648889dfda44b8a15/byte-buddy-agent-1.14.12.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is ..

🚨 에러 2025.05.30

[BOJ/2599/C++] 수열

문제📝 접근 방법배열 안에서 연속된 K개의 날에 대해 온도의 합을 구하고, 그 안에서 가장 최대합을 구하면 되기 때문에 슬라이딩 윈도우 방식으로 해결하였다.투포인터 보다는 확인해야 하는 날의 개수가 K개로 고정되어 있으므로 슬라이딩 윈도우가 적합할 것이라고 생각하였다.그래서 온도 값을 받으면서 누적합으로 sum 배열을 만들고슬라이딩 윈도우 방식으로 for문에서 i = k부터 n까지 돌면서 고정 길이 k의 연속 구간 합을 하나씩 계산하고, 그 중 최대값을 갱신하는 방식으로 문제를 해결하였다.😎 해결 코드#include #include using namespace std;int n, k; int sum[100001];int ans = -10000001;int main(void) { ios::sync..

[Spring] accessToken 유효성 검사 로직

리프레쉬토큰을 이용한 액세스 토큰 재발급 로직이 postman 상에서는 되지만, 실제 프론트와 연동했을 시 제대로 작동하지 않는 문제가 발생하였다.처음에는 쿠키 관련 문제인 줄 알아서 토큰 발급 -> 쿠키 전달 로직을 보았다./ // RefreshToken 쿠키로 전달 Cookie refreshCookie = new Cookie("refresh_token", refreshToken); refreshCookie.setHttpOnly(true); refreshCookie.setMaxAge(7 * 24 * 60 * 60); refreshCookie.setPath("/"); response.ad..

🚨 에러 2025.05.21