기록은 기억을 이기고 시간보다 오래 남는다.
반응형

전체 글 86

org.springframework.core.io.Resource vs. jakarta.annotation.Resource: 타입 불일치 문제 해결

Spring 프로젝트를 진행하다 보면 동일한 이름을 가진 클래스 때문에 타입 불일치 에러가 발생. 특히 Resource라는 이름의 클래스가 대표적인 예. 이 글에서는 이 문제의 원인과 해결 방법을 기술.문제의 원인패키지 차이org.springframework.core.io.Resource: 파일이나 스트림 같은 I/O 리소스를 다루는 인터페이스.jakarta.annotation.Resource: 의존성 주입(Injection)을 위한 애노테이션.자동 임포트 오류IDE 자동 완성 기능에서 잘못된 Resource 클래스를 선택해 발생하는 경우가 많음.혼동하기 쉬운 이름두 클래스가 동일한 이름을 사용하기 때문에 초보 개발자는 물론, 경험 많은 개발자도 혼동하기 쉬움.발생 가능한 결과컴파일 에러"Type mis..

에러일지 2025.01.16

MaxUploadSizeExceededException: 원인과 해결 방법

Spring Boot에서 파일 업로드를 지원할 때 기본적으로 설정된 업로드 크기 제한(1MB 내외)을 초과하면 MaxUploadSizeExceededException이 발생. 여기서는 이 예외가 발생하는 이유와 해결 방법을 기술함예외 발생 원인Spring 설정값 초과spring.servlet.multipart.max-file-size 또는 spring.servlet.multipart.max-request-size 설정값보다 큰 파일을 업로드하려고 하면 발생.서버 컨테이너의 업로드 제한톰캣(Tomcat), 언더토우(Undertow) 등의 서버 컨테이너가 자체적으로 업로드 크기를 제한하는 경우에도 예외가 발생.ExceptionHandler 동작 이전 차단파일이 업로드 크기 제한을 초과하면 Spring이 요청..

에러일지 2025.01.16

[Vue/Spring boot]CORS 에러: 원인과 해결 방법

CORS는 브라우저가 보안 때문에 다른 도메인(출처) 간 리소스 요청을 제한하는 정책이야. 서버에서 CORS 설정 제대로 안 하면 브라우저가 요청 막아서 "CORS 에러"가 뜨지. 이 글에선 CORS 에러 원인과 해결 방법을 정리CORS 에러의 원인Access-Control-Allow-Origin 헤더 누락이나 설정 오류서버가 Access-Control-Allow-Origin 헤더를 응답에 포함 안 하거나 잘못 설정하면 발생함.프리플라이트(OPTIONS) 요청 설정 오류CORS는 HTTP OPTIONS 요청으로 서버가 요청 허용하는지 확인해. 이 설정 제대로 안 하면 에러가 남.인증과 쿠키 관련 문제인증 정보나 쿠키 포함된 요청 보낼 때, Access-Control-Allow-Credentials 헤더 ..

에러일지 2025.01.16

[JAVA]자바 예외 처리: 종류, 예제, 그리고 차이점

예외(Exception)란 무엇인가?예외(Exception)는 프로그램 실행 중에 예기치 못한 상황으로 인해 발생하는 오류를 말합니다. 자바에서는 예외를 체계적으로 관리하고 처리하기 위해 다양한 예외 클래스와 메커니즘을 제공합니다. 예외 처리를 올바르게 하면 프로그램이 예기치 못한 상황에서도 정상적인 실행을 유지할 수 있습니다.자바 예외의 종류1. 논리적 에러 (Logic Errors)프로그램이 작동은 하지만, 결과가 의도와 다르게 나오는 경우입니다.디버깅 방법: 논리적 에러를 해결하려면 코드에서 문제가 되는 부분을 추적해야 합니다. 이를 위해 디버깅 도구를 사용하거나, 코드에 로그를 추가하여 실행 흐름과 변수 값을 확인하는 것이 유용합니다.컴퓨터 입장에서는 문제가 없어 에러 메시지가 나타나지 않지만, ..

2024년을 보내고, 2025년 계획

안녕하세요, 주네입니다. 아무도 찾아오지 않는 블로그이지만, 지난 1년을 회고하고 앞으로의 1년을 계획하며 기록하고자 합니다.긍정: 지난 1년의 잘 했던 점앱 개발 배운 것저는 원래 게임 개발을 전공으로 하며 모든 포트폴리오, 지식, 개발 언어 등이 게임 개발에 맞춰져 있었습니다. 하지만 게임 개발을 공부하던 중에도 앱 개발에 대한 관심이 많았습니다. 그래서 프로그래머스 앱 개발 부트캠프에 참여해 처음으로 프론트엔드 웹 앱 개발 기술들을 공부하게 되었습니다. 지금 다니는 회사에서는 앱 개발 기술을 크게 활용하지는 못하지만, 사이드 프로젝트를 하면서 실력을 꾸준히 쌓아가고 있습니다.회사 취업인턴 과정을 거쳐 현재 회사에 정식 입사하게 되었습니다. 급여는 서울에 비해 적지만 고향에 회사가 있어 거주비를 절약..

회고 2025.01.02

gRPC: REST API를 대체하는 고성능 원격 프로시저 호출 프레임워크

gRPC: 효율적인 통신을 위한 오픈소스 프레임워크gRPC란?gRPC는 Google에서 개발한 오픈소스 원격 프로시저 호출(Remote Procedure Call, RPC) 프레임워크입니다. 이는 네트워크로 연결된 시스템 간에 효율적이고 고성능의 통신을 지원하도록 설계되었습니다.gRPC는 HTTP/2 프로토콜과 **Protocol Buffer(Protobuf)**를 사용하여 데이터를 직렬화 및 전송하며, REST API의 한계를 극복하고 데이터 전송 효율성을 크게 향상시키는 데 기여합니다.gRPC의 주요 특징1. HTTP/2 기반멀티플렉싱 지원: gRPC는 HTTP/2를 기반으로 다중화를 지원하여 하나의 연결에서 여러 요청을 동시에 처리할 수 있습니다.네트워크 대역폭을 최적화하고 지연 시간을 줄이는 데 ..

카테고리 없음 2024.12.26

[Vue.js] Vu ESLint 에러 'multi-word-component-names' 해결 방법 총정리

소개Vue.js로 개발하다 보면, 컴포넌트 이름이 단일 단어일 경우 ESLint에서 다음과 같은 에러가 발생할 수 있습니다:"Component name ~ should always be multi-word."이는 Vue의 공식 스타일 가이드에 따라, 컴포넌트 이름을 두 단어 이상의 조합으로 작성하도록 권장하기 때문입니다. 하지만 특정 상황에서는 이 규칙을 무시하거나 비활성화해야 할 필요가 있을 수 있습니다.이 글에서는 vue/multi-word-component-names 규칙을 비활성화하거나 무시하는 다양한 방법을 정리했습니다.또한, 이 규칙의 존재 이유와, 개발 상황에 맞게 이를 활용하는 방법까지 자세히 다룹니다.Vue.js ESLint "Component name ~ should always be ..

에러일지 2024.11.22

DOM(Document Object Model): 웹 페이지를 동적으로 조작하는 핵심 개념

DOM이란 무엇인가?DOM은 Document Object Model의 약자로, 웹 페이지의 HTML이나 XML 문서를 트리 구조의 객체로 표현한 모델입니다. 브라우저는 HTML 문서를 로드한 후 이를 파싱하여 메모리에 적재하고, 이 구조를 통해 웹 페이지의 내용과 스타일을 동적으로 수정할 수 있게 해줍니다. DOM을 사용하면 웹 페이지의 요소를 자바스크립트로 조작하여 페이지를 실시간으로 변경할 수 있습니다.DOM의 구조: 트리 형식의 객체 모델DOM은 트리 구조로 표현됩니다. 이 트리의 최상위 노드는 요소이며, 그 아래로 , , , 등 다양한 HTML 요소들이 계층적인 관계를 형성합니다. 각 HTML 요소는 노드(Node)라는 객체로 변환되어 트리 구조에 배치됩니다.HTML 요소는 DOM 트리에서 엘..

FRONT-END 2024.11.06

[리눅스] 리눅스 기본 명령어 정리

1. ls - 파일 및 폴더 목록 보기ls: 현재 디렉토리의 모든 파일 및 폴더를 리스트로 보여줍니다.ls -l: 파일과 폴더의 자세한 정보를 포함한 리스트를 출력합니다.ls -a: 숨겨진 파일도 포함하여 모든 파일을 보여줍니다.ls *.txt: 확장자가 .txt인 파일들만 목록에 표시합니다.Tip: 숨겨진 파일은 이름 앞에 .이 붙어 있으며, ls -a 옵션을 사용하면 볼 수 있습니다.2. cd - 디렉토리 이동cd 폴더이름: 해당 디렉토리로 이동합니다.cd ..: 현재 디렉토리의 상위 폴더로 이동합니다.cd ~: 홈 디렉토리로 이동합니다.Tip: ..은 상위 디렉토리를, .은 현재 디렉토리를 의미합니다.3. pwd - 현재 경로 표시pwd: 현재 작업 중인 디렉토리의 경로를 표시합니다.Tip: 현재 ..

리눅스 2024.10.31

[git & github]내가 쓸려고 정리한 git 명령어

원격 저장소에서 로컬 저장소로 내려받는 방법Git 설치 **깃 다운로드 확인은 cmd 창에서 아래의 명령어를 입력 시 확인 가능합니다.git -v작업 폴더 생성원하는 경로에 MyProject와 같은 폴더를 생성합니다.Git Bash 실행MyProject 폴더에서 마우스 오른쪽 클릭 후 "Open Git Bash here"를 선택합니다.만약 이 옵션이 보이지 않는다면, Git Bash를 실행한 후 아래 명령어를 통해 해당 폴더로 이동합니다cd c:cd [폴더 경로]cd MyProject  Git 설정git config --global user.name "본인아이디"git config --global user.email "본인이메일" Git 초기화 및 원격 저장소 추가git initgit remote add..

카테고리 없음 2024.10.28
반응형